.footnote-popover-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0000004d;z-index:9999;animation:fadeInBackdrop .2s ease-out}@keyframes fadeInBackdrop{0%{opacity:0}to{opacity:1}}.footnote-popover{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10000;width:90vw;max-width:900px;min-width:250px;max-height:80vh;overflow-y:auto;background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 4px 20px #00000026;padding:24px;font-size:20px;line-height:1.6;animation:fadeInPopover .2s ease-out;font-family:Georgia,serif;transition:font-size .3s ease}[data-font-size=small] .footnote-popover{font-size:16.3px}[data-font-size=medium] .footnote-popover{font-size:20px}[data-font-size=large] .footnote-popover{font-size:23.9px}.footnote-popover-dark{background-color:#2a2a2a;border-color:#404040;color:#e0e0e0}@keyframes fadeInPopover{0%{opacity:0;transform:translate(-50%,calc(-50% - 5px))}to{opacity:1;transform:translate(-50%,-50%)}}.footnote-popover-content{color:#333;margin-bottom:8px;padding:8px 0}.footnote-popover-dark .footnote-popover-content{color:#e0e0e0}.footnote-popover-content p{margin:0 0 .5em}.footnote-popover-content p:last-child{margin-bottom:0}.footnote-popover-close{position:absolute;top:8px;right:8px;background:none;border:none;font-size:1.5em;color:#666;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s,color .2s;line-height:1}.footnote-popover-dark .footnote-popover-close{color:#b0b0b0}.footnote-popover-close:hover{background-color:#f0f0f0;color:#333}.footnote-popover-dark .footnote-popover-close:hover{background-color:#404040;color:#e0e0e0}@media (max-width: 768px){.footnote-popover{max-width:90vw;min-width:200px;padding:20px}[data-font-size=small] .footnote-popover{font-size:16.3px}[data-font-size=medium] .footnote-popover{font-size:20px}[data-font-size=large] .footnote-popover{font-size:23.9px}}.nav-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:999;animation:fadeIn .2s ease-in-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.nav-menu{position:fixed;top:0;left:0;width:300px;max-width:85vw;height:100vh;background-color:#fffacd;box-shadow:2px 0 10px #0000001a;z-index:1000;transform:translate(-100%);transition:transform .3s ease-in-out,background-color .3s ease;display:flex;flex-direction:column;overflow:hidden}[data-theme=dark] .nav-menu{background-color:#1a1a1a;box-shadow:2px 0 10px #00000080}.nav-menu-open{transform:translate(0)}.nav-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e0e0e0;background-color:#fffacdcc;transition:background-color .3s ease,border-color .3s ease}[data-theme=dark] .nav-header{background-color:#2a2a2a;border-bottom-color:#404040}.nav-header h2{font-size:1.35em;font-weight:600;color:#333;margin:0;transition:color .3s ease}[data-theme=dark] .nav-header h2{color:#e0e0e0}.nav-header-actions{display:flex;align-items:center;gap:10px}.theme-toggle{background:none;border:none;font-size:1.5em;cursor:pointer;padding:4px 8px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s,transform .2s;line-height:1}.theme-toggle:hover{background-color:#0000000d;transform:scale(1.1)}[data-theme=dark] .theme-toggle:hover{background-color:#ffffff1a}.nav-close-button{background:none;border:none;font-size:2em;color:#666;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s,color .2s}[data-theme=dark] .nav-close-button{color:#b0b0b0}.nav-close-button:hover{background-color:#e0e0e0;color:#333}[data-theme=dark] .nav-close-button:hover{background-color:#404040;color:#e0e0e0}.nav-content{flex:1;overflow-y:auto;padding:20px 20px 100px}.nav-item{padding:3px;cursor:pointer;transition:background-color .2s;-webkit-user-select:none;user-select:none}.nav-item:hover{background-color:#b3ac6d}[data-theme=dark] .nav-item:hover{background-color:#2a2a2a}.nav-item-text{display:block;color:#333;font-size:1.05em;padding:3px 6px;line-height:1.5;word-wrap:break-word;transition:color .3s ease}[data-theme=dark] .nav-item-text{color:#e0e0e0}.nav-level-1{font-weight:600;font-size:1.15em}.nav-level-2{font-weight:500}.nav-level-3{font-weight:400;color:#555;transition:color .3s ease}[data-theme=dark] .nav-level-3{color:#b0b0b0}.nav-level-4,.nav-level-5,.nav-level-6{font-weight:400;color:#666;font-size:1em;transition:color .3s ease}[data-theme=dark] .nav-level-4,[data-theme=dark] .nav-level-5,[data-theme=dark] .nav-level-6{color:#999}.nav-empty{padding:20px;text-align:center;color:#999;transition:color .3s ease}[data-theme=dark] .nav-empty{color:#666}@media (max-width: 768px){.nav-menu{width:280px}.nav-header{padding:15px}.nav-header h2{font-size:1.2em}.nav-item{padding:8px 15px}.nav-item-text{font-size:1em}}.app{width:100%;min-height:100vh;position:relative;background-color:#fffacd;transition:background-color .3s ease}[data-theme=dark] .app{background-color:#1a1a1a}.top-left-controls{position:fixed;top:20px;left:20px;z-index:1001;display:flex;align-items:center;gap:10px;transition:opacity .2s,visibility .2s}.top-left-controls-hidden{opacity:0;visibility:hidden;pointer-events:none}.top-left-controls-auto-hidden{opacity:0;pointer-events:none}.reading-progress{background-color:#fffffffa;border-radius:4px;padding:8px 12px;font-size:.875rem;font-weight:600;color:#333;min-width:50px;text-align:center;transition:background-color .2s,color .3s;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}[data-theme=dark] .reading-progress{background-color:#fffffffa;color:#1a1a1a}.hamburger-menu-button{width:40px;height:40px;background-color:#fffffffa;border:1px solid #d0d0d0;border-radius:4px;cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:8px;box-shadow:0 2px 8px #00000026;transition:background-color .2s,border-color .3s}[data-theme=dark] .hamburger-menu-button{background-color:#fffffffa;border-color:#ccc;box-shadow:0 2px 12px #0009}.hamburger-menu-button:hover{background-color:#fff;box-shadow:0 2px 12px #0003}[data-theme=dark] .hamburger-menu-button:hover{background-color:#f5f5f5;box-shadow:0 2px 16px #000000b3}.hamburger-menu-button span{display:block;width:22px;height:2px;background-color:#333;border-radius:1px;transition:all .3s}[data-theme=dark] .hamburger-menu-button span{background-color:#1a1a1a}.font-size-button{width:40px;height:40px;background-color:#fffffffa;border:1px solid #d0d0d0;border-radius:4px;cursor:pointer;display:flex;justify-content:center;align-items:center;font-size:.875rem;font-weight:600;color:#333;box-shadow:0 2px 8px #00000026;transition:background-color .2s,border-color .3s,color .3s;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.font-size-indicator{display:flex;align-items:baseline;justify-content:center;gap:2px;line-height:1}.font-size-a{color:#999;font-weight:400;transition:color .2s,font-weight .2s}.font-size-a.font-size-active{color:#000;font-weight:700}[data-theme=dark] .font-size-a{color:#666}[data-theme=dark] .font-size-a.font-size-active{color:#000}[data-theme=dark] .font-size-button{background-color:#fffffffa;border-color:#ccc;color:#1a1a1a;box-shadow:0 2px 12px #0009}.font-size-button:hover{background-color:#fff;box-shadow:0 2px 12px #0003}[data-theme=dark] .font-size-button:hover{background-color:#f5f5f5;box-shadow:0 2px 16px #000000b3}.theme-toggle-button{width:40px;height:40px;background-color:#fffffffa;border:1px solid #d0d0d0;border-radius:4px;cursor:pointer;display:flex;justify-content:center;align-items:center;font-size:1.2rem;box-shadow:0 2px 8px #00000026;transition:background-color .2s,border-color .3s,transform .2s;line-height:1}[data-theme=dark] .theme-toggle-button{background-color:#fffffffa;border-color:#ccc;box-shadow:0 2px 12px #0009}.theme-toggle-button:hover{background-color:#fff;box-shadow:0 2px 12px #0003;transform:scale(1.05)}[data-theme=dark] .theme-toggle-button:hover{background-color:#f5f5f5;box-shadow:0 2px 16px #000000b3}.book-content{max-width:900px;margin:0 auto;padding:80px 20px 40px;color:#333;transition:color .3s ease,opacity .2s ease,font-size .3s ease;font-family:Georgia,serif;font-size:20px}[data-font-size=small] .book-content{font-size:16.3px}[data-font-size=medium] .book-content{font-size:20px}[data-font-size=large] .book-content{font-size:23.9px}.book-content-dimmed{opacity:.7;pointer-events:none}[data-theme=dark] .book-content{color:#e0e0e0}.book-content h1{font-size:2.5em;margin-top:1em;margin-bottom:.5em;font-weight:600;line-height:1.2;scroll-margin-top:80px;color:#333;transition:color .3s ease;max-width:100%;word-wrap:break-word;overflow-wrap:break-word}[data-theme=dark] .book-content h1{color:#fff}.book-content h2{font-size:2em;margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.3;scroll-margin-top:80px;color:#333;transition:color .3s ease;max-width:100%;word-wrap:break-word;overflow-wrap:break-word}[data-theme=dark] .book-content h2{color:#fff}.book-content h3{font-size:1.5em;margin-top:1.2em;margin-bottom:.5em;font-weight:600;line-height:1.4;scroll-margin-top:80px;color:#333;transition:color .3s ease;max-width:100%;word-wrap:break-word;overflow-wrap:break-word}[data-theme=dark] .book-content h3{color:#e0e0e0}.book-content h4{font-size:1.25em;margin-top:1em;margin-bottom:.5em;font-weight:600;scroll-margin-top:80px;color:#333;transition:color .3s ease;max-width:100%;word-wrap:break-word;overflow-wrap:break-word}[data-theme=dark] .book-content h4{color:#e0e0e0}.book-content h5{font-size:1.1em;margin-top:.8em;margin-bottom:.4em;font-weight:600;scroll-margin-top:80px;color:#333;transition:color .3s ease;max-width:100%;word-wrap:break-word;overflow-wrap:break-word}[data-theme=dark] .book-content h5{color:#e0e0e0}.book-content h6{font-size:1em;margin-top:.8em;margin-bottom:.4em;font-weight:600;scroll-margin-top:80px;color:#333;transition:color .3s ease;max-width:100%;word-wrap:break-word;overflow-wrap:break-word}[data-theme=dark] .book-content h6{color:#e0e0e0}.book-content p{margin-bottom:1em;font-size:1.1em;line-height:1.8;padding:.5em .75em;margin-left:-.75em;margin-right:-.75em;border-radius:4px;transition:background-color .2s ease;position:relative;cursor:pointer}.book-content p:hover{background-color:#fff0b499}[data-theme=dark] .book-content p:hover{background-color:#ffffff0d}.book-content p.paragraph-highlighted{outline:2px solid rgba(0,102,204,.5);outline-offset:2px;background-color:#fff0b466;transition:outline .3s ease,background-color .2s ease}[data-theme=dark] .book-content p.paragraph-highlighted{outline:2px solid rgba(74,158,255,.6);outline-offset:2px;background-color:#ffffff14}.book-content .paragraph-anchor{display:inline-block;opacity:0;margin-right:.5em;text-decoration:none;font-size:.9em;vertical-align:baseline;transition:opacity .2s ease;cursor:pointer;-webkit-user-select:none;user-select:none}.book-content p:hover .paragraph-anchor,.book-content .paragraph-anchor:hover{opacity:.6}.book-content .paragraph-anchor:hover{opacity:1}.book-content ul,.book-content ol{margin-bottom:1em;padding-left:2em}.book-content li{margin-bottom:.5em;font-size:1.1em;line-height:1.8}.book-content blockquote{margin:1.5em 0;padding-left:1.5em;border-left:4px solid #e0e0e0;color:#666;font-style:italic;transition:border-color .3s ease,color .3s ease}[data-theme=dark] .book-content blockquote{border-left-color:#404040;color:#b0b0b0}.book-content code{background-color:#f5f5f5;padding:2px 6px;border-radius:3px;font-family:Courier New,monospace;font-size:.9em;transition:background-color .3s ease}[data-theme=dark] .book-content code{background-color:#2a2a2a;color:#e0e0e0}.book-content pre{background-color:#f5f5f5;padding:1em;border-radius:4px;overflow-x:auto;margin-bottom:1em;transition:background-color .3s ease}[data-theme=dark] .book-content pre{background-color:#2a2a2a}.book-content pre code{background-color:transparent;padding:0}.book-content img{max-width:100%;height:auto;margin:1.5em 0;border-radius:4px}.book-content a{color:#06c;text-decoration:none;transition:color .3s ease}[data-theme=dark] .book-content a{color:#4a9eff}.book-content a:hover{text-decoration:underline}.book-content hr{margin:2em 0;border:none;border-top:1px solid #e0e0e0;transition:border-color .3s ease}[data-theme=dark] .book-content hr{border-top-color:#404040}.book-content .footnote-ref{display:inline-block;color:#06c;cursor:pointer;font-weight:600;margin:0 2px;padding:0 2px;border-bottom:1px dotted #0066cc;transition:color .2s ease,border-color .2s ease;-webkit-user-select:none;user-select:none;vertical-align:super;font-size:.8em;text-decoration:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}[data-theme=dark] .book-content .footnote-ref{color:#4a9eff;border-bottom-color:#4a9eff}.book-content .footnote-ref:hover{color:#049;border-bottom-color:#049;border-bottom-style:solid}[data-theme=dark] .book-content .footnote-ref:hover{color:#6bb3ff;border-bottom-color:#6bb3ff}.book-content .footnote-ref:focus{outline:2px solid #0066cc;outline-offset:2px;border-radius:2px}[data-theme=dark] .book-content .footnote-ref:focus{outline-color:#4a9eff}.copy-toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background-color:#000000d9;color:#fff;padding:12px 24px;border-radius:6px;font-size:.9rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;z-index:2000;box-shadow:0 4px 12px #0000004d;animation:toastFadeIn .3s ease-out;pointer-events:none;max-width:90%;text-align:center}[data-theme=dark] .copy-toast{background-color:#fffffff2;color:#1a1a1a;box-shadow:0 4px 12px #00000080}@keyframes toastFadeIn{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.location-saved-toast{position:fixed;top:20px;left:50%;transform:translate(-50%);background-color:#000000d9;color:#fff;padding:14px 24px;border-radius:6px;font-size:1.15rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;z-index:2000;box-shadow:0 4px 12px #0000004d;animation:locationSavedToastFadeIn .3s ease-out;pointer-events:none;max-width:90%;text-align:center}[data-theme=dark] .location-saved-toast{background-color:#fffffff2;color:#1a1a1a;box-shadow:0 4px 12px #00000080}@keyframes locationSavedToastFadeIn{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media (max-width: 768px){.top-left-controls{top:auto;bottom:20px;left:50%;transform:translate(-50%);gap:8px}.reading-progress{padding:6px 10px;font-size:.8rem;min-width:45px}.hamburger-menu-button{width:36px;height:36px}.hamburger-menu-button span{width:20px}.font-size-button{width:36px;height:36px;font-size:.8rem}.theme-toggle-button{width:36px;height:36px;font-size:1rem}.book-content{padding:70px 15px 30px}.book-content h1{font-size:2em}.book-content h2{font-size:1.75em}.book-content h3{font-size:1.4em}.book-content p,.book-content li{font-size:1em}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fffacd;color:#333;line-height:1.6;transition:background-color .3s ease,color .3s ease}[data-theme=dark] body{background-color:#1a1a1a;color:#e0e0e0}#root{width:100%;min-height:100vh}
