:root{--read-font-scale: 1}:root{--font-read: "Frank Ruhl Libre", "David", serif;--font-ui: "IBM Plex Sans Hebrew", "Segoe UI", system-ui, sans-serif;--text-xs: .75rem;--text-sm: .8125rem;--text-md: .9375rem;--text-lg: 1.125rem;--text-xl: 1.5rem;--text-2xl: 2rem;--leading-ui: 1.5;--leading-read: 1.9;--s-1: .25rem;--s-2: .5rem;--s-3: .75rem;--s-4: 1rem;--s-5: 1.5rem;--s-6: 2rem;--s-7: 3rem;--r-control: 6px;--r-panel: 12px;--r-pill: 999px;--tap: 2.75rem;--ease: cubic-bezier(.2, .7, .2, 1);--dur-fast: .12s;--dur: .22s;--measure: 36rem}:root,body.theme-dark{color-scheme:dark;--bg: #13201b;--bg-raised: #1a2a24;--bg-sunken: #0f1a16;--surface: #1e302a;--surface-hover: #253a33;--line: #2c433b;--line-strong: #3d5a50;--text: #ece4d0;--text-2: #b8b2a2;--text-3: #8f9a92;--accent: #d9b265;--accent-strong: #e8c47a;--accent-soft: rgba(217, 178, 101, .12);--accent-line: rgba(217, 178, 101, .45);--on-accent: #1d1607;--success: #8cc4a6;--success-soft: rgba(140, 196, 166, .14);--danger: #ef9a7e;--danger-soft: rgba(239, 154, 126, .12);--danger-line: rgba(239, 154, 126, .4);--overlay: rgba(6, 12, 10, .6);--chrome: rgba(19, 32, 27, .92);--shadow-lg: 0 18px 48px rgba(0, 0, 0, .45);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .25);--focus: #e8c47a;--lamp: rgba(217, 178, 101, .07)}body.theme-light{color-scheme:light;--bg: #f3efe4;--bg-raised: #faf7ef;--bg-sunken: #e9e4d6;--surface: #fbf9f3;--surface-hover: #efe9da;--line: #ddd5c2;--line-strong: #c4b99f;--text: #1c2a24;--text-2: #4a564f;--text-3: #5f6963;--accent: #8e6519;--accent-strong: #74510f;--accent-soft: rgba(142, 101, 25, .1);--accent-line: rgba(142, 101, 25, .4);--on-accent: #fffaf0;--success: #2f6b4f;--success-soft: rgba(47, 107, 79, .1);--danger: #a3442a;--danger-soft: rgba(163, 68, 42, .08);--danger-line: rgba(163, 68, 42, .35);--overlay: rgba(28, 42, 36, .35);--chrome: rgba(243, 239, 228, .94);--shadow-lg: 0 18px 48px rgba(28, 42, 36, .16);--shadow-sm: 0 2px 8px rgba(28, 42, 36, .08);--focus: #8e6519;--lamp: rgba(142, 101, 25, .05)}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:var(--text-md);line-height:var(--leading-ui);min-height:100vh;min-height:100dvh;overflow-x:hidden;position:relative;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 70% 45% at 50% -5%,var(--lamp),transparent 70%);pointer-events:none;z-index:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.icon{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.ui-muted{color:var(--text-2)}.ui-faint,.length-hint{color:var(--text-3)}.screen{display:none;position:relative;z-index:1;min-height:100vh;min-height:100dvh}.screen.active{display:flex}.create-btn,.write-next-btn,.next-chapter-btn,.wizard-next-btn,.shelf-continue-fab,.banner-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:var(--tap);padding:var(--s-3) var(--s-5);background:var(--accent);color:var(--on-accent);border:1px solid transparent;border-radius:var(--r-control);font-family:var(--font-ui);font-size:var(--text-md);font-weight:600;transition:background var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.create-btn:hover:not(:disabled),.write-next-btn:hover:not(:disabled),.next-chapter-btn:hover:not(:disabled),.wizard-next-btn:hover,.shelf-continue-fab:hover,.banner-btn:hover{background:var(--accent-strong)}.create-btn:active:not(:disabled),.write-next-btn:active:not(:disabled),.next-chapter-btn:active:not(:disabled),.wizard-next-btn:active{transform:translateY(1px)}.create-btn:disabled,.write-next-btn:disabled,.next-chapter-btn:disabled{opacity:.45}.secondary-btn,.taste-btn,.wizard-back-btn,.new-book-btn,.loading-cancel-btn,.back-to-library-btn,.api-verify-btn,.api-show-key-btn,.shelf-continue-btn,.reading-nav-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:var(--tap);padding:var(--s-2) var(--s-4);background:transparent;color:var(--text);border:1px solid var(--line-strong);border-radius:var(--r-control);font-family:var(--font-ui);font-size:var(--text-md);font-weight:500;text-decoration:none;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.secondary-btn:hover,.taste-btn:hover,.wizard-back-btn:hover,.new-book-btn:hover,.loading-cancel-btn:hover,.back-to-library-btn:hover,.api-verify-btn:hover:not(:disabled),.api-show-key-btn:hover,.shelf-continue-btn:hover,.reading-nav-btn:hover:not(:disabled){background:var(--surface-hover);border-color:var(--accent-line)}.api-verify-btn:disabled,.reading-nav-btn:disabled{opacity:.4}.new-book-btn.is-primary{background:var(--accent);border-color:transparent;color:var(--on-accent);font-weight:600}.new-book-btn.is-primary:hover{background:var(--accent-strong)}.wizard-skip-btn,.chapter-list-toggle,.backup-reminder-snooze,.welcome-links button,.api-guide-link,.text-btn{background:none;border:none;padding:var(--s-1) 0;color:var(--accent);font-family:var(--font-ui);font-size:var(--text-sm);font-weight:500;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.wizard-skip-btn:hover,.chapter-list-toggle:hover,.backup-reminder-snooze:hover,.welcome-links button:hover,.api-guide-link:hover,.text-btn:hover{color:var(--accent-strong)}.read-tool-btn,.theme-toggle-global,.chapter-drawer-close,.world-dict-drawer-close,.banner-dismiss,.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--tap);height:var(--tap);flex-shrink:0;padding:0;background:transparent;color:var(--text-2);border:1px solid transparent;border-radius:var(--r-control);font-family:var(--font-ui);font-size:var(--text-md);transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.read-tool-btn:hover,.theme-toggle-global:hover,.chapter-drawer-close:hover,.world-dict-drawer-close:hover,.banner-dismiss:hover,.icon-btn:hover{background:var(--surface-hover);color:var(--text)}.read-tool-btn.immersive-on,.read-tool-btn.landscape-on,.read-tool-btn.is-on{background:var(--accent-soft);color:var(--accent)}.hook-field,.optional-input,.key-input-area input,.shelf-toolbar select{width:100%;background:var(--bg-sunken);border:1px solid var(--line-strong);border-radius:var(--r-control);color:var(--text);padding:var(--s-3);font-size:var(--text-md);transition:border-color var(--dur-fast) var(--ease)}.hook-field:focus,.optional-input:focus,.key-input-area input:focus,.shelf-toolbar select:focus{border-color:var(--accent);outline:none}.hook-field::placeholder,.optional-input::placeholder,.key-input-area input::placeholder{color:var(--text-3)}.hook-field{min-height:5.5rem;line-height:var(--leading-ui);resize:vertical}.optional-input{margin-top:var(--s-2);display:none}.optional-input.visible{display:block}.choice-label,.taste-profiles-label,.key-input-area label{display:block;font-size:var(--text-sm);font-weight:600;color:var(--text-2);margin-bottom:var(--s-2)}#welcome-screen{flex-direction:column;align-items:center;padding:var(--s-7) var(--s-4) var(--s-6);gap:var(--s-6)}.logo-area{text-align:center}.logo-symbol{display:block;width:4.5rem;height:4.5rem;margin:0 auto var(--s-4)}.logo-title{font-family:var(--font-read);font-weight:900;font-size:clamp(2.5rem,11vw,4.5rem);line-height:1;letter-spacing:-.01em;color:var(--text)}.logo-subtitle{margin-top:var(--s-3);font-family:var(--font-read);font-size:var(--text-lg);color:var(--text-2)}.welcome-card{width:100%;max-width:34rem;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r-panel);padding:var(--s-6);box-shadow:var(--shadow-lg)}.welcome-card h2,.wizard-step h2{font-family:var(--font-read);font-weight:700;font-size:var(--text-xl);line-height:1.25;color:var(--text);margin-bottom:var(--s-1)}.welcome-card p{color:var(--text-2);margin-bottom:var(--s-5)}.welcome-wizard{text-align:right}.wizard-progress{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-5)}.wizard-progress-step{display:inline-flex;align-items:center;gap:var(--s-2);background:none;border:none;padding:var(--s-1) 0;color:var(--text-3);font-size:var(--text-sm);font-weight:500}.wizard-progress-step:hover{color:var(--text-2)}.wizard-progress-step.active{color:var(--text)}.wizard-progress-step.done{color:var(--text-2)}.wizard-progress-num{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:var(--r-pill);border:1px solid var(--line-strong);font-size:var(--text-xs);font-weight:600;font-variant-numeric:tabular-nums}.wizard-progress-step.active .wizard-progress-num{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.wizard-progress-step.done .wizard-progress-num{border-color:var(--accent-line);color:var(--accent)}.wizard-progress-line{flex:1;height:1px;background:var(--line)}.wizard-step{display:none}.wizard-step.wizard-step-active{display:block}.wizard-step.wizard-step-enter{animation:stepIn var(--dur) var(--ease) both}@keyframes stepIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.wizard-step-desc{color:var(--text-2);margin-bottom:var(--s-5)}.wizard-step-desc strong{color:var(--text);font-weight:600}.choice-section{margin-top:var(--s-5)}.taste-profiles{margin-bottom:var(--s-2)}.taste-profiles:has(.profile-options:empty){display:none}.choice-tiles{display:flex;flex-wrap:wrap;gap:var(--s-2)}.choice-tile,.profile-btn{min-height:2.5rem;padding:var(--s-2) var(--s-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);color:var(--text);font-size:var(--text-md);transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.choice-tile:hover,.profile-btn:hover{border-color:var(--line-strong);background:var(--surface-hover)}.choice-tile.selected,.profile-btn.selected{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.profile-options{display:flex;flex-wrap:wrap;gap:var(--s-2)}.inspiration-panel{margin-top:var(--s-5);border:1px solid var(--line);border-radius:var(--r-panel);background:var(--surface)}.inspiration-panel-trigger{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);min-height:var(--tap);cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.inspiration-panel-trigger::-webkit-details-marker{display:none}.inspiration-panel-icon{display:none}.inspiration-panel-text{flex:1;min-width:0}.inspiration-panel-text strong{display:block;font-weight:600}.inspiration-panel-hint{display:block;font-size:var(--text-sm);color:var(--text-3)}.inspiration-chevron{font-size:var(--text-xs);color:var(--text-3);transition:transform var(--dur) var(--ease)}.inspiration-panel[open] .inspiration-chevron{transform:rotate(180deg)}.inspiration-panel-body{padding:0 var(--s-4) var(--s-4);border-top:1px solid var(--line)}.copyright-note{margin-top:var(--s-3);font-size:var(--text-sm);color:var(--text-3)}.length-options{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-2);margin-bottom:var(--s-5)}.wizard-length-options{margin-bottom:0}.length-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--s-3) var(--s-2);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-control);color:var(--text);transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.length-btn:hover{background:var(--surface-hover);border-color:var(--line-strong)}.length-btn.selected{background:var(--accent-soft);border-color:var(--accent)}.length-btn .chapters-count{font-family:var(--font-read);font-size:var(--text-lg);font-weight:700}.length-btn.selected .chapters-count{color:var(--accent)}.length-btn .length-hint{font-size:var(--text-sm)}.wizard-nav{display:flex;align-items:center;gap:var(--s-3);margin-top:var(--s-6);padding-top:var(--s-4);border-top:1px solid var(--line)}.wizard-nav-end{justify-content:flex-start}.wizard-next-btn{margin-inline-start:auto;min-width:8rem}.wizard-back-btn{min-width:6rem}.wizard-api-panel{margin-bottom:var(--s-5)}.api-settings{font-size:var(--text-md);color:var(--text-2)}.api-info-box{padding:var(--s-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-panel);font-size:var(--text-sm);line-height:1.65;color:var(--text-2);margin-bottom:var(--s-5)}.api-info-box strong{color:var(--text);font-weight:600}.api-info-box>strong:first-child{display:block;margin-bottom:var(--s-1)}.api-guide-link{display:block;margin-top:var(--s-2);font-size:var(--text-sm)}.api-privacy-note{margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px solid var(--line);color:var(--text-3)}.key-input-area{display:flex;flex-direction:column}.key-input-area input{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:var(--text-sm);direction:ltr;text-align:left}.api-key-row{display:flex;gap:var(--s-2)}.api-key-row input{flex:1;min-width:0}.api-show-key-btn{padding-inline:var(--s-3);font-size:var(--text-sm)}.api-key-verify-row{display:flex;align-items:center;gap:var(--s-3);margin-top:var(--s-3);flex-wrap:wrap}.api-verify-btn{font-size:var(--text-sm);min-height:2.5rem}.api-key-verify-indicator{display:inline-flex;align-items:center;gap:var(--s-2);font-size:var(--text-sm);color:var(--text-2)}.api-key-verify-indicator.is-valid{color:var(--success)}.api-key-verify-indicator.is-invalid{color:var(--danger)}.api-verify-spinner{width:1rem;height:1rem;border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}.api-verify-icon{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border-radius:50%;font-size:var(--text-xs);font-weight:700}.api-verify-icon.valid{background:var(--success-soft);color:var(--success)}.api-verify-icon.invalid{background:var(--danger-soft);color:var(--danger)}.api-key-verify-error{margin-top:var(--s-2)}.api-key-status{margin-top:var(--s-2);font-size:var(--text-sm);color:var(--text-3)}.api-key-status:empty{display:none}.api-key-status.saved{color:var(--success)}.create-btn{width:100%;min-height:3.25rem;font-size:var(--text-lg)}.wizard-secondary-action{width:100%;margin-top:var(--s-2)}.welcome-links{margin-top:var(--s-5);text-align:center}.error-msg,.api-key-verify-error{padding:var(--s-3) var(--s-4);background:var(--danger-soft);border:1px solid var(--danger-line);border-radius:var(--r-control);color:var(--danger);font-size:var(--text-sm);line-height:1.55;white-space:pre-line}.error-msg{margin-top:var(--s-4)}.model-fallback-notice{margin-top:var(--s-3);padding:var(--s-3);background:var(--accent-soft);border-radius:var(--r-control);color:var(--text-2);font-size:var(--text-sm)}.quota-notice{margin-top:var(--s-2);color:var(--text-3);font-size:var(--text-xs);text-align:center}.quota-notice.low{color:var(--danger)}.backup-reminder{margin-top:var(--s-5);padding:var(--s-4);background:var(--danger-soft);border:1px solid var(--danger-line);border-radius:var(--r-panel);font-size:var(--text-sm);color:var(--text)}.backup-reminder[hidden]{display:none}.backup-reminder-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-4);margin-top:var(--s-3)}.backup-reminder-snooze{color:var(--text-2)}#loading-screen{flex-direction:column;align-items:center;justify-content:center;gap:var(--s-4);padding:var(--s-6) var(--s-4);text-align:center}.loading-rune{width:4rem;height:4rem;color:var(--accent);margin-bottom:var(--s-2);animation:spin 9s linear infinite}.loading-rune svg{width:100%;height:100%}.loading-title{font-family:var(--font-read);font-weight:700;font-size:var(--text-xl)}.loading-status{color:var(--text-2);min-height:1.5em;max-width:24rem}.loading-bar-wrap{width:min(16rem,70vw);height:3px;background:var(--line);border-radius:var(--r-pill);overflow:hidden}.loading-bar{width:40%;height:100%;background:var(--accent);border-radius:var(--r-pill);animation:indeterminate 1.8s var(--ease) infinite}.loading-cancel-btn{margin-top:var(--s-5)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes indeterminate{0%{transform:translate(150%)}to{transform:translate(-250%)}}.shelf-header,.library-header,.reading-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--s-2);min-height:3.5rem;padding:var(--s-2) var(--s-4);padding-top:max(var(--s-2),env(safe-area-inset-top));background:var(--chrome);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.app-bar-title,.library-header .title{flex:1;min-width:0;font-family:var(--font-read);font-weight:700;font-size:var(--text-xl);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-bar-actions{display:flex;align-items:center;gap:var(--s-1)}.app-bar-actions .new-book-btn{min-height:2.5rem;padding-inline:var(--s-3);font-size:var(--text-sm)}#shelf-screen{flex-direction:column}.shelf-body{width:100%;max-width:44rem;margin:0 auto;padding:var(--s-5) var(--s-4) var(--s-6);flex:1}.shelf-body.has-continue-fab{padding-bottom:calc(6rem + env(safe-area-inset-bottom,0px))}.shelf-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);margin-bottom:var(--s-4)}.shelf-toolbar label{font-size:var(--text-sm);color:var(--text-3)}.shelf-toolbar select{width:auto;min-height:2.5rem;padding:var(--s-1) var(--s-3);font-size:var(--text-sm)}.shelf-grid{display:flex;flex-direction:column;gap:var(--s-3)}.shelf-card{position:relative;display:flex;align-items:center;gap:var(--s-3);padding:var(--s-4);background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r-panel);transition:border-color var(--dur-fast) var(--ease)}.shelf-card:hover{border-color:var(--line-strong)}.shelf-card-main{flex:1;min-width:0;background:none;border:none;padding:0;text-align:right;color:inherit}.shelf-card-main:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--r-panel)}.shelf-card-main:focus-visible{outline:none}.shelf-card-main:focus-visible:after{outline:2px solid var(--focus);outline-offset:2px}.shelf-card-title{font-family:var(--font-read);font-weight:700;font-size:var(--text-lg);line-height:1.3;color:var(--text)}.shelf-card-meta{margin-top:var(--s-1);font-size:var(--text-sm);color:var(--text-3)}.shelf-card-meta .is-done{color:var(--success);font-weight:500}.shelf-card-meta .stars{color:var(--accent);letter-spacing:.1em}.shelf-card-progress{margin-top:var(--s-3);height:3px;background:var(--line);border-radius:var(--r-pill);overflow:hidden}.shelf-card-progress>span{display:block;height:100%;background:var(--accent);border-radius:var(--r-pill)}.shelf-card-actions{position:relative;z-index:1;display:flex;align-items:center;gap:var(--s-1)}.shelf-continue-btn{min-height:2.5rem;font-size:var(--text-sm);white-space:nowrap}.shelf-card-actions .icon-btn{color:var(--text-3);width:2.5rem;height:2.5rem}.shelf-card-actions .icon-btn:hover{color:var(--danger);background:var(--danger-soft)}.shelf-empty{padding:var(--s-7) var(--s-4);text-align:center;color:var(--text-2)}.meta-pill{display:inline-flex;align-items:center;padding:1px var(--s-2);background:var(--accent-soft);border-radius:var(--r-pill);color:var(--text-2);font-size:var(--text-xs)}.library-actions,.book-complete-actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}.shelf-body>.library-actions{margin-top:var(--s-6);padding-top:var(--s-5);border-top:1px solid var(--line)}.file-btn{position:relative}.file-btn input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.file-btn:focus-within{outline:2px solid var(--focus);outline-offset:2px}.shelf-continue-fab{position:fixed;z-index:45;bottom:max(var(--s-4),env(safe-area-inset-bottom));inset-inline:var(--s-4);max-width:28rem;margin-inline:auto;min-height:3.25rem;border-radius:var(--r-pill);box-shadow:var(--shadow-lg)}.shelf-fab-icon{display:inline-flex}.shelf-fab-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}#library-screen{flex-direction:column}.library-body{flex:1;width:100%;max-width:44rem;margin:0 auto;display:flex;flex-direction:column}.library-scroll{flex:1;padding:var(--s-6) var(--s-4) var(--s-5)}.book-title-display{display:none}.book-info-panel{margin-bottom:var(--s-5)}.book-info-panel h1{font-family:var(--font-read);font-weight:900;font-size:clamp(1.75rem,7vw,2.5rem);line-height:1.15;letter-spacing:-.01em}.book-meta{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-4);margin-top:var(--s-2);font-size:var(--text-sm);color:var(--text-3)}.book-tagline{margin-top:var(--s-4);max-width:var(--measure);font-family:var(--font-read);font-size:var(--text-lg);line-height:1.6;color:var(--text-2)}.book-tagline:empty{display:none}.world-dict-entry-btn{display:flex;align-items:center;gap:var(--s-3);width:100%;margin-bottom:var(--s-5);padding:var(--s-3) var(--s-4);background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r-panel);text-align:right;transition:border-color var(--dur-fast) var(--ease)}.world-dict-entry-btn:hover{border-color:var(--line-strong)}.world-dict-entry-icon{display:inline-flex;color:var(--accent)}.world-dict-entry-text{flex:1;min-width:0;display:flex;flex-direction:column}.world-dict-entry-text strong{font-weight:600}.world-dict-entry-hint{font-size:var(--text-sm);color:var(--text-3)}.world-dict-entry-chevron{color:var(--text-3);font-size:var(--text-xl);line-height:1}.progress-section{margin-bottom:var(--s-5)}.progress-label{display:flex;justify-content:space-between;margin-bottom:var(--s-2);font-size:var(--text-sm);color:var(--text-3);font-variant-numeric:tabular-nums}.progress-track{height:4px;background:var(--line);border-radius:var(--r-pill);overflow:hidden}.progress-fill{height:100%;background:var(--accent);border-radius:var(--r-pill);transition:width .6s var(--ease)}.chapter-list-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--s-2);font-family:var(--font-read);font-size:var(--text-lg);font-weight:700}.chapter-list{display:flex;flex-direction:column}.chapter-item{display:flex;align-items:center;gap:var(--s-3);width:100%;min-height:3.5rem;padding:var(--s-3) var(--s-2);background:transparent;border:none;border-bottom:1px solid var(--line);border-radius:0;text-align:right;color:var(--text);transition:background var(--dur-fast) var(--ease)}.chapter-item.written:hover,.chapter-item.next-to-write:hover{background:var(--surface-hover)}.chapter-item.locked{cursor:default}.chapter-item.next-to-write{background:var(--accent-soft);border-radius:var(--r-control);border-bottom-color:transparent;margin-block:var(--s-1)}.chapter-num{min-width:1.75rem;font-family:var(--font-read);font-size:var(--text-lg);font-weight:700;color:var(--text-3);text-align:center;font-variant-numeric:tabular-nums}.chapter-item.next-to-write .chapter-num{color:var(--accent)}.chapter-info{flex:1;min-width:0}.chapter-name{font-size:var(--text-md);font-weight:500}.chapter-item.locked .chapter-name{color:var(--text-3)}.chapter-hint{font-size:var(--text-sm);color:var(--text-3)}.chapter-status{display:inline-flex;align-items:center;color:var(--text-3)}.chapter-status .icon{width:1.1rem;height:1.1rem}.chapter-status.done{color:var(--success)}.chapter-status.write{padding:2px var(--s-2);background:var(--accent);border-radius:var(--r-pill);color:var(--on-accent);font-size:var(--text-xs);font-weight:600}.chapter-status.write.is-busy{background:transparent;color:var(--accent);animation:breathe 1.6s ease-in-out infinite}.chapter-item.compact-locked{justify-content:center;min-height:var(--tap);border-bottom:none}.chapter-item.compact-locked .chapter-hint{color:var(--text-2)}@keyframes breathe{50%{opacity:.45}}.library-footer{position:sticky;bottom:0;z-index:10;padding:var(--s-3) var(--s-4);padding-bottom:max(var(--s-3),env(safe-area-inset-bottom));background:var(--chrome);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line)}.write-next-btn{width:100%;min-height:3.25rem;font-size:var(--text-lg)}.prepare-next-btn{display:block;width:100%;min-height:0;margin-top:var(--s-2);padding:var(--s-2) 0;border:none;background:none;color:var(--text-2);font-size:var(--text-sm)}.prepare-next-btn:hover{background:none;color:var(--accent);text-decoration:underline}.writing-indicator{display:flex;align-items:center;justify-content:center;gap:var(--s-2);margin-top:var(--s-2);font-size:var(--text-sm);color:var(--text-2)}.dot-anim span{display:inline-block;animation:breathe 1.2s ease-in-out infinite}.dot-anim span:nth-child(2){animation-delay:.2s}.dot-anim span:nth-child(3){animation-delay:.4s}.library-scroll .library-actions{margin-top:var(--s-5)}.library-actions:empty{display:none}.book-complete-actions{flex-direction:column;align-items:center;margin-top:var(--s-5);padding:var(--s-5);background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r-panel);text-align:center}.book-complete-actions h3{font-family:var(--font-read);font-size:var(--text-xl);font-weight:700}.complete-btn-row{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-2)}.rating-row{display:flex;gap:var(--s-1)}.rating-star{width:var(--tap);height:var(--tap);background:none;border:none;border-radius:var(--r-control);font-size:1.5rem;color:var(--line-strong)}.rating-star.on{color:var(--accent)}.rating-star:hover{color:var(--accent-strong)}#sequel-screen{flex-direction:column;align-items:center;padding:var(--s-7) var(--s-4);gap:var(--s-5)}#sequel-screen .logo-title{font-size:clamp(2rem,8vw,3rem)}.sequel-length-label{margin-bottom:var(--s-2);font-size:var(--text-sm);font-weight:600;color:var(--text-2)}#reading-screen{flex-direction:column}.reading-header{gap:var(--s-1);padding-inline:var(--s-2)}.back-btn{display:inline-flex;align-items:center;gap:var(--s-1);min-height:var(--tap);padding:0 var(--s-2);background:none;border:none;border-radius:var(--r-control);color:var(--text-2);font-size:var(--text-sm);font-weight:500}.back-btn:hover{background:var(--surface-hover);color:var(--text)}.reading-chapter-label{flex:1;min-width:0;font-size:var(--text-sm);color:var(--text-3);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reading-toolbar{display:flex;align-items:center;gap:0}.reading-toolbar .read-tool-btn{width:2.5rem;height:2.5rem}.reading-toolbar .tool-sep{width:1px;height:1.25rem;margin:0 var(--s-1);background:var(--line)}.reading-body{flex:1;width:100%;max-width:calc(var(--measure) + 2 * var(--s-4));margin:0 auto;padding:var(--s-7) var(--s-4) calc(6rem + env(safe-area-inset-bottom,0px))}.chapter-heading{text-align:center;margin-bottom:var(--s-6)}.chapter-number-display{font-family:var(--font-read);font-size:var(--text-md);color:var(--accent);margin-bottom:var(--s-2)}.chapter-title-display{font-family:var(--font-read);font-weight:900;font-size:clamp(1.75rem,7vw,2.5rem);line-height:1.2;letter-spacing:-.01em;text-wrap:balance}.chapter-epigraph{margin-top:var(--s-3);font-family:var(--font-read);font-size:var(--text-md);color:var(--text-3)}.chapter-epigraph:empty{display:none}.chapter-heading:after{content:"";display:block;width:3rem;height:2px;margin:var(--s-5) auto 0;background:var(--accent);border-radius:var(--r-pill)}.chapter-content{font-family:var(--font-read);font-size:calc(var(--text-lg) * var(--read-font-scale));line-height:var(--leading-read);color:var(--text);text-align:start;animation:chapterIn .4s var(--ease)}@media(min-width:640px){.chapter-content{text-align:justify}}.chapter-content p{margin-bottom:0;text-indent:1.25em}.chapter-content p:first-child,.chapter-content .chapter-divider+p{text-indent:0}.chapter-content p:first-child:first-letter{float:right;margin:.08em 0 0 .12em;font-size:3.4em;font-weight:900;line-height:.85;color:var(--accent)}.chapter-divider{margin:var(--s-5) 0;text-align:center;color:var(--text-3);letter-spacing:.6em;font-size:var(--text-sm)}@keyframes chapterIn{0%{opacity:0}to{opacity:1}}.reading-preparing{display:none;margin-top:var(--s-6);padding:var(--s-6) var(--s-4);background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r-panel);text-align:center;color:var(--text-2)}.reading-preparing.active{display:block}.prep-spinner{width:1.5rem;height:1.5rem;margin:0 auto var(--s-3);border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;font-size:0;animation:spin .9s linear infinite}.chapter-end-actions{display:flex;flex-direction:column;align-items:center;gap:var(--s-4);margin-top:var(--s-7)}.chapter-end-actions:empty{display:none}.end-of-book{font-family:var(--font-read);font-size:var(--text-xl);font-weight:700;color:var(--accent)}.back-to-library-btn{color:var(--text-2)}.reading-chapter-nav{position:fixed;inset-inline:0;bottom:0;z-index:30;display:flex;gap:var(--s-2);padding:var(--s-2) var(--s-3);padding-bottom:max(var(--s-2),env(safe-area-inset-bottom));background:var(--chrome);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line)}.reading-nav-btn{flex:1;border-color:var(--line);font-size:var(--text-sm)}#nav-next-chapter:not(:disabled){background:var(--accent);border-color:transparent;color:var(--on-accent);font-weight:600}#nav-next-chapter:not(:disabled):hover{background:var(--accent-strong)}.reading-nav-btn.nav-list{flex:0 0 var(--tap);padding:0}body.reading-immersive #reading-screen .reading-header,body.reading-immersive #reading-screen .reading-chapter-nav{opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease)}body.reading-immersive #reading-screen:hover .reading-header,body.reading-immersive #reading-screen:hover .reading-chapter-nav,body.reading-immersive #reading-screen:focus-within .reading-header,body.reading-immersive #reading-screen:focus-within .reading-chapter-nav{opacity:1;pointer-events:auto}.chapter-content.live-writing{animation:none}.chapter-content .live-new{animation:liveIn .6s var(--ease) both}@keyframes liveIn{0%{opacity:0}to{opacity:1}}.live-caret{display:inline-block;width:2px;height:1.05em;margin-inline-start:3px;vertical-align:-.15em;background:var(--accent);animation:caret 1.1s steps(2,jump-none) infinite}@keyframes caret{50%{opacity:0}}.live-status{display:flex;align-items:center;justify-content:center;gap:var(--s-2);padding:var(--s-3) var(--s-4);background:var(--accent-soft);border-radius:var(--r-pill);color:var(--text-2);font-size:var(--text-sm);text-align:center}.live-quill{color:var(--accent)}.live-status.live-error{background:var(--danger-soft);border:1px solid var(--danger-line);border-radius:var(--r-control);color:var(--danger)}.reading-nav-btn.live-progress:disabled{opacity:1;color:var(--accent);border-color:var(--accent-line);font-variant-numeric:tabular-nums}.chapter-content mark.revised-passage{color:inherit;background:transparent;border-radius:2px;box-decoration-break:clone;-webkit-box-decoration-break:clone;animation:revised 5s ease-out}@keyframes revised{0%,35%{background:var(--accent-soft);box-shadow:0 2px 0 var(--accent-line)}to{background:transparent;box-shadow:none}}.chapter-drawer-backdrop,.world-dict-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:var(--overlay);opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease)}.world-dict-backdrop{z-index:55}.chapter-drawer-backdrop.open,.world-dict-backdrop.open{opacity:1;pointer-events:auto}.chapter-drawer,.world-dictionary-drawer{position:fixed;top:0;right:0;z-index:50;display:flex;flex-direction:column;width:min(22rem,88vw);height:100dvh;background:var(--bg-raised);border-left:1px solid var(--line);box-shadow:var(--shadow-lg);transform:translate(100%);visibility:hidden;transition:transform var(--dur) var(--ease),visibility 0s linear var(--dur)}.world-dictionary-drawer{z-index:60;width:min(26rem,94vw)}.chapter-drawer.open,.world-dictionary-drawer.open{transform:none;visibility:visible;transition:transform var(--dur) var(--ease)}.chapter-drawer-header,.world-dict-drawer-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-3) var(--s-4);padding-top:max(var(--s-3),env(safe-area-inset-top));border-bottom:1px solid var(--line);flex-shrink:0}.chapter-drawer-header{font-family:var(--font-read);font-size:var(--text-lg);font-weight:700}.chapter-drawer-list{flex:1;overflow-y:auto;padding:var(--s-2);overscroll-behavior:contain}.drawer-chapter-item{display:flex;align-items:center;gap:var(--s-3);width:100%;min-height:var(--tap);padding:var(--s-2) var(--s-3);background:transparent;border:none;border-radius:var(--r-control);text-align:right;color:var(--text);transition:background var(--dur-fast) var(--ease)}.drawer-chapter-item:hover{background:var(--surface-hover)}.drawer-chapter-item.current{background:var(--accent-soft);color:var(--accent)}.drawer-chapter-num{min-width:1.5rem;font-family:var(--font-read);font-weight:700;color:var(--text-3);font-variant-numeric:tabular-nums}.drawer-chapter-item.current .drawer-chapter-num{color:var(--accent)}.drawer-chapter-text{flex:1;min-width:0}.drawer-chapter-title{display:block;font-weight:500}.drawer-chapter-pov{display:block;font-size:var(--text-xs);color:var(--text-3)}.drawer-empty-msg{padding:var(--s-4)}.world-dict-drawer-header{align-items:flex-start}.world-dict-drawer-kicker{display:none}.world-dict-drawer-title{font-family:var(--font-read);font-size:var(--text-xl);font-weight:700}.world-dict-drawer-sub{font-size:var(--text-sm);color:var(--text-3)}.world-dict-tabs{display:flex;gap:var(--s-2);padding:var(--s-3) var(--s-4);overflow-x:auto;flex-shrink:0;border-bottom:1px solid var(--line);scrollbar-width:none}.world-dict-tabs::-webkit-scrollbar{display:none}.world-dict-tab{flex-shrink:0;min-height:2.25rem;padding:var(--s-1) var(--s-3);background:transparent;border:1px solid var(--line);border-radius:var(--r-pill);color:var(--text-2);font-size:var(--text-sm);white-space:nowrap}.world-dict-tab:hover{background:var(--surface-hover)}.world-dict-tab.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.world-dict-tab-count{opacity:.7;font-variant-numeric:tabular-nums}.world-dict-content{flex:1;overflow-y:auto;padding:var(--s-4);overscroll-behavior:contain}.world-dict-overview{margin-bottom:var(--s-5);padding:var(--s-4);background:var(--surface);border-radius:var(--r-panel);font-size:var(--text-sm);line-height:1.6}.world-dict-overview-item+.world-dict-overview-item{margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px solid var(--line)}.world-dict-overview-label{display:block;margin-bottom:2px;font-size:var(--text-xs);font-weight:600;color:var(--text-3)}.world-dict-section-title{margin-bottom:var(--s-3);font-family:var(--font-read);font-size:var(--text-lg);font-weight:700}.world-dict-cards{display:flex;flex-direction:column;gap:var(--s-2)}.world-dict-card{padding:var(--s-3) var(--s-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-control)}.world-dict-card.mystery{border-inline-start:3px solid var(--accent)}.world-dict-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1) var(--s-2);margin-bottom:var(--s-1)}.world-dict-card-title{flex:1;min-width:0;font-family:var(--font-read);font-size:var(--text-md);font-weight:700}.world-dict-card-body{font-size:var(--text-sm);line-height:1.65;color:var(--text-2)}.world-dict-card-body.rule{font-family:var(--font-read);font-size:var(--text-md);color:var(--text)}.world-dict-card-meta{margin-top:var(--s-1);font-size:var(--text-xs);color:var(--text-3)}.world-dict-card-meta:empty{display:none}.world-dict-pill{display:inline-block;padding:1px var(--s-2);background:var(--bg-sunken);border-radius:var(--r-pill);font-size:var(--text-xs);color:var(--text-2)}.world-dict-pill.status{background:var(--accent-soft);color:var(--accent)}.world-dict-empty{color:var(--text-3);line-height:1.65;padding:var(--s-2) 0}@media(max-width:560px){.world-dictionary-drawer{top:auto;bottom:0;width:100%;height:auto;max-height:88dvh;border-left:none;border-top:1px solid var(--line);border-radius:var(--r-panel) var(--r-panel) 0 0;transform:translateY(100%)}.world-dictionary-drawer.open{transform:none}.world-dict-drawer-header{padding-top:var(--s-3)}}.app-banner,.offline-banner,.update-banner{position:fixed;inset-inline:0;z-index:1000;display:none;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--s-3);padding:var(--s-2) var(--s-4);font-size:var(--text-sm);text-align:center;background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.offline-banner{top:0;background:var(--danger-soft);border-bottom:1px solid var(--danger-line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.update-banner,.app-banner{bottom:0;border-top:1px solid var(--line);padding-bottom:max(var(--s-2),env(safe-area-inset-bottom))}.banner-btn{min-height:2.25rem;padding-inline:var(--s-4);font-size:var(--text-sm)}.banner-dismiss{width:2.25rem;height:2.25rem}body.has-offline-banner .screen.active{padding-top:2.75rem}body.has-app-banner .screen.active,body.has-update-banner .screen.active{padding-bottom:3.5rem}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:var(--r-pill)}@media(max-width:420px){.welcome-card{padding:var(--s-5) var(--s-4);border-radius:var(--r-panel)}#welcome-screen{padding-top:var(--s-6)}.reading-chapter-label{display:none}.reading-header{justify-content:space-between}.app-bar-title{font-size:var(--text-lg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.chapter-content mark.revised-passage{animation:none;background:var(--accent-soft)}}body:has(#reading-screen.active),body:has(#library-screen.active),body:has(.shelf-continue-fab:not([hidden])){--dl-watermark-bottom: calc(5rem + env(safe-area-inset-bottom, 0px)) }
