:root{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-serif:"Newsreader", Georgia, Cambria, "Times New Roman", serif;--font-mono:"JetBrains Mono", monospace;--bg-app:#050505;--bg-surface:#0c1015;--bg-surface-elevated:#131922;--bg-surface-glass:#0c1015d1;--border-subtle:#ffffff14;--border-strong:#10b98159;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--brand-50:#ecfdf5;--brand-500:#10b981;--brand-600:#059669;--accent-primary:#10b981;--accent-primary-hover:#059669;--accent-glow:#10b98159;--highlight-sentence:#10b98138;--highlight-sentence-border:#10b981;--highlight-word:#34d399;--shadow-sm:0 2px 8px #0006;--shadow-md:0 8px 24px #0009;--shadow-lg:0 20px 50px #000000b3, 0 0 25px #10b98126;--shadow-dock:0 -4px 30px #000c, 0 0 20px #10b98126;--radius-sm:8px;--radius-md:14px;--radius-lg:24px;--radius-xl:36px;--radius-full:9999px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-smooth:.25s cubic-bezier(.16, 1, .3, 1)}[data-theme=sepia]{--bg-app:#fbf0d9;--bg-surface:#f4e6c9;--bg-surface-elevated:#ebdac0;--bg-surface-glass:#f4e6c9e0;--border-subtle:#5c403324;--border-strong:#05966966;--text-primary:#2c221a;--text-secondary:#675240;--text-muted:#8d7764;--accent-primary:#059669;--accent-primary-hover:#047857;--accent-glow:#05966933;--highlight-sentence:#10b98133;--highlight-sentence-border:#059669;--highlight-word:#047857;--shadow-sm:0 2px 8px #5c403314;--shadow-md:0 8px 24px #5c403324;--shadow-lg:0 16px 40px #5c403333;--shadow-dock:0 -4px 30px #5c403326}[data-theme=light]{--bg-app:#f8fafc;--bg-surface:#fff;--bg-surface-elevated:#f1f5f9;--bg-surface-glass:#ffffffe0;--border-subtle:#00000014;--border-strong:#10b98166;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--accent-primary:#059669;--accent-primary-hover:#047857;--accent-glow:#10b98140;--highlight-sentence:#10b98129;--highlight-sentence-border:#059669;--highlight-word:#047857;--shadow-sm:0 2px 8px #0000000a;--shadow-md:0 8px 24px #00000014;--shadow-lg:0 16px 40px #0000001f;--shadow-dock:0 -4px 30px #00000014}[data-theme=oled]{--bg-app:#000;--bg-surface:#070707;--bg-surface-elevated:#111;--bg-surface-glass:#070707e6;--border-subtle:#ffffff1a;--border-strong:#10b98166;--text-primary:#fff;--text-secondary:#a1a1aa;--text-muted:#71717a;--accent-primary:#10b981;--accent-primary-hover:#059669;--accent-glow:#10b98166;--highlight-sentence:#10b98140;--highlight-sentence-border:#34d399;--highlight-word:#6ee7b7;--shadow-sm:0 2px 8px #000c;--shadow-md:0 8px 24px #000000e6;--shadow-lg:0 16px 40px #000000f2;--shadow-dock:0 -4px 30px #000000e6}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition-smooth), color var(--transition-smooth);line-height:1.5;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}button{cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;outline:none;font-family:inherit}input,textarea,select{border:none;outline:none;font-family:inherit}.glass-panel{background:var(--bg-surface-glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-subtle)}.glass-dock{background:var(--bg-surface-glass);-webkit-backdrop-filter:blur(24px);border-top:1px solid var(--border-subtle);box-shadow:var(--shadow-dock)}.floating-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast)}.floating-card:hover{box-shadow:var(--shadow-lg);border-color:var(--border-strong);transform:translateY(-3px)}.reader-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex-direction:column;flex:1;align-items:center;width:100%;height:100%;min-height:0;padding:0 20px 200px;display:flex;overflow:hidden auto}.reader-column{flex-direction:column;width:100%;display:flex}.reader-chapter-bar{z-index:10;background:var(--bg-surface-glass);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;margin:0 -8px 8px;padding:10px 8px;display:flex;position:sticky;top:0}.reader-chapter-bar-text{flex-direction:column;min-width:0;display:flex}.reader-chapter-bar-label{font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-primary);font-size:10px;font-weight:700}.reader-chapter-bar-title{font-family:var(--font-sans);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.reader-chapter-bar-actions{flex-shrink:0;gap:6px;display:flex}.reader-chapter-bar-actions button{width:34px;height:34px;color:var(--text-secondary);background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);border-radius:10px;justify-content:center;align-items:center;font-size:20px;line-height:1;display:flex}.reader-chapter-bar-actions button:disabled{opacity:.35;cursor:default}.reader-chapter-bar-actions button.primary{color:#fff;background:var(--accent-primary);border-color:var(--accent-primary)}.reader-book-header{text-align:center;flex-direction:column;align-items:center;margin-bottom:12px;padding:36px 16px 28px;display:flex}.reader-book-cover{object-fit:cover;width:120px;height:172px;box-shadow:var(--shadow-md);border-radius:10px;margin-bottom:20px}.reader-book-cover.placeholder{color:#fff;font-family:var(--font-sans);justify-content:center;align-items:center;font-size:13px;font-weight:800;display:flex}.reader-book-header h1{color:var(--text-primary);letter-spacing:-.01em;font-weight:700;line-height:1.2}.reader-book-author{font-family:var(--font-sans);color:var(--text-secondary);margin-top:6px;font-size:14px}.reader-book-meta{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px;display:flex}.reader-book-meta span{border-radius:var(--radius-full);font-family:var(--font-sans);color:var(--text-muted);background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);align-items:center;gap:6px;padding:4px 12px;font-size:12px;display:inline-flex}.chapter-divider{border-top:1px solid var(--border-subtle);text-align:center;flex-direction:column;align-items:center;gap:4px;margin:56px 0 20px;padding-top:28px;display:flex}.chapter-divider-label{font-family:var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-primary);font-size:11px;font-weight:700}.chapter-divider-title{color:var(--text-primary);font-size:1.25em;font-weight:700}.reader-text{color:var(--text-primary);min-height:300px}.reading-paragraph{text-align:left;-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word;margin:0 0 1.1em}.reading-heading{text-align:center;color:var(--text-primary);margin:.4em 0 1em;font-weight:700;line-height:1.3}.reader-end,.reader-empty{text-align:center;font-family:var(--font-sans);color:var(--text-muted);padding:48px 16px}.reader-sync-button{right:20px;bottom:calc(110px + env(safe-area-inset-bottom,0px));z-index:60;border-radius:var(--radius-full);background:var(--accent-primary);color:#fff;font-family:var(--font-sans);box-shadow:0 10px 25px -3px var(--accent-glow);align-items:center;gap:8px;padding:10px 18px;font-size:12px;font-weight:700;display:flex;position:fixed}.reading-sentence{cursor:pointer;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background-color var(--transition-fast), box-shadow var(--transition-fast);border-radius:4px}.reading-sentence.active{background-color:var(--highlight-sentence);box-shadow:0 0 0 2px var(--highlight-sentence);color:var(--text-primary)}@media (hover:hover){.reading-sentence:hover{background-color:var(--highlight-sentence)}.clickable-word:hover{color:var(--accent-primary);text-underline-offset:3px;text-decoration:underline}}.clickable-word{cursor:pointer}@media (width<=640px){.reader-scroll{padding:0 16px 180px}.reader-book-cover{width:96px;height:138px}}.waveform-container{align-items:center;gap:3px;height:28px;display:flex}.waveform-bar{background:linear-gradient(180deg, var(--accent-primary) 0%, #059669 100%);border-radius:3px;width:3px;height:24px;transition:transform .12s;transform:scaleY(.17)}.waveform-container.playing .waveform-bar{animation:.9s ease-in-out infinite alternate waveformBounce}.waveform-container.playing .waveform-bar:nth-child(2n){animation-duration:.7s}.waveform-container.playing .waveform-bar:nth-child(3n){animation-duration:1.1s}.waveform-container.playing .waveform-bar:first-child{animation-delay:-.1s}.waveform-container.playing .waveform-bar:nth-child(2){animation-delay:-.5s}.waveform-container.playing .waveform-bar:nth-child(3){animation-delay:-.3s}.waveform-container.playing .waveform-bar:nth-child(4){animation-delay:-.8s}.waveform-container.playing .waveform-bar:nth-child(5){animation-delay:-.2s}.waveform-container.playing .waveform-bar:nth-child(6){animation-delay:-.6s}.waveform-container.playing .waveform-bar:nth-child(7){animation-delay:-.4s}.waveform-container.playing .waveform-bar:nth-child(8){animation-delay:-.9s}.waveform-container.playing .waveform-bar:nth-child(9){animation-delay:-.15s}.waveform-container.playing .waveform-bar:nth-child(10){animation-delay:-.7s}.animate-spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes waveformBounce{0%{transform:scaleY(.2)}50%{transform:scaleY(.95)}to{transform:scaleY(.4)}}@media (prefers-reduced-motion:reduce){.waveform-container.playing .waveform-bar{animation:none;transform:scaleY(.6)}}@keyframes pulseGlow{0%,to{box-shadow:0 0 12px var(--accent-glow)}50%{box-shadow:0 0 28px var(--accent-glow), 0 0 40px var(--accent-glow)}}.pulse-glow{animation:2.5s ease-in-out infinite pulseGlow}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:.25s ease-out forwards fadeIn}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.slide-up{animation:.3s cubic-bezier(.16,1,.3,1) forwards slideUp}
