.skip-link{position:absolute!important;top:-9999px!important;left:-9999px!important;background:var(--color-bg,#fff);color:var(--color-text,#333);padding:8px 16px;z-index:99999;font-family:'Courier New',monospace;font-size:.85rem;text-decoration:none;opacity:0;pointer-events:none}.skip-link:focus{position:absolute!important;top:8px!important;left:8px!important;opacity:1;pointer-events:auto}.home-content{text-align:center;padding:0 var(--padding-mobile);padding-top:calc(var(--space-2xl) + 12vh);min-height:70vh;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;gap:var(--space-xl);position:relative}.home-title{font-family:var(--font-mono);font-size:1.875rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;text-align:center}.home-sticker{position:absolute;bottom:55px;right:0;width:80px;height:auto}.start-reading-btn{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:700;color:var(--color-background,#fefefe);background-color:var(--color-text-primary,#333);border:2px solid var(--color-text-primary,#333);padding:var(--space-md) var(--space-xl);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);cursor:pointer;transition:all var(--transition-fast)}.start-reading-btn:hover{background-color:var(--color-background,#fefefe);color:var(--color-text-primary,#333)}.continue-reading{position:fixed;top:70px;left:0;right:0;background-color:var(--color-accent);color:var(--color-background);padding:var(--space-lg) var(--padding-mobile);border-bottom:2px solid var(--color-accent);z-index:85;cursor:pointer;transition:background-color var(--transition-fast)}.continue-reading:hover{background-color:var(--color-text-secondary)}.continue-reading-content{max-width:var(--max-width-reader);margin:0 auto;display:flex;flex-direction:column;gap:var(--space-xs)}.continue-reading-label{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--letter-spacing-normal)}.continue-reading-chapter{font-family:var(--font-mono);font-size:var(--font-size-sm)}.scene-break{text-align:center!important;text-indent:0!important}.article-citation{text-align:center;margin:2rem 0}.article-citation p{text-indent:0;margin:0}.citation-title{font-weight:700;font-size:14pt}.citation-byline{font-size:10pt}.citation-link{font-size:8pt}.citation-link a{color:var(--color-link);text-decoration:underline}.citation-link a:hover{color:var(--color-link-hover)}.citation-link .citation-emoji{font-size:12pt!important;vertical-align:middle}.flashback-header{text-align:center!important;text-indent:0!important;font-family:'Courier New',monospace;font-weight:700;font-size:calc(var(--font-size-reader) + 2px);letter-spacing:3px}.block-quote{margin:var(--space-xl) 0;padding:var(--space-lg) 0;background-color:var(--color-accent-light);text-indent:0!important}.block-quote p{text-indent:0!important;margin-left:0;padding-left:0}.messages p{text-indent:0!important}.dateline{font-family:var(--font-serif);font-style:italic;font-weight:400}body.dateline-bold-italic .dateline{font-weight:700;font-style:italic}body.dateline-bold .dateline{font-weight:700;font-style:normal}.has-dateline{text-indent:0!important}p+p.has-dateline{margin-top:1em}.chapter-body p.email-line{text-indent:0!important;margin-top:0!important}.chapter-body p.has-dateline{text-indent:0!important;margin-top:1em!important}.chapter-body p.scene-break{text-align:center!important;text-indent:0!important;margin-top:-.6rem;margin-bottom:-.6rem}.chapter-body p.flashback-header{text-align:center!important;text-indent:0!important;font-family:'Courier New',monospace;font-weight:700;font-size:calc(var(--font-size-reader) + 2px);letter-spacing:3px}.chapter-body p.signature{text-align:right!important;text-indent:0!important;margin-top:1.5em!important}.section-break{margin:var(--space-2xl) 0;padding-top:var(--space-xl);border-top:1px solid var(--color-border)}.toc-top-section{border-bottom:1px solid var(--color-border)}.toc-top-header{padding:var(--space-md) var(--space-md);display:flex;justify-content:space-between;align-items:center;cursor:pointer;background-color:var(--color-background);transition:background-color var(--transition-fast);position:relative}.toc-top-header:hover{background-color:var(--color-accent-light)}.toc-top-header::after{content:'▸';display:inline-block;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-left:var(--space-sm);transition:transform .25s ease}.toc-top-header.expanded::after{transform:rotate(90deg)}.toc-top-section:first-child .toc-top-header{position:sticky;top:0;z-index:10;background-color:var(--color-background);border-bottom:2px solid var(--color-border)}.toc-top-link::after{content:none}.toc-top-title{font-family:var(--font-mono);font-size:var(--font-size-base);font-weight:700;color:var(--color-text-primary);margin:0;text-transform:uppercase;letter-spacing:var(--letter-spacing-normal)}.toc-book-content,.toc-top-content{max-height:5000px;overflow:hidden;transition:max-height var(--transition-normal)}.toc-book-content.collapsed,.toc-top-content.collapsed{max-height:0}.toc-nested-section{border-bottom:1px solid var(--color-border)}.toc-nested-section:last-child{border-bottom:none}.toc-nested-header{padding:var(--space-sm) var(--space-md) var(--space-sm) var(--space-lg);display:flex;justify-content:space-between;align-items:center;cursor:pointer;background-color:var(--color-accent-light);transition:background-color var(--transition-fast);position:relative}.toc-nested-header:hover{background-color:var(--color-border)}.toc-nested-header.disabled{cursor:default;opacity:.6}.toc-nested-header.disabled:hover{background-color:var(--color-accent-light)}.toc-nested-header.disabled::after{content:none}.toc-nested-header::after{content:'▸';display:inline-block;font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-left:var(--space-sm);transition:transform .25s ease}.toc-nested-header.expanded::after{transform:rotate(90deg)}.toc-nested-title{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:700;color:var(--color-text-primary);margin:0}.toc-nested-chapters{max-height:2000px;overflow:hidden;transition:max-height var(--transition-normal)}.toc-nested-chapters.collapsed{max-height:0}.toc-nested-chapters .toc-chapter{padding-left:var(--space-lg)}.toc-divider{height:2px;background-color:var(--color-border);margin:var(--space-lg) 0}.toc-content-section{border-bottom:1px solid var(--color-border)}.toc-section-header::after{content:'▸';display:inline-block;font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-left:auto;transition:transform .25s ease}.toc-section-header.expanded::after{transform:rotate(90deg)}.toc-section-link::after{content:none}.toc-section-icon{font-size:var(--font-size-lg);filter:grayscale(100%);opacity:.4}.toc-section-title{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:700;color:var(--color-text-primary);margin:0;text-transform:uppercase;letter-spacing:var(--letter-spacing-normal);display:flex;align-items:center;gap:var(--space-sm)}.toc-section-content{max-height:2000px;overflow:hidden;transition:max-height var(--transition-normal)}.toc-section-content.collapsed{max-height:0}.coming-soon{padding:var(--space-xl) var(--padding-mobile);text-align:center;font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-style:italic;letter-spacing:var(--letter-spacing-tight)}.toc-chapter{padding:var(--space-sm) var(--space-md) var(--space-sm) var(--space-lg);border-bottom:1px solid var(--color-border);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:var(--space-md);min-height:var(--min-touch-target);position:relative;background-color:var(--color-background)}.toc-chapter:hover{background-color:var(--color-accent-light)}.toc-chapter.active{background-color:var(--color-accent-light);border-left:3px solid var(--color-accent)}.toc-chapter-title-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md)}.chapter-indicator{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;margin-top:2px}.chapter-indicator svg{width:18px;height:18px;color:var(--color-success)}.chapter-indicator .current-chapter-logo{width:18px;height:18px}.toc-chapter-info{flex:1;min-width:0}.toc-chapter-title{margin-bottom:var(--space-xs)}.toc-chapter-meta{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.title-page{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:70vh;position:relative;padding:var(--space-2xl) 0}.chapter-body:has(.title-page),.chapter-body:has(.toc-page){margin-top:-60px}body:has(.home-content) .clean-toggle,body:has(.title-page) .clean-toggle,body:has(.toc-page) .clean-toggle{visibility:hidden}.bookmark-btn{display:none!important}.toc-content-section[data-section=bookmarks]{display:none}body.bookmarks-enabled .bookmark-btn{display:flex!important}body.bookmarks-enabled .toc-content-section[data-section=bookmarks]{display:block}.chapter:has(.title-page) .chapter-header,.chapter:has(.toc-page) .chapter-header{display:none}.chapter:has(.title-page) .chapter-end,.chapter:has(.toc-page) .chapter-end{display:none}.title-page-content{flex:1;display:flex;align-items:flex-start;justify-content:center;padding-top:20vh}.title-page-title{font-family:var(--font-mono);font-size:1.5rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;text-align:center}.parental-advisory{position:absolute;bottom:55px;right:0;width:80px;height:auto}.toc-page{display:flex;flex-direction:column;justify-content:flex-start;padding:0}.toc-page-title{font-family:'Courier New',Courier,monospace;font-size:1.5rem;font-weight:700;text-transform:uppercase;letter-spacing:2px;margin:0 0 var(--space-lg) 0;padding:0;border:none}.toc-entry{margin:0;padding:2px 0;line-height:1.4}.toc-link{display:block;font-family:var(--font-serif);font-size:1rem;font-weight:400;letter-spacing:0;color:var(--color-text-primary);text-decoration:none;transition:color var(--transition-fast)}.toc-link:hover{color:var(--color-accent)}.toc-link:active{opacity:.7}.loading{display:flex;align-items:center;justify-content:center;min-height:200px}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error{padding:var(--space-lg);background-color:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:4px;color:var(--color-error-text);text-align:center}.locked-chapter{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;padding:var(--space-2xl);text-align:center}.locked-chapter .locked-icon{font-size:4rem;margin-bottom:var(--space-lg);opacity:.6}.locked-chapter .locked-message{font-family:var(--font-mono);font-size:1rem;text-transform:uppercase;letter-spacing:2px;color:var(--color-text-primary);margin-bottom:var(--space-sm)}.locked-chapter .locked-hint{font-size:.875rem;color:var(--color-text-secondary)}.install-prompt{position:fixed;bottom:80px;left:var(--padding-mobile);right:var(--padding-mobile);background-color:var(--color-background);color:var(--color-text-primary);padding:var(--space-lg);border:2px solid var(--color-accent);box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);z-index:80;opacity:0;transform:translateY(20px);visibility:hidden;transition:all var(--transition-normal)}.install-prompt.show{opacity:1;transform:translateY(0);visibility:visible}.install-prompt-text{flex:1;font-size:var(--font-size-sm)}.install-btn{background-color:var(--color-accent);color:var(--color-background);padding:var(--space-sm) var(--space-lg);border:1px solid var(--color-accent);font-weight:700;white-space:nowrap;text-transform:uppercase;letter-spacing:var(--letter-spacing-tight);transition:all var(--transition-fast)}.install-btn:hover{background-color:var(--color-background);color:var(--color-accent)}.dismiss-install{color:var(--color-text-secondary);padding:var(--space-sm)}@media (hover:none){.install-btn:active,.nav-btn:active,.toc-chapter:active{transform:scale(.98)}}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.toc-content::-webkit-scrollbar{width:8px}.toc-content::-webkit-scrollbar-track{background:0 0}.toc-content::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}.toc-content::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}.toc-footer{padding:var(--space-md);border-top:1px solid var(--color-border);text-align:center;background-color:var(--color-sidebar-bg)}.toc-options{padding:var(--space-lg) var(--padding-mobile);border-top:1px solid var(--color-border);background-color:var(--color-sidebar-bg)}.toc-options-title{font-family:'Courier New',monospace;font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--letter-spacing-normal);color:var(--color-text-tertiary);margin-bottom:var(--space-md)}.toc-option{display:flex;align-items:center;justify-content:space-between;padding:10px 0}.toc-option:first-child{padding-top:0}.toc-option:last-child{padding-bottom:0}.toc-option-label{font-family:'Courier New',monospace;font-size:12px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.toggle-switch{position:relative;width:44px;height:24px;background-color:var(--color-border);border-radius:12px;cursor:pointer;transition:background-color var(--transition-fast)}.toggle-switch::after{content:'';position:absolute;top:2px;left:2px;width:20px;height:20px;background-color:var(--color-background);border-radius:50%;transition:transform var(--transition-fast)}.toggle-switch.active{background-color:var(--color-text-primary)}.toggle-switch.active::after{transform:translateX(20px)}.option-btn-group{display:flex;border:1px solid var(--color-border);border-radius:3px;overflow:hidden}.option-btn{padding:4px 10px;font-family:'Courier New',monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;background:var(--color-background);color:var(--color-text-tertiary);border:none;border-right:1px solid var(--color-border);cursor:pointer;transition:all var(--transition-fast)}.option-btn:last-child{border-right:none}.option-btn:hover{background:var(--color-accent-light);color:var(--color-text-primary)}.option-btn.active{background:var(--color-text-primary);color:var(--color-background)}.toc-admin-link{padding:var(--space-lg) var(--padding-mobile);border-top:1px solid var(--color-border);background-color:var(--color-sidebar-bg)}.toc-admin-link .admin-link{font-family:'Courier New',monospace;font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--letter-spacing-normal);color:var(--color-text-tertiary);text-decoration:none;transition:color var(--transition-fast)}.toc-admin-link .admin-link:hover{color:var(--color-accent)}.toc-section{border-top:1px solid var(--color-border);flex-shrink:0}.toc-section-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-md) var(--padding-mobile);background:0 0;border:none;cursor:pointer;text-align:left;transition:background-color var(--transition-fast)}.toc-section-header:hover{background-color:var(--color-accent-light)}.toc-section-title{font-family:'Courier New',monospace;font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--letter-spacing-normal);color:var(--color-text-primary)}.toc-section-arrow{color:var(--color-text-primary);transition:transform .25s ease;flex-shrink:0}.toc-section.open .toc-section-arrow{transform:rotate(90deg)}.toc-section-content{padding:0 var(--padding-mobile) var(--space-md);position:relative}.search-input-wrapper{position:relative;display:flex;align-items:center;background-color:var(--color-background);border:1px solid var(--color-border);border-radius:3px;padding:6px 10px;transition:border-color var(--transition-fast)}.search-input-wrapper:focus-within{border-color:var(--color-text-secondary)}.search-icon{margin-right:8px;opacity:.4;flex-shrink:0;color:var(--color-text-primary)}#searchInput{flex:1;border:none;background:0 0;font-family:var(--font-mono);font-size:12px;color:var(--color-text-primary);outline:0;min-width:0}#searchInput::placeholder{color:var(--color-text-tertiary)}.search-clear{background:0 0;border:none;cursor:pointer;padding:2px;margin-left:4px;color:var(--color-text-tertiary);font-size:14px;line-height:1;transition:color var(--transition-fast);flex-shrink:0}.search-clear:hover{color:var(--color-text-primary)}.search-results{position:absolute;top:100%;left:var(--padding-mobile);right:var(--padding-mobile);max-height:300px;overflow-y:auto;background-color:var(--color-background);border:1px solid var(--color-border);border-radius:4px;margin-top:4px;box-shadow:0 4px 12px rgba(0,0,0,.15);z-index:50}[data-theme=dark] .search-results{box-shadow:0 4px 12px rgba(0,0,0,.4)}.search-results-header{padding:8px 12px;font-family:var(--font-mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-tertiary);border-bottom:1px solid var(--color-border-subtle);background-color:var(--color-background-secondary)}.search-result-item{padding:12px;cursor:pointer;border-bottom:1px solid var(--color-border-subtle);transition:background-color var(--transition-fast)}.search-result-item:hover{background-color:var(--color-accent-light)}.search-result-item:last-child{border-bottom:none}.search-result-title{font-family:var(--font-mono);font-weight:700;font-size:var(--font-size-sm);color:var(--color-text-primary);margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.search-result-snippet{font-family:var(--font-serif);font-size:13px;line-height:1.4;color:var(--color-text-secondary);margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.search-result-snippet mark{background-color:rgba(255,235,59,.5);color:inherit;font-weight:500;padding:0 2px;border-radius:2px}[data-theme=dark] .search-result-snippet mark{background-color:rgba(255,193,7,.35)}.search-result-meta{font-family:var(--font-mono);font-size:11px;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.5px}.search-no-results{padding:24px 12px;text-align:center;color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--font-size-sm)}.search-show-all{display:block;width:100%;padding:12px;background-color:var(--color-background-secondary);border:none;border-top:1px solid var(--color-border-subtle);cursor:pointer;font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--color-link);text-transform:uppercase;letter-spacing:.5px;transition:background-color var(--transition-fast);text-align:center}.search-show-all:hover{background-color:var(--color-accent-light)}.search-result-chapter{font-size:11px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-family:var(--font-mono)}.search-result-preview{font-size:14px;line-height:1.5;color:var(--color-text-primary);margin-bottom:4px}.search-result-preview mark{background-color:rgba(255,235,59,.5);color:inherit;font-weight:600;padding:0 2px;border-radius:2px}[data-theme=dark] .search-result-preview mark{background-color:rgba(255,193,7,.35)}.search-results-count{font-size:12px;color:var(--color-text-secondary)}.search-highlight{background-color:var(--color-highlight);padding:2px 0;border-radius:2px;transition:background-color 1s ease-out}.search-highlight-current{background-color:var(--color-highlight-current);box-shadow:0 0 0 2px rgba(255,152,0,.3)}.search-highlight-fade{background-color:transparent}[data-theme=dark] .search-highlight{background-color:rgba(255,235,59,.4)}[data-theme=dark] .search-highlight-current{background-color:rgba(255,152,0,.5);box-shadow:0 0 0 2px rgba(255,152,0,.2)}.search-match-nav{position:fixed;bottom:100px;right:20px;background:var(--color-background);border:1px solid var(--color-border);border-radius:24px;padding:8px 12px;display:flex;align-items:center;gap:8px;box-shadow:0 4px 12px rgba(0,0,0,.15);z-index:1000;font-family:var(--font-mono)}[data-theme=dark] .search-match-nav{box-shadow:0 4px 12px rgba(0,0,0,.4)}.match-nav-btn{background:0 0;border:none;cursor:pointer;padding:6px;color:var(--color-text-primary);display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color var(--transition-fast)}.match-nav-btn:hover:not(:disabled){background-color:var(--color-accent-light)}.match-nav-btn:disabled{opacity:.3;cursor:not-allowed}.match-nav-close{background:0 0;border:none;cursor:pointer;padding:4px;margin-left:4px;color:var(--color-text-tertiary);display:flex;align-items:center;justify-content:center;border-radius:50%;transition:color var(--transition-fast)}.match-nav-close:hover{color:var(--color-text-primary)}.match-counter{font-size:13px;color:var(--color-text-secondary);min-width:45px;text-align:center}@media (max-width:599px){.search-match-nav{bottom:80px;right:10px;left:auto;padding:6px 10px}.match-counter{font-size:12px;min-width:40px}}.media-emoji{display:none!important;visibility:hidden!important;opacity:0!important;width:0!important;height:0!important;font-size:0!important;line-height:0!important;position:absolute!important;left:-99999px!important;pointer-events:none!important}.chapter-body .media-emoji{font-family:"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji","EmojiOne Color","Android Emoji",emoji,sans-serif;font-size:1em;line-height:1;letter-spacing:0;word-spacing:0;text-transform:none;font-variant:normal;font-style:normal;font-weight:400;background:0 0;background-color:transparent;border:none;padding:0;margin:0;cursor:pointer;text-rendering:auto;-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto;-webkit-font-feature-settings:normal;font-feature-settings:normal}.chapter-body .media-emoji:hover{opacity:.7}@media (hover:none) and (pointer:coarse){.media-emoji{position:relative}.media-emoji::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;min-width:44px;min-height:44px}}.clean-toggle,.header .clean-toggle{display:flex;align-items:center;gap:6px;background:0 0;border:2px solid var(--color-text-primary);border-radius:3px;padding:4px 8px;cursor:pointer;font-family:var(--font-mono);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-primary);transition:all .15s ease}.clean-toggle:hover{border-color:var(--color-text-primary);color:var(--color-text-primary)}.clean-toggle.active{background:var(--color-text-primary);border-color:var(--color-text-primary);color:var(--color-background)}.theme-toggle{display:flex;align-items:center;justify-content:center;width:var(--min-touch-target);height:var(--min-touch-target);background:0 0;border:none;cursor:pointer;transition:opacity var(--transition-fast);color:var(--color-text-primary)}[data-theme=dark] .theme-toggle{color:var(--color-text-primary)}.theme-toggle:hover{opacity:.7}body.clean-read .media-emoji{display:none!important}.media-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--color-modal-overlay);z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--padding-mobile);opacity:0;visibility:hidden;pointer-events:none;transition:opacity 150ms ease,visibility 150ms ease}.media-modal-overlay.active{opacity:1;visibility:visible;pointer-events:auto}.media-modal{background-color:var(--color-modal-bg);border:1px solid var(--color-accent);max-width:500px;width:auto;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-md);transform:scale(.95);transition:transform 150ms ease,background-color var(--transition-fast);position:relative}.media-modal-overlay.active .media-modal{transform:scale(1)}.media-modal-header{display:none}.media-modal-header-content{display:none}.media-modal-icon{display:none}.media-modal-label{display:none}.media-modal-close{position:absolute;top:12px;right:12px;width:36px;height:36px;background:0 0;border:none;color:var(--color-text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color var(--transition-fast);z-index:10}.media-modal-close:hover{opacity:.7}.media-modal-body{flex:1;overflow-y:auto;padding:8px;min-height:100px}.media-modal-body img{max-width:100%;max-height:70vh;height:auto;object-fit:contain;display:block;margin:0 auto}.media-modal-caption{display:none;padding:var(--space-lg) var(--space-xl);border-top:2px solid var(--color-border);background-color:var(--color-accent-light);font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-secondary);font-style:italic;text-align:center}body.show-captions .media-modal-caption{display:block}.media-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3xl) var(--space-xl);text-align:center;min-height:300px}.media-placeholder-icon{font-size:64px;margin-bottom:var(--space-lg);opacity:.3}.media-placeholder-text{font-family:var(--font-mono);color:var(--color-text-tertiary)}.media-placeholder-text p{margin:var(--space-sm) 0}.media-placeholder-text strong{color:var(--color-text-secondary);font-size:var(--font-size-base)}.media-image-container{display:flex;align-items:center;justify-content:center;min-height:200px}.media-image{max-width:100%;height:auto;border:1px solid var(--color-border)}.media-video-container{display:flex;align-items:center;justify-content:center;background-color:var(--color-video-bg)}.media-video{max-width:100%;height:auto}.slim-player{display:flex;align-items:center;gap:12px;background:var(--color-player-bg);border-radius:20px;padding:8px 16px;height:40px;max-width:360px;margin:0 auto}.slim-player-audio{display:none}.slim-player-btn{width:28px;height:28px;border:none;background:var(--color-player-fill);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0}.slim-player-btn:hover{background:var(--color-border)}.slim-player-icon{width:14px;height:14px;color:var(--color-player-bg)}.slim-player-icon.play{margin-left:2px}.slim-player-icon.pause{display:none}.slim-player.playing .slim-player-icon.play{display:none}.slim-player.playing .slim-player-icon.pause{display:block}.slim-player-progress{flex:1;padding:8px 0;cursor:pointer}.slim-player-bar{position:relative;height:4px;background:var(--color-player-bar);border-radius:2px}.slim-player-fill{position:absolute;top:0;left:0;height:100%;background:var(--color-player-fill);border-radius:2px;width:0}.slim-player-handle{position:absolute;top:50%;left:0;width:12px;height:12px;background:var(--color-player-fill);border-radius:50%;transform:translate(-50%,-50%);cursor:grab;opacity:0;transition:opacity .15s}.slim-player.playing .slim-player-handle,.slim-player:hover .slim-player-handle{opacity:1}.slim-player-time{font-size:12px;font-family:var(--font-mono);color:var(--color-text-tertiary);min-width:36px;text-align:right}.media-modal.audio-modal{max-width:450px}.media-modal.audio-modal .media-modal-header{padding:var(--space-sm) var(--space-md)}.media-modal.audio-modal .media-modal-body{padding:var(--space-md);min-height:auto}.media-text-container{font-family:var(--font-mono);line-height:var(--line-height-relaxed);color:var(--color-text-primary)}.media-text-container p{margin:var(--space-md) 0}.media-document-container{display:flex;align-items:center;justify-content:center}.media-document-image{max-width:100%;height:auto;border:1px solid var(--color-border)}.media-link-container{font-family:var(--font-mono);padding:var(--space-xl);text-align:center}.media-link-container p{margin-bottom:var(--space-lg);color:var(--color-text-secondary)}.media-link{display:inline-block;color:var(--color-accent);text-decoration:underline;word-break:break-all;padding:var(--space-md);border:1px solid var(--color-border);background-color:var(--color-accent-light);transition:all var(--transition-fast)}.media-link:hover{background-color:var(--color-accent);color:var(--color-background)}.media-article-container{font-family:var(--font-mono);padding:var(--space-xl);text-align:center;max-width:500px;margin:0 auto}.article-publication{font-size:var(--font-size-xs);letter-spacing:3px;text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:var(--space-xs)}.article-byline{font-size:var(--font-size-xs);letter-spacing:1px;text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:var(--space-lg)}.article-headline{font-family:var(--font-serif);font-size:var(--font-size-xl);font-weight:700;line-height:1.3;margin-bottom:var(--space-md);color:var(--color-text-primary)}.article-date{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-lg)}.article-excerpt{font-family:var(--font-serif);font-size:var(--font-size-base);line-height:1.6;color:var(--color-text-secondary);margin-bottom:var(--space-lg);font-style:italic}.article-link-btn{display:inline-block;padding:var(--space-md) var(--space-xl);font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:700;letter-spacing:1px;text-transform:uppercase;text-decoration:none;color:var(--color-background);background-color:var(--color-text-primary);border:2px solid var(--color-text-primary);transition:all var(--transition-fast)}.article-link-btn:hover{background-color:var(--color-background);color:var(--color-text-primary)}.gallery-container{border-bottom:1px solid var(--color-border)}.gallery-header{padding:var(--space-lg) var(--padding-mobile);border-bottom:2px solid var(--color-border);background-color:var(--color-accent-light)}.gallery-title{font-family:var(--font-mono);font-size:var(--font-size-base);font-weight:700;color:var(--color-text-primary);margin:0 0 var(--space-sm) 0}.gallery-description{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--space-sm) 0;font-style:italic}.gallery-count{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin:0;text-transform:uppercase;letter-spacing:var(--letter-spacing-normal)}.gallery-section{border-bottom:1px solid var(--color-border)}.gallery-section-header{padding:var(--space-sm) var(--space-md) var(--space-sm) var(--space-lg);background-color:var(--color-accent-light);transition:background-color var(--transition-fast);position:relative;display:flex;align-items:center}.gallery-section-header:not(.disabled):hover{background-color:var(--color-border)}.gallery-section-header.disabled{opacity:.5;cursor:not-allowed}.gallery-section-header::after{content:'▸';display:inline-block;position:absolute;right:var(--space-md);top:50%;transform:translateY(-50%);font-size:var(--font-size-xs);color:var(--color-text-secondary);transition:transform .25s ease}.gallery-section-header.disabled::after{content:''}.gallery-section-header.expanded::after{transform:translateY(-50%) rotate(90deg)}.gallery-section-title{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:700;color:var(--color-text-primary);margin:0;letter-spacing:var(--letter-spacing-tight)}.gallery-section-content{max-height:5000px;overflow:hidden;transition:max-height var(--transition-normal)}.gallery-section-content.collapsed{max-height:0}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-md);padding:var(--space-lg) var(--padding-mobile)}.photo-card{aspect-ratio:1;background-color:var(--color-border);background-size:cover;background-position:center;border:2px solid var(--color-border);cursor:pointer;transition:all var(--transition-fast);position:relative;overflow:hidden}.photo-card:hover{border-color:var(--color-accent);transform:scale(1.02)}.photo-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.photo-card-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--color-accent-light);background-image:none}.photo-card-icon{font-size:32px;opacity:.3;margin-bottom:var(--space-sm)}.photo-card-filename{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-align:center;padding:0 var(--space-sm);word-break:break-all}.photo-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.95);z-index:1001;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity 150ms ease,visibility 150ms ease}.photo-modal-overlay.active{opacity:1;visibility:visible;pointer-events:auto}.photo-modal{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative}.photo-modal-close{position:absolute;top:12px;right:12px;width:36px;height:36px;background:0 0;border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;transition:opacity var(--transition-fast)}.photo-modal-close:hover{opacity:.7}.photo-modal-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.7);border:2px solid var(--color-accent-light);color:var(--color-background);width:56px;height:56px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;transition:all var(--transition-fast)}.photo-modal-nav:hover{background:var(--color-accent);border-color:var(--color-accent)}.photo-modal-prev{left:var(--space-lg)}.photo-modal-next{right:var(--space-lg)}.photo-modal-container{max-width:90vw;max-height:80vh;display:flex;align-items:center;justify-content:center}.photo-modal-image{max-width:100%;max-height:80vh;object-fit:contain;border:3px solid var(--color-accent)}.photo-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--color-accent-light);border:3px solid var(--color-accent);padding:var(--space-3xl);min-width:400px;min-height:400px;text-align:center}.photo-placeholder-icon{font-size:96px;opacity:.3;margin-bottom:var(--space-lg)}.photo-placeholder-text{font-family:var(--font-mono);color:var(--color-text-secondary)}.photo-placeholder-text p{margin:var(--space-sm) 0}.photo-placeholder-text strong{color:var(--color-text-primary);font-size:var(--font-size-base);display:block;margin-bottom:var(--space-md)}.photo-modal-info{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.85);border-top:2px solid var(--color-accent);padding:var(--space-lg) var(--padding-mobile);color:var(--color-background)}.photo-modal-caption{font-family:var(--font-mono);font-size:var(--font-size-base);margin-bottom:var(--space-sm);color:var(--color-background)}.photo-modal-meta{display:flex;gap:var(--space-lg);flex-wrap:wrap;font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-accent-light)}.photo-modal-count{font-weight:700}.guestbook-wrapper{padding:var(--space-lg) var(--padding-mobile)}.guestbook-intro{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-secondary);font-style:italic;margin-bottom:var(--space-xl);padding-bottom:var(--space-lg);border-bottom:1px solid var(--color-border)}.guestbook-share{margin-bottom:var(--space-xl);padding-bottom:var(--space-lg);border-bottom:1px solid var(--color-border)}.guestbook-share-heading{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-normal);margin-bottom:var(--space-md)}.guestbook-share-buttons{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.share-btn{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:700;color:var(--color-text-primary);background-color:var(--color-background);border:1px solid var(--color-border);padding:var(--space-sm) var(--space-md);text-decoration:none;text-transform:uppercase;letter-spacing:var(--letter-spacing-tight);transition:all var(--transition-fast)}.share-btn:hover{background-color:var(--color-accent-light);border-color:var(--color-text-primary)}.guestbook-form-section{margin-bottom:var(--space-xl);padding-bottom:var(--space-lg);border-bottom:1px solid var(--color-border)}.guestbook-form-heading{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-normal);margin-bottom:var(--space-md)}.guestbook-form{display:flex;flex-direction:column;gap:var(--space-md)}.form-group{display:flex;flex-direction:column;gap:var(--space-xs)}.form-label{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-tight)}.form-input,.form-textarea{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-primary);background-color:var(--color-background);border:1px solid var(--color-border);padding:var(--space-sm) var(--space-md);transition:border-color var(--transition-fast)}.form-input:focus,.form-textarea:focus{outline:0;border-color:var(--color-accent)}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-tertiary);font-style:italic}.form-textarea{resize:vertical;min-height:80px}.char-count{font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-tertiary);text-align:right}.guestbook-submit{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:700;color:var(--color-background);background-color:var(--color-text-primary);border:1px solid var(--color-text-primary);padding:var(--space-md) var(--space-lg);text-transform:uppercase;letter-spacing:var(--letter-spacing-normal);cursor:pointer;transition:all var(--transition-fast);margin-top:var(--space-sm)}.guestbook-submit:hover{background-color:var(--color-background);color:var(--color-text-primary)}.guestbook-success{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-success);text-align:center;padding:var(--space-md);background-color:rgba(39,174,96,.1);border:1px solid var(--color-success);margin-top:var(--space-md)}.guestbook-entries{margin-bottom:var(--space-lg)}.guestbook-entries-heading{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-normal);margin-bottom:var(--space-md)}.guestbook-entries-list{display:flex;flex-direction:column;gap:var(--space-md);max-height:400px;overflow-y:auto}.guestbook-entry{padding:var(--space-md);background-color:var(--color-accent-light);border-left:2px solid var(--color-border)}.guestbook-entry-header{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:700;color:var(--color-text-primary)}.guestbook-entry-comment{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-secondary);font-style:italic;line-height:var(--line-height-normal);margin-top:var(--space-xs)}.guestbook-empty{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-style:italic;text-align:center;padding:var(--space-xl)}.bookmark-btn{width:var(--min-touch-target);height:var(--min-touch-target);display:flex;align-items:center;justify-content:center;color:var(--color-text-primary);background:0 0;border:none;cursor:pointer;transition:all var(--transition-fast);padding:0}.bookmark-btn:hover{opacity:.7}.bookmark-btn.active svg{fill:var(--color-text-primary)}.bookmarks-section{background-color:var(--color-accent-light)}.bookmarks-count{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-left:var(--space-sm)}.bookmarks-list{display:flex;flex-direction:column}.bookmarks-empty{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-style:italic;text-align:center;padding:var(--space-xl) var(--padding-mobile);line-height:var(--line-height-normal)}.bookmark-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--padding-mobile) var(--space-md) var(--space-2xl);border-bottom:1px solid var(--color-border);background-color:var(--color-background);transition:background-color var(--transition-fast)}.bookmark-item:hover{background-color:var(--color-accent-light)}.bookmark-item:last-child{border-bottom:none}.bookmark-info{flex:1;cursor:pointer;min-width:0}.bookmark-title{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:700;margin-bottom:var(--space-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bookmark-date{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-tertiary)}.bookmark-remove{width:var(--min-touch-target);height:var(--min-touch-target);display:flex;align-items:center;justify-content:center;background:0 0;border:1px solid var(--color-border);color:var(--color-text-tertiary);font-size:var(--font-size-lg);cursor:pointer;flex-shrink:0;margin-left:var(--space-md);transition:all var(--transition-fast)}.bookmark-remove:hover{background-color:var(--color-text-primary);border-color:var(--color-text-primary);color:var(--color-background)}@media (min-width:600px){.install-prompt{left:50%;right:auto;transform:translateX(-50%) translateY(20px);max-width:var(--max-width-reader)}.install-prompt.show{transform:translateX(-50%) translateY(0)}.media-modal-overlay{padding:var(--padding-tablet)}}@media (max-width:480px){.media-modal-overlay{padding:10px}.media-modal{max-width:calc(100vw - 20px);border-width:1px}.media-modal-body{padding:8px}.media-modal-body img{max-height:60vh}}.sidebar-search{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);background-color:var(--color-accent-light)}.sidebar-search-bar{display:flex;align-items:center;background-color:var(--color-background);border:1px solid var(--color-border);padding:0 var(--space-sm)}.sidebar-search-icon{flex-shrink:0;color:var(--color-text-tertiary)}.sidebar-search-input{flex:1;font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-primary);background:0 0;border:none;padding:var(--space-sm);outline:0;min-width:0}.sidebar-search-input::placeholder{color:var(--color-text-tertiary)}.sidebar-search-results{max-height:200px;overflow-y:auto;margin-top:var(--space-xs)}.sidebar-search-results:empty{display:none}.sidebar-search-result{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-primary);padding:var(--space-sm) var(--space-sm);cursor:pointer;background-color:var(--color-background);border-bottom:1px solid var(--color-border)}.sidebar-search-result:hover{background-color:var(--color-border)}.sidebar-search-result:last-child{border-bottom:none}.sidebar-search-empty{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-tertiary);padding:var(--space-sm);text-align:center;background-color:var(--color-background)}.settings-wrapper{padding:var(--space-lg) var(--padding-mobile)}.settings-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) 0;border-bottom:1px solid var(--color-border)}.settings-row:last-child{border-bottom:none}.settings-label{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-primary)}.settings-wrapper .reading-mode-toggle{display:flex;gap:0;background:var(--color-background);border:1px solid var(--color-border);border-radius:3px;overflow:hidden}.settings-wrapper .mode-btn{padding:4px 10px;font-family:var(--font-mono);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.5px;background:0 0;color:var(--color-text-secondary);border:none;cursor:pointer;transition:all var(--transition-fast)}.settings-wrapper .mode-btn:hover{background:var(--color-accent-light);color:var(--color-text-primary)}.settings-wrapper .mode-btn.active{background:var(--color-text-primary);color:var(--color-background);font-weight:700}.settings-wrapper .font-size-toggle{display:flex;gap:0;background:var(--color-background);border:1px solid var(--color-border);border-radius:3px;overflow:hidden}.settings-wrapper .font-btn{padding:4px 10px;font-family:var(--font-mono);font-size:var(--font-size-xs);background:0 0;color:var(--color-text-secondary);border:none;cursor:pointer;transition:all var(--transition-fast);min-width:32px}.settings-wrapper .font-btn:hover{background:var(--color-accent-light);color:var(--color-text-primary)}.settings-wrapper .font-btn.active{background:var(--color-text-primary);color:var(--color-background);font-weight:700}.back-link{width:var(--min-touch-target);height:var(--min-touch-target);display:flex;align-items:center;justify-content:center;color:var(--color-text-primary);transition:opacity var(--transition-fast)}.back-link:hover{opacity:.7}.guestbook-page{padding-bottom:var(--space-3xl)}.guestbook-page .guestbook-wrapper{padding:0}.guestbook-page .guestbook-intro{font-family:var(--font-serif);font-style:italic;color:var(--color-text-secondary);margin-bottom:var(--space-xl)}.guestbook-page .guestbook-entries,.guestbook-page .guestbook-form-section,.guestbook-page .guestbook-share{padding:var(--space-xl) 0;border-top:1px solid var(--color-border)}.guestbook-page .guestbook-entries-heading,.guestbook-page .guestbook-form-heading,.guestbook-page .guestbook-share-heading{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:700;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:var(--letter-spacing-normal);margin-bottom:var(--space-lg)}.guestbook-page .guestbook-share-buttons{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.guestbook-page .share-btn{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:700;color:var(--color-text-primary);background:var(--color-background);border:1px solid var(--color-border);padding:var(--space-sm) var(--space-md);text-transform:uppercase;letter-spacing:.5px;text-decoration:none;transition:all var(--transition-fast)}.guestbook-page .share-btn:hover{background:var(--color-text-primary);color:var(--color-background)}.guestbook-page .form-group{margin-bottom:var(--space-lg)}.guestbook-page .form-label{display:block;font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:700;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-xs)}.guestbook-page .form-input,.guestbook-page .form-textarea{width:100%;font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-primary);background:var(--color-background);border:1px solid var(--color-border);padding:var(--space-sm) var(--space-md);transition:border-color var(--transition-fast)}.guestbook-page .form-input:focus,.guestbook-page .form-textarea:focus{outline:0;border-color:var(--color-text-primary)}.guestbook-page .form-textarea{resize:vertical;min-height:100px}.guestbook-page .char-count{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-align:right;margin-top:var(--space-xs)}.guestbook-page .guestbook-submit{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:700;color:var(--color-background);background:var(--color-text-primary);border:2px solid var(--color-text-primary);padding:var(--space-sm) var(--space-xl);text-transform:uppercase;letter-spacing:var(--letter-spacing-normal);cursor:pointer;transition:all var(--transition-fast)}.guestbook-page .guestbook-submit:hover{background:var(--color-background);color:var(--color-text-primary)}.guestbook-page .guestbook-success{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-primary);background:var(--color-accent-light);padding:var(--space-md);margin-top:var(--space-lg);text-align:center}.guestbook-page .guestbook-entries-list{display:flex;flex-direction:column;gap:var(--space-lg)}.guestbook-page .guestbook-entry{padding-bottom:var(--space-lg);border-bottom:1px solid var(--color-border)}.guestbook-page .guestbook-entry:last-child{border-bottom:none}.guestbook-page .guestbook-entry-header{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:700;color:var(--color-text-primary);margin-bottom:var(--space-xs)}.guestbook-page .guestbook-entry-comment{font-family:var(--font-serif);font-size:var(--font-size-sm);font-style:italic;color:var(--color-text-secondary)}.guestbook-page .guestbook-empty{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-style:italic}.photos-page{padding-bottom:var(--space-3xl)}.gallery-page-section{margin-bottom:var(--space-3xl)}.gallery-page-section:last-child{margin-bottom:0}.gallery-page-header{padding-bottom:var(--space-md);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-lg)}.gallery-page-title{font-family:var(--font-mono);font-size:var(--font-size-base);font-weight:700;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:var(--letter-spacing-normal);margin:0}.gallery-coming-soon{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-style:italic;padding:var(--space-lg) 0}.locked-content{position:relative;padding:var(--space-lg);margin:var(--space-lg) 0;border-radius:4px;overflow:hidden}.locked-content::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to bottom,rgba(128,128,128,.1) 0,rgba(128,128,128,.3) 50%,rgba(128,128,128,.1) 100%);z-index:1}.locked-content p{color:var(--color-text-tertiary);filter:blur(3px);user-select:none}.locked-content .lock-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}.locked-content .lock-icon{font-size:32px;opacity:.7}.locked-content .lock-text{font-family:var(--font-mono);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);color:var(--color-text-secondary)}.toc-chapter-locked{opacity:.5;cursor:not-allowed}.toc-chapter-locked:hover{background-color:transparent}.toc-chapter-locked .toc-chapter-title{color:var(--color-text-tertiary)}.toc-lock-icon{margin-left:var(--space-sm);font-size:12px}.password-gate{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--color-background);z-index:50000;display:flex;align-items:center;justify-content:center;padding-bottom:15vh;transition:opacity 150ms ease,visibility 150ms ease}.password-gate.hidden,.password-gate[style*="display: none"]{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}.password-gate-content{text-align:center;padding:var(--space-xl);max-width:320px;width:100%}.password-gate-title{font-family:var(--font-mono);font-size:1.5rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;margin-bottom:var(--space-xl);color:var(--color-text-primary)}.password-gate-subtitle{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-accent);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);margin-bottom:var(--space-2xl)}.password-form{display:flex;flex-direction:column;gap:var(--space-md)}.password-input{font-family:var(--font-mono);font-size:var(--font-size-base);padding:var(--space-md);background-color:transparent;border:2px solid var(--color-text-secondary);color:var(--color-text-primary);text-align:center;letter-spacing:4px;transition:border-color var(--transition-fast)}.password-input:focus{outline:0;border-color:var(--color-accent)}.password-input::placeholder{color:var(--color-text-muted);letter-spacing:normal}.password-submit{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:700;color:var(--color-background);background-color:var(--color-text-primary);border:2px solid var(--color-text-primary);padding:var(--space-md) var(--space-xl);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);cursor:pointer;transition:all var(--transition-fast)}.password-submit:hover{background-color:var(--color-background);color:var(--color-text-primary)}.password-error{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-accent);display:none;margin-top:var(--space-sm)}.remember-me-wrapper{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.remember-checkbox{width:16px;height:16px;cursor:pointer;accent-color:var(--color-text-primary)}.remember-label{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-muted);cursor:pointer;user-select:none}@keyframes shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}.password-form.shake{animation:shake .5s ease-in-out}.logout-btn{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-muted);background:0 0;border:none;padding:var(--space-sm) var(--space-md);cursor:pointer;text-transform:uppercase;letter-spacing:var(--letter-spacing-normal);transition:color var(--transition-fast)}.logout-btn:hover{color:var(--color-accent)}@media (max-width:374px){.media-modal{max-width:calc(100vw - 16px)}.media-modal-body img{max-height:50vh}.header-logo-img{height:22px}.nav-btn{padding:6px 8px;font-size:12px}}@media (max-width:480px){.media-modal-close{width:44px;height:44px;top:8px;right:8px}.media-emoji{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:-10px -8px;padding:10px 8px;font-family:"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji","EmojiOne Color","Android Emoji",emoji,sans-serif!important;text-rendering:auto!important;-webkit-font-smoothing:auto!important}.media-modal-body video,.media-video-container video{max-height:45vh;width:100%}.slim-player{max-width:280px;padding:6px 12px}.nav-footer{padding-bottom:max(12px,env(safe-area-inset-bottom))}.chapter-nav-button{min-width:44px;min-height:44px}.sidebar{width:100vw;max-width:100vw}.gallery-grid-thumb{width:80px;height:80px}.gallery-page-grid{grid-template-columns:repeat(3,1fr);gap:4px}}@media (max-width:768px){.media-modal-body video{max-height:50vh}.gallery-page-grid{grid-template-columns:repeat(4,1fr);gap:6px}}@media (hover:none) and (pointer:coarse){.media-emoji:hover{transform:none}.chapter-nav-button,.close-btn,.media-modal-close,.nav-btn{touch-action:manipulation}.media-emoji:active{opacity:.7}.nav-btn:active{background:var(--color-accent-light)}}.header{will-change:transform;backface-visibility:hidden}.nav-footer{will-change:transform;backface-visibility:hidden}.toc-sidebar{position:fixed;top:0;left:0;width:70%;max-width:280px;height:100vh;background-color:var(--color-sidebar-bg);box-shadow:var(--shadow-md);border-right:1px solid var(--color-border);z-index:var(--z-sidebar);display:flex;flex-direction:column;font-family:'Courier New',monospace;transform:translate3d(-100%,0,0);transition:transform var(--transition-normal),background-color var(--transition-fast);will-change:transform;backface-visibility:hidden;contain:layout style paint}.toc-sidebar.open{transform:translate3d(0,0,0)}@media (min-width:600px){.toc-sidebar{width:280px;max-width:280px}}.overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--color-overlay);z-index:var(--z-overlay);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--transition-normal),visibility var(--transition-normal)}.overlay.active{opacity:1;visibility:visible;pointer-events:auto}.chapter,.chapter-section{contain:layout style paint}@media (max-width:599px){body{padding:calc(70px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(80px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}.header{padding-top:env(safe-area-inset-top,0);border-bottom-width:2px}.header-content{height:var(--header-height-mobile);padding:0 max(12px,env(safe-area-inset-left,0px)) 0 max(12px,env(safe-area-inset-right,0px))}.header-logo-img{height:24px}.menu-btn{min-width:48px;min-height:48px;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;user-select:none}.menu-btn:active{opacity:.5;transform:scale(.95)}.toc-sidebar{width:70%;max-width:70%;transition:transform var(--transition-modal);padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0);box-shadow:none;z-index:300;overflow-y:auto;-webkit-overflow-scrolling:touch}.toc-header{display:flex;align-items:center;justify-content:space-between;padding:16px max(16px,env(safe-area-inset-left,0px));border-bottom:2px solid var(--color-border);position:sticky;top:0;background:var(--color-background);z-index:10}.close-btn{min-width:48px;min-height:48px;margin-right:0;-webkit-tap-highlight-color:transparent}.close-btn:active{opacity:.5;transform:scale(.95)}.toc-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;min-height:0}.nav-footer{bottom:max(12px,calc(env(safe-area-inset-bottom) + 4px));max-width:290px;padding:9px 12px}.nav-btn{min-height:44px;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;user-select:none}.nav-btn:active:not(:disabled){opacity:.5;transform:scale(.95)}.nav-center{gap:10px;margin:0 10px}.overlay{transition:opacity var(--transition-modal);will-change:opacity;backface-visibility:hidden;z-index:250}.reader{padding:0 max(16px,env(safe-area-inset-left,0px)) 0 max(16px,env(safe-area-inset-right,0px))}.chapter-header{margin:1.5em 0;padding-bottom:1em}.toc-chapter-item,.toc-section-item{min-height:56px;padding:14px max(16px,env(safe-area-inset-left,0px))}.toc-chapter-item:active{background-color:var(--color-accent-light)}}@media (max-width:374px){body{padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px))}.header-content{padding:0 max(10px,env(safe-area-inset-left,0px)) 0 max(10px,env(safe-area-inset-right,0px))}.nav-footer{max-width:270px;padding:8px 10px}.nav-center{gap:8px;margin:0 8px}}@media (max-height:500px) and (orientation:landscape){body{padding-top:60px;padding-bottom:60px}.header-content{height:56px}.nav-footer{padding-top:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))}}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important;scroll-behavior:auto!important}.overlay,.toc-sidebar{transition:none!important}.bookmark-btn:active,.close-btn:active,.menu-btn:active,.nav-btn:active{transform:none!important}}@supports (-webkit-touch-callout:none){body{-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-overflow-scrolling:touch}}.offline-indicator{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--color-accent);color:var(--color-background);font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:1px;border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,.3);z-index:9999;animation:slideUp .3s ease-out}.offline-indicator .offline-icon{font-size:14px}@keyframes slideUp{from{opacity:0;transform:translateX(-50%) translateY(20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}[data-theme=dark] .offline-indicator{background:var(--color-text-primary);color:var(--color-background)}body.is-offline .media-emoji,body.is-offline .nav-btn:not(:disabled){opacity:.7}.media-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-2xl);text-align:center;min-height:200px;background:var(--color-background-secondary);border-radius:4px}.media-error-icon{font-size:48px;opacity:.5;margin-bottom:var(--space-md)}.media-error p{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-lg)}.media-retry-btn{font-family:var(--font-mono);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:1px;padding:var(--space-sm) var(--space-lg);background:0 0;border:1px solid var(--color-text-primary);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast)}.media-retry-btn:hover{background:var(--color-text-primary);color:var(--color-background)}.chapter-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-2xl);text-align:center;min-height:300px}.chapter-error-icon{font-size:64px;opacity:.4;margin-bottom:var(--space-lg)}.chapter-error h2{font-family:var(--font-mono);font-size:var(--font-size-lg);text-transform:uppercase;letter-spacing:2px;margin-bottom:var(--space-md)}.chapter-error p{font-family:var(--font-serif);font-size:var(--font-size-base);color:var(--color-text-secondary);margin-bottom:var(--space-xl);max-width:400px}.chapter-error-actions{display:flex;gap:var(--space-md);flex-wrap:wrap;justify-content:center}.chapter-error-btn{font-family:var(--font-mono);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:1px;padding:var(--space-md) var(--space-xl);background:0 0;border:1px solid var(--color-text-primary);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast)}.chapter-error-btn:hover{background:var(--color-text-primary);color:var(--color-background)}.chapter-error-btn.primary{background:var(--color-text-primary);color:var(--color-background)}.chapter-error-btn.primary:hover{background:0 0;color:var(--color-text-primary)}@supports (-webkit-appearance:none){.bookmark-btn,.close-btn,.menu-btn,.nav-btn{-webkit-appearance:none}}#chapterBody{transition:opacity .3s ease-out}#chapterBody.chapter-fade-out{opacity:0}#chapterBody.chapter-fade-in{opacity:1}.media-document-image,.media-image{background-color:var(--color-background-secondary);aspect-ratio:4/3;object-fit:contain;width:100%;height:auto}.chapter-fade-in,.chapter-fade-out,.media-modal,.toc-sidebar{will-change:opacity,transform;transform:translateZ(0)}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important}}.slow-connection *{transition-duration:.1s!important}.slow-connection .chapter-fade-in,.slow-connection .chapter-fade-out{transition-duration:.15s!important}.is-ios .full-height{height:100vh;height:calc(var(--vh,1vh) * 100)}@media (max-width:768px){.prompt-choice{min-height:48px;padding:14px 16px}.button-group,.nav-group{gap:12px}.media-modal,.modal,.toc-sidebar{transition-duration:.2s}}@media (hover:none) and (pointer:coarse){.nav-btn:hover::after{transform:scaleX(0)}.emoji-button,.reaction-btn{min-width:48px;min-height:48px}}.chapter-body img:not(.parental-advisory):not([src$=".svg"]){cursor:zoom-in}.lightbox-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.9);z-index:5000;padding:5%;box-sizing:border-box;pointer-events:none;visibility:hidden}.lightbox-overlay.active{display:flex;align-items:center;justify-content:center;pointer-events:auto;visibility:visible}.lightbox-close{position:absolute;top:12px;right:12px;width:36px;height:36px;background:0 0;border:none;color:rgba(255,255,255,.7);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .15s ease}.lightbox-close:hover{opacity:.7}.lightbox-content{max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center}.lightbox-content img{max-width:100%;max-height:calc(100vh - 10% - 40px);object-fit:contain}.lightbox-caption{color:rgba(255,255,255,.7);font-size:.85rem;margin-top:12px;text-align:center;max-width:600px}#odo-housing{display:flex!important;gap:0!important;border:2px solid var(--color-text-primary);border-radius:3px}.odo-digit{width:32px;height:44px;display:flex;align-items:center;justify-content:center;border-right:2px solid var(--color-text-primary);font-family:'Courier New',monospace;font-size:24px;font-weight:700;line-height:1;color:var(--color-text-primary);overflow:visible}.odo-digit:last-child{border-right:none}#overlay:not(.active),#prompt-modal:not(.active),.lightbox-overlay:not(.active),.overlay:not(.active),.photo-modal-overlay:not(.active),.prompt-overlay:not(.active){pointer-events:none!important;visibility:hidden!important;opacity:0!important}.toc-sidebar:not(.open){pointer-events:none!important;visibility:hidden!important;transform:translateX(-100%)!important}body:not(.sidebar-open):not(.modal-open){overflow-y:auto!important}.lightbox-overlay:not(.active){z-index:-1!important;display:none!important}.install-prompt:not(.show){pointer-events:none!important}#toc-book-content.collapsed,.toc-book-content.collapsed{transition:none!important;animation:none!important;max-height:0!important;overflow:hidden!important;visibility:hidden;height:0}#toc-book-content:not(.collapsed){transition:max-height .2s ease-out;visibility:visible;height:auto;max-height:5000px}.toc-top-section[data-section=credentials]{display:none}