@import "https://cdn.jsdelivr.net/npm/geist@1.3.1/dist/fonts/geist-sans/style.css";@import "https://cdn.jsdelivr.net/npm/geist@1.3.1/dist/fonts/geist-mono/style.css";:root,html[data-theme=terminal]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#050608;--background-elevated:#0a0c10;--surface:#0d1117;--surface-2:#121820;--surface-3:#1a222d;--foreground:#f3f4f6;--muted:#94a3b8;--muted-2:#64748b;--border:#94a3b829;--border-strong:#94a3b847;--accent:#10b981;--accent-soft:#10b9811f;--accent-foreground:#04140f;--gold:#d4af37;--gold-hover:#e0c04a;--green:#10b981;--red:#ef4444;--blue:#3b82f6;--orange:#f59e0b;--sky:#38bdf8;--input-bg:#1a1a2e;--shadow:0 18px 40px #00000059;--radius:12px;--radius-btn:8px;--gradient-app:radial-gradient(1200px 600px at 10% -10%, #10b9811f, transparent 55%), radial-gradient(900px 500px at 90% 0%, #d4af3714, transparent 50%), var(--background);--ink:var(--foreground);--ink-soft:var(--muted);--forest:var(--accent);--sun:var(--gold);--sun-deep:var(--gold-hover);--good:var(--green);--bad:var(--red);--paper:var(--background);--mint:var(--accent);--rose:var(--red)}html[data-theme=aurora]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#07111f;--background-elevated:#0b1829;--surface:#0f1f33;--surface-2:#152a42;--surface-3:#1c3552;--foreground:#e8eef7;--muted:#9db0c7;--muted-2:#6f86a3;--border:#7da8d22e;--border-strong:#7da8d252;--accent:#2dd4bf;--accent-soft:#2dd4bf24;--accent-foreground:#042f2e;--gold:#5eead4;--gold-hover:#99f6e4;--green:#34d399;--red:#fb7185;--blue:#38bdf8;--orange:#fbbf24;--sky:#38bdf8;--input-bg:#152a42;--gradient-app:radial-gradient(1000px 520px at 0% 0%, #38bdf829, transparent 55%), radial-gradient(800px 480px at 100% 10%, #2dd4bf1f, transparent 50%), var(--background)}html[data-theme=ledger]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#eef1f6;--background-elevated:#f7f8fb;--surface:#fff;--surface-2:#f3f5f9;--surface-3:#e7ebf2;--foreground:#0f172a;--muted:#334155;--muted-2:#475569;--border:#0f172a1f;--border-strong:#0f172a33;--accent:#0f766e;--accent-soft:#0f766e1a;--accent-foreground:#f0fdfa;--gold:#0f766e;--gold-hover:#0d9488;--green:#047857;--red:#b91c1c;--blue:#1d4ed8;--orange:#b45309;--sky:#0ea5e9;--input-bg:#fff;--shadow:0 18px 40px #0f172a14;--gradient-app:radial-gradient(900px 480px at 15% -5%, #0f766e14, transparent 50%), radial-gradient(700px 400px at 95% 0%, #2563eb0f, transparent 45%), var(--background)}html[data-theme=ember]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#140e0c;--background-elevated:#1b1411;--surface:#221915;--surface-2:#2c1f19;--surface-3:#3a2920;--foreground:#faf3eb;--muted:#c4b0a0;--muted-2:#927868;--border:#fbbf2424;--border-strong:#fbbf2447;--accent:#f59e0b;--accent-soft:#f59e0b24;--accent-foreground:#1c1005;--gold:#fbbf24;--gold-hover:#fcd34d;--green:#34d399;--red:#fb7185;--blue:#38bdf8;--orange:#f97316;--sky:#fbbf24;--input-bg:#2c1f19;--gradient-app:radial-gradient(1000px 520px at 8% -8%, #f59e0b24, transparent 55%), radial-gradient(700px 420px at 100% 0%, #fb71851a, transparent 50%), var(--background)}html[data-theme=slate]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#0b1220;--background-elevated:#0f172a;--surface:#111827;--surface-2:#1e293b;--surface-3:#273548;--foreground:#e2e8f0;--muted:#94a3b8;--muted-2:#64748b;--border:#94a3b829;--border-strong:#94a3b84d;--accent:#60a5fa;--accent-soft:#60a5fa24;--accent-foreground:#0b1220;--gold:#93c5fd;--gold-hover:#bfdbfe;--green:#4ade80;--red:#f87171;--blue:#60a5fa;--orange:#fbbf24;--sky:#60a5fa;--input-bg:#1e293b;--gradient-app:radial-gradient(1000px 520px at 12% -10%, #60a5fa24, transparent 55%), radial-gradient(800px 420px at 100% 0%, #94a3b81a, transparent 50%), var(--background)}*{box-sizing:border-box}html,body,#root{min-height:100dvh}#root{flex-direction:column;display:flex}body{min-width:320px;color:var(--foreground);background-color:var(--background);background-image:var(--gradient-app);-webkit-font-smoothing:antialiased;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background-attachment:fixed;margin:0;font-family:Geist,Segoe UI,system-ui,sans-serif}::selection{background:var(--accent-soft)}button,input{font:inherit}button{cursor:pointer}h1,h2,h3,.brand{letter-spacing:-.03em;font-family:Geist,Segoe UI,system-ui,sans-serif;font-weight:700}.eyebrow,.hero-kicker,.section-label{letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:0 0 .45rem;font-family:Geist Mono,Geist,monospace;font-size:.72rem;font-weight:600}.app-shell{flex-direction:column;flex:1;width:min(1400px,100% - 2rem);min-height:100dvh;margin:0 auto;padding:1rem 0 3.5rem;display:flex}.app-shell-stage .stage-center{flex-direction:column;flex:1;justify-content:center;align-items:center;width:100%;padding:clamp(1.5rem,6vh,4rem) 0 clamp(2rem,8vh,5rem);display:flex}.topbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.75rem;padding:.65rem 0;display:flex}.brand-mark{align-items:baseline;gap:.55rem;display:flex}.brand-mark .brand{color:var(--gold);margin:0;font-size:1.15rem;font-weight:700}.brand-mark span{color:var(--muted-2);font-size:.82rem}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.45rem;display:flex}.meta-pills{flex-wrap:wrap;gap:.4rem;display:flex}.meta{background:var(--surface);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:.35rem .7rem;font-size:.82rem;font-weight:600}.meta.hot{color:var(--gold);border-color:color-mix(in srgb, var(--gold) 35%, transparent);background:color-mix(in srgb, var(--gold) 10%, transparent)}.wallet-chip{align-items:center;gap:.3rem;display:inline-flex}.wallet-coin{width:1rem;height:1rem}.btn{border-radius:var(--radius-btn);border:none;padding:.7rem 1.15rem;font-size:.92rem;font-weight:650;transition:transform .15s,background .15s,border-color .15s}.btn:active{transform:scale(.98)}.btn-sm{padding:.45rem .8rem;font-size:.82rem}.btn-primary{background:var(--gold);color:#1a1000}.btn-primary:hover{background:var(--gold-hover)}.btn-ghost{color:var(--foreground);border:1px solid var(--border-strong);background:0 0}.btn-ghost:hover{border-color:color-mix(in srgb, var(--gold) 45%, transparent);background:color-mix(in srgb, var(--gold) 8%, transparent)}.btn-lg{padding:.9rem 1.4rem;font-size:1rem}.btn-with-art{align-items:center;gap:.4rem;display:inline-flex}.btn-mini-art{width:1.35rem;height:1.2rem}.home-wrap{width:100%}.home{gap:1.5rem;width:100%;animation:.45s cubic-bezier(.2,.8,.2,1) both rise;display:grid}.home>.home-hero-centered{width:min(40rem,100%);padding-top:clamp(.5rem,3vh,2rem);padding-bottom:.5rem}.home-hero{max-width:40rem;padding:.5rem 0 .25rem}.home-hero-centered{text-align:center;width:min(34rem,100%);max-width:none;margin-inline:auto}.home-hero-centered .lead{max-width:28rem;margin-inline:auto;font-size:clamp(1.05rem,2.2vw,1.2rem)}.home-hero-centered .cta-row,.home-hero-centered .hero-actions{justify-content:center;max-width:28rem;margin-inline:auto}.home-hero-centered .stat-strip{margin-inline:auto}.home-greeting{letter-spacing:-.03em;color:var(--foreground);margin:0 0 .35rem;font-size:clamp(1.7rem,5.5vw,2.4rem);font-weight:650;line-height:1.15}.brand-fancy{font-optical-sizing:auto;letter-spacing:-.03em;background:linear-gradient(118deg, var(--gold) 0%, color-mix(in srgb, var(--gold) 55%, var(--accent)) 45%, var(--gold-hover) 100%);color:#0000;text-shadow:none;filter:drop-shadow(0 10px 28px color-mix(in srgb, var(--gold) 22%, transparent));-webkit-background-clip:text;background-clip:text;margin:0 0 .85rem;font-family:Fraunces,Iowan Old Style,Georgia,serif;font-size:clamp(3.6rem,11vw,5.4rem);font-style:italic;font-weight:700;line-height:.92}.home-hero h1:not(.brand-fancy){letter-spacing:-.04em;color:var(--foreground);margin:0 0 .65rem;font-size:clamp(2.6rem,7vw,3.75rem);line-height:.95}.lead,.lesson-blurb{max-width:34rem;color:var(--muted);margin:0;font-size:1.02rem;line-height:1.5}.cta-row,.hero-actions{flex-wrap:wrap;gap:.55rem;margin-top:1.25rem;display:flex}.stat-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;max-width:32rem;margin-top:1.5rem;display:grid}.stat-strip div{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);padding:.7rem .75rem}.stat-strip strong{color:var(--foreground);font-family:Geist Mono,Geist,monospace;font-size:1.15rem;display:block}.stat-strip span{color:var(--muted-2);font-size:.78rem}.panel-card{border:1px solid var(--border);background:var(--surface);border-radius:14px;padding:1.15rem 1.25rem}.panel-card-head{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.85rem;display:flex}.panel-card-head h2,.home-section h2,.auth-screen h2,.leaderboard h2,.lesson-teach h2,.gift-shop h2,.parent-panel h2,.lesson-complete h2{color:var(--foreground);margin:0;font-size:1.35rem}.invite-card{border-color:color-mix(in srgb, var(--gold) 35%, var(--border));background:linear-gradient(135deg, color-mix(in srgb, var(--gold) 10%, var(--surface)), var(--surface));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.invite-code{letter-spacing:.12em;color:var(--gold);margin:.15rem 0 .35rem;font-family:Geist Mono,Geist,monospace;font-size:clamp(1.6rem,4vw,2rem);font-weight:700}.muted{color:var(--muted);margin:0;font-size:.92rem}.home-section{gap:.85rem;display:grid}.section-head h2{margin:0}.home-board h2{font-size:1.25rem}.home-lb{margin-top:.25rem}.theme-picker{position:relative}.theme-trigger{border:1px solid var(--border);background:var(--surface);color:var(--foreground);border-radius:var(--radius-btn);align-items:center;gap:.45rem;padding:.35rem .65rem;display:inline-flex}.theme-trigger-label{font-size:.78rem;font-weight:600}.theme-swatches{display:inline-flex}.theme-swatches i{border:1px solid #00000040;border-radius:999px;width:.7rem;height:.7rem;margin-left:-.2rem}.theme-swatches i:first-child{margin-left:0}.theme-menu{z-index:40;border:1px solid var(--border);background:var(--surface);width:min(18rem,100vw - 2rem);box-shadow:var(--shadow);border-radius:12px;gap:.25rem;padding:.4rem;display:grid;position:absolute;top:calc(100% + .4rem);right:0}.theme-option{text-align:left;color:var(--foreground);background:0 0;border:1px solid #0000;border-radius:10px;align-items:flex-start;gap:.65rem;padding:.55rem .6rem;display:flex}.theme-option:hover,.theme-option.selected{border-color:var(--border-strong);background:var(--accent-soft)}.theme-option-copy{gap:.1rem;min-width:0;display:grid}.theme-option-copy strong{font-size:.85rem}.theme-option-copy small{color:var(--muted);font-size:.72rem;line-height:1.35}.auth-screen,.leaderboard,.lesson-teach,.gift-shop,.parent-panel,.lesson-complete,.practice{animation:.45s cubic-bezier(.2,.8,.2,1) both rise}.auth-shell{justify-content:center;width:100%;padding:.25rem 0 1rem;display:flex}.auth-card{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 92%, transparent);width:min(28rem,100%);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:1.25rem;gap:1.5rem;padding:clamp(1.5rem,4vw,2.5rem);display:grid}.auth-card-brand{text-align:center;gap:.45rem;display:grid}.auth-card-brand .brand-fancy{margin:0;font-size:clamp(2.8rem,8vw,3.8rem)}.auth-subtitle,.auth-help{color:var(--muted);margin:0;font-size:.95rem;line-height:1.45}.auth-section{gap:.75rem;display:grid}.auth-label,.field-label{letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2);margin:0 0 .45rem;font-size:.68rem;font-weight:700;display:block}.auth-stack{gap:.65rem;display:grid}.btn-block{justify-content:center;width:100%}.auth-form{gap:1rem;width:100%;margin-top:.25rem;display:grid}.auth-form label,.auth-form-solo{color:var(--muted);gap:.45rem;font-size:.9rem;font-weight:650;display:grid}.auth-form .answer-input,.auth-form-solo .answer-input{width:100%;min-height:2.75rem;padding:.7rem .9rem;font-size:.95rem}.auth-back{justify-self:start;width:fit-content}.auth-card h2{margin:0;font-size:1.45rem}.family-card-list{gap:.65rem;display:grid}.family-card{border:1px solid var(--border);background:var(--surface-2);text-align:left;border-radius:.9rem;justify-content:space-between;align-items:center;gap:.75rem;padding:.9rem 1rem;display:flex}.family-card strong{color:var(--foreground);font-size:1rem;display:block}.family-card span{color:var(--muted);margin-top:.2rem;font-size:.82rem;display:block}.family-card-actions{flex-wrap:wrap;justify-content:flex-end;gap:.4rem;display:flex}.family-card-button{cursor:pointer;width:100%;transition:border-color .14s,background .14s,transform .14s}.family-card-button:hover{border-color:var(--border-strong);transform:translateY(-1px)}.family-card-cta{flex:none;font-weight:700;color:var(--gold)!important;font-size:.85rem!important}.avatar-picker{color:var(--muted);gap:.45rem;font-weight:650;display:grid}.avatar-row{flex-wrap:wrap;gap:.4rem;display:flex}.avatar-chip{border:1px solid var(--border);background:var(--surface-2);text-transform:capitalize;color:var(--foreground);border-radius:12px;flex-direction:column;align-items:center;gap:.2rem;min-width:4.2rem;padding:.45rem .55rem .4rem;font-weight:650;display:inline-flex}.avatar-chip span{font-size:.72rem}.avatar-face{width:2.4rem;height:2.4rem}.avatar-chip.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.lb-avatar-art{width:2.2rem;height:2.2rem}.gift-edit-row{align-items:stretch!important}.gift-edit-form{flex-wrap:wrap;align-items:center;gap:.5rem;width:100%;display:flex}.lb-list{gap:.5rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.lb-list li{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;grid-template-columns:auto auto 1fr;align-items:center;gap:.7rem;padding:.8rem .9rem;display:grid}.lb-list li.me{border-color:color-mix(in srgb, var(--gold) 45%, transparent);background:color-mix(in srgb, var(--gold) 10%, var(--surface-2))}.lb-rank{color:var(--accent);font-family:Geist Mono,Geist,monospace;font-weight:700}.lb-family{color:var(--muted);font-weight:500}.lb-avatar{text-transform:capitalize;color:var(--gold);font-weight:700}.lb-list li div{gap:.12rem;display:grid}.lb-list li span{color:var(--muted);font-size:.85rem}.lesson-path{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.65rem;display:grid}.lesson-node{text-align:left;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius);color:var(--foreground);grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:.7rem;padding:.9rem 1rem;transition:transform .15s,border-color .15s;display:grid}.lesson-node:hover:not(:disabled){border-color:var(--border-strong);transform:translateY(-1px)}.lesson-node.done{border-color:color-mix(in srgb, var(--accent) 45%, transparent);background:var(--accent-soft)}.lesson-node.locked{opacity:.5;cursor:not-allowed}.lesson-node.checkpoint-node{background:color-mix(in srgb, var(--gold,#c9a227) 12%, var(--surface));border-style:dashed}.checkpoint-badge{width:2.4rem;height:2.4rem;color:var(--foreground);background:color-mix(in srgb, var(--gold,#c9a227) 35%, transparent);border:1px solid color-mix(in srgb, var(--gold,#c9a227) 55%, transparent);border-radius:.55rem;grid-row:1/span 2;place-items:center;font-size:.85rem;font-weight:800;display:grid}.checkpoint-practice .checkpoint-stage{max-width:42rem}.admin-panel{gap:1rem;padding:.5rem 0 2rem;display:grid}.admin-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:.85rem;display:grid}.admin-col{gap:.75rem;padding:1rem;display:grid}.admin-list{gap:.4rem;max-height:28rem;display:grid;overflow:auto}.admin-list-item{text-align:left;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius);color:var(--foreground);gap:.15rem;padding:.7rem .8rem;display:grid}.admin-list-item span{color:var(--muted);font-size:.85rem}.admin-list-item.active{border-color:color-mix(in srgb, var(--accent) 50%, transparent);background:var(--accent-soft)}.admin-list-item.admin-kid-row{align-items:center;gap:.5rem;padding:.45rem .55rem;display:flex}.admin-kid-select{text-align:left;color:inherit;cursor:pointer;background:0 0;border:none;flex:1;gap:.15rem;padding:.25rem .3rem;display:grid}.admin-kid-select span{color:var(--muted);font-size:.85rem}.admin-kid-delete{flex-shrink:0;color:#a33!important}.admin-form-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:end;gap:.65rem;display:grid}.admin-progress-list{gap:.4rem;max-height:26rem;display:grid;overflow:auto}.admin-progress-row{border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:.75rem;padding:.55rem .7rem;display:flex}.admin-progress-row.done{background:var(--accent-soft)}.admin-progress-row.in-progress{background:color-mix(in srgb, var(--gold,#d4a017) 12%, transparent)}.admin-progress-row>div{gap:.1rem;display:grid}.admin-progress-actions{flex-wrap:wrap;justify-content:flex-end;gap:.35rem;display:flex}.admin-password{padding:.9rem 1rem}@media (width<=980px){.admin-grid{grid-template-columns:1fr}}.lesson-badge-art{grid-row:1/span 2;width:2.4rem;height:2.4rem}.lesson-num{display:none}.lesson-title{font-weight:650}.lesson-meta{color:var(--muted-2);font-size:.8rem}.topic-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.65rem;display:grid}.topic-btn{text-align:left;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius);color:var(--foreground);padding:1rem 1.05rem 1.1rem;transition:transform .15s,border-color .15s}.topic-btn:hover{border-color:var(--border-strong);transform:translateY(-1px)}.topic-btn .swatch{border-radius:999px;width:2rem;height:.35rem;margin:.55rem 0 .65rem}.topic-btn h3{margin:0 0 .3rem;font-size:1rem}.topic-btn p{color:var(--muted);margin:0;font-size:.88rem;line-height:1.35}.topic-glyph{background:var(--accent-soft);min-width:2.2rem;height:2.2rem;color:var(--accent);border-radius:10px;justify-content:center;align-items:center;margin-bottom:.4rem;font-family:Geist Mono,Geist,monospace;font-size:.9rem;font-weight:700;display:inline-flex}.practice-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.1rem;display:flex}.practice-head h2{color:var(--foreground);margin:0;font-size:clamp(1.3rem,3vw,1.7rem)}.problem-stage{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;padding:clamp(1.25rem,3vw,2rem);position:relative;overflow:hidden}.prompt{z-index:1;white-space:pre-wrap;max-width:52ch;margin:0 0 .65rem;font-size:clamp(1.25rem,3vw,1.7rem);font-weight:700;line-height:1.35;position:relative}.prompt-en{z-index:1;color:var(--muted);max-width:42ch;margin:0 0 1.25rem;font-size:.95rem;position:relative}.answer-row,.action-row{z-index:1;flex-wrap:wrap;align-items:center;gap:.65rem;display:flex;position:relative}.answer-row{margin-top:1.25rem}.action-row{margin-top:.85rem}.answer-input{border:1px solid var(--border-strong);background:var(--input-bg);border-radius:var(--radius-btn);min-width:0;color:var(--foreground);outline:none;flex:180px;padding:.85rem 1rem;font-size:1.15rem;font-weight:650}.answer-input:focus{border-color:var(--accent)}.answer-input.ok{border-color:var(--green);background:var(--accent-soft)}.answer-input.bad{border-color:var(--red);animation:.36s shake}.feedback{z-index:1;border-radius:10px;margin-top:1rem;padding:.85rem 1rem;font-weight:600;position:relative}.feedback.ok{background:var(--accent-soft);color:var(--green)}.feedback.bad{background:color-mix(in srgb, var(--red) 12%, transparent);color:var(--red)}.hints{z-index:1;gap:.5rem;margin-top:1rem;display:grid;position:relative}.hint{background:color-mix(in srgb, var(--sky) 12%, transparent);border-left:3px solid var(--sky);color:var(--muted);border-radius:0 10px 10px 0;padding:.7rem .9rem}.practice-layout{grid-template-columns:minmax(0,1.65fr) minmax(260px,.85fr);align-items:start;gap:1rem;display:grid}.tutor-panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;gap:.75rem;padding:1rem;display:grid}.tutor-head{flex-direction:row;align-items:center;gap:.6rem;display:flex}.tutor-head strong{color:var(--accent)}.tutor-head span{color:var(--muted);font-size:.82rem}.tutor-owl{width:48px;height:40px}.tutor-bubbles{gap:.5rem;min-height:4rem;max-height:280px;display:grid;overflow:auto}.tutor-empty{color:var(--muted);margin:0;font-size:.92rem}.tutor-bubble{border-radius:10px;padding:.65rem .8rem;font-size:.92rem;line-height:1.4}.tutor-bubble.tutor{background:color-mix(in srgb, var(--sky) 14%, transparent)}.tutor-bubble.you{background:color-mix(in srgb, var(--gold) 14%, transparent);justify-self:end}.teach-cards{gap:.7rem;margin:1.25rem 0;display:grid}.teach-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.05rem 1.15rem;position:relative}.teach-card h3{color:var(--accent);margin:0 0 .4rem;font-size:1rem}.teach-card p{color:var(--muted);margin:0;line-height:1.45}.teach-card-num{background:var(--accent);width:1.55rem;height:1.55rem;color:var(--accent-foreground);border-radius:999px;place-items:center;font-family:Geist Mono,Geist,monospace;font-size:.8rem;font-weight:700;display:grid;position:absolute;top:.8rem;right:.9rem}.teach-example,.teach-example-block .teach-example{background:color-mix(in srgb, var(--sky) 12%, transparent);border-radius:10px;padding:.7rem .85rem;font-weight:600;color:var(--foreground)!important;margin-top:.7rem!important}.teach-example-label{letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-bottom:.3rem;font-size:.7rem;font-weight:700;display:inline-block}.teach-hero{grid-template-columns:minmax(0,1fr) minmax(160px,260px);align-items:center;gap:1rem;margin-top:.65rem;display:grid}.teach-scene{width:100%;height:auto}.teach-tip-banner{background:color-mix(in srgb, var(--sky) 12%, transparent);border:1px solid var(--border);border-radius:12px;align-items:center;gap:.7rem;margin:1.1rem 0 .4rem;padding:.75rem .9rem;display:flex}.teach-tip-banner p{color:var(--muted);margin:0;font-weight:600;line-height:1.4}.teach-tip-owl{flex-shrink:0;width:52px;height:44px}.gift-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.7rem;margin-top:1.1rem;display:grid}.gift-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:.5rem;padding:1.05rem;display:grid}.gift-card h3{margin:0;font-size:1rem}.gift-card p{color:var(--muted);margin:0;font-weight:650}.gift-swatch{border-radius:999px;width:2.2rem;height:.35rem}.gift-hero{grid-template-columns:1fr auto;align-items:center;gap:1rem;display:grid}.gift-hero-art{width:100px;height:auto}.gift-coin{width:2rem;height:2rem;margin-bottom:.3rem}.redeem-list,.parent-gift-list{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.redeem-list li,.parent-gift-list li{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.7rem;padding:.8rem .95rem;display:flex}.parent-gift-list li div{gap:.15rem;display:grid}.reward-toast{z-index:20;border-radius:var(--radius);background:var(--gold);color:#1a1000;width:fit-content;max-width:100%;box-shadow:0 10px 24px color-mix(in srgb, var(--gold) 28%, transparent);align-items:flex-start;gap:.65rem;margin:0 auto 1rem;padding:.7rem 1rem;font-weight:700;display:flex;position:sticky;top:.5rem}.toast-coin{flex-shrink:0;width:1.45rem;height:1.45rem}.toast-penalty{opacity:.9;margin-top:.1rem;font-size:.8rem;font-weight:600;display:block}.match-board{gap:.75rem;display:grid}.match-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem;display:flex}.match-help{color:var(--muted);flex:16rem;margin:0;font-size:.92rem;font-weight:600}.match-toolbar-actions{align-items:center;gap:.55rem;display:flex}.match-progress{color:var(--muted-2);font-family:Geist Mono,Geist,monospace;font-size:.82rem;font-weight:650}.match-cols{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:.85rem;display:grid}.match-col{gap:.55rem;display:grid}.match-item{text-align:left;border:1px solid var(--border);background:var(--surface-2);color:var(--foreground);border-radius:12px;padding:.75rem .85rem;font-weight:650;transition:border-color .14s,background .14s,box-shadow .14s,transform .14s}.match-item-main{align-items:flex-start;gap:.55rem;display:flex}.match-item-label{flex:1;line-height:1.35}.match-answer{font-family:Geist Mono,Geist,monospace;font-size:1.15rem}.match-item.selected{border-color:var(--gold);box-shadow:0 0 0 2px color-mix(in srgb, var(--gold) 28%, transparent);transform:translateY(-1px)}.match-item.awaiting:not(:disabled){border-color:color-mix(in srgb, var(--gold) 55%, var(--border));box-shadow:0 0 0 1px color-mix(in srgb, var(--gold) 18%, transparent)}.match-item.paired{border-color:var(--pair-border,color-mix(in srgb, var(--accent) 45%, transparent));background:var(--pair-bg,var(--accent-soft))}.pair-badge{width:1.45rem;height:1.45rem;color:var(--pair-ink,var(--accent-foreground));background:var(--pair-chip,var(--accent));border-radius:999px;flex:none;place-items:center;font-size:.75rem;font-weight:800;line-height:1;display:inline-grid}.pair-tag{color:var(--pair-ink-soft,var(--accent));margin-top:.4rem;font-size:.82rem;font-weight:700;display:block}.pair-tag.picking{color:var(--gold)}.pair-hint{opacity:.75;font-weight:550}.match-item.tone-a{--pair-border:#2dd4bf;--pair-bg:#2dd4bf1f;--pair-chip:#14b8a6;--pair-ink:#042f2e;--pair-ink-soft:#5eead4}.match-item.tone-b{--pair-border:#60a5fa;--pair-bg:#60a5fa24;--pair-chip:#3b82f6;--pair-ink:#0b1220;--pair-ink-soft:#93c5fd}.match-item.tone-c{--pair-border:#fbbf24;--pair-bg:#fbbf2424;--pair-chip:#f59e0b;--pair-ink:#1c1005;--pair-ink-soft:#fcd34d}.match-item.tone-d{--pair-border:#f472b6;--pair-bg:#f472b624;--pair-chip:#ec4899;--pair-ink:#1f0a16;--pair-ink-soft:#f9a8d4}.match-item.tone-e{--pair-border:#a78bfa;--pair-bg:#a78bfa24;--pair-chip:#8b5cf6;--pair-ink:#140a24;--pair-ink-soft:#c4b5fd}.match-item.tone-f{--pair-border:#34d399;--pair-bg:#34d39924;--pair-chip:#10b981;--pair-ink:#04140f;--pair-ink-soft:#6ee7b7}.machine-chart table{border-collapse:collapse;background:var(--surface-2);border-radius:10px;width:100%;overflow:hidden}.machine-chart th,.machine-chart td{border:1px solid var(--border);text-align:center;padding:.5rem .6rem;font-weight:650}.chart-input{border:1px solid var(--border-strong);text-align:center;background:var(--input-bg);width:100%;max-width:5rem;color:var(--foreground);border-radius:8px;padding:.35rem .45rem;font-weight:650}.shade-grid,.area-grid{gap:3px;width:max-content;max-width:100%;display:grid}.shade-cell,.area-cell{border:1px solid var(--border-strong);background:var(--surface-2);border-radius:4px;width:28px;height:28px;padding:0}.area-cell{width:22px;height:22px}.shade-cell.off{pointer-events:none;background:0 0;border-color:#0000}.shade-cell.filled,.area-cell.filled{background:color-mix(in srgb, var(--accent) 75%, transparent);border-color:var(--accent)}.choice-grid{gap:.55rem;display:grid}.choice-card{text-align:left;border:1px solid var(--border);background:var(--surface-2);color:var(--foreground);border-radius:12px;gap:.5rem;padding:.8rem .95rem;display:grid}.choice-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.split-svg{width:88px;height:88px;color:var(--accent)}.nl-visual{overflow-x:auto}.nl-track{border-bottom:2px solid var(--border-strong);align-items:flex-end;gap:.6rem;min-height:2.4rem;padding-top:.45rem;display:flex}.nl-tick{color:var(--muted);justify-items:center;gap:.15rem;font-size:.78rem;font-weight:700;display:grid}.nl-tick i{background:var(--accent);width:2px;height:10px}.nl-visual.uneven .nl-track{gap:.3rem}.celebrate-stage{text-align:center}.burst{pointer-events:none;z-index:2;position:absolute;inset:0;overflow:hidden}.burst i{opacity:0;border-radius:2px;width:10px;height:10px;animation:.9s forwards burst;position:absolute}.mascot{filter:drop-shadow(0 12px 20px #00000059);width:min(100%,220px);height:auto}.mascot-caption{color:var(--accent);margin:0;font-size:.9rem;font-weight:650}.stat-art{width:24px;height:24px}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes burst{0%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(var(--dx), var(--dy)) scale(.4)}}.tutorial-overlay{z-index:80;background:color-mix(in srgb, var(--background) 55%, #0000008c);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);place-items:center;padding:1.25rem;animation:.22s both rise;display:grid;position:fixed;inset:0}.tutorial-card{width:min(28rem,100%);box-shadow:var(--shadow)}.tutorial-card h2{margin:0 0 .65rem;font-size:clamp(1.4rem,4vw,1.75rem)}.tutorial-card .lead{max-width:none;font-size:.98rem}.tutorial-dots{gap:.35rem;margin:1.25rem 0 .25rem;display:flex}.tutorial-dots i{background:var(--border-strong);border-radius:999px;width:.45rem;height:.45rem}.tutorial-dots i.on{background:var(--gold);width:1.1rem}.tutorial-actions{justify-content:space-between;align-items:center;margin-top:1.15rem}.tutorial-nav{flex-wrap:wrap;gap:.45rem;margin-left:auto;display:flex}.tutorial-video-overlay{z-index:100}.tutorial-video-card{width:min(44rem,100%)}.tutorial-video-lead{margin-bottom:.85rem}.tutorial-video-frame{border:1px solid var(--border-strong);aspect-ratio:16/10;background:#050608;border-radius:.85rem;position:relative;overflow:hidden}.tutorial-video{object-fit:contain;background:#050608;width:100%;height:100%;display:block}.tutorial-play-btn{width:fit-content;height:fit-content;font:inherit;color:#08110c;background:var(--gold);cursor:pointer;border:none;border-radius:999px;margin:auto;padding:.85rem 1.5rem;font-weight:700;position:absolute;inset:0;box-shadow:0 10px 30px #00000059}.tutorial-play-btn:hover{filter:brightness(1.05)}.tutorial-progress{background:color-mix(in srgb, var(--border-strong) 70%, transparent);border-radius:999px;height:.35rem;margin-top:.75rem;overflow:hidden}.tutorial-progress-bar{background:linear-gradient(90deg, var(--accent), var(--gold));height:100%;transition:width .16s linear}.tutorial-progress-label{margin:.45rem 0 0;font-size:.85rem}@media (width<=860px){.practice-layout,.teach-hero,.gift-hero{grid-template-columns:1fr}.stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.app-shell{width:min(100% - 1.25rem,1080px)}.theme-trigger-label{display:none}.answer-row{flex-direction:column;align-items:stretch}.btn,.answer-input{width:100%}.topbar-actions .btn{width:auto}.match-cols{grid-template-columns:1fr}}
