:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;margin:0;overflow-x:clip}body{color:#fff;background:#25132f;font-family:system-ui,-apple-system,sans-serif}button,input,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,select:focus-visible{outline-offset:5px;outline:3px solid #ffda48}h1,h2{font-family:var(--heading,system-ui);overflow-wrap:anywhere;margin:.25em 0;font-weight:400}h1{font-size:clamp(24px,4vw,36px)}h2{font-size:24px}p{line-height:1.6}img,svg{max-width:100%}.web-app{background:radial-gradient(ellipse at 45% 0%,#784c50,transparent 60%),var(--bg,#25132f);min-height:100dvh;padding:env(safe-area-inset-top) max(12px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(12px,env(safe-area-inset-left))}.web-nav{justify-content:space-between;align-items:center;gap:12px;max-width:1100px;min-height:62px;margin:auto;font-size:13px;display:flex}.brand{color:#fff;align-items:center;gap:9px;font-weight:750;text-decoration:none;display:flex}.web-nav .magic-button{min-height:40px;padding:8px 10px;font-size:12px}.app-content{max-width:1050px;min-height:calc(100dvh - 72px);margin:auto;padding:12px 0 30px}.web-screen{flex-direction:column;gap:18px;width:100%;min-width:0;padding:14px;display:flex}.magic-button{background:var(--mint,#57e2d1);min-height:48px;color:var(--ink,#1f0a3a);border:3px solid var(--ink,#1f0a3a);overflow-wrap:anywhere;border-radius:18px;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-weight:800;transition:transform .15s;display:inline-flex;position:relative;box-shadow:0 5px #17082b4d}.magic-button:active{transform:translateY(2px)}.magic-button.glass{color:#fff;box-shadow:none;background:#ffffff12;border-color:#ffffff50}.magic-button.pink{background:var(--pink,#ff6fae)}.magic-button.yellow{background:var(--yellow,#ffda48)}.magic-button.lav{background:#aa8fff}.magic-button.ink{background:var(--ink);color:#fff}.game-hud{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.hud-actions{gap:7px;display:flex}.hud-actions .magic-button{padding:8px 13px;font-size:14px}.wizard-card{background:#ffffff0d;border:2px solid #ffffff50;border-radius:24px;align-items:center;gap:8px;padding:7px 12px;font-size:13px;display:flex}.wizard-card>div{flex-direction:column;gap:6px;display:flex}progress{accent-color:var(--mint);width:100%;height:10px}.session-stats{align-items:center;gap:14px;display:flex}.hearts{color:var(--pink);letter-spacing:3px;white-space:nowrap;font-size:26px}.home-layout{grid-template-columns:1fr 1.8fr;gap:28px;margin-top:8px;display:grid}.continue-card{background:var(--pink);color:var(--ink);border:3px solid var(--ink);border-radius:28px;flex-direction:column;gap:14px;padding:24px;display:flex}.continue-card p{margin:0}.continue-card .magic-button{margin-top:auto}.chapter-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:14px;display:grid}.chapter-node{color:#fff;background:0 0;border:0;flex-direction:column;align-items:center;gap:8px;padding:6px;font-size:14px;line-height:1.35;display:flex}.chapter-node:disabled{opacity:1}.chapter-ring{background:conic-gradient(var(--mint,#57e2d1) var(--progress),#fff2 0);border-radius:50%;flex-shrink:0;place-items:center;width:86px;height:86px;padding:6px;display:grid}.chapter-ring>span{background:var(--bg,#25132f);border-radius:50%;place-items:center;width:100%;height:100%;font-family:BlackHanSans_400Regular,sans-serif;font-size:29px;display:grid}.chapter-node.current .chapter-ring{outline:3px solid var(--yellow);outline-offset:3px}.chapter-node small{color:var(--yellow)}.grade-grid{grid-template-columns:repeat(3,1fr);gap:16px;width:100%;max-width:650px;display:grid}.grade-grid button{color:#fff;background:#ffffff10;border:3px solid #ffffff50;border-radius:22px;flex-direction:column;align-items:center;gap:10px;min-height:110px;padding:22px 12px;display:flex}.grade-grid b{font-family:BlackHanSans_400Regular;font-size:44px}.grade-grid .selected{background:var(--yellow);color:var(--ink);border-color:var(--ink)}.onboarding{text-align:center;justify-content:center;align-items:center;gap:24px;padding-top:20px}.question{gap:26px;padding-top:24px}.question-heading{text-align:center;justify-content:center;align-items:center;gap:16px;display:flex}.question-heading b{background:var(--yellow);color:var(--ink);white-space:nowrap;border-radius:16px;padding:8px 13px}.math-board{background:var(--paper,#fff8df);width:100%;min-height:170px;color:var(--ink);border:3px solid var(--ink);border-radius:26px;justify-content:center;align-items:center;padding:20px 16px;display:flex;box-shadow:0 8px #16092e40}.math-board>div{max-width:100%}.answers{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:12px;display:grid}.answers .magic-button{border-width:4px;border-radius:25px;min-width:0;height:145px}.answers small{background:#ffffffc9;border-radius:8px;padding:5px 9px;position:absolute;inset:10px 12px auto auto}.math-value{justify-content:center;align-items:center;max-width:100%;display:flex}.balloons .magic-button{height:156px;animation:3s ease-in-out infinite bob;animation-delay:calc(var(--order,0)*.3s);border-radius:50%}.balloons .magic-button:nth-child(2n){animation-delay:-1.4s}.balloon-string{background:#fff8;width:2px;height:18px;position:absolute;top:100%;left:50%}.drop-zone{border:3px dashed #ffffff80;border-radius:18px;justify-content:center;align-items:center;gap:14px;padding:12px;display:flex}.drop-zone.ready{background:#57e2d11a}.drag-answers .selected{outline-offset:3px;outline:4px solid #fff}.count-add{flex-wrap:wrap;gap:18px}.count-add>b{font-size:36px}.center{text-align:center}.screen-heading{justify-content:space-between;align-items:center;gap:14px;display:flex}.screen-heading .magic-button{flex-shrink:0}.lesson{max-width:900px;margin:auto}.lesson p{margin:0}.steps{counter-reset:steps;flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.steps li{counter-increment:steps;background:#1207266b;border-radius:18px;padding:16px 16px 16px 48px;line-height:1.65;position:relative}.steps li:before{content:counter(steps);color:var(--yellow);font-weight:900;position:absolute;inset:17px auto auto 14px}.step-equation{background:var(--paper);max-width:100%;color:var(--ink);border-radius:12px;margin:10px 0 0;padding:8px;display:inline-flex}.lesson-action{justify-content:center;align-items:center;gap:14px;margin:4px 0;display:flex}.concept{text-align:center;align-items:center}.apple-scene{background:#ffffff0a;border-radius:25px;width:100%;max-width:600px;padding:25px}.apple-scene>div{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.apple{font-size:45px;animation:.4s both pop;display:inline-block}.apple.removed{opacity:.25;text-decoration:line-through}.group{border:2px solid #fff;border-radius:18px;gap:4px;margin:8px;padding:12px;display:inline-flex}.concept-equation{text-align:center;color:var(--ink);background:var(--paper);border:3px solid var(--ink);border-radius:18px;min-width:240px;padding:14px;font-family:BlackHanSans_400Regular,sans-serif;font-size:36px;line-height:1.5}.concept-equation p{font-family:var(--heading);font-size:18px}.comparison{align-items:center}.comparison>.screen-heading{width:100%}.comparison>p{text-align:center;max-width:620px}.compare-scene{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;width:100%;padding:15px 0;display:flex}.compare-scene>div{flex-direction:column;align-items:center;gap:12px;display:flex}.compare-scene strong{color:var(--yellow);font-family:BlackHanSans_400Regular;font-size:48px}.compare-answers{gap:20px;display:flex}.compare-answers button{min-width:70px;font-size:30px}.lesson-feedback{min-height:28px;color:var(--yellow)}.feedback{text-align:center;justify-content:center;align-items:center;gap:24px;padding-top:30px}.result-mark{color:var(--yellow);font-size:100px;animation:.5s both pop}.correct h1{color:var(--mint)}.wrong h1{color:var(--yellow)}.feedback .math-board{max-width:860px}.earned-stars{justify-content:center;align-items:center;gap:16px;min-height:180px;display:flex;position:relative}.earned-stars span{animation:.7s cubic-bezier(.2,.8,.25,1.4) both pop}.stage-clear:not(.failed) .earned-stars:before{content:"";pointer-events:none;background:repeating-conic-gradient(#ffda4820 0deg 12deg,#0000 12deg 24deg);border-radius:50%;animation:60s linear infinite turn;position:absolute;inset:-40px}.result-stats{grid-template-columns:repeat(3,1fr);gap:16px;width:100%;max-width:900px;display:grid}.result-stats>div{border:2px solid var(--mint);text-align:center;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:16px;display:flex}.result-stats b{color:var(--mint);font-size:30px}.rewards{gap:18px;font-size:22px;font-weight:800;display:flex}.rewards span{background:var(--mint);color:var(--ink);border:3px solid var(--ink);border-radius:22px;padding:12px 20px}.rewards span+span{background:var(--yellow)}.result-actions{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.level-toast{z-index:10;background:var(--yellow);color:var(--ink);border:3px solid var(--ink);white-space:nowrap;border-radius:18px;padding:20px;font-size:24px;animation:.5s both pop;position:fixed;inset:80px auto auto 50%;transform:translate(-50%)}.report .result-stats{grid-template-columns:repeat(4,1fr);max-width:none}.weekly-chart{justify-content:center;align-items:end;gap:24px;height:96px;display:flex}.weekly-chart>div{flex-direction:column;align-items:center;gap:5px;display:flex}.weekly-chart span{background:var(--mint);border-radius:6px;width:20px}.all-grades{grid-template-columns:repeat(2,1fr);gap:24px;display:grid}.compact .chapter-ring{width:58px;height:58px;padding:4px}.compact .chapter-ring>span{font-size:21px}.compact.chapter-grid{gap:6px}.compact .chapter-node{font-size:12px}.settings{gap:22px;max-width:800px;margin:auto}.settings fieldset{border:1px solid #ffffff40;border-radius:18px;padding:18px}.settings legend{font-weight:750}.settings label{justify-content:space-between;align-items:center;gap:20px;display:flex}.settings select{color:#fff;background:#291435;border:2px solid #ffffff60;border-radius:12px;max-width:70%;padding:12px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chips button{min-width:48px;padding:10px 15px}.hold-hint{color:#fff9;margin-top:10px;display:block}.holding{animation:3s linear both hold}.settings-links{flex-wrap:wrap;gap:20px;display:flex}.connection-status{background:#ffffff10;border-radius:14px;max-width:1000px;margin:0 auto 12px;padding:12px;font-size:13px}.connection-status button{min-height:32px;padding:4px 10px}.dialog-backdrop{z-index:20;background:#0009;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.install-dialog{background:#301934;border:2px solid #ffffff60;border-radius:24px;max-width:540px;max-height:90dvh;padding:25px;line-height:1.7;overflow-y:auto}.install-dialog li{margin:14px 0}.install-dialog p{color:#fffc;font-size:13px}.loading{color:#ffda48;justify-content:center;align-items:center;min-height:100dvh;font-size:20px;display:flex}@keyframes pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes bob{50%{transform:translateY(-7px)}}@keyframes turn{to{transform:rotate(360deg)}}@keyframes hold{to{background:#ffda4860}}@media (width<=700px){.web-screen{gap:18px;padding:10px 2px}.web-nav{gap:8px;font-size:12px}.web-nav .brand{max-width:58%}.home-layout{grid-template-columns:1fr;gap:22px}.continue-card{gap:10px;padding:22px}.continue-card h1{font-size:28px}.chapter-grid{grid-template-columns:repeat(3,1fr);gap:13px}.chapter-ring{width:78px;height:78px}.game-hud{justify-content:center;gap:10px}.hud-actions{margin-inline-end:auto}.wizard-card{margin-inline-start:auto}.session-stats{justify-content:space-between;width:100%;padding:4px 10px}.question{padding-top:10px}.question-heading h1{font-size:24px}.question-heading{gap:10px}.math-board{min-height:160px;padding:16px 12px}.answers{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin-top:0}.answers .magic-button{height:124px}.balloons .magic-button{height:135px}.question .answers{margin-bottom:18px}.drop-zone{flex-wrap:wrap}.grade-grid{gap:12px}.grade-grid button{padding:18px 8px;font-size:14px}.screen-heading h1{font-size:25px}.screen-heading .magic-button{padding:8px 12px;font-size:13px}.compare-scene{gap:8px}.compare-scene svg{width:66px}.compare-scene>div>div{max-width:115px}.compare-scene>div>div>div{transform-origin:50%;transform:scale(.82)}.comparison .concept-equation{min-width:220px;font-size:29px}.result-stats{gap:10px}.result-stats>div{padding:12px 8px;font-size:12px}.result-stats b{font-size:26px}.earned-stars{gap:8px}.earned-stars svg{max-width:95px}.earned-stars:has(span:only-child) svg{max-width:150px}.result-actions{gap:10px}.result-actions .magic-button{padding:12px 14px;font-size:15px}.report .result-stats{grid-template-columns:repeat(2,1fr)}.all-grades{grid-template-columns:1fr;gap:22px}.all-grades .chapter-grid{grid-template-columns:repeat(4,1fr)}.settings .chips{gap:6px}.settings .chips button{padding:10px 12px}.feedback{padding-top:20px}.rewards{gap:10px;font-size:19px}.level-toast{font-size:20px}.count-add>div{max-width:100%}.concept .group{padding:8px}.concept .group span{font-size:26px}}@media (width<=359px){.wizard-card b{font-size:11px}.wizard-card{padding:6px 8px}.hud-actions .magic-button{padding:8px 10px}.grade-grid{grid-template-columns:repeat(2,1fr)}.question-heading h1{font-size:21px}.chapter-grid{gap:8px}.chapter-node{font-size:13px}.compare-scene{flex-wrap:nowrap;gap:3px}.compare-scene svg{width:48px}.compare-scene>div>div{max-width:105px}.compare-scene>div>div>div{transform:scale(.7)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}html,body{overflow-x:clip;overflow-y:auto!important}#root{min-height:100%;height:auto!important}#root>div{width:100%}.drag-ghost{pointer-events:none;z-index:30;border:3px solid var(--ink);background:var(--mint);border-radius:22px;padding:20px;position:fixed;transform:translate(-50%,-50%);box-shadow:0 8px 20px #0007}.drag-ghost.pink{background:var(--pink)}.drag-ghost.yellow{background:var(--yellow)}.drag-ghost.lav{background:#a98cf7}.drag-answers button{touch-action:none}.web-app[data-theme=dawn]{color:var(--ink);background:radial-gradient(ellipse at 45% 0%,#ffe7d3,transparent 60%),var(--bg)}.web-app[data-theme=dawn] .brand,.web-app[data-theme=dawn] .chapter-node{color:var(--ink)}.web-app[data-theme=dawn] .magic-button.glass,.web-app[data-theme=dawn] .grade-grid button:not(.selected){color:var(--ink);background:#ffffff70;border-color:#2a174850}.web-app[data-theme=dawn] .hold-hint{color:#4c3a78}.web-app[data-theme=dawn] fieldset{border-color:#2a174840}.web-app[data-theme=dawn] .connection-status{background:#ffffff80}.web-app[data-theme=dawn] .report .result-stats b{color:var(--ink)}.web-app[data-theme=dawn] .install-dialog{color:#fff}@media (width>=1100px){.report .all-grades{grid-template-columns:repeat(3,1fr);gap:18px}.report .all-grades h2{font-size:22px}.report .compact .chapter-node{font-size:11px}.report .weekly-chart{height:78px}.report .compact .chapter-ring{width:52px;height:52px}.report .web-screen{gap:14px}}.drag-ghost{justify-content:center;align-items:center;width:160px;min-height:100px;display:flex}