:root{--font-sans:system-ui, -apple-system, "Segoe UI", sans-serif;--font-size-caption:.7rem;--font-size-label:.8rem;--font-size-small:.9rem;--font-size-body:1rem;--font-size-heading:1.15rem;--font-size-title:2rem;--font-size-display:clamp(1.9rem, 3.4vw, 2.8rem);--line-height-body:1.5;--line-height-heading:1.2;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--radius-chip:6px;--radius-control:8px;--radius-card:14px;--radius-scene:16px;--radius-panel:20px;--duration-fast:.15s;--duration-normal:.2s;--focus-width:3px;--content-settings:960px;--content-home:1120px;--content-library:1440px;--content-practice:1600px;--paper:#fff8ee;--ink:#334b64;--chalkboard:#35493d;--brass:#e2c28d;--panel-label:#e7d9bf;--panel-copy:#f3e9dc;--panel-muted:#e8e0d3;--on-learner:#e0e8f0;--badge-bg:#fffdf8;--badge-text:#514a40;--success-bg:#e7eddf;--success-text:#3f5b35;--warning-bg:#f6ebd4;--warning-text:#775014;--bg:#f5f1e9;--surface:#fffdf8;--text:#302e29;--muted:#6b6359;--border:#ddd4c6;--accent:#334b64;--accent-text:#fffdf8;--learner:#e8e2d5;--learner-bubble:#334b64;--error:#b42318;--wrong:#b42318;--right:#3d6545;--stage-top:#3e4d40;--stage-bottom:#26372d;--chat-bg:#f0ece3;--shadow:0 4px 16px #302e290d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#201e1b;--surface:#2c2925;--text:#f3ece1;--muted:#bfb4a6;--border:#4a433b;--accent:#b5c7d8;--accent-text:#1d2e40;--learner:#353b40;--learner-bubble:#334b64;--error:#ff8a80;--wrong:#ff8a80;--right:#a4c39b;--stage-top:#35443a;--stage-bottom:#243029;--chat-bg:#24211e;--shadow:0 6px 20px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{font-family:var(--font-sans);font-size:var(--font-size-body);color:var(--text);background:var(--bg);line-height:var(--line-height-body);margin:0}h1,h2{margin:0}button{font:inherit;padding:.55rem var(--space-4);border-radius:var(--radius-control);border:1px solid var(--accent);background:var(--accent);color:var(--accent-text);cursor:pointer}button:disabled{opacity:.55;cursor:default}button:not(:disabled):hover{filter:brightness(1.08)}button,input,select{transition:border-color var(--duration-fast), background var(--duration-fast), box-shadow var(--duration-fast)}button:focus-visible,input:focus-visible,select:focus-visible,.dialogue:focus-visible{outline:var(--focus-width) solid var(--accent);outline-offset:3px}input[aria-invalid=true],select[aria-invalid=true]{border-color:var(--error)}input::placeholder{color:var(--muted);opacity:1}button.secondary{color:var(--accent);background:0 0}button.link{color:var(--accent);padding:var(--space-1) var(--space-2);background:0 0;border:none}input,select{font:inherit;border-radius:var(--radius-control);border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);padding:.55rem .7rem}label{font-size:var(--font-size-small);gap:.3rem;display:grid}.muted{color:var(--muted)}.error{color:var(--error);margin:0}.stack{gap:.9rem;display:grid}.spacer{flex:1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);width:min(420px,100%);box-shadow:var(--shadow);padding:1.75rem}.theme-options{border:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin:0;padding:0;display:grid}.theme-options legend{font-size:var(--font-size-label);margin-bottom:.6rem}.theme-option{cursor:pointer;border:1px solid var(--border);border-radius:var(--radius-control);gap:.6rem;padding:.6rem}.theme-option:has(input:checked){border-color:var(--accent);background:var(--learner)}.theme-option:focus-within{outline:2px solid var(--accent);outline-offset:2px}.theme-option-label{align-items:center;gap:.3rem;font-size:.78rem;display:flex}.theme-option input{width:auto;accent-color:var(--accent);margin:0}.theme-preview{background:#f5f1e9;border:1px solid #ddd4c6;border-radius:5px;height:48px;padding:9px;display:block}.theme-preview>span{background:#fffdf8;border-top:4px solid #334b64;border-radius:2px;height:100%;display:block}.theme-preview-dark{background:#201e1b;border-color:#4a433b}.theme-preview-dark>span{background:#2c2925;border-color:#b5c7d8}.theme-preview-system{background:linear-gradient(90deg,#f5f1e9 50%,#201e1b 50%);border-color:#8a8072}.theme-preview-system>span{background:linear-gradient(90deg,#fffdf8 50%,#2c2925 50%);border-image:linear-gradient(90deg,#334b64 50%,#b5c7d8 50%) 1}.ui-button-compact{font-size:var(--font-size-label);padding:.4rem .65rem}.ui-surface{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);min-width:0}.ui-badge{padding:var(--space-1) var(--space-2);border-radius:var(--radius-chip);font-size:var(--font-size-label);line-height:var(--line-height-body);background:var(--badge-bg);color:var(--badge-text);font-weight:650;display:inline-block}.ui-badge-level{background:var(--learner);color:var(--accent)}.ui-badge-success{background:var(--success-bg);color:var(--success-text)}.ui-badge-warning{background:var(--warning-bg);color:var(--warning-text)}@media (prefers-reduced-motion:reduce){button,input,select{transition:none}}.centered{min-height:100dvh;padding:var(--space-4);place-items:center;display:grid}.app{grid-template-columns:232px minmax(0,1fr);grid-template-areas:"nav main";height:100dvh;display:grid;overflow:hidden}.app-nav{gap:var(--space-6);min-height:0;padding:var(--space-5) var(--space-3);border-right:1px solid var(--border);background:var(--surface);flex-direction:column;grid-area:nav;display:flex;overflow-y:auto}.app-nav ul{gap:var(--space-1);flex-direction:column;flex:1;margin:0;padding:0;list-style:none;display:flex}.app-nav .nav-settings{margin-top:auto}.app-nav a{align-items:center;gap:var(--space-3);min-height:44px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);color:var(--muted);font-weight:600;text-decoration:none;display:flex}.app-nav a:hover{background:var(--chat-bg);color:var(--text)}.app-nav a[aria-current=page]{background:var(--learner);color:var(--accent)}.app-nav a:focus-visible,.activity-back:focus-visible,.segmented a:focus-visible{outline:var(--focus-width) solid var(--accent);outline-offset:2px}.app-main{flex-direction:column;grid-area:main;min-width:0;min-height:0;display:flex;overflow:hidden}.brand{padding:0 var(--space-3);color:var(--text);letter-spacing:-.03em;align-items:center;gap:.65rem;text-decoration:none;display:flex}.brand-mark{background:var(--accent);width:32px;height:32px;color:var(--accent-text);border-radius:10px 10px 10px 3px;place-items:center;font-size:1.1rem;font-weight:800;display:grid}@media (width<=760px){.app{grid-template:"main"minmax(0,1fr)"nav"/minmax(0,1fr)}.app-nav{padding:0 0 env(safe-area-inset-bottom);border-right:0;border-top:1px solid var(--border);flex-direction:row;overflow:visible}.app-nav .brand,.app-nav .nav-settings{display:none}.app-nav ul{flex-direction:row;gap:0}.app-nav li{flex:1}.app-nav a{min-height:56px;padding:var(--space-1);font-size:var(--font-size-caption);border-radius:0;flex-direction:column;justify-content:center;gap:2px}.app-nav a[aria-current=page]{background:0 0}.app.immersive .app-nav{display:none}}.page{overscroll-behavior:contain;min-height:0;padding:clamp(var(--space-5), 4vw, var(--space-12)) var(--space-6) var(--space-12);flex:1;overflow-y:auto}.page-content{gap:var(--space-5);flex-direction:column;width:min(100%,760px);margin-inline:auto;display:flex}.page-content.wide{width:min(100%,1040px)}.page-head{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.page-title{font-size:var(--font-size-title);letter-spacing:-.04em;line-height:var(--line-height-heading)}.page-sub{margin:var(--space-1) 0 0;color:var(--muted);font-size:var(--font-size-small)}.page-eyebrow{color:var(--accent);font-size:var(--font-size-label);margin:0 0 .6rem;font-weight:700}.icon-button{border-color:var(--border);background:var(--surface);width:44px;height:44px;color:var(--text);border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=760px){.page{padding:var(--space-5) var(--space-4) var(--space-8)}.page-title{font-size:1.65rem}}.activity{flex-direction:column;flex:1;min-height:0;display:flex}.activity-bar{align-items:center;gap:var(--space-2);min-height:52px;padding:var(--space-1) var(--space-4);border-bottom:1px solid var(--border);background:var(--surface);flex:none;display:flex}.activity-back{align-items:center;gap:var(--space-1);min-height:44px;padding:0 var(--space-2);border-radius:var(--radius-control);color:var(--accent);font-size:var(--font-size-small);font-weight:600;text-decoration:none;display:inline-flex}.activity-back:hover{background:var(--chat-bg)}.activity-title{min-width:0;font-size:var(--font-size-heading);letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}@media (width<=480px){.activity-bar{padding-inline:var(--space-2)}.activity-back span{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.onboarding{min-height:100dvh;padding:var(--space-6) var(--space-4);place-items:center;display:grid}.onboarding-content{gap:var(--space-3);justify-items:start;width:min(100%,420px);display:grid}.onboarding-content h1{font-size:var(--font-size-title);letter-spacing:-.04em;line-height:var(--line-height-heading)}.onboarding-content>p{margin:0}.onboarding-content .card{margin-top:var(--space-3)}.settings-page .page-content{width:min(100%, var(--content-settings))}.settings-grid{gap:var(--space-5);grid-template-columns:1.1fr 1fr;align-items:start;display:grid}.settings-column{gap:var(--space-5);min-width:0;display:grid}.settings-section{min-width:0;padding:var(--space-6)}.settings-section h2{margin-bottom:var(--space-4);font-size:var(--font-size-heading);letter-spacing:-.025em}.settings-section>p{margin:0 0 var(--space-4);font-size:var(--font-size-small)}.settings-language-form{gap:var(--space-4)}.settings-language-form>button{justify-self:start;font-size:.85rem}.settings-saved{color:var(--right);font-size:var(--font-size-label);margin:0}.settings-toggle{align-items:center;gap:var(--space-3);font-weight:600;display:flex}.settings-toggle input{width:1.15rem;height:1.15rem;accent-color:var(--accent);flex:none;margin:0}.settings-section>.settings-toggle-detail{margin:var(--space-3) 0 0;font-size:.78rem}.plan-section{scroll-margin-top:var(--space-6)}.plan-section>.plan-current{font-size:var(--font-size-body)}.plan-list{gap:var(--space-2);margin:0 0 var(--space-4);padding:0;list-style:none;display:grid}.plan-list li{gap:var(--space-1);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-control);font-size:var(--font-size-small);display:grid}.plan-list li[aria-current]{border-color:var(--accent)}.plan-name{font-weight:600}.plan-section>.plan-contact{overflow-wrap:anywhere;margin:0}.plan-contact a,.limit-plans a{color:var(--accent);text-underline-offset:2px;font-weight:600}.settings-section>.theme-description{margin:var(--space-4) 0 0;font-size:.78rem}.settings-section .theme-options legend{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=760px){.settings-grid{gap:var(--space-4);grid-template-columns:minmax(0,1fr)}.settings-column{gap:var(--space-4)}.settings-section{padding:var(--space-4)}}.home-top{align-items:center;gap:var(--space-2);display:flex}.progress-chip,.language-chip{border-color:var(--border);background:var(--surface);min-height:40px;color:var(--text);font-size:var(--font-size-label);border-radius:999px;align-items:center;gap:.4rem;padding:.35rem .8rem;display:inline-flex}.language-chip{margin-left:auto}.progress-chip-streak{color:var(--muted);font-size:.6rem}.progress-chip-streak.done{color:var(--right)}.home-modes h2{margin-bottom:var(--space-3);font-size:var(--font-size-heading)}.mode-tiles{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.mode-tile{gap:var(--space-1);padding:var(--space-4);border-color:var(--border);border-radius:var(--radius-card);background:var(--surface);color:var(--text);text-align:left;align-content:start;justify-items:start;display:grid}.mode-tile:not(:disabled):hover{filter:none;border-color:var(--accent)}.mode-tile-icon{width:40px;height:40px;margin-bottom:var(--space-1);background:var(--learner);color:var(--accent);border-radius:12px;place-items:center;display:grid}.mode-tile .muted{font-size:var(--font-size-label)}.mode-eyebrow{color:var(--panel-label);font-size:.73rem;font-weight:600}.today-card{gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-panel);background:var(--chalkboard);color:var(--paper);display:grid}.today-head{align-items:baseline;gap:var(--space-1) var(--space-3);grid-template-columns:minmax(0,1fr) auto;display:grid}.today-eyebrow{color:var(--panel-label);font-size:var(--font-size-caption);letter-spacing:.06em;text-transform:uppercase;font-weight:650}.today-bonus{color:var(--brass);font-size:var(--font-size-label);text-align:right;font-weight:700}.today-head h2{letter-spacing:-.03em;grid-column:1/-1;font-size:1.35rem;line-height:1.25}.today-segments{gap:var(--space-1);margin-top:var(--space-2);grid-column:1/-1;display:flex}.today-segments span{background:#ffffff2e;border-radius:5px;flex:1;height:5px}.today-segments span.done{background:var(--brass)}.today-luna{margin:var(--space-1) 0 0;color:var(--panel-label);font-size:var(--font-size-label);grid-column:1/-1}.today-luna.earned{color:var(--brass);font-weight:700}.today-next{gap:var(--space-1);width:100%;padding:var(--space-4) var(--space-5);border-radius:var(--radius-card);background:var(--paper);color:#302e29;text-align:left;border:0;justify-items:start;display:grid}.today-next-kind{color:#6b5428;font-size:var(--font-size-caption);letter-spacing:.05em;text-transform:uppercase;font-weight:700}.today-next strong{letter-spacing:-.02em;font-size:1.2rem;line-height:1.3}.today-next-detail{color:#6b6359;font-size:var(--font-size-small)}.today-next-action{align-items:center;gap:var(--space-2);margin-top:var(--space-2);border-radius:var(--radius-control);background:var(--chalkboard);color:var(--paper);font-size:var(--font-size-label);padding:.45rem .85rem;font-weight:700;display:inline-flex}.today-rest{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.today-step{align-items:center;gap:var(--space-3);width:100%;min-height:44px;padding:var(--space-2) var(--space-3);color:var(--paper);text-align:left;background:0 0;border:0;display:flex}.today-step:not(:disabled):hover{filter:none;background:#ffffff14}.today-next:focus-visible,.today-step:focus-visible{outline-color:var(--brass)}.today-mark{border:1.5px solid var(--brass);width:1.4rem;height:1.4rem;color:var(--chalkboard);border-radius:50%;flex:none;place-items:center;display:grid}.today-step.done .today-mark{background:var(--brass)}.today-kind{min-width:6.5rem;color:var(--panel-label);font-size:var(--font-size-label);flex:none;font-weight:600}.today-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.today-step.done .today-title{opacity:.75}.up-next{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);display:grid}.up-next-head{justify-content:space-between;gap:var(--space-3);font-size:var(--font-size-label);display:flex}.up-next-eyebrow{color:var(--accent);font-weight:700}.up-next-count{color:var(--muted)}.up-next .today-segments{margin:0}.up-next .today-segments span{background:var(--border)}.up-next .today-segments span.done{background:var(--accent)}.up-next-step{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border-color:var(--border);background:var(--surface);color:var(--text);text-align:left;display:flex}.up-next-step>span{gap:.1rem;min-width:0;display:grid}.up-next-kind{color:var(--muted);font-size:var(--font-size-label)}.up-next-step.primary{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.up-next-step.primary .up-next-kind{color:inherit;opacity:.85}.up-next-done{align-items:center;gap:var(--space-2);color:var(--right);font-size:var(--font-size-small);margin:0;font-weight:600;display:flex}.result-actions{gap:var(--space-3);margin-top:var(--space-4);display:grid}.resume-note{margin:0 0 var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);background:var(--learner);font-size:var(--font-size-small)}.library-tools{gap:var(--space-3);display:grid}.search-field{align-items:center;display:flex;position:relative}.search-field>svg{color:var(--muted);pointer-events:none;position:absolute;left:.85rem}.search-field input{border-radius:999px;min-height:44px;padding-inline:2.5rem}.search-field input::-webkit-search-cancel-button{display:none}.search-clear{width:36px;height:36px;color:var(--muted);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;right:.3rem}.filter-row{gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.chips{gap:var(--space-2);scrollbar-width:none;max-width:100%;display:flex;overflow-x:auto}.chip{border-color:var(--border);background:var(--surface);min-height:36px;color:var(--text);font-size:var(--font-size-label);border-radius:999px;flex:none;padding:.35rem .8rem;font-weight:600}.chip[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.scene-rows{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.scene-row{align-items:center;gap:var(--space-4);width:100%;padding:var(--space-2) var(--space-4) var(--space-2) var(--space-2);border-color:var(--border);border-radius:var(--radius-card);background:var(--surface);color:var(--text);text-align:left;display:flex}.scene-row:not(:disabled):hover{filter:none;border-color:var(--accent)}.scene-row-art{aspect-ratio:400/220;border-radius:10px;flex:none;width:112px;overflow:hidden}.scene-row-text{flex:1;gap:.15rem;min-width:0;display:grid}.scene-row-text strong{line-height:1.3}.scene-row-goal{color:var(--muted);font-size:var(--font-size-label);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.scene-row-meta{align-items:center;gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.scene-row-meta .ui-badge,.list-row-tags .ui-badge{padding:0 var(--space-2);font-size:var(--font-size-caption)}.scene-row-status{padding:0 var(--space-2);border-radius:var(--radius-chip);font-size:var(--font-size-caption);font-weight:650;line-height:var(--line-height-body);align-items:center;gap:.25rem;display:inline-flex}.scene-row-status.completed{background:var(--success-bg);color:var(--success-text)}.scene-row-status.in_progress{background:var(--warning-bg);color:var(--warning-text)}.scene-row-resume{background:var(--accent);color:var(--accent-text);font-size:var(--font-size-label);border-radius:999px;flex:none;padding:.3rem .75rem;font-weight:700}.scene-row-chevron,.list-row-chevron,.action-row-chevron{color:var(--muted);flex:none}.scene-artwork{object-fit:cover;width:100%;height:100%;display:block}@media (width<=480px){.scene-row{gap:var(--space-3)}.scene-row-art{width:76px}}.segmented{background:var(--learner);border-radius:10px;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;padding:3px;display:grid}.segmented a{min-height:38px;color:var(--muted);font-size:var(--font-size-small);border-radius:8px;place-items:center;font-weight:650;text-decoration:none;display:grid}.segmented a[aria-current=page]{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001f}.learn-list{gap:var(--space-4);display:grid}.learn-list>.page-sub{margin:0}.learned-total{gap:var(--space-2);display:grid}.learned-total .page-sub{margin:0}.track{background:var(--border);border-radius:5px;height:5px;display:block;overflow:hidden}.track>span{background:var(--accent);height:100%;display:block}.next-up-card{gap:var(--space-1);width:100%;padding:var(--space-5);border-radius:var(--radius-panel);background:var(--ink);color:var(--paper);text-align:left;border:0;justify-items:start;display:grid}.next-up-eyebrow{color:var(--panel-label);font-size:var(--font-size-caption);letter-spacing:.05em;text-transform:uppercase;font-weight:650}.next-up-title{letter-spacing:-.03em;font-size:1.3rem;line-height:1.25}.next-up-detail{color:var(--panel-copy);font-size:var(--font-size-small)}.next-up-action{align-items:center;gap:var(--space-2);margin-top:var(--space-3);border-radius:var(--radius-control);background:var(--paper);color:#302e29;font-size:var(--font-size-label);padding:.45rem .85rem;font-weight:700;display:inline-flex}.action-row{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border-color:var(--border);border-radius:var(--radius-card);background:var(--surface);color:var(--text);text-align:left;display:flex}.action-row:not(:disabled):hover{filter:none;border-color:var(--accent)}.action-row-icon{background:var(--learner);width:40px;height:40px;color:var(--accent);border-radius:12px;flex:none;place-items:center;display:grid}.action-row-text{flex:1;gap:.1rem;min-width:0;display:grid}.action-row-text .muted{font-size:var(--font-size-label);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.list-group{gap:var(--space-2);display:grid}.list-group-title{padding:0 var(--space-1);color:var(--muted);font-size:var(--font-size-label);font-weight:700}.list-group-rows{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);margin:0;padding:0;list-style:none;overflow:hidden}.list-group-rows>li+li{border-top:1px solid var(--border)}.list-row{align-items:center;gap:var(--space-3);width:100%;min-height:56px;padding:var(--space-3) var(--space-4);color:var(--text);text-align:left;background:0 0;border:0;border-radius:0;display:flex}.list-row:not(:disabled):hover{filter:none;background:var(--chat-bg)}.list-row:disabled{opacity:.7}.list-row:focus-visible{outline-offset:-3px}.list-row-text{flex:1;gap:.1rem;min-width:0;display:grid}.list-row-text strong{line-height:1.3}.list-row-text>.muted{font-size:var(--font-size-label)}.list-row-text .track{max-width:12rem;margin-top:var(--space-1)}.list-row-tags{gap:var(--space-1);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.title-translation{color:var(--muted);font-size:var(--font-size-label);font-weight:600;line-height:1.3}.title-with-translation{gap:.1rem;min-width:0;display:grid}.next-up-translation{color:var(--panel-copy);font-size:var(--font-size-small);font-weight:600}.today-next-translation{color:#6b6359;font-size:var(--font-size-small);font-weight:600}.today-titles{flex:1;min-width:0;display:grid}.today-translation{color:var(--panel-label);font-size:var(--font-size-label);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.up-next-translation{color:var(--muted);font-size:var(--font-size-label);font-weight:600}.up-next-step.primary .up-next-translation{color:inherit;opacity:.85}.correction-skill .title-translation{font-size:inherit;font-weight:500}.list-row-side{color:var(--muted);font-size:var(--font-size-label);flex:none;font-weight:600}.status-mark{border:2px solid var(--border);width:22px;height:22px;color:var(--accent-text);border-radius:50%;flex:none;place-items:center;display:grid}.status-started{border-color:var(--accent);background:var(--accent);box-shadow:inset 0 0 0 4px var(--surface)}.status-done{border-color:var(--right);background:var(--right)}.status-mastered{border-color:var(--brass);background:var(--brass);color:#3c352e}.review-rule{margin-top:var(--space-4)}.review-rule summary{width:fit-content;color:var(--accent);font-size:var(--font-size-small);cursor:pointer;font-weight:700}.review-rule[open] summary{margin-bottom:var(--space-3)}.review-topics{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.review-topics li{gap:.15rem;display:grid}.review-topics .muted{font-size:var(--font-size-label)}.lesson-content{width:min(100%,760px);margin-inline:auto}.lesson-topline{align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.lesson-progress{background:var(--border);border-radius:6px;flex:1;height:6px;overflow:hidden}.lesson-progress span{background:var(--accent);height:100%;transition:width var(--duration-normal);display:block}.lesson-loading,.lesson-error{margin-top:var(--space-4)}.lesson-card{padding:clamp(var(--space-5), 4vw, var(--space-8));gap:var(--space-4);display:grid}.lesson-card h2{font-size:var(--font-size-title);letter-spacing:-.04em;line-height:var(--line-height-heading)}.lesson-card h3{margin:var(--space-2) 0 0;font-size:var(--font-size-heading)}.lesson-card p,.lesson-card .page-eyebrow{margin:0}.lesson-forms{border-collapse:collapse;width:100%;font-size:var(--font-size-small)}.lesson-forms th,.lesson-forms td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);vertical-align:top}.lesson-forms th{width:34%;color:var(--muted);font-weight:600}.lesson-examples,.lesson-watch-out,.lesson-missed{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.lesson-examples li,.lesson-watch-out li,.lesson-missed li{gap:.15rem;display:grid}.lesson-examples .muted,.lesson-watch-out .muted,.lesson-missed .muted{font-size:var(--font-size-label)}.lesson-card .wrong{color:var(--wrong)}.lesson-card .right{color:var(--right)}.lesson-actions{gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.drill-position{color:var(--muted);font-size:var(--font-size-label);justify-content:space-between;align-items:center;font-weight:600;display:flex}.drill-prompt{font-size:clamp(1.2rem,3vw,1.5rem);line-height:1.7}.drill-gap{border-bottom:2px solid var(--accent);min-width:5.5ch;color:var(--accent);text-align:center;margin:0 .25ch;padding:0 .4ch;font-weight:700;display:inline-block}.drill-gap.right{border-color:var(--right);color:var(--right)}.drill-gap.wrong{border-color:var(--wrong);color:var(--wrong);text-decoration:line-through}.drill-base{color:var(--muted);font-size:.85em}.drill-options{gap:var(--space-3);flex-wrap:wrap;display:flex}.drill-options button{min-width:7rem;font-size:1.05rem}.drill-answer{gap:var(--space-3);flex-wrap:wrap;display:flex}.drill-answer input{flex:12rem;width:auto;font-size:1.1rem}.drill-mic.recording{background:var(--error);border-color:var(--error);color:var(--accent-text)}.drill-tip{font-size:var(--font-size-label)}.drill-skip{justify-self:start}.drill-feedback{gap:var(--space-1);padding:var(--space-3) var(--space-4);border-radius:var(--radius-control);display:grid}.drill-feedback.right{background:var(--success-bg);color:var(--success-text)}.drill-feedback.wrong{background:var(--learner);color:var(--text)}.drill-feedback.wrong strong{color:var(--wrong)}.drill-feedback.warning{background:var(--warning-bg);color:var(--warning-text)}.drill-feedback.skipped{background:var(--learner);color:var(--text)}.drill-expected{font-weight:700}.drill-accent{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}.lesson-card .drill-translation{margin-top:calc(-1 * var(--space-2));color:var(--muted);font-style:italic}.drill-translation-toggle{margin-top:calc(-1 * var(--space-2));justify-self:start}.drill-report-open{justify-content:flex-end;display:flex}.drill-report-open .ui-button,.drill-report-done{font-size:var(--font-size-label)}.drill-report-done{text-align:right}.drill-report{gap:var(--space-2);min-width:0;padding:var(--space-3) 0 0;border:0;border-top:1px solid var(--border);margin:0;display:grid}.drill-report legend{float:left;width:100%;color:var(--muted);font-size:var(--font-size-label);padding:0;font-weight:600}.drill-report-reasons{gap:var(--space-2);flex-wrap:wrap;display:flex}.dictation-play,.dictation-failed{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.dictation-words{font-size:1.1rem;line-height:1.8}.word-prompt{letter-spacing:-.02em;margin:0;font-size:clamp(1.5rem,4vw,2rem);font-weight:700}.word-cards{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));margin:0;padding:0;list-style:none;display:grid}.word-card{gap:var(--space-1);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);display:grid}.word-card-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.word-card-word{font-size:1.15rem}.word-card-meaning{color:var(--accent);font-weight:600}.word-card-example{font-size:var(--font-size-small)}.word-card-example-meaning{font-size:var(--font-size-label)}.dictation-word s{margin-right:.15em}.lesson-result h2{align-items:baseline;gap:var(--space-4);flex-wrap:wrap;display:flex}.lesson-score{color:var(--warning-text);font-size:3rem}.lesson-score.passed{color:var(--right)}.lesson-page{overscroll-behavior:contain;min-height:0;padding:clamp(var(--space-6), 4vw, 3.5rem) var(--space-6);flex:1;overflow-y:auto}.library-empty{text-align:center;justify-items:center;gap:var(--space-4);padding:var(--space-12) var(--space-4);display:grid}.library-empty .scene-artwork{border-radius:var(--radius-scene);width:min(100%,320px);height:auto}.library-empty h2{font-size:var(--space-5)}.library-empty p{margin:0}.progress-content{width:min(100%,960px)}.progress-stats{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));display:grid}.progress-card{gap:var(--space-3);padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow);align-content:start;display:grid}.progress-card h2{color:var(--muted);font-size:var(--font-size-label);margin:0;font-weight:700}.progress-card p{margin:0}.progress-card .muted{font-size:var(--font-size-label)}.progress-big{font-size:var(--font-size-heading)}.progress-big strong{color:var(--accent);letter-spacing:-.04em;margin-right:.3rem;font-size:2.2rem}.progress-track{background:var(--border);border-radius:6px;height:6px;overflow:hidden}.progress-track span{background:var(--accent);height:100%;display:block}.progress-week{gap:var(--space-2);margin:0;padding:0;list-style:none;display:flex}.progress-week li{border:1px solid var(--border);width:2rem;height:2rem;color:var(--muted);font-size:var(--font-size-caption);border-radius:50%;place-items:center;font-weight:700;display:grid}.progress-week li.done{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.progress-section>h2{margin-bottom:var(--space-3);font-size:var(--font-size-heading)}.progress-weak{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.progress-weak li{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-left:3px solid var(--warning-text);border-radius:var(--radius-card);background:var(--surface);display:flex}.progress-levels{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));display:grid}.progress-level{gap:var(--space-3);padding:var(--space-4) var(--space-5);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);align-content:start;display:grid}.progress-level.current{border-color:var(--accent)}.progress-level header{align-items:baseline;gap:var(--space-2);flex-wrap:wrap;display:flex}.progress-level header strong{font-size:1.3rem}.progress-level header .muted{font-size:var(--font-size-label);flex-basis:100%}.progress-current{padding:.1rem var(--space-2);border-radius:var(--radius-chip);background:var(--accent);color:var(--accent-text);font-size:var(--font-size-caption);font-weight:700}.progress-level ul{gap:var(--space-1);font-size:var(--font-size-label);margin:0;padding:0;list-style:none;display:grid}.progress-level li{justify-content:space-between;display:flex}.progress-totals{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));margin:0;display:grid}.progress-totals div{padding:var(--space-4) var(--space-5);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface)}.progress-totals dt{color:var(--muted);font-size:var(--font-size-label)}.progress-totals dd{margin:var(--space-1) 0 0;color:var(--accent);font-size:1.6rem;font-weight:700}.progress-level-up{gap:var(--space-2);padding:var(--space-6);border-radius:var(--radius-panel);background:var(--brass);color:#3c352e;justify-items:start;display:grid}.progress-level-up h2{letter-spacing:-.03em;margin:0;font-size:1.5rem}.progress-level-up p{margin:0}.progress-level-up .mode-eyebrow{color:#6b5428}@media (width<=760px){.lesson-page{padding:var(--space-6) .85rem}}.practice{min-height:0;width:min(100%, var(--content-practice));gap:var(--space-4);padding:var(--space-4) var(--space-6) var(--space-5);flex:1;grid-template-columns:minmax(240px,.65fr) minmax(0,1.65fr);margin:0 auto;display:grid}.stage{background:linear-gradient(160deg, var(--stage-top), var(--stage-bottom));border-radius:var(--radius-panel);isolation:isolate;min-height:0;position:relative;overflow:hidden}.stage:before{content:"";border-radius:var(--radius-card);pointer-events:none;border:1px solid #e7d9bf24;position:absolute;inset:.65rem}.coach-identity{top:1.75rem;left:var(--space-6);z-index:1;color:#fff;pointer-events:none;position:absolute}.coach-eyebrow{font-size:var(--font-size-caption);letter-spacing:.09em;text-transform:uppercase;color:var(--panel-label);font-weight:650}.coach-name{margin:var(--space-1) 0 0;letter-spacing:-.06em;font-size:2.7rem;font-weight:700;line-height:1.2}.coach-name span{color:var(--brass)}.coach-tagline{color:var(--panel-muted);font-size:var(--font-size-small);margin:.35rem 0 0}.stage-action{top:var(--space-4);right:var(--space-4);z-index:2;color:#fff;min-height:36px;font-size:var(--font-size-label);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#243029b3;border:1px solid #ffffff4d;border-radius:999px;padding:.35rem .85rem;font-weight:650;position:absolute}.stage-action:focus-visible{outline-color:var(--brass)}@media (width>=961px){.stage-action{top:auto;bottom:.75rem}.stage:has(.stage-action) .coach-caption{justify-content:flex-start}}.luna{position:absolute;inset:6.5rem 0 2.5rem}.luna canvas{width:100%;height:100%;display:block}.luna-status{inset:auto 0 var(--space-4);text-align:center;color:var(--panel-muted);margin:0;font-size:.85rem;position:absolute}.luna-fallback{object-fit:contain;object-position:center;width:100%;height:100%}.coach-caption{bottom:1.1rem;inset-inline:var(--space-4);justify-content:center;align-items:center;gap:var(--space-2);color:var(--panel-copy);font-size:var(--font-size-label);display:flex;position:absolute}.status-dot{background:var(--brass);border-radius:50%;width:7px;height:7px}.status-dot.active{box-shadow:0 0 0 4px #e2c28d33}.conversation-panel{background:var(--chat-bg);border:1px solid var(--border);border-radius:var(--radius-panel);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.dialogue{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border) transparent;min-height:0;padding:var(--space-6);gap:var(--space-4);flex-direction:column;flex:1;display:flex;overflow-y:auto}.dialogue>*{flex-shrink:0}.bubble{border-radius:var(--radius-scene);background:var(--surface);border:1px solid var(--border);max-width:min(88%,720px);box-shadow:var(--shadow);overflow-wrap:anywhere;padding:.85rem 1.1rem;line-height:1.65;animation:.25s ease-out bubble-in;position:relative}.bubble p{white-space:pre-wrap;margin:0}.bubble-author{font-size:var(--font-size-caption);color:var(--accent);margin-bottom:.3rem;font-weight:750;display:block}.bubble.coach{font-size:var(--space-4);border-top-left-radius:4px;align-self:flex-start}.bubble.learner{background:var(--learner-bubble);color:#fff;border-color:#0000;border-bottom-right-radius:6px;align-self:flex-end}.bubble.learner .bubble-author{color:var(--on-learner)}.bubble.pending{opacity:.7}.bubble.speaking{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent)}.voice-mark{font-size:.8em}.bubble .replay{border-color:var(--border);color:var(--accent);background:0 0;border-radius:999px;place-items:center;margin-top:.45rem;padding:.3rem;display:inline-grid}.bubble .translation{border-top:1px solid var(--border);color:var(--muted);font-size:var(--font-size-small);margin-top:.35rem;padding-top:.35rem;font-style:italic}.bubble .glossary{flex-wrap:wrap;gap:.3rem;margin:.45rem 0 0;padding:0;font-size:.82rem;list-style:none;display:flex}.bubble .glossary li{background:color-mix(in srgb, var(--surface) 60%, var(--learner));border-radius:999px;padding:.15rem .55rem}.bubble .glossary .help-say{font-weight:600}.bubble .translate{padding:.3rem 0 0;font-size:.82rem;display:block}.hints{align-self:stretch;gap:.4rem;animation:.25s ease-out bubble-in;display:grid}.hints p{margin:0}.hints .help-suggestions button{border-style:dashed}.bubble.typing{padding:.9rem var(--space-4);gap:.3rem;display:flex}.bubble.typing span{background:var(--muted);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite typing}.bubble.typing span:nth-child(2){animation-delay:var(--duration-fast)}.bubble.typing span:nth-child(3){animation-delay:.3s}.corrections{border-top:1px dashed var(--border);font-size:var(--font-size-small);gap:.4rem;margin:.6rem 0 0;padding:.6rem 0 0;list-style:none;display:grid}.corrections .correction-line{flex-wrap:wrap;align-items:flex-start;column-gap:.35rem;display:flex}.corrections .wrong{color:var(--wrong);text-decoration:line-through}.corrections .right{color:var(--right);font-weight:600}.corrections .replay{margin-top:0;padding:.15rem}.corrections .explanation{color:var(--muted);display:block}.correction-skill{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.2rem .6rem;font-size:.75rem;font-weight:600;display:flex}.correction-skill button{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700}.correction-skill button:hover{text-decoration:underline}.conversation-panel>.error{padding:.6rem var(--space-6);background:var(--surface)}.conversation-panel>.practice-notice{padding:.5rem var(--space-6);border-top:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:var(--font-size-label);margin:0}.text-bar{gap:var(--space-2);padding:.85rem var(--space-6) var(--space-2);border-top:1px solid var(--border);background:var(--surface);animation:bubble-in var(--duration-normal) ease-out;flex-shrink:0;display:flex}.text-bar input{min-width:0;padding:.7rem var(--space-4);background:var(--chat-bg);border-radius:10px}.text-bar button{border-radius:10px;flex:none;place-items:center;width:46px;height:46px;padding:0;display:grid}.controls{align-items:center;gap:var(--space-4);padding:.7rem var(--space-6) max(.8rem, env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;grid-template-columns:1fr auto 1fr;display:grid}.text-bar+.controls{border-top:none;padding-top:.3rem}.talk{grid-area:1/2;align-items:center;gap:.65rem;display:flex}.talk-hint{font-size:.78rem}.talk-out{font-size:var(--font-size-label);text-align:center;margin:0}.talk-button{width:56px;height:56px;box-shadow:0 4px 14px color-mix(in srgb, var(--accent) 25%, transparent);transition:transform var(--duration-fast) ease, background var(--duration-fast) ease;border-radius:50%;place-items:center;padding:0;display:grid;position:relative}.talk-button svg{width:26px;height:26px}.talk-button:not(:disabled):active{transform:scale(.94)}.talk-button.recording{background:var(--wrong);border-color:var(--wrong);color:#fff}.talk-button.recording:after{content:"";border:3px solid var(--wrong);border-radius:50%;animation:1.4s ease-out infinite pulse;position:absolute;inset:-6px}.text-toggle,.help-toggle{border-radius:var(--radius-control);border-color:var(--border);background:var(--surface);min-height:44px;color:var(--accent);grid-area:1/3;justify-self:start;align-items:center;gap:.35rem;padding:.55rem .65rem;font-size:.78rem;display:flex}.text-toggle{justify-self:end}.help-toggle{grid-area:1/1;justify-self:start}.text-toggle.active,.help-toggle.active{background:var(--learner);border-color:var(--accent)}.controls[hidden]{display:none}.scene-card{padding:var(--space-6);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-scene);box-shadow:var(--shadow);align-self:stretch;gap:.85rem;animation:.25s ease-out bubble-in;display:grid}.scene-card h2{letter-spacing:-.04em;font-size:clamp(1.3rem,2vw,1.75rem)}.scene-card p{margin:0}.scene-eyebrow{color:var(--accent);font-size:var(--font-size-label);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.scene-role{margin-top:.2rem;display:block}.scene-goal{font-weight:500}.scene-card .scene-original{margin-top:-.3rem;font-size:.85rem}.scene-card .scene-translation{color:var(--muted);margin-top:-.3rem;font-size:.85rem;font-weight:600}.key-phrases{gap:.35rem;display:grid}.key-phrases p{margin:0}.key-phrases ul{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.key-phrases li{align-items:center;gap:var(--space-2);background:color-mix(in srgb, var(--surface) 60%, var(--learner));border-radius:12px;padding:.45rem .6rem .45rem .8rem;display:flex}.key-phrases .phrase-text{flex:1;gap:.05rem;display:grid}.key-phrases .help-say{font-weight:600}.key-phrases .muted{font-size:.85rem}.key-phrases .replay{border-color:var(--border);background:var(--surface);color:var(--accent);border-radius:999px;flex:none;place-items:center;padding:.4rem;display:grid}.scene-start{font-size:var(--space-4);border-radius:10px;padding:.7rem;font-weight:650}.scene-actions{padding:var(--space-3) var(--space-6);background:var(--surface);border-radius:0 0 16px 16px;gap:.2rem;margin:.4rem -1.5rem -1.5rem;display:grid;position:sticky;bottom:-1.5rem}.goal-list{gap:.4rem;margin:0;padding:0;font-size:.92rem;list-style:none;display:grid}.goal-list li{gap:var(--space-2);align-items:flex-start;display:flex}.goal-mark{flex:none;margin-top:.1rem}.goal-mark circle{fill:none;stroke:var(--muted);stroke-width:1.6px;transition:fill .3s,stroke .3s}.goal-mark path{fill:none;stroke:var(--accent-text);stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round}.goal-list li.done{color:var(--muted)}.goal-list li.done .goal-mark circle{fill:var(--accent);stroke:var(--accent)}.goals{bottom:3.5rem;left:var(--space-4);right:var(--space-4);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;text-align:left;background:#243029f0;border:1px solid #ffffff38;border-radius:10px;align-items:center;gap:.6rem;padding:.45rem .8rem;font-size:.85rem;font-weight:600;display:flex;position:absolute}.goals.active{border-color:var(--brass)}.goals-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.goal-dots{gap:var(--space-1);flex:none;display:flex}.goal-dots .dot{border:1.5px solid var(--panel-label);border-radius:50%;width:8px;height:8px;transition:background .3s,border-color .3s}.goal-dots .dot.done{background:var(--brass);border-color:var(--brass)}.scene-details{padding:.9rem var(--space-4) var(--space-4);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:18px;align-self:stretch;gap:.6rem;animation:.25s ease-out bubble-in;display:grid}.scene-details header{align-items:baseline;gap:var(--space-2);display:flex}.scene-details header .link{padding:0 var(--space-1);color:var(--muted)}.recap-card{align-self:stretch;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--right);border-radius:var(--radius-scene);background:var(--surface);box-shadow:var(--shadow);animation:.3s ease-out bubble-in;display:grid}.recap-card p{margin:0}.recap-card .up-next{background:var(--chat-bg)}.limit-card{border-color:var(--brass)}.limit-bonus{font-weight:600}.limit-plans{font-size:var(--font-size-small)}.scene-recap{gap:var(--space-1);font-size:var(--font-size-small);display:grid}.scene-recap-label{color:var(--muted);font-size:.75rem;font-weight:600}.scene-recap ul{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.scene-recap li{flex-wrap:wrap;align-items:baseline;gap:.2rem .6rem;display:flex}.scene-recap .wrong{color:var(--wrong);text-decoration:line-through}.scene-recap .right{color:var(--right);font-weight:600}.scene-recap li button{color:var(--accent);background:0 0;border:0;padding:0;font-weight:700}.scene-recap li button:hover{text-decoration:underline}.help-card{padding:.9rem var(--space-4) var(--space-4);border:1.5px dashed var(--accent);background:color-mix(in srgb, var(--surface) 70%, var(--learner));border-radius:18px;align-self:stretch;gap:.55rem;animation:.25s ease-out bubble-in;display:grid}.help-card p{margin:0}.help-card header{align-items:baseline;gap:var(--space-2);display:flex}.help-card header .link{padding:0 var(--space-1);color:var(--muted)}.help-translation{font-style:italic}.help-label{font-size:var(--font-size-label)}.help-card .typing{gap:.3rem;padding:.3rem 0;display:flex}.help-card .typing span{background:var(--muted);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite typing}.help-card .typing span:nth-child(2){animation-delay:var(--duration-fast)}.help-card .typing span:nth-child(3){animation-delay:.3s}.help-suggestions{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.help-suggestions button{text-align:left;border-color:var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:12px;gap:.1rem;padding:.55rem .8rem;display:grid}.help-suggestions .help-say{font-weight:600}.help-suggestions .muted{font-size:.85rem}@keyframes bubble-in{0%{opacity:0;transform:translateY(6px)}}@keyframes typing{0%,60%,to{opacity:.3;transform:none}30%{opacity:1;transform:translateY(-3px)}}@keyframes pulse{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.35)}}@media (prefers-reduced-motion:reduce){.bubble,.text-bar,.scene-card,.scene-details,.recap-card,.help-card,.hints,.help-card .typing span,.bubble.typing span,.talk-button.recording:after{animation:none}}@media (width<=960px){.practice{padding:.65rem .85rem max(.65rem, env(safe-area-inset-bottom));grid-template-rows:150px minmax(0,1fr);grid-template-columns:minmax(0,1fr);gap:.65rem}.stage{border-radius:var(--radius-card)}.stage:before{width:240px;top:-20px;left:auto;right:-35px}.coach-identity{top:var(--space-4);max-width:calc(100% - 155px);left:1.1rem}.coach-eyebrow{letter-spacing:.05em;font-size:.6rem}.coach-name{font-size:var(--font-size-title)}.coach-tagline{font-size:var(--font-size-label);margin-top:.1rem}.stage-action{min-height:32px;font-size:var(--font-size-caption);padding:.25rem .7rem;top:.65rem;right:.65rem}.luna{width:155px;inset:0 0 0 auto}.luna-status{inset:auto 0 var(--space-2);font-size:.65rem}.coach-caption{font-size:var(--font-size-caption);justify-content:flex-start;bottom:.8rem;left:1.1rem}.stage:has(.goals) .coach-caption{display:none}.goals{padding:.35rem var(--space-2);font-size:var(--font-size-caption);gap:.35rem;bottom:.65rem;left:.8rem;right:155px}.conversation-panel{border-radius:var(--radius-card)}.dialogue{padding:var(--space-4);gap:.8rem}.bubble{max-width:94%;padding:.7rem .85rem;font-size:.92rem}.bubble.coach{font-size:.95rem}.controls{padding:.6rem var(--space-4);gap:var(--space-2)}.talk{gap:.4rem}.talk-button{width:48px;height:48px}.talk-hint{font-size:var(--font-size-caption);max-width:80px}.text-toggle,.help-toggle{padding:.45rem}.text-bar{padding:.7rem var(--space-4) .4rem}.scene-card{padding:var(--space-4);gap:.65rem}.scene-actions{padding:.6rem var(--space-4);margin:.3rem -1rem -1rem;bottom:-1rem}}@media (width<=960px) and (height<=700px){.practice{grid-template-rows:115px minmax(0,1fr)}.coach-identity{top:.65rem}.coach-name{font-size:1.6rem}.coach-tagline{display:none}}@media (width>=481px) and (width<=960px) and (height<=480px){.practice{grid-template-rows:minmax(0,1fr);grid-template-columns:170px minmax(0,1fr)}.coach-identity{max-width:none}.coach-name{font-size:1.8rem}.luna{width:auto;inset:3.5rem 0 2.5rem}.goals{left:var(--space-2);right:var(--space-2)}.talk-hint{display:none}}@media (width<=480px) and (height<=480px){.practice{grid-template-rows:62px minmax(0,1fr);gap:.4rem;padding-top:.4rem}.coach-identity{top:.4rem}.coach-eyebrow,.coach-name,.coach-caption{display:none}.coach-tagline{margin:0;display:block}.stage:has(.goals) .coach-identity{display:none}.goals{bottom:.9rem}.luna{width:95px}.controls{padding-block:.3rem}.talk-hint{display:none}.talk-button{width:44px;height:44px}}.target-text ruby{ruby-position:over}.target-text rt{color:var(--muted);font-size:.55em;font-weight:400}.target-romaji{color:var(--muted);font-size:.8em;font-weight:400;display:block}.target-help{gap:var(--space-1);flex-wrap:wrap;display:flex}.target-help button.link{padding:0 var(--space-2) 0 0;font-size:var(--font-size-label)}.corrections .target-text{flex-direction:column;display:inline-flex}.corrections .wrong .target-line{text-decoration:line-through}.bubble.learner .target-romaji,.bubble.learner .target-text rt,.bubble.learner .target-help button.link{color:var(--on-learner)}.kana-section{padding:var(--space-5);gap:var(--space-3);margin-bottom:var(--space-6);display:grid}.kana-section h2,.kana-section p{margin:0}.kana-section.done{grid-template-columns:1fr auto;align-items:center}.kana-counts{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.kana-counts li{align-items:center;gap:var(--space-3);grid-template-columns:6rem 1fr auto;display:grid}.kana-counts .track{background:var(--border);border-radius:999px;height:6px;overflow:hidden}.kana-counts .track span{background:var(--accent);height:100%;display:block}.kana-actions{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.kana-script h3{margin:var(--space-3) 0 var(--space-2);font-size:var(--font-size-heading)}.kana-table{gap:var(--space-3);display:grid}.kana-group{margin:0 0 var(--space-1);color:var(--muted);font-size:var(--font-size-label);font-weight:600}.kana-row{gap:4px;margin-bottom:4px;display:grid}.kana-row.cols-5{grid-template-columns:repeat(5,minmax(0,3.2rem))}.kana-row.cols-3{grid-template-columns:repeat(3,minmax(0,3.2rem))}.kana-cell{border-radius:var(--radius-sm,6px);border:1px solid var(--border);color:var(--muted);justify-items:center;padding:4px 0;display:grid}.kana-cell.empty{border:none}.kana-cell.learning{border-color:var(--accent);color:var(--text)}.kana-cell.known{background:var(--accent);border-color:var(--accent);color:var(--surface)}.kana-cell .kana-char{font-size:1.15rem;line-height:1.3}.kana-cell .kana-romaji{font-size:.65rem}.kana-taught-romaji{margin-top:calc(-1 * var(--space-3));text-align:center;color:var(--muted);font-size:1.5rem;font-weight:600}.kana-prompt{text-align:center;font-size:clamp(3rem,12vw,4.5rem);line-height:1.2}.kana-prompt.word{font-size:clamp(2rem,8vw,3rem)}.kana-options button{min-width:4rem;font-size:1.5rem}
