.gallery-btn{border:1px solid var(--muted);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:.5rem;transition:border-color .15s,color .15s,background .15s;display:flex}.gallery-btn:hover{border-color:var(--accent);color:var(--accent);background:#2a2f44}.gallery-overlay{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a0c12e0;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gallery-backdrop{cursor:default;background:0 0;border:none;position:absolute;inset:0}.gallery-modal{flex-direction:column;align-items:center;gap:1rem;max-width:min(92vw,900px);display:flex;position:relative}.gallery-image{object-fit:contain;border-radius:10px;max-width:100%;max-height:70vh;display:block;box-shadow:0 24px 64px #0009}.gallery-nav{align-items:center;gap:1.5rem;display:flex}.gallery-nav button{font:inherit;border:1px solid var(--muted);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;padding:.4rem .9rem;font-size:1.25rem;transition:border-color .15s,background .15s}.gallery-nav button:hover{border-color:var(--accent);background:#2a2f44}.gallery-counter{color:var(--muted);text-align:center;min-width:4rem;font-size:.9rem}.gallery-close{font:inherit;border:1px solid var(--muted);color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;padding:.3rem .7rem;font-size:1rem;transition:border-color .15s,color .15s;position:absolute;top:-2.5rem;right:0}.gallery-close:hover{border-color:var(--incorrect);color:var(--incorrect)}.story-practice__eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--story-practice-accent);margin:0 0 .4rem;font-family:system-ui,sans-serif;font-size:.78rem}.story-practice__lede{color:var(--story-practice-soft);margin:1.1rem 0 0;font-size:1.15em;font-style:italic}.story-practice__rule{border:0;border-top:1px solid var(--story-practice-rule);margin:2.5rem 0}.story-practice__heading{margin:0 0 1.1rem;font-size:1.7rem;font-weight:700;line-height:1.2}.story-practice__subheading{margin:0 0 .4rem;font-size:1.2rem;font-weight:700}.story-practice__paragraph{margin:0 0 .75rem}.story-practice__button{border:1px solid var(--story-practice-ink);background:var(--story-practice-ink);color:#faf8f2;min-height:3.1rem;font:inherit;cursor:pointer;border-radius:8px;padding:0 1.8rem;font-size:1rem;font-weight:700;transition:background .15s,transform .15s}.story-practice__button:hover:not(:disabled){border-color:var(--story-practice-accent);background:var(--story-practice-accent);transform:translateY(-2px)}.story-practice__choice{border:2px solid var(--story-practice-rule);color:var(--story-practice-ink);font:inherit;cursor:pointer;background:#fdf9f3;border-radius:10px;transition:border-color .12s,background .12s,transform .12s}.story-practice__choice:hover:not(:disabled):not(.story-practice__choice--wrong){border-color:var(--story-practice-ink);transform:translateY(-1px)}.story-practice__choice--selected{color:#3b6fa0;background:#3b6fa014;border-color:#3b6fa0}.story-practice__choice--wrong{color:#c0392b;cursor:default;background:#c0392b14;border-color:#c0392b}.story-practice__choice--correct{color:#27ae60;cursor:default;background:#27ae601f;border-color:#27ae60}.story-practice__match-columns{gap:1.25rem;display:flex}.story-practice__match-column{flex-direction:column;flex:1;gap:.85rem;display:flex}.story-practice__match-item{text-align:center;padding:.85rem 1.25rem;font-size:1.1rem;font-weight:600}@keyframes story-practice-match-correct{0%{color:#27ae60;background:#27ae6024;border-color:#27ae60}to{border-color:var(--story-practice-rule);color:var(--story-practice-faint);background:#221c140a}}.story-practice__match-item--matched{cursor:default;animation:.55s forwards story-practice-match-correct}.story-recap,.story-completion{--story-practice-ink:#221c14;--story-practice-soft:#5a5147;--story-practice-faint:#8a8174;--story-practice-accent:#b04a32;--story-practice-rule:#221c1424;color:var(--story-practice-ink);background:#faf8f2f7;border-radius:14px;padding:clamp(1.75rem,4vw,2.75rem);font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif;box-shadow:0 18px 50px #00000059}.story-recap__list{margin-top:1.5rem}.story-recap__exercise{border-top:1px solid var(--story-practice-rule);padding:1.25rem 0}.story-recap__exercise:first-child{border-top:0;padding-top:0}.story-recap__exercise-head{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem;display:flex}.story-recap__exercise-head p{color:var(--story-practice-soft);margin:.2rem 0 0;font-style:italic}.story-recap__done-badge{color:var(--story-practice-accent);letter-spacing:.08em;text-transform:uppercase;flex:none;font-size:.78rem;font-weight:700}.story-recap__prompt{margin:0 0 1rem;font-size:1.1rem}.story-recap__blank{border-bottom:2px solid var(--story-practice-accent);color:#0000;min-width:4.5rem;margin:0 .3rem;display:inline-block}.story-recap__error p{color:#a8402c;margin:0 0 1rem}.story-recap__actions,.story-completion__actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.5rem;display:flex}.story-recap__actions--end{justify-content:flex-end}.story-completion__preview{border:1px solid var(--story-practice-rule);cursor:pointer;background:0 0;border-radius:8px;width:min(100%,30rem);margin-top:.5rem;padding:0;display:block;overflow:hidden}.story-completion__preview img{aspect-ratio:16/9;object-fit:cover;width:100%;display:block}.story-completion__feedback{flex-direction:column;gap:.75rem;margin-top:1.5rem;display:flex}.story-completion__feedback-options{flex-wrap:wrap;gap:.75rem;margin-top:1.25rem;display:flex}.story-completion__feedback-option{min-height:2.75rem;padding:.65rem 1rem;font-size:1.05rem;font-weight:700}.story-completion__note{border:2px solid var(--story-practice-rule);width:100%;color:var(--story-practice-ink);font:inherit;resize:vertical;background:#fdf9f3;border-radius:8px;padding:.6rem .75rem}.story-completion__note:focus{border-color:var(--story-practice-accent);outline:none}.menu{isolation:isolate;width:min(100%,1080px);min-height:100vh;color:var(--text);flex-direction:column;flex:1;gap:1.25rem;margin:0 auto;padding:3rem 1.5rem;display:flex;position:relative}.menu:before{content:"";z-index:-1;background:linear-gradient(#0a0c126b, #0a0c129e 54%, #0a0c12e6), var(--menu-hero-image) center / cover;position:fixed;inset:0}.lesson-hero{text-align:center;justify-content:center;align-items:center;min-height:clamp(360px,58vh,620px);padding:clamp(3rem,12vh,7rem) 1rem clamp(1.5rem,5vh,3rem);display:flex}.lesson-hero__content{flex-direction:column;align-items:center;width:min(100%,520px);display:flex}.lesson-hero h1{color:#f4fbef;text-shadow:0 4px 28px #000000d1;max-width:12ch;margin:0;font-size:clamp(3rem,8vw,6.5rem);font-weight:750;line-height:.96}.lesson-hero__actions{flex-wrap:wrap;justify-content:center;gap:.85rem;margin-top:2rem;display:flex}.lesson-hero__start{color:#102016;min-height:3.2rem;font:inherit;cursor:pointer;background:#f4fbef;border:1px solid #f4fbefd6;border-radius:8px;padding:0 1.55rem;font-size:1rem;font-weight:750;transition:background .15s,border-color .15s,transform .15s;box-shadow:0 14px 36px #00000047}.lesson-hero__start:hover{background:#91e6af;border-color:#91e6af;transform:translateY(-2px)}.lesson-hero__start--secondary{color:#f4fbef;background:0 0}.lesson-hero__start--secondary:hover{background:#f4fbef24;border-color:#f4fbefd6}.lesson-hero__start--making{cursor:progress;animation:1.6s ease-in-out infinite lesson-hero-making}.lesson-hero__start--making:hover{background:0 0;transform:none}@keyframes lesson-hero-making{0%,to{opacity:.45}50%{opacity:.8}}@media (prefers-reduced-motion:reduce){.lesson-hero__start--making{opacity:.55;animation:none}}.menu__settings{color:var(--muted);justify-content:flex-end;align-items:center;gap:.5rem;font-size:.85rem;display:flex;position:absolute;top:1.25rem;right:1.5rem}.menu__language-select select{color:#f4fbef;min-height:2.5rem;font:inherit;background:#0a0c12b8;border:1px solid #f4fbef73;border-radius:8px;padding:0 2rem 0 .8rem}.menu__settings select{background:var(--surface);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:.25rem .5rem;font-size:.85rem}.menu__settings-button{border:1px solid color-mix(in srgb, var(--muted) 65%, transparent);color:var(--text);font:inherit;cursor:pointer;background:#181c27b8;border-radius:999px;padding:.45rem .75rem;position:static}.menu__settings-button:hover{background:#91e6af29;border-color:#91e6af}.settings-panel{z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#07090fc7;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.settings-panel__card{border:1px solid var(--border);background:var(--surface);border-radius:12px;width:min(100%,900px);max-height:min(90vh,800px);padding:1.5rem;overflow:auto;box-shadow:0 24px 80px #00000073}.settings-panel__header,.settings-panel__footer,.settings-panel__models{justify-content:space-between;align-items:center;gap:1rem;display:flex}.settings-panel__models{grid-template-columns:minmax(0,1.65fr) repeat(2,minmax(0,1fr));align-items:stretch;margin:1.25rem 0;display:grid}.settings-panel__models label,.settings-panel__card>label{color:var(--text);flex:1;gap:.4rem;font-weight:600;display:grid}.settings-panel__card select,.settings-panel__card textarea{box-sizing:border-box;border:1px solid var(--border);width:100%;color:var(--text);font:inherit;background:#07090f80;border-radius:6px;transition:border-color .15s,box-shadow .15s}.settings-panel__card select:focus-visible,.settings-panel__card textarea:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent);outline:none}.settings-panel__card select{padding:.55rem}.settings-panel__card textarea{resize:vertical;scrollbar-width:thin;scrollbar-color:var(--muted) transparent;min-height:5rem;margin-bottom:1rem;padding:.65rem;line-height:1.45}.settings-panel__card textarea.settings-panel__textarea--list{min-height:9rem}.settings-panel__close{border:1px solid color-mix(in srgb, var(--muted) 65%, transparent);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:.35rem .85rem;font-size:.85rem;transition:background .15s,border-color .15s,color .15s}.settings-panel__close:hover{color:var(--text);background:#91e6af29;border-color:#91e6af}.settings-panel__hint{color:var(--muted);margin-top:-.5rem;font-size:.9rem}.settings-panel__footer{justify-content:flex-end;margin-top:.5rem}@media (width<=760px){.settings-panel__models{grid-template-columns:1fr}}.menu__prompt{text-align:center;color:var(--muted);margin-bottom:2rem}.menu__grid{flex-wrap:wrap;justify-content:center;gap:2rem;display:flex}.genre-circle{--genre-color:var(--accent);background:linear-gradient(to top, #000000a6 0%, transparent 55%), var(--genre-image,var(--surface)) top right / cover;width:180px;height:180px;color:var(--text);cursor:pointer;font:inherit;border:2px solid #ffffff26;border-radius:50%;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:.75rem;transition:transform .15s,box-shadow .15s;display:flex;overflow:hidden}.genre-circle:hover{box-shadow:0 0 0 4px color-mix(in srgb, var(--genre-color) 25%, transparent);transform:translateY(-4px)}.genre-circle__label{color:#fff;text-transform:uppercase;letter-spacing:.05em;text-shadow:0 1px 4px #000c;z-index:1;font-size:.85rem;font-weight:600;position:relative}.saved-stories{text-shadow:0 2px 14px #000000c2;margin-top:auto;padding-top:1.25rem}.saved-stories h2{margin:0 0 1rem;font-size:1.1rem;font-weight:600}.saved-stories__empty{color:var(--muted);margin:0}.saved-stories__list{flex-direction:column;gap:.85rem;display:flex}.saved-story{border:1px solid color-mix(in srgb, var(--muted) 45%, transparent);-webkit-backdrop-filter:blur(12px)saturate(120%);backdrop-filter:blur(12px)saturate(120%);background:#181c27b8;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem;display:grid}@media (width<=720px){.lesson-hero{min-height:clamp(360px,55vh,520px);padding-inline:0}.lesson-hero h1{max-width:11ch}.lesson-hero__start{width:100%}.saved-story{grid-template-columns:1fr}.saved-story__actions{width:100%}.saved-story__actions button{flex:1}}.saved-story h3{color:var(--text);margin:0;font-size:1rem;font-weight:600}.saved-story__meta,.saved-story__preview{color:var(--muted);margin:.35rem 0 0;line-height:1.5}.saved-story__meta{font-size:.78rem}.saved-story__preview{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:.88rem;display:-webkit-box;overflow:hidden}.saved-story__actions{gap:.5rem;display:flex}.saved-story__actions button{font:inherit;border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:8px;padding:.55rem .8rem;font-weight:600}.saved-story__actions button:hover{background:#7aa2f71f}.saved-story__actions .saved-story__delete{border-color:var(--incorrect);color:var(--incorrect)}.saved-story__actions .saved-story__delete:hover{background:var(--incorrect-bg)}:root{--bg:#1a1b26;--surface:#24283b;--text:#c0caf5;--muted:#565f89;--pending:#565f89;--correct:#9ece6a;--incorrect:#f7768e;--incorrect-bg:#f7768e2e;--accent:#7aa2f7;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:ui-monospace,SF Mono,Cascadia Code,Fira Code,Menlo,Consolas,monospace}*{box-sizing:border-box}body{color:#221c14;background:#faf8f2;min-height:100vh;margin:0}.app{z-index:1;width:100%;min-height:100vh;padding:0;position:relative}.story-header{z-index:1;width:min(100%,920px);color:var(--text);text-shadow:0 2px 18px #000000d9;margin:0 auto 1.5rem;padding:2rem 1.5rem 0;position:relative}.story-header h1{margin:0;font-size:1.5rem;font-weight:600}.subtitle{color:var(--accent);margin:.25rem 0 0;font-size:1rem}.story-header,.story{z-index:1;position:relative}.story-background{z-index:0;pointer-events:none;background-image:linear-gradient(#0a0c1275, #0a0c12ad), var(--background-url);background-position:50%;background-size:cover;position:fixed;inset:0}.story-background--current{opacity:1}.story-background--current.story-background--fading{animation:1.2s forwards story-background-fade}@keyframes story-background-fade{0%{opacity:0}to{opacity:1}}.passage{background:var(--surface);letter-spacing:.02em;cursor:text;white-space:pre-wrap;overflow-wrap:break-word;border-radius:12px;padding:1.75rem;font-size:1.4rem;line-height:2.1rem;display:block;position:relative}.char{color:var(--pending);border-radius:2px;transition:color 50ms}.char--correct{color:var(--correct)}.char--incorrect{color:var(--incorrect);background:var(--incorrect-bg)}.char--current{color:var(--text);border-left:2px solid var(--accent);margin-left:-2px;animation:1s step-end infinite blink}@keyframes blink{50%{border-color:#0000}}.hidden-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;top:0;left:0}.completion{border:1px solid var(--correct);color:var(--correct);background:#9ece6a1f;border-radius:8px;margin-top:1.25rem;padding:1rem 1.25rem}.controls{flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;display:flex}.controls button{font:inherit;border:1px solid var(--muted);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;padding:.6rem 1.4rem;font-weight:600;transition:border-color .15s,background .15s}.controls button:hover{border-color:var(--accent);background:#2a2f44}.language-chat-assistant{z-index:90;pointer-events:none;align-items:flex-end;gap:.9rem;display:flex;position:fixed;bottom:1.4rem;right:1.75rem}.language-chat-assistant--open{z-index:120}.language-bot-character{cursor:pointer;pointer-events:auto;filter:drop-shadow(0 20px 28px #00000075);background:0 0;border:0;order:2;justify-content:center;align-items:flex-end;width:7.8rem;height:9.5rem;padding:0;transition:transform .18s,filter .18s;display:flex;position:relative}.language-bot-character:hover{filter:drop-shadow(0 24px 34px #0000008a);transform:translateY(-4px)}.language-bot-character:active{transform:translateY(-1px)scale(.99)}.language-bot-character img{object-fit:contain;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.language-chat-panel{pointer-events:auto;color:#43392a;background:linear-gradient(#faf4e7 0%,#f2e7d2 100%);border:1px solid #78603a47;border-radius:18px;flex-direction:column;order:1;width:min(42vw,400px);min-width:330px;max-height:min(78vh,660px);margin-bottom:1.2rem;animation:.18s ease-out language-chat-rise;display:flex;position:relative;overflow:hidden;box-shadow:0 26px 70px #2e221052,inset 0 1px #fff9}.language-chat-panel:after{content:"";background:#f3e8d3;border-top:1px solid #78603a47;border-right:1px solid #78603a47;width:.9rem;height:.9rem;position:absolute;bottom:4.5rem;right:-.46rem;transform:rotate(45deg)}@keyframes language-chat-rise{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.language-chat-header{background:linear-gradient(#fffcf5b3,#f4e9d500);border-bottom:1px solid #78603a2e;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 1.1rem .85rem;display:flex}.language-chat-title{align-items:center;gap:.8rem;min-width:0;display:flex}.language-chat-title h2{color:#3c3220;margin:0;font-size:1rem;font-weight:700}.language-chat-title p{color:#8c7c61;margin:.18rem 0 0;font-size:.78rem;line-height:1.35}.language-chat-avatar{background:#fffcf4b3;border:1px solid #78603a47;border-radius:10px;flex:none;justify-content:center;align-items:center;width:2.45rem;height:2.45rem;display:inline-flex;overflow:hidden;box-shadow:inset 0 1px #ffffffb3}.language-chat-avatar img{object-fit:contain;width:130%;height:130%;transform:translateY(.35rem)}.language-chat-close{color:#8c7c61;width:2rem;height:2rem;font:inherit;cursor:pointer;background:#fffcf480;border:1px solid #78603a38;border-radius:8px;flex:none;padding:0;transition:border-color .15s,color .15s,background .15s}.language-chat-close:hover{color:#c0613f;background:#c0613f1f;border-color:#c0613f}.language-chat-toolbar{border-bottom:1px solid #78603a24;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1.1rem;display:flex}.language-chat-model{align-items:center;gap:.4rem;display:inline-flex}.language-chat-model-label{color:#8c7c61;text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:700}.language-chat-model select{font:inherit;color:#5b4f3a;cursor:pointer;background:#7a603814;border:1px solid #78603a33;border-radius:8px;padding:.3rem .5rem;font-size:.78rem;font-weight:600}.language-chat-toggle{background:#7a603814;border:1px solid #78603a33;border-radius:9px;padding:.18rem;display:inline-flex}.language-chat-toggle button{font:inherit;color:#8c7c61;cursor:pointer;background:0 0;border:0;border-radius:7px;min-width:2.4rem;padding:.36rem .55rem;font-size:.78rem;font-weight:700;transition:background .15s,color .15s}.language-chat-toggle button[data-active=true]{color:#f7f1e3;background:#5f7d3a;box-shadow:0 1px 4px #3c501e4d}.language-chat-log{flex-direction:column;flex:auto;gap:.75rem;min-height:15rem;padding:1rem 1.1rem;display:flex;overflow-y:auto}.language-chat-empty{text-align:center;color:#6f6048;max-width:24rem;margin:auto;line-height:1.5}.language-chat-empty p{margin:0 0 .85rem}.language-chat-message{white-space:pre-wrap;overflow-wrap:break-word;border-radius:14px;max-width:82%;padding:.75rem .9rem;line-height:1.5;box-shadow:0 1px 3px #2e221014}.language-chat-message--user{color:#f7f1e3;background:#5f7d3a;border:1px solid #56712f;border-bottom-right-radius:5px;align-self:flex-end}.language-chat-message--assistant{color:#43392a;background:#fffdf7d9;border:1px solid #78603a38;border-bottom-left-radius:5px;align-self:flex-start}.language-chat-message--thinking{color:#8c7c61;font-style:italic}.language-chat-error{color:#a64a2a;background:#c0613f1f;border:1px solid #c0613f80;border-radius:10px;margin:0 1.1rem .75rem;padding:.65rem .75rem;font-size:.82rem}.language-chat-form{background:#7a60380f;border-top:1px solid #78603a29;grid-template-columns:1fr auto;gap:.75rem;padding:.85rem 1.1rem 1rem;display:grid}.language-chat-form textarea{resize:vertical;color:#43392a;width:100%;min-width:0;font:inherit;background:#fffdf7e6;border:1px solid #78603a47;border-radius:10px;padding:.75rem .85rem;line-height:1.45}.language-chat-form textarea::placeholder{color:#a8997d}.language-chat-form textarea:focus{border-color:#5f7d3a;outline:none;box-shadow:0 0 0 3px #5f7d3a2e}.language-chat-form button{font:inherit;color:#f7f1e3;cursor:pointer;background:#5f7d3a;border:1px solid #56712f;border-radius:10px;align-self:end;padding:.65rem 1.1rem;font-weight:700;transition:background .15s,transform .12s}.language-chat-form button:hover:not(:disabled){background:#6d8e44;transform:translateY(-1px)}.language-chat-form button:disabled{opacity:.45;cursor:not-allowed}.story__intro{white-space:pre-wrap;-webkit-backdrop-filter:blur(12px)saturate(120%);backdrop-filter:blur(12px)saturate(120%);background:var(--story-panel);border-left:3px solid var(--muted);color:#a9b4d6;border-radius:10px;margin:0 0 1.25rem;padding:.85rem 1.1rem;line-height:1.6;box-shadow:0 12px 34px #00000040}.story{--story-panel:#141722bd;--story-panel-strong:#141722db;--story-panel-solid:#141722f0;--story-border:#c0caf529;width:min(100%,920px);color:var(--text);margin:0 auto;padding:0 1.5rem 3rem}.story:before{content:"";z-index:-1;background:var(--bg);position:fixed;inset:0}.app--story-has-background .story:before{display:none}.story__log{flex-direction:column;gap:.75rem;margin-bottom:1.5rem;display:flex}.story__current,.story__streaming{border:1px solid var(--story-border);background:var(--story-panel);-webkit-backdrop-filter:blur(14px)saturate(125%);backdrop-filter:blur(14px)saturate(125%);border-radius:12px;padding:1.15rem;box-shadow:0 18px 50px #00000059}.segment{white-space:pre-wrap;-webkit-backdrop-filter:blur(12px)saturate(120%);backdrop-filter:blur(12px)saturate(120%);border-radius:10px;margin:0;padding:.85rem 1.1rem;line-height:1.6;box-shadow:0 12px 34px #00000040}.segment--ai{background:var(--story-panel);border-left:3px solid var(--accent)}.segment__speak{vertical-align:middle;width:1.6rem;height:1.6rem;color:var(--accent);border:1px solid var(--story-border);cursor:pointer;background:#ffffff0f;border-radius:999px;justify-content:center;align-items:center;margin-left:.5rem;padding:0;font-size:.85rem;line-height:1;transition:background .15s,transform .15s;display:inline-flex}.segment__speak:hover:not(:disabled){background:#ffffff24;transform:scale(1.08)}.segment__speak:disabled{cursor:default;opacity:.6}.segment__speak[data-status=playing]{background:var(--accent);color:#0b0f1a}.segment__speak[data-status=error]{color:#f3a4a4;border-color:#f3a4a4}.segment--user{border-left:3px solid var(--correct);color:var(--correct);background:#283b2cb8}.story__reading{border:1px solid var(--story-border);background:var(--story-panel);-webkit-backdrop-filter:blur(14px)saturate(125%);backdrop-filter:blur(14px)saturate(125%);border-radius:12px;padding:1.15rem;box-shadow:0 18px 50px #00000059}.story__reading-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.story__reading-progress{color:#a9b4e5;margin:0;font-size:.85rem}.story__reading-text{white-space:pre-wrap;color:var(--text);margin:0;font-size:1.2rem;line-height:1.75}.story__reading-actions{justify-content:flex-end;margin-top:1rem;display:flex}.story__reading-next{border:1px solid var(--accent);background:var(--accent);color:#0b0f1a;cursor:pointer;font:inherit;border-radius:8px;padding:.65rem .9rem;font-weight:700;transition:filter .15s,transform .15s}.story__reading-next:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.story__reading-next:disabled{cursor:default;opacity:.55}.story__word{cursor:help;text-decoration-line:underline;text-decoration-style:dotted;-webkit-text-decoration-color:var(--muted);text-decoration-color:var(--muted);font:inherit;color:inherit;background:0 0;border:none;padding:0;position:relative}.story__word-popover{background:var(--surface);border:1px solid var(--story-border);color:var(--text);white-space:nowrap;z-index:20;pointer-events:auto;border-radius:6px;align-items:center;gap:6px;padding:4px 8px;font-size:.85rem;display:flex;position:fixed;transform:translate(-50%)translateY(calc(-100% - 8px))}.story__word-popover__regenerate{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:0 2px;font-size:1rem;line-height:1}.story__word-popover__regenerate:hover{color:var(--text)}.story__word-popover__regenerate:disabled{opacity:.4;cursor:default}.story__current-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.story__hint{color:#a9b4e5;margin:0;font-size:.85rem}.story__opening-audio-group{align-items:center;gap:.6rem;width:100%;min-width:0;margin-top:1rem;display:flex}.story__opening-audio{width:1.9rem;height:1.9rem;font:inherit;color:var(--accent);border:1px solid var(--story-border);cursor:pointer;background:#ffffff0f;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0;font-size:.85rem;line-height:1;transition:background .15s,transform .15s;display:inline-flex}.story__opening-audio:hover:not(:disabled){background:#ffffff24;transform:scale(1.08)}.story__opening-audio:disabled{cursor:default;opacity:.6}.story__opening-audio[data-status=playing]{background:var(--accent);color:#0b0f1a}.story__opening-audio[data-status=blocked],.story__opening-audio[data-status=error]{color:#f3c56b;border-color:#f3c56b}.story__opening-audio-bar{appearance:none;background:linear-gradient(to right, var(--accent) var(--progress,0%), #ffffff24 var(--progress,0%));cursor:pointer;opacity:.45;border-radius:999px;flex:auto;min-width:0;height:6px;margin:0;transition:opacity .15s}.story__opening-audio-bar:hover,.story__opening-audio-bar:focus-visible,.story__opening-audio-bar:active{opacity:1}.story__opening-audio-bar:disabled{cursor:default;opacity:.3}.story__opening-audio-bar::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:pointer;border:2px solid #0b0f1a;border-radius:50%;width:.9rem;height:.9rem}.story__opening-audio-bar::-moz-range-thumb{background:var(--accent);cursor:pointer;border:2px solid #0b0f1a;border-radius:50%;width:.9rem;height:.9rem}.story__opening-audio-bar::-moz-range-track{background:0 0;border-radius:999px;height:6px}.story__opening-audio-bar::-moz-range-progress{background:var(--accent);border-radius:999px;height:6px}.story .passage{background:var(--story-panel-solid);border:1px solid var(--story-border);color:#dbe3ff;box-shadow:0 10px 30px #00000040}.story .char{color:#8f9bc7}.story .char--correct{color:#b9f08a}.story .char--incorrect{color:#ff92a4}.story .char--current{color:#f2f5ff}.story__error{background:var(--incorrect-bg);border:1px solid var(--incorrect);color:var(--incorrect);border-radius:8px;margin-top:1rem;padding:.85rem 1.1rem}.loading{color:var(--accent);padding:1rem 0;font-style:italic}.streaming-preview{border:1px solid var(--story-border);border-left:3px solid var(--accent);background:var(--story-panel-solid);color:#dbe3ff;white-space:pre-wrap;overflow-wrap:break-word;border-radius:10px;margin:0;padding:1.25rem 1.4rem;line-height:1.7;box-shadow:0 10px 30px #00000040}.streaming-preview:after{content:"";border-left:2px solid var(--accent);vertical-align:-.12em;width:.55em;height:1em;margin-left:.15em;animation:1s step-end infinite blink;display:inline-block}@media (width<=620px){.story-header{padding:1.6rem .5rem 0}.story{padding-inline:.5rem}.story__current{padding:1rem}.passage{padding:1.35rem;font-size:1.18rem;line-height:1.75rem}.saved-story{grid-template-columns:1fr}.saved-story__actions{justify-content:stretch}.saved-story__actions button{flex:1}.controls{align-items:stretch}.controls button{flex:auto}.language-chat-assistant{align-items:flex-end;gap:.45rem;max-width:calc(100vw - 1.5rem);bottom:.75rem;right:.75rem}.language-chat-assistant--open{width:100%;max-width:none;display:block;bottom:.5rem;left:0;right:0}.language-chat-assistant--open .language-bot-character{display:none}.language-bot-character{width:5.5rem;height:6.55rem}.language-chat-panel{border-radius:22px;width:calc(100% - 1rem);min-width:0;height:80dvh;max-height:none;margin:0 .5rem;animation:.2s ease-out language-chat-sheet-rise;box-shadow:0 -14px 45px #0000004d,inset 0 1px #fff9}.language-chat-panel:before{content:"";z-index:1;background:#78603a47;border-radius:999px;width:2.5rem;height:.25rem;position:absolute;top:.55rem;left:50%;transform:translate(-50%)}@keyframes language-chat-sheet-rise{0%{opacity:0;transform:translateY(2rem)}to{opacity:1;transform:translateY(0)}}.language-chat-panel:after{display:none}.language-chat-log{min-height:0}.language-chat-message{max-width:94%}.language-chat-form{padding-bottom:calc(1rem + env(safe-area-inset-bottom));grid-template-columns:1fr}}
