@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-full-normal-7BpKI3vF.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-full-normal-YHFkNujK.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-full-normal-CFFu7zhK.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:light;--color-bg: #fff8f0;--color-surface: #ffffff;--color-surface-solid: #ffffff;--color-primary: #6c4cf5;--color-primary-hover: #5a3be0;--color-primary-text: #5a3be0;--color-on-primary: #ffffff;--color-text: #2b2340;--color-text-secondary: #6b6480;--color-border: #ede4da;--color-danger: #e5484d;--color-danger-hover: #cf3a3f;--color-success: #1f9d6b;--color-warning: #d98e04;--color-coral: #ff6b6b;--color-sun: #ffc93c;--color-teal: #2ec4b6;--tint-1: rgba(43, 35, 64, .03);--tint-2: rgba(43, 35, 64, .05);--tint-3: rgba(43, 35, 64, .08);--overlay: rgba(43, 35, 64, .45);--gradient-brand: linear-gradient(135deg, #ff6b6b, #ffb03c, #6c4cf5, #ff6b6b);--page-glow: radial-gradient(60rem 40rem at 0% -10%, rgba(255, 107, 107, .16), transparent 60%), radial-gradient(50rem 36rem at 100% 0%, rgba(46, 196, 182, .16), transparent 60%), radial-gradient(60rem 40rem at 50% 110%, rgba(108, 76, 245, .12), transparent 60%);--speaker-0: #6c4cf5;--speaker-1: #0e9f8e;--speaker-2: #b86e00;--speaker-3: #e5484d;--speaker-4: #b5179e;--speaker-5: #0077b6;--font-display: "Fraunces Variable", "Iowan Old Style", Georgia, serif;--paper: #fffaf2;--paper-edge: #efe2cf;--cinema-bg: #0d0a18;--cinema-text: #ece8ff;--ink: #2b2340;--radius: 12px;--radius-lg: 18px;--shadow: 0 1px 2px rgba(60, 40, 90, .06), 0 2px 6px rgba(60, 40, 90, .05);--shadow-md: 0 4px 16px rgba(60, 40, 90, .1);--shadow-lg: 0 12px 32px rgba(60, 40, 90, .16);--glass: var(--color-surface);--glass-border: var(--color-border);--glass-hover: var(--tint-2)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--color-bg: #15122b;--paper: #221d3f;--paper-edge: #383160;--ink: #f2eeff;--color-surface: #1f1b3a;--color-surface-solid: #1f1b3a;--color-primary: #9b87ff;--color-primary-hover: #b3a3ff;--color-primary-text: #b7a9ff;--color-on-primary: #15122b;--color-text: #f2eeff;--color-text-secondary: #b1aacb;--color-border: #2e2950;--color-danger: #ff7a7f;--color-danger-hover: #ff9a9e;--color-success: #4ade80;--color-warning: #fbbf24;--tint-1: rgba(255, 255, 255, .03);--tint-2: rgba(255, 255, 255, .06);--tint-3: rgba(255, 255, 255, .1);--overlay: rgba(0, 0, 0, .6);--gradient-brand: linear-gradient(135deg, #ff8a8a, #ffc93c, #9b87ff, #ff8a8a);--page-glow: radial-gradient(60rem 40rem at 0% -10%, rgba(255, 107, 107, .14), transparent 60%), radial-gradient(50rem 36rem at 100% 0%, rgba(46, 196, 182, .12), transparent 60%), radial-gradient(60rem 40rem at 50% 110%, rgba(155, 135, 255, .14), transparent 60%);--speaker-0: #a5b4fc;--speaker-1: #34d399;--speaker-2: #fbbf24;--speaker-3: #fb7185;--speaker-4: #e879f9;--speaker-5: #22d3ee;--shadow: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .35);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .45)}}:root[data-theme=dark]{color-scheme:dark;--color-bg: #15122b;--paper: #221d3f;--paper-edge: #383160;--ink: #f2eeff;--color-surface: #1f1b3a;--color-surface-solid: #1f1b3a;--color-primary: #9b87ff;--color-primary-hover: #b3a3ff;--color-primary-text: #b7a9ff;--color-on-primary: #15122b;--color-text: #f2eeff;--color-text-secondary: #b1aacb;--color-border: #2e2950;--color-danger: #ff7a7f;--color-danger-hover: #ff9a9e;--color-success: #4ade80;--color-warning: #fbbf24;--tint-1: rgba(255, 255, 255, .03);--tint-2: rgba(255, 255, 255, .06);--tint-3: rgba(255, 255, 255, .1);--overlay: rgba(0, 0, 0, .6);--gradient-brand: linear-gradient(135deg, #ff8a8a, #ffc93c, #9b87ff, #ff8a8a);--page-glow: radial-gradient(60rem 40rem at 0% -10%, rgba(255, 107, 107, .14), transparent 60%), radial-gradient(50rem 36rem at 100% 0%, rgba(46, 196, 182, .12), transparent 60%), radial-gradient(60rem 40rem at 50% 110%, rgba(155, 135, 255, .14), transparent 60%);--speaker-0: #a5b4fc;--speaker-1: #34d399;--speaker-2: #fbbf24;--speaker-3: #fb7185;--speaker-4: #e879f9;--speaker-5: #22d3ee;--shadow: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .35);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .45)}body{font-family:Nunito Variable,ui-rounded,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--page-glow),var(--color-bg);background-attachment:fixed;color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-variation-settings:"SOFT" 100,"WONK" 1;font-weight:700;letter-spacing:-.01em}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.app{min-height:100vh;display:flex;flex-direction:column;position:relative}.main-content{max-width:1200px;width:100%;margin:0 auto;padding:2rem 1rem;flex:1;position:relative;z-index:1}.loading{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--color-text-secondary);font-size:1.1rem}.navbar{background:color-mix(in srgb,var(--color-bg) 82%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--glass-border);padding:0 1rem;position:sticky;top:0;z-index:100}.navbar-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:56px;position:relative}.navbar-logo{font-size:1.25rem;font-weight:700;color:var(--color-primary);text-decoration:none}.navbar-logo:hover{text-decoration:none}.navbar-left{display:flex;align-items:center;gap:.75rem;min-width:0}.navbar-language-select{padding:.3rem .5rem;border:1px solid var(--glass-border);border-radius:var(--radius);font-size:.85rem;background:var(--glass);color:var(--color-text);cursor:pointer;max-width:130px}.navbar-language-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 20%,transparent)}.navbar-right{display:flex;align-items:center;gap:.5rem}.navbar-user{color:var(--color-text-secondary);font-size:.875rem}.navbar-hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:.5rem;flex-shrink:0}.navbar-hamburger span{display:block;width:22px;height:2px;background:var(--color-text);border-radius:2px;transition:transform .2s ease,opacity .2s ease}.navbar-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.navbar-hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}.navbar-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media(max-width:700px){.navbar-hamburger{display:flex}.navbar-right{display:none;position:absolute;top:56px;left:-1rem;right:-1rem;flex-direction:column;align-items:stretch;gap:0;background:var(--color-surface-solid);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--glass-border);padding:.5rem;z-index:99}.navbar-right.navbar-menu-open{display:flex}.navbar-right .btn{justify-content:flex-start;padding:.75rem 1rem;width:100%;border-radius:var(--radius);font-size:1rem}}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:none;border-radius:var(--radius);font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s,opacity .15s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-on-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-danger{background:var(--color-danger);color:var(--color-on-primary)}.btn-danger:hover:not(:disabled){background:var(--color-danger-hover)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--glass-hover);color:var(--color-text)}.btn-sm{padding:.35rem .75rem;font-size:.8rem}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.35rem;color:var(--color-text)}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.5rem .75rem;border:1px solid var(--glass-border);border-radius:var(--radius);font-size:.9rem;font-family:inherit;background:var(--tint-2);color:var(--color-text);transition:border-color .15s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 15%,transparent)}.form-group textarea{resize:vertical;min-height:80px}.error-message{background:color-mix(in srgb,var(--color-danger) 10%,transparent);color:var(--color-danger);padding:.75rem 1rem;border-radius:var(--radius);font-size:.875rem;margin-bottom:1rem;border:1px solid color-mix(in srgb,var(--color-danger) 20%,transparent)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg)}.login-card{background:var(--glass);border:1px solid var(--glass-border);padding:2rem;border-radius:var(--radius);box-shadow:var(--shadow-md);width:100%;max-width:400px}.login-card h1{text-align:center;margin-bottom:.25rem;color:var(--color-primary);font-size:1.5rem}.login-card .subtitle{text-align:center;color:var(--color-text-secondary);font-size:.875rem;margin-bottom:1.5rem}.login-tabs{display:flex;border-bottom:2px solid var(--glass-border);margin-bottom:1.5rem}.login-tabs button{flex:1;padding:.5rem;background:none;border:none;cursor:pointer;font-size:.9rem;font-weight:500;color:var(--color-text-secondary);border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.login-tabs button.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.login-card .btn{width:100%;justify-content:center;padding:.65rem;font-size:.95rem}.oauth-section{margin-bottom:1.25rem}.oauth-buttons{display:flex;flex-direction:column;gap:.625rem}.btn-oauth{display:inline-flex;align-items:center;justify-content:center;gap:.625rem;width:100%;padding:.6rem 1rem;border:1px solid var(--glass-border);border-radius:var(--radius);font-size:.9rem;font-weight:500;cursor:pointer;text-decoration:none;transition:box-shadow .15s,background .15s}.btn-oauth:hover{text-decoration:none;box-shadow:var(--shadow)}.btn-oauth svg{flex-shrink:0}.btn-google{background:var(--tint-2);color:var(--color-text)}.btn-google:hover{background:var(--tint-3)}.oauth-divider{display:flex;align-items:center;margin-top:1.25rem;gap:.75rem}.oauth-divider:before,.oauth-divider:after{content:"";flex:1;border-top:1px solid var(--glass-border)}.oauth-divider span{font-size:.8rem;color:var(--color-text-secondary);text-transform:lowercase}.dashboard-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.dashboard-header h1{font-size:1.5rem}.story-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.empty-state{text-align:center;padding:3rem 1rem;color:var(--color-text-secondary)}.empty-state p{margin-bottom:1rem}.story-card{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow);transition:box-shadow .15s,transform .15s;position:relative;overflow:hidden;display:flex;flex-direction:column;text-decoration:none;color:inherit}.story-card:hover{box-shadow:var(--shadow-md);background:var(--glass-hover);text-decoration:none}.story-card h3{font-size:1rem;margin-bottom:.35rem}.story-card .description{font-size:.85rem;color:var(--color-text-secondary);margin-bottom:.75rem;flex:1}.story-card-footer{display:flex;align-items:center;justify-content:space-between;font-size:.8rem;color:var(--color-text-secondary)}.status-badge{display:inline-block;padding:.15rem .5rem;border-radius:99px;font-size:.75rem;font-weight:500;text-transform:capitalize}.status-created{background:color-mix(in srgb,var(--color-primary) 15%,transparent);color:var(--color-primary-text)}.status-generating{background:color-mix(in srgb,var(--color-warning) 15%,transparent);color:var(--color-warning)}.status-completed{background:color-mix(in srgb,var(--color-success) 15%,transparent);color:var(--color-success)}.status-failed{background:color-mix(in srgb,var(--color-danger) 15%,transparent);color:var(--color-danger)}.page-card{background:var(--glass);border:1px solid var(--glass-border);padding:1.5rem;border-radius:var(--radius);box-shadow:var(--shadow);max-width:800px}.page-card h1{font-size:1.25rem;margin-bottom:1.25rem}.field-hint{display:block;font-size:.75rem;color:var(--color-text-secondary);margin-top:.25rem;font-style:italic}.config-info{padding:.5rem .75rem;background:var(--tint-1);border-radius:var(--radius);font-size:.875rem;color:var(--color-text-secondary)}.mono-textarea{font-family:SF Mono,Fira Code,Fira Mono,Menlo,monospace;font-size:.8rem;line-height:1.5}.builder-section{background:var(--tint-1);border:1px solid var(--glass-border);border-radius:var(--radius);padding:1rem;margin-bottom:1rem}.form-row{display:flex;gap:1rem}.form-group-half{flex:1}.prompt-preview{font-size:.85rem;line-height:1.6;background:var(--tint-1);border:1px solid var(--glass-border)}.voices-section{margin-bottom:1.25rem}.voices-list{margin-top:.75rem}.voices-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;max-height:400px;overflow-y:auto;padding:.25rem}.voice-card{background:var(--tint-1);border:1px solid var(--glass-border);border-radius:var(--radius);padding:.75rem;font-size:.8rem}.voice-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.35rem}.voice-name{font-weight:600;font-size:.85rem}.voice-category{font-size:.7rem;color:var(--color-text-secondary);text-transform:capitalize}.voice-labels{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.4rem}.voice-label{font-size:.7rem;padding:.1rem .4rem;background:color-mix(in srgb,var(--color-primary) 15%,transparent);color:var(--color-primary-text);border-radius:3px}.voice-audio{width:100%;height:32px;margin-top:.35rem}.form-actions{display:flex;gap:.75rem;margin-top:.5rem}.story-detail-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem;gap:1rem}.story-detail-header h1{font-size:1.5rem;flex:1}.story-meta{display:flex;gap:.75rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}.story-meta .description{color:var(--color-text-secondary);font-size:.9rem;margin-bottom:1rem}.story-actions{display:flex;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}.section-title{font-size:1.1rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--glass-border)}.chapter-list{display:flex;flex-direction:column;gap:.75rem}.chapter-item{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius);overflow:hidden}.chapter-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .1s}.chapter-header:hover{background:var(--glass-hover)}.chapter-header-left{display:flex;align-items:center;gap:.75rem}.chapter-number{width:28px;height:28px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;flex-shrink:0}.chapter-title{font-weight:500;font-size:.9rem}.chapter-header-right{display:flex;align-items:center;gap:.5rem}.expand-icon{font-size:.75rem;color:var(--color-text-secondary);transition:transform .15s}.expand-icon.expanded{transform:rotate(180deg)}.chapter-body{padding:0 1rem 1rem;border-top:1px solid var(--glass-border)}.script-viewer{margin-top:.75rem}.script-loading{color:var(--color-text-secondary);font-size:.85rem;padding:.5rem 0}.script-entry{padding:.4rem 0;font-size:.85rem;line-height:1.5}.script-entry+.script-entry{border-top:1px solid var(--color-border)}.script-dialogue .speaker{font-weight:600;margin-right:.35rem}.script-dialogue .lang-tag{font-size:.7rem;padding:.1rem .35rem;border-radius:3px;background:color-mix(in srgb,var(--color-primary) 15%,transparent);color:var(--color-primary-text);margin-right:.35rem;font-weight:500}.script-dialogue .farsi-text{direction:rtl;font-size:1rem;display:block;margin:.2rem 0;color:var(--color-text)}.script-dialogue .transliteration{font-style:italic;color:var(--color-text-secondary);font-size:.8rem}.script-dialogue .gloss{color:var(--color-text-secondary);font-size:.8rem}.script-toolbar{display:flex;gap:.5rem;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--glass-border)}.edit-entry{background:var(--tint-1);border:1px solid var(--glass-border);border-radius:var(--radius);padding:.5rem;margin:.25rem 0}.edit-row{display:flex;align-items:center;gap:.35rem;margin-bottom:.3rem;flex-wrap:wrap}.edit-row:last-child{margin-bottom:0}.edit-label{font-size:.7rem;font-weight:600;color:var(--color-text-secondary);min-width:50px;flex-shrink:0}.edit-field{padding:.25rem .4rem;border:1px solid var(--glass-border);border-radius:4px;font-size:.8rem;font-family:inherit;background:var(--tint-2);color:var(--color-text);min-width:80px}.edit-field:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 15%,transparent)}.edit-field-wide{flex:1;min-width:200px}.script-scene{font-weight:600;color:var(--color-primary);text-transform:uppercase;font-size:.8rem;letter-spacing:.05em;padding:.5rem 0}.script-pause{color:var(--color-text-secondary);font-style:italic;font-size:.8rem}.script-sfx{color:var(--color-warning);font-weight:500;font-size:.8rem}.script-emotion{font-size:.7rem;color:var(--color-primary-text);margin-left:.35rem}.line-audio-controls{display:inline-flex;gap:.15rem;margin-right:.35rem;vertical-align:middle}.btn-line-audio{background:none;border:1px solid var(--color-border);border-radius:4px;cursor:pointer;font-size:.7rem;padding:.1rem .3rem;color:var(--color-text-secondary);line-height:1}.btn-line-audio:hover{background:var(--color-bg-secondary);color:var(--color-text)}.btn-line-audio.playing{color:var(--color-primary);border-color:var(--color-primary)}.btn-line-audio:disabled{opacity:.5;cursor:not-allowed}.speaker-0{color:var(--speaker-0)}.speaker-1{color:var(--speaker-1)}.speaker-2{color:var(--speaker-2)}.speaker-3{color:var(--speaker-3)}.speaker-4{color:var(--speaker-4)}.speaker-5{color:var(--speaker-5)}.audio-icon{color:var(--color-primary);font-size:.9rem;margin-left:.35rem}.play-story-section{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius);padding:1rem;margin-bottom:1.5rem}.play-story-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.play-story-section .section-title,.play-story-item{margin-bottom:.75rem}.play-story-item:last-child{margin-bottom:0}.play-story-label{display:block;font-size:.85rem;font-weight:500;margin-bottom:.25rem}.audio-player{padding:.5rem .75rem;background:var(--tint-1);border-radius:var(--radius)}.audio-player audio{width:100%;height:36px;font-size:.875rem}.audio-player-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.25rem}.audio-duration{font-size:.8rem;color:var(--color-text-secondary)}.task-progress{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius);padding:1rem;margin-bottom:1rem}.task-progress-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.task-progress-message{font-size:.875rem;color:var(--color-text-secondary)}.progress-bar-track{width:100%;height:8px;background:var(--tint-2);border-radius:99px;overflow:hidden;margin-top:.5rem}.progress-bar-fill{height:100%;background:var(--color-primary);border-radius:99px;transition:width .3s ease}.progress-percent{font-size:.8rem;font-weight:600;color:var(--color-primary)}.progress-bar-pending{opacity:.4;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.2}50%{opacity:.5}}.task-progress-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.5rem}.task-debug{font-size:.75rem;color:var(--color-text-secondary)}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:200}.confirm-dialog{background:var(--color-surface-solid);border:1px solid var(--glass-border);border-radius:var(--radius);padding:1.5rem;max-width:400px;width:90%;box-shadow:var(--shadow-md)}.confirm-dialog p{margin-bottom:1.25rem;font-size:.95rem}.confirm-actions{display:flex;gap:.75rem;justify-content:flex-end}@media(max-width:600px){.main-content{padding:1rem}.dashboard-header{flex-direction:column;gap:.75rem;align-items:stretch}.story-detail-header,.story-actions{flex-direction:column}.story-actions .btn{width:100%;justify-content:center}}.insert-bar{display:flex;justify-content:center;padding:2px 0;min-height:18px}.insert-btn{background:none;border:1px dashed var(--glass-border);border-radius:50%;width:18px;height:18px;font-size:.75rem;line-height:1;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.4;transition:opacity .15s,border-color .15s}.insert-btn:hover{opacity:1;border-color:var(--color-primary);color:var(--color-primary)}.insert-bar-open{gap:.35rem;flex-wrap:wrap;background:color-mix(in srgb,var(--color-primary) 8%,transparent);border-radius:var(--radius);padding:.35rem .5rem;border:1px dashed var(--color-primary)}.btn-delete-entry{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:1.1rem;line-height:1;padding:0 .25rem;margin-left:auto;flex-shrink:0;opacity:.5;transition:opacity .15s,color .15s}.btn-delete-entry:hover{opacity:1;color:var(--color-danger)}.add-entry-section{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;margin-top:.75rem;padding-top:.75rem;border-top:1px dashed var(--glass-border)}.add-entry-label{font-size:.8rem;font-weight:500;color:var(--color-text-secondary)}.upload-label{cursor:pointer}.visibility-controls{display:flex;align-items:center;gap:.5rem}.visibility-select{padding:.35rem .6rem;border:1px solid var(--glass-border);border-radius:var(--radius);font-size:.85rem;background:var(--tint-2);color:var(--color-text);cursor:pointer}.visibility-select:focus{outline:none;border-color:var(--color-primary)}.vote-controls{display:flex;align-items:center;gap:.5rem;background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius);padding:.5rem 1rem;margin-bottom:1rem}.btn-vote{background:none;border:1px solid var(--glass-border);border-radius:4px;padding:.25rem .5rem;cursor:pointer;font-size:.9rem;color:var(--color-text-secondary);transition:color .15s,border-color .15s,background .15s;line-height:1}.btn-vote:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.btn-vote.voted{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-vote:disabled{opacity:.5;cursor:not-allowed}.vote-score{font-weight:600;font-size:1rem;min-width:2rem;text-align:center}.vote-score-inline{font-weight:500;color:var(--color-primary)}.settings-page h1{margin-bottom:1.5rem}.settings-section{margin-bottom:2rem}.settings-section h2{font-size:1.1rem;margin-bottom:.5rem}.settings-description{font-size:.875rem;color:var(--color-text-secondary);margin-bottom:1rem}.api-key-field{margin-bottom:1rem}.api-key-field label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;margin-bottom:.35rem}.api-key-input-row{display:flex;gap:.5rem}.api-key-input-row input{flex:1;padding:.5rem .75rem;border:1px solid var(--glass-border);border-radius:var(--radius);font-size:.9rem;font-family:inherit;background:var(--tint-2);color:var(--color-text)}.api-key-input-row input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 15%,transparent)}.key-status{font-size:.75rem;padding:.1rem .5rem;border-radius:99px;font-weight:500}.key-status-set{background:color-mix(in srgb,var(--color-success) 15%,transparent);color:var(--color-success)}.key-status-missing{background:color-mix(in srgb,var(--color-warning) 15%,transparent);color:var(--color-warning)}.free-tier-info{font-size:.9rem}.free-tier-info p{margin-bottom:.35rem}.success-message{background:color-mix(in srgb,var(--color-success) 10%,transparent);color:var(--color-success);padding:.75rem 1rem;border-radius:var(--radius);font-size:.875rem;margin-bottom:1rem;border:1px solid color-mix(in srgb,var(--color-success) 20%,transparent)}.budget-banner{background:color-mix(in srgb,var(--color-primary) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-primary) 15%,transparent);border-radius:var(--radius);padding:.6rem 1rem;margin-bottom:1rem;font-size:.8rem;color:var(--color-text-secondary)}.budget-banner-exhausted{background:color-mix(in srgb,var(--color-danger) 10%,transparent);border-color:color-mix(in srgb,var(--color-danger) 20%,transparent);color:var(--color-danger)}.budget-banner-text{margin-bottom:.35rem}.budget-progress{width:100%;height:4px;background:var(--tint-2);border-radius:99px;overflow:hidden}.budget-progress-fill{height:100%;background:var(--color-primary);border-radius:99px;transition:width .3s ease}.budget-banner-exhausted .budget-progress-fill{background:var(--color-danger)}.key-status-banner{margin-bottom:1rem;font-size:.85rem}.key-info{display:inline-block;padding:.3rem .75rem;border-radius:var(--radius);font-weight:500}.key-info-own{background:color-mix(in srgb,var(--color-success) 15%,transparent);color:var(--color-success)}.key-info-free{background:color-mix(in srgb,var(--color-primary) 10%,transparent);color:var(--color-primary-text)}.key-info-none{background:color-mix(in srgb,var(--color-danger) 10%,transparent);color:var(--color-danger)}.key-info-none a{color:var(--color-danger);text-decoration:underline}.hero-section{text-align:center;padding:2rem 1rem 1.5rem;margin-bottom:1.5rem}.hero-title{font-size:2rem;margin-bottom:.75rem;background:var(--gradient-brand);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 4s ease-in-out infinite}@keyframes shimmer{0%,to{background-position:0% center}50%{background-position:200% center}}.hero-description{max-width:640px;margin:0 auto 1.5rem;font-size:1rem;line-height:1.7;color:var(--color-text-secondary)}.column-loading{color:var(--color-text-secondary);font-size:.9rem;padding:1rem 0}.info-footer{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--glass-border)}.info-links{display:flex;justify-content:center;gap:.25rem;flex-wrap:wrap}.info-link{background:none;border:none;font-size:.8rem;color:var(--color-text-secondary);cursor:pointer;padding:.4rem .85rem;border-radius:99px;transition:color .15s,background .15s}.info-link{font-family:inherit;line-height:1.2}a.info-link{text-decoration:none}.info-link:hover{color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 8%,transparent)}.info-link-active{color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent);font-weight:500}.info-link+.info-link:before{content:"·";margin-right:.25rem;color:var(--color-text-secondary);pointer-events:none}.info-panel{margin-top:1rem;background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--shadow);animation:info-slide-in .2s ease-out}@keyframes info-slide-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.info-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;border-bottom:1px solid var(--glass-border)}.info-panel-header h3{font-size:.95rem;color:var(--color-text)}.info-panel-close{background:none;border:none;font-size:1.25rem;color:var(--color-text-secondary);cursor:pointer;padding:0 .25rem;line-height:1;transition:color .15s}.info-panel-close:hover{color:var(--color-text)}.info-panel-body{padding:1.25rem;font-size:.875rem;line-height:1.7;color:var(--color-text-secondary)}.info-panel-body p{margin-bottom:.75rem}.info-panel-body p:last-child{margin-bottom:0}.info-panel-body a{color:var(--color-primary);font-weight:500}.info-faq-list dt{font-weight:600;color:var(--color-text);margin-top:1rem;margin-bottom:.25rem}.info-faq-list dt:first-child{margin-top:0}.info-faq-list dd{margin-left:0;margin-bottom:.5rem}.upload-error{background:color-mix(in srgb,var(--color-danger) 10%,transparent);color:var(--color-danger);font-size:.8rem;padding:.4rem .6rem;border-radius:var(--radius);margin-bottom:.5rem;border:1px solid color-mix(in srgb,var(--color-danger) 20%,transparent)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.page-header h1{margin-bottom:0}.worlds-section{margin-bottom:2rem}.worlds-section h2{font-size:1.1rem;margin-bottom:.75rem;color:var(--color-text-secondary)}.worlds-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.world-card{display:block;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1rem;text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s;position:relative;overflow:hidden}.world-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow)}.world-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.world-card-name{font-size:1rem;font-weight:600;margin:0}.world-card-desc{font-size:.85rem;color:var(--color-text-secondary);margin-bottom:.5rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.world-card-meta{display:flex;justify-content:space-between;font-size:.8rem;color:var(--color-text-secondary)}.create-world-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem;margin-bottom:2rem}.create-world-form h2{margin-bottom:1rem}.character-row{display:flex;gap:.5rem;margin-bottom:.5rem;align-items:center;flex-wrap:wrap}.character-name-input{width:140px;flex-shrink:0}.character-desc-input{flex:1;min-width:150px}.character-voice-select{width:180px;flex-shrink:0}.characters-list{display:flex;flex-direction:column;gap:.25rem}.character-item{display:flex;gap:.75rem;padding:.4rem 0;border-bottom:1px solid var(--color-border)}.character-item:last-child{border-bottom:none}.world-section{margin-bottom:1.5rem}.world-voice-summary{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem;margin-bottom:1rem}.world-voice-summary h3{font-size:.95rem;margin-bottom:.5rem}.share-panel{position:absolute;top:calc(100% + .5rem);right:0;z-index:50;width:280px;max-width:90vw;padding:.85rem;background:var(--color-surface-solid);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:.6rem}.share-panel .share-native{width:100%}.share-copy-row{display:flex;gap:.4rem}.share-url-input{flex:1;min-width:0;padding:.4rem .5rem;font-size:.8rem;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.share-channels{display:flex;flex-wrap:wrap;gap:.4rem}.share-channels .btn{flex:1 1 auto}.share-qr{align-self:center;border-radius:var(--radius);background:#fff;padding:6px}.share-embed{display:flex;flex-direction:column;gap:.4rem}.share-embed-code{width:100%;padding:.4rem .5rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;line-height:1.4;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);resize:none}.share-embed-hint{margin:0;font-size:.75rem;color:var(--color-text-secondary)}.story-card:before,.world-card:before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:var(--card-accent, var(--color-primary))}.story-card:nth-child(4n+1),.world-card:nth-child(4n+1){--card-accent: var(--color-coral)}.story-card:nth-child(4n+2),.world-card:nth-child(4n+2){--card-accent: var(--color-sun)}.story-card:nth-child(4n+3),.world-card:nth-child(4n+3){--card-accent: var(--color-teal)}.story-card:nth-child(4n+4),.world-card:nth-child(4n+4){--card-accent: var(--color-primary)}.story-card:hover,.world-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn{font-weight:700;border-radius:999px}.btn-primary{box-shadow:0 2px color-mix(in srgb,var(--color-primary) 55%,#000)}@media(prefers-reduced-motion:reduce){.hero-title{animation:none}.story-card:hover,.world-card:hover{transform:none}}.navbar-logo{font-weight:800;font-size:1.35rem;background:var(--gradient-brand);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.navbar-link{padding:.4rem .8rem;border-radius:999px;font-size:.9rem;font-weight:700;color:var(--color-text-secondary);text-decoration:none}.navbar-link:hover{color:var(--color-text);background:var(--tint-2);text-decoration:none}.navbar-link.active{color:var(--color-primary-text);background:color-mix(in srgb,var(--color-primary) 12%,transparent)}.navbar-cta{margin-left:.25rem}.navbar-user-wrap{position:relative}.navbar-avatar{position:relative;width:36px;height:36px;border-radius:50%;border:none;cursor:pointer;font-family:inherit;font-weight:800;font-size:.95rem;color:#fff;background:linear-gradient(135deg,var(--color-coral),var(--color-primary))}.navbar-avatar-dot{position:absolute;top:0;right:0;width:10px;height:10px;border-radius:50%;background:var(--color-danger);border:2px solid var(--color-bg)}.navbar-user-menu{display:none;position:absolute;right:0;top:calc(100% + 8px);min-width:200px;flex-direction:column;padding:.4rem;background:var(--color-surface-solid);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:110}.navbar-user-menu.open{display:flex}.navbar-user-menu .navbar-user{padding:.5rem .75rem;font-weight:700;color:var(--color-text);border-bottom:1px solid var(--color-border);margin-bottom:.25rem}.navbar-menu-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;border:none;border-radius:calc(var(--radius) - 4px);background:none;font:inherit;font-size:.9rem;text-align:left;color:var(--color-text);cursor:pointer;text-decoration:none}.navbar-menu-item:hover{background:var(--tint-2);text-decoration:none}.navbar-badge{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--color-danger);color:#fff;font-size:.7rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center}@media(max-width:700px){.navbar-link,.navbar-menu-item{padding:.75rem 1rem;font-size:1rem}.navbar-right .navbar-cta{margin:.5rem 0;justify-content:center}.navbar-avatar{display:none}.navbar-user-menu{display:flex;position:static;padding:0;border:none;box-shadow:none;background:none;border-top:1px solid var(--color-border);border-radius:0}}.hero-section{padding:2.5rem 1rem 2rem}.hero-title{font-size:clamp(2rem,5vw,3rem);line-height:1.15}.hero-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.btn-lg{padding:.75rem 1.5rem;font-size:1rem}.home-section{margin-top:2rem}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.section-header h2{font-size:1.35rem}.btn{white-space:nowrap}.section-header-search{flex-wrap:wrap;gap:.75rem 1rem}.section-header-search h2{min-width:0;overflow-wrap:anywhere}.search-box{position:relative;display:flex;align-items:center;flex:0 1 340px;min-width:0}.search-box input{width:100%;margin:0;padding:.55rem 2.2rem .55rem 2.3rem;border-radius:999px;border:1.5px solid var(--glass-border);background:var(--glass);color:var(--color-text);font:inherit;font-size:.95rem}.search-box input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 22%,transparent)}.search-box input::-webkit-search-cancel-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.search-box-icon{position:absolute;left:.8rem;width:1.05rem;height:1.05rem;color:var(--color-text-secondary);pointer-events:none}.search-box-clear{position:absolute;right:.45rem;width:1.6rem;height:1.6rem;border:none;border-radius:50%;background:var(--tint-2);color:var(--color-text-secondary);font-size:1.1rem;line-height:1;cursor:pointer}@media(max-width:520px){.search-box{flex-basis:100%}}.story-card .description{flex:0 0 auto;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.story-card-chips{margin-top:auto;display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.75rem}.lang-chip,.meta-chip{font-size:.75rem;font-weight:700;padding:.15rem .6rem;border-radius:999px}.lang-chip{color:color-mix(in srgb,var(--chip-color) 80%,var(--color-text));background:color-mix(in srgb,var(--chip-color) 16%,transparent)}.meta-chip{color:var(--color-text-secondary);background:var(--tint-2)}.story-card-footer{gap:.75rem}.vote-score-inline{white-space:nowrap;flex-shrink:0}.reach-page .page-header{flex-wrap:wrap;gap:.75rem}.reach-periods{display:inline-flex;flex-wrap:wrap;gap:.25rem;padding:.25rem;background:var(--tint-2);border-radius:999px}.reach-period{border:0;background:transparent;color:var(--color-text-secondary);font:inherit;font-size:.9rem;font-weight:600;padding:.35rem .8rem;border-radius:999px;cursor:pointer}.reach-period.active{background:var(--color-surface);color:var(--color-primary-text);box-shadow:var(--shadow)}.reach-section{margin-bottom:2rem}.reach-section h2{font-size:1.15rem;margin-bottom:.75rem}.reach-note{color:var(--color-text-secondary);font-size:.9rem;margin:-.4rem 0 .75rem}.reach-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem}.reach-stat{display:flex;flex-direction:column;gap:.15rem;background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:1rem 1.1rem;box-shadow:var(--shadow)}.reach-stat-value{font-size:1.9rem;font-weight:800;line-height:1.1;color:var(--color-primary-text)}.reach-stat-label{font-weight:700}.reach-stat-hint{color:var(--color-text-secondary);font-size:.85rem}.reach-list{list-style:none;background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.reach-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;padding:.8rem 1.1rem}.reach-row+.reach-row{border-top:1px solid var(--color-border)}.reach-row-name{font-weight:700;color:var(--color-text);text-decoration:none;min-width:0;overflow-wrap:anywhere}a.reach-row-name:hover{color:var(--color-primary-text)}.reach-row-meta{color:var(--color-text-secondary);font-size:.9rem}.page-header-actions{display:flex;flex-wrap:wrap;gap:.5rem}.story-cover{position:relative;overflow:hidden;background:radial-gradient(60% 90% at 8% 20%,color-mix(in srgb,var(--w1) 38%,transparent),transparent 70%),radial-gradient(50% 80% at 92% 10%,color-mix(in srgb,var(--w4) 34%,transparent),transparent 70%),radial-gradient(60% 90% at 70% 100%,color-mix(in srgb,var(--w2) 34%,transparent),transparent 70%),radial-gradient(40% 70% at 30% 100%,color-mix(in srgb,var(--w5) 26%,transparent),transparent 70%),var(--paper)}.story-cover-motifs,.book-chapter-motifs{position:absolute;top:0;right:0;bottom:0;left:0;background-repeat:no-repeat;background-size:100% 100%;opacity:.85}.story-card-covered{padding-top:0}.story-card-covered:before{display:none}.story-card-cover{height:104px;margin:0 -1.25rem 1rem;border-bottom:1px solid var(--paper-edge)}.world-card .story-card-cover{margin:0 -1rem .9rem}.book-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:1.75rem 1.4rem}@media(max-width:520px){.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem .9rem}}.book-card{display:flex;flex-direction:column;gap:.6rem;color:inherit;text-decoration:none}.book-card:hover{text-decoration:none}.book-card-book{position:relative;aspect-ratio:3 / 4;border-radius:4px 12px 12px 4px;box-shadow:3px 3px 0 -1px var(--paper),3px 3px 0 0 var(--paper-edge),6px 6px 0 -1px var(--paper),6px 6px 0 0 var(--paper-edge),var(--shadow-md);transition:transform .2s ease,box-shadow .2s ease;transform-origin:left center}.book-card:hover .book-card-book,.book-card:focus-visible .book-card-book{transform:translateY(-4px) rotate(-1.2deg)}.book-card-cover{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;overflow:hidden;display:flex;align-items:flex-end}.book-card-cover .story-cover-motifs{opacity:1}.book-card-cover:after{content:"";position:absolute;inset:0 auto 0 0;width:14px;background:linear-gradient(90deg,color-mix(in srgb,var(--ink) 26%,transparent),color-mix(in srgb,var(--ink) 8%,transparent) 55%,color-mix(in srgb,var(--paper) 45%,transparent) 70%,transparent);pointer-events:none}.book-card-plate{position:relative;z-index:1;width:100%;margin:0 .6rem .7rem 1.1rem;padding:.65rem .75rem .6rem;background:color-mix(in srgb,var(--paper) 90%,transparent);border-radius:10px;color:var(--ink)}.book-card-title{font-size:1.05rem;line-height:1.15;margin:0 0 .25rem;color:var(--ink);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.book-card-byline,.book-card-level{font-size:.78rem;margin:0;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-card-level{font-weight:700;color:var(--ink)}.book-card-status{position:absolute;top:.6rem;right:.6rem;z-index:1;font-size:.7rem;background:var(--paper);box-shadow:var(--shadow)}.book-card-details{display:flex;justify-content:space-between;gap:.5rem;font-size:.78rem;color:var(--color-text-secondary);padding:0 .15rem}.book-card-meta{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(prefers-reduced-motion:reduce){.book-card:hover .book-card-book,.book-card:focus-visible .book-card-book{transform:none}}.book{margin:1.5rem auto 2.5rem;max-width:620px}.book-loading{text-align:center;color:var(--color-text-secondary);padding:3rem 0;font-family:var(--font-display);font-style:italic}.book-stage{perspective:1800px;outline:none;touch-action:pan-y;border-radius:6px 18px 18px 6px}.book-stage:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 45%,transparent)}.book-spread{position:relative;aspect-ratio:5 / 6;filter:drop-shadow(0 18px 24px rgba(60,40,90,.18))}.book-sheet{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:6px 18px 18px 6px;background:var(--paper);box-shadow:1px 0 0 var(--paper-edge),3px 2px 0 -1px var(--paper),4px 2px 0 -1px var(--paper-edge),6px 4px 0 -2px var(--paper),7px 4px 0 -2px var(--paper-edge);overflow:hidden;transform-origin:left center;backface-visibility:hidden}.book-sheet:before{content:"";position:absolute;inset:0 auto 0 0;width:34px;background:linear-gradient(90deg,rgba(43,35,64,.14),rgba(43,35,64,.04) 40%,transparent);pointer-events:none;z-index:2}.book-sheet:after{content:"";position:absolute;inset:0 0 auto 0;height:6px;background:linear-gradient(90deg,var(--w1),var(--w2),var(--w3),var(--w4),var(--w5));opacity:.9;z-index:2}.book-leaf{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;transform-origin:left center;transform-style:preserve-3d}.book-face{backface-visibility:hidden;-webkit-backface-visibility:hidden}.book-face-back{transform:rotateY(180deg);transform-origin:center;background:linear-gradient(270deg,color-mix(in srgb,var(--paper-edge) 70%,var(--paper)),var(--paper) 45%)}.book-face-back:after{display:none}.book-leaf-forward{animation:book-turn-forward .65s cubic-bezier(.45,.05,.3,1) forwards}.book-leaf-back{animation:book-turn-back .65s cubic-bezier(.45,.05,.3,1) forwards}@keyframes book-turn-forward{0%{transform:perspective(2200px) rotateY(0)}to{transform:perspective(2200px) rotateY(-179deg)}}@keyframes book-turn-back{0%{transform:perspective(2200px) rotateY(-179deg)}to{transform:perspective(2200px) rotateY(0)}}@media(prefers-reduced-motion:reduce){.book-leaf-forward,.book-leaf-back{animation:none;display:none}}.book-hit{position:absolute;top:0;bottom:0;width:22%;z-index:4;cursor:pointer}.book-hit-prev{left:0;cursor:w-resize}.book-hit-next{right:0;cursor:e-resize}.book-page{position:absolute;top:0;right:0;bottom:0;left:0;padding:2.4rem 2.4rem 2.6rem 3rem;color:var(--ink);display:flex;flex-direction:column;overflow:hidden}.book-folio{position:absolute;bottom:1rem;left:0;right:0;text-align:center;font-family:var(--font-display);font-style:italic;font-size:.85rem;color:var(--color-text-secondary)}.book-page-cover{padding:0}.book-cover-art{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end}.book-cover-art .story-cover-motifs{opacity:1}.book-cover-text{position:relative;z-index:1;margin:0 1.5rem 1.75rem 2rem;padding:1.25rem 1.4rem;background:color-mix(in srgb,var(--paper) 88%,transparent);border-radius:14px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.book-title{font-size:clamp(1.6rem,5vw,2.4rem);line-height:1.1;margin:0 0 .4rem;color:var(--ink)}.book-byline,.book-level{font-size:.95rem;color:var(--color-text-secondary)}.book-level{font-weight:700;color:var(--ink)}.book-page-chapter,.book-page-end{align-items:center;justify-content:center;text-align:center}.book-chapter-motifs{opacity:.5}.book-eyebrow{position:relative;font-variant:small-caps;letter-spacing:.12em;font-weight:800;color:var(--color-text-secondary);margin-bottom:.4rem}.book-chapter-title,.book-the-end{position:relative;font-size:clamp(1.7rem,5.5vw,2.6rem);line-height:1.1;max-width:14ch}.book-the-end{font-style:italic;margin-bottom:1.25rem}.book-end-slot{position:relative;margin-bottom:.75rem}.book-page-text{gap:.9rem;justify-content:center}.book-heading{font-size:1.05rem;font-style:italic;color:var(--color-text-secondary);font-weight:600}.book-narration{font-family:var(--font-display);font-variation-settings:"SOFT" 100;font-size:clamp(1.05rem,2.6vw,1.22rem);line-height:1.55}.book-dropcap:first-letter{float:left;font-size:3.6em;line-height:.85;padding:.08em .1em 0 0;font-weight:800;color:var(--w1);font-variation-settings:"SOFT" 100,"WONK" 1}.book-line{position:relative;padding-left:.9rem;border-left:4px solid color-mix(in srgb,var(--sp) 70%,transparent)}.book-speaker{display:block;font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary)}.book-said{font-size:clamp(1.02rem,2.5vw,1.15rem);line-height:1.45}.book-line-target .book-said{font-family:var(--font-display);font-size:clamp(1.2rem,3.2vw,1.45rem);font-weight:650;background:linear-gradient(transparent 62%,color-mix(in srgb,var(--sp) 30%,transparent) 62%);display:inline;box-decoration-break:clone;-webkit-box-decoration-break:clone}.book-translit{font-size:.9rem;color:var(--color-text-secondary);margin-top:.15rem}.book-gloss{font-family:var(--font-display);font-style:italic;color:var(--color-text-secondary);margin-top:.15rem}.book-controls{display:flex;align-items:center;justify-content:center;gap:.9rem;margin-top:1.4rem}.book-nav{width:44px;height:44px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:1.6rem;line-height:1;cursor:pointer;box-shadow:var(--shadow)}.book-nav:disabled{opacity:.35;cursor:default}.book-play{display:inline-flex;align-items:center;gap:.5rem;height:52px;padding:0 1.4rem 0 1.1rem;border:0;border-radius:999px;background:var(--color-primary);color:var(--color-on-primary);font:inherit;font-weight:800;font-size:1.05rem;cursor:pointer;box-shadow:0 6px 16px color-mix(in srgb,var(--color-primary) 35%,transparent);transition:transform .15s}.book-play:hover{transform:translateY(-1px) scale(1.02)}.book-play svg{width:24px;height:24px;fill:currentColor}.book-play.playing svg{animation:book-bob 1.6s ease-in-out infinite}@keyframes book-bob{50%{transform:scale(.88)}}.book-counter{min-width:4.5rem;text-align:center;font-family:var(--font-display);font-style:italic;color:var(--color-text-secondary)}@media(max-width:520px){.book-spread{aspect-ratio:4 / 6}.book-page{padding:1.8rem 1.4rem 2.4rem 1.9rem}}.story-tabs{display:flex;gap:.25rem;margin:0 0 1.25rem;border-bottom:1px solid var(--color-border)}.story-tab{border:0;background:none;font:inherit;font-weight:700;color:var(--color-text-secondary);padding:.6rem 1rem;margin-bottom:-1px;border-bottom:3px solid transparent;cursor:pointer}.story-tab:hover{color:var(--color-text)}.story-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.story-tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:6px 6px 0 0}.story-plot{margin-bottom:2rem}.story-plot .description{color:var(--color-text);line-height:1.6;white-space:pre-line}.book-placeholder{text-align:center;color:var(--color-text-secondary);padding:3rem 0;font-family:var(--font-display);font-style:italic}.book-scrub{display:flex;align-items:center;gap:.6rem;margin:.9rem auto 0;max-width:520px}.book-seek{flex:1;min-width:0;accent-color:var(--color-primary);cursor:pointer}.book-time{font-variant-numeric:tabular-nums;font-size:.85rem;color:var(--color-text-secondary);min-width:2.6rem;text-align:center}.book-skip{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:999px;padding:.3rem .65rem;font:inherit;font-size:.8rem;font-weight:700;cursor:pointer;white-space:nowrap}.book-skip:hover{border-color:var(--color-primary)}.book-cinema-toggle svg{width:20px;height:20px;vertical-align:middle}.book-cinema-toggle.active{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.book-cinema{--cinema-w: min(100%, 860px, calc((100dvh - 190px) * 5 / 6));position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;max-width:none;margin:0;padding:1.25rem 1rem;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--cinema-bg);overflow:hidden;animation:book-cinema-in .3s ease}.main-content:has(.book-cinema){z-index:auto}.book-cinema .book-stage,.book-cinema .book-controls,.book-cinema .book-scrub{width:var(--cinema-w);max-width:none}.book-cinema .book-spread{filter:drop-shadow(0 24px 48px rgba(0,0,0,.55))}.book-cinema .book-counter,.book-cinema .book-time{color:var(--cinema-text)}.book-cinema-close{position:absolute;top:.75rem;right:.9rem;width:44px;height:44px;border:0;border-radius:50%;background:color-mix(in srgb,var(--cinema-text) 14%,transparent);color:var(--cinema-text);font-size:1.7rem;line-height:1;cursor:pointer}.book-cinema-close:hover{background:color-mix(in srgb,var(--cinema-text) 24%,transparent)}@keyframes book-cinema-in{0%{opacity:0}}@media(max-width:520px){.book-cinema{--cinema-w: min(100%, calc((100dvh - 250px) * 4 / 6));padding-top:3.75rem}.book-scrub{gap:.4rem}.book-time{min-width:2.2rem;font-size:.78rem}}@media(prefers-reduced-motion:reduce){.book-cinema{animation:none}}.embed{--embed-w: min(100%, 620px, calc((100dvh - 190px) * 5 / 6));min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:.6rem .75rem;overflow:hidden}.embed-header,.embed-footer{width:var(--embed-w);display:flex;align-items:baseline;gap:.6rem;min-width:0;font-size:.85rem}.embed-brand{flex:none;font-family:var(--font-display);font-weight:700;color:var(--color-primary);text-decoration:none}.embed-title{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:700;color:var(--color-text);text-decoration:none}.embed-author{font-weight:400;color:var(--color-text-secondary)}.embed-footer{justify-content:space-between;font-size:.78rem;color:var(--color-text-secondary)}.embed-footer a{flex:none;white-space:nowrap}.embed-footer span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.book-embed{align-self:stretch;display:flex;flex-direction:column;align-items:center;margin:0;max-width:none}.book-embed .book-stage{width:var(--embed-w)}.book-embed .book-controls,.book-embed .book-scrub{width:min(100%,max(var(--embed-w),360px));max-width:none}.book-embed .book-controls{margin-top:.8rem}.embed-missing{gap:1rem;text-align:center;color:var(--color-text-secondary)}@media(max-width:520px){.embed{--embed-w: min(100%, calc((100dvh - 200px) * 4 / 6))}}.js .seo-static{display:none}.seo-static{max-width:680px;margin:2rem auto;padding:0 1rem}.seo-static .seo-meta{color:var(--color-text-secondary)}.legal-page{max-width:720px;margin:0 auto;line-height:1.65}.legal-page h1{font-family:var(--font-display);margin-bottom:.25rem}.legal-page h2{font-family:var(--font-display);font-size:1.2rem;margin:1.75rem 0 .5rem}.legal-page ul{padding-left:1.25rem}.legal-page li{margin-bottom:.4rem}.legal-updated{font-size:.85rem;color:var(--color-text-secondary)}.login-legal{margin-top:1.25rem;font-size:.8rem;line-height:1.5;color:var(--color-text-secondary);text-align:center}.settings-danger{border-top:1px solid color-mix(in srgb,var(--color-danger) 35%,transparent);padding-top:1.25rem}.settings-danger h2{color:var(--color-danger)}.settings-danger-actions{display:flex;gap:.5rem;flex-wrap:wrap}.notice-banner{margin-bottom:1rem;padding:.75rem 1rem;border-radius:var(--radius);background:color-mix(in srgb,var(--color-primary) 10%,transparent);color:var(--color-text);font-size:.9rem}.api-token-scopes{border:1px solid var(--color-border);border-radius:8px;padding:.5rem .75rem;margin:0 0 1rem;display:grid;gap:.35rem}.api-token-scopes legend{padding:0 .25rem;font-weight:600}.api-token-created{border:1px solid var(--color-border);background:color-mix(in srgb,var(--color-success) 10%,transparent);border-radius:8px;padding:.75rem 1rem;margin-bottom:1rem}.api-token-value{display:flex;gap:.5rem;align-items:center;margin:.5rem 0}.api-token-value code{flex:1;min-width:0;overflow-wrap:anywhere;font-size:.85rem}.api-token-list{list-style:none;padding:0;margin:1rem 0 0}.api-token-list li{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--color-border)}.api-token-inactive{opacity:.6}.api-token-scopes .checkbox-label{display:flex;align-items:center;gap:.5rem;font-weight:400}
