.mascot{display:block;overflow:visible}.mascot .body{animation:3.2s ease-in-out infinite zm-float;animation-delay:var(--d,0s)}@keyframes zm-float{50%{transform:translateY(-2px)}}.mascot .act{transform-box:fill-box;transform-origin:50% 100%}.mascot .eye{transform-box:view-box;animation:4.4s infinite zm-blink;animation-delay:var(--b,0s)}@keyframes zm-blink{0%,95%,to{transform:scaleY(1)}97%{transform:scaleY(.08)}}.mascot .pupil{transition:transform .14s ease-out}.mascot .torso,.mascot .leg,.mascot .brow,.mascot .blush,.mascot .lid-happy{transform-box:view-box}.mascot .tail{animation:2.4s ease-in-out infinite zm-swish}.mascot .tail.wag{animation:.45s ease-in-out infinite zm-wag}@keyframes zm-swish{50%{transform:rotate(9deg)}}@keyframes zm-wag{50%{transform:rotate(-14deg)}}.mascot .ear-l{animation:5s ease-in-out infinite zm-twitch;animation-delay:var(--e,0s)}@keyframes zm-twitch{0%,88%,to{transform:rotate(0)}92%{transform:rotate(-9deg)}96%{transform:rotate(3deg)}}.mascot .antenna{animation:1.8s ease-in-out infinite zm-wobble}@keyframes zm-wobble{50%{transform:rotate(9deg)}}.mascot .wave{animation:3.6s ease-in-out infinite zm-wave;animation-delay:var(--e,0s)}@keyframes zm-wave{0%,55%,to{transform:rotate(0)}64%{transform:rotate(-16deg)}72%{transform:rotate(6deg)}80%{transform:rotate(-14deg)}88%{transform:rotate(2deg)}}.mascot .mane{animation:2.6s ease-in-out infinite zm-sway}@keyframes zm-sway{50%{transform:rotate(3deg)}}.mascot .spin{animation:7s linear infinite zm-spin}@keyframes zm-spin{to{transform:rotate(360deg)}}.mascot .spin-soft{animation:3.2s ease-in-out infinite zm-rock}@keyframes zm-rock{50%{transform:rotate(5deg)}}.mascot .squish{animation:2.2s ease-in-out infinite zm-squish}@keyframes zm-squish{50%{transform:scale(1.04,.96)}}@media (prefers-reduced-motion:reduce){.mascot .body,.mascot .tail,.mascot .ear-l,.mascot .antenna,.mascot .wave,.mascot .mane,.mascot .spin,.mascot .spin-soft,.mascot .squish{animation:none}}:root{--c-indigo-500:#4b5cf6;--c-indigo-700:#3340c9;--c-indigo-300:#9aa4ff;--c-graphite-900:#1f2235;--c-graphite-600:#5b5f78;--c-lime-400:#c5f36b;--c-lime-600:#8dba2e;--c-coral-400:#ff7a7a;--c-lavender-100:#e6e8ff;--c-lavender-200:#d6daff;--c-cream-50:#f7f6f0;--c-sun-400:#ffc94a;--c-sun-600:#e9a92b;--c-white:#fff;--r-btn:16px;--r-card:22px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{color:var(--c-graphite-900);overscroll-behavior:none;background:#e9e8f2;margin:0;font-family:Manrope,system-ui,-apple-system,Segoe UI,sans-serif}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}.app{background:var(--c-cream-50);-webkit-user-select:none;user-select:none;max-width:480px;min-height:100dvh;margin:0 auto;position:relative;overflow:hidden}@media (width>=640px){.app{border-radius:36px;min-height:min(900px,96dvh);margin-top:2dvh;box-shadow:0 30px 80px #3340c940}}.fx-layer{pointer-events:none;z-index:900;width:100vw;height:100vh;position:fixed;inset:0}.btn3d{border-radius:var(--r-btn);background:var(--c-white);color:var(--c-graphite-900);box-shadow:0 5px 0 var(--c-lavender-200);padding:14px 22px;font-size:18px;font-weight:800;transition:transform 60ms,box-shadow 60ms;position:relative}.btn3d:active:not(:disabled){box-shadow:0 0 0 var(--c-lavender-200);transform:translateY(5px)}.btn3d.primary{background:var(--c-indigo-500);color:var(--c-white);box-shadow:0 5px 0 var(--c-indigo-700)}.btn3d.primary:active{box-shadow:0 0 0 var(--c-indigo-700)}.btn3d.big{letter-spacing:.5px;width:100%;padding:18px;font-size:22px}.btn3d.wide{width:100%;margin-top:12px}.btn3d:disabled{opacity:.45}.icon-btn{width:40px;height:40px;color:var(--c-graphite-600);background:var(--c-white);box-shadow:0 3px 0 var(--c-lavender-200);border-radius:12px;place-items:center;font-size:18px;display:grid}.segmented{background:var(--c-lavender-100);border-radius:14px;gap:2px;padding:4px;display:inline-flex}.segmented button{color:var(--c-graphite-600);border-radius:10px;padding:10px 14px;font-size:15px;font-weight:700}.segmented button.is-active{background:var(--c-white);color:var(--c-indigo-500);box-shadow:0 2px 6px #4b5cf62e}.segmented.small button{padding:6px 10px;font-size:13px}.home{min-height:100dvh;padding:calc(24px + var(--safe-top)) 24px calc(24px + var(--safe-bottom));text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex}@media (width>=640px){.home{min-height:min(900px,96dvh)}}.settings-btn{top:calc(16px + var(--safe-top));position:absolute;right:16px}.hello{color:var(--c-graphite-600);margin:0;font-weight:700}.wordmark{letter-spacing:-3px;margin:0;font-size:68px;font-weight:800;line-height:1}.wordmark .spark{color:var(--c-lime-600);vertical-align:top;margin-left:2px;font-size:30px}.tagline{color:var(--c-graphite-600);margin:0 0 8px;font-weight:600}.mode-desc{min-height:2.6em;color:var(--c-graphite-600);max-width:300px;margin:0 0 10px;font-size:14px}.proto-note{color:#9a9db3;margin-top:6px;font-size:11px}.lesson{flex-direction:column;min-height:100dvh;display:flex}@media (width>=640px){.lesson{min-height:min(900px,96dvh)}}.lesson-top{padding:calc(12px + var(--safe-top)) 14px 6px;align-items:center;gap:10px;display:flex}.progress{flex:1;gap:4px;display:flex}.progress-seg{background:var(--c-lavender-100);border-radius:5px;flex:1;height:10px;transition:background .3s}.progress-seg.is-done{background:var(--c-lime-400)}.progress-seg.is-current{background:var(--c-indigo-300)}.combo{color:var(--c-white);background:#ff9b4a;border-radius:999px;padding:4px 10px;font-size:15px;font-weight:800;box-shadow:0 3px #e07a26}.hud-stars{background:var(--c-white);box-shadow:0 3px 0 var(--c-lavender-200);border-radius:999px;align-items:center;gap:4px;padding:5px 10px;font-weight:800;display:flex}.hud-stars span:first-child{display:inline-block}.lesson-stage{padding:8px 16px calc(110px + var(--safe-bottom));flex:1}.lesson-mascot{right:10px;bottom:calc(8px + var(--safe-bottom));pointer-events:none;z-index:20;align-items:flex-end;gap:6px;display:flex;position:absolute}.lesson-mascot .mascot,.home-mascot .mascot{pointer-events:auto;cursor:pointer;-webkit-tap-highlight-color:transparent}.bubble{background:var(--c-white);border-radius:16px 16px 4px;max-width:230px;margin-bottom:52px;padding:10px 14px;font-size:15px;font-weight:600;line-height:1.3;animation:.26s cubic-bezier(.34,1.56,.64,1) bubble-in;box-shadow:0 8px 24px #1f223524}@keyframes bubble-in{0%{opacity:0;transform:scale(.6)translateY(10px)}}.task{position:relative}.task-head,.task-body{z-index:1;position:relative}.task-head{align-items:center;gap:10px;margin:6px 0 14px;display:flex}.speaker{background:var(--c-lavender-100);border-radius:50%;flex:none;width:44px;height:44px;font-size:20px}.instruction{margin:0;font-size:20px;font-weight:800;line-height:1.3}.fx-glow{pointer-events:none;z-index:0;background:radial-gradient(closest-side,#c5f36bd9,#c5f36b00);border-radius:50%;height:90%;position:absolute;top:5%;left:-10%;right:-10%}.fx-star{z-index:1000;pointer-events:none;font-size:30px;position:fixed;top:0;left:0}.board{touch-action:none;width:100%;position:relative}.board-static,.board-item,.board-zone{place-items:center;display:grid;position:absolute}.board-item{cursor:grab;will-change:transform;touch-action:none;z-index:10;filter:drop-shadow(0 4px #1f22351f);transition:filter .15s}.board-item.is-lifted{cursor:grabbing;filter:drop-shadow(0 14px 12px #1f223538)}.board-item.is-wrong{filter:drop-shadow(0 0 10px #ff7a7af2)}.board-zone.is-slot{border:3px dashed var(--c-indigo-300);background:#e6e8ff8c;border-radius:26px;transition:background .12s,border-color .12s}.board-zone.is-bucket{border:2px solid var(--c-lavender-200);background:var(--c-white);box-shadow:0 5px 0 var(--c-lavender-100);border-radius:24px;align-items:start;transition:border-color .12s,background .12s}.board-zone.is-hover{border-color:var(--c-lime-600);background:#c5f36b47}.bucket-title{align-items:center;gap:6px;padding-top:10px;font-size:15px;font-weight:800;display:flex}.visual{pointer-events:none;place-items:center;line-height:1;transition:filter .45s,opacity .45s;display:inline-grid}.visual.is-silhouette{filter:brightness(0);opacity:.78}.choice-grid{gap:14px;display:grid}.choice-card{aspect-ratio:1;border-radius:var(--r-card);background:var(--c-white);box-shadow:0 6px 0 var(--c-lavender-200);border:3px solid #0000;place-items:center;gap:6px;transition:transform 60ms,box-shadow 60ms,border-color .12s;display:grid}.choice-card:active:not(:disabled){box-shadow:0 1px 0 var(--c-lavender-200);transform:translateY(5px)}.choice-card.is-selected{border-color:var(--c-indigo-500)}.choice-card.is-wrong{border-color:var(--c-coral-400);background:#fff1f1}.choice-card.is-revealed{border-color:var(--c-lime-600);background:#f4fde3}.choice-card:disabled{cursor:default}.choice-text{font-size:20px;font-weight:800}.numeric,.compare{flex-direction:column;gap:22px;display:flex}.expression{font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:18px 0;font-size:46px;font-weight:800;display:flex}.expr-slot{background:var(--c-white);border:3px solid var(--c-lavender-200);height:1.3em;color:var(--c-indigo-500);border-radius:16px;justify-content:center;align-items:center;padding:0 12px .06em;line-height:1;display:inline-flex}.expr-slot.is-active{border-color:var(--c-indigo-500);box-shadow:0 0 0 4px #4b5cf626}.caret{background:var(--c-indigo-500);border-radius:2px;width:3px;height:.8em;animation:1s steps(2,end) infinite blink}@keyframes blink{50%{opacity:0}}.keypad{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.key{background:var(--c-white);height:58px;box-shadow:0 4px 0 var(--c-lavender-200);border-radius:16px;font-size:26px;font-weight:800;transition:transform 50ms,box-shadow 50ms}.key:active:not(:disabled){box-shadow:0 0 0 var(--c-lavender-200);transform:translateY(4px)}.key-ok{background:var(--c-lime-400);box-shadow:0 4px 0 var(--c-lime-600)}.key-del{color:var(--c-coral-400)}.key:disabled{opacity:.4}.sign-row{justify-content:center;gap:14px;display:flex}.sign-btn{width:84px;height:84px;font-size:40px}.sequence{flex-direction:column;gap:26px;display:flex}.sequence-row{justify-content:center;gap:6px;display:flex}.seq-cell{background:var(--c-white);width:50px;height:50px;box-shadow:0 3px 0 var(--c-lavender-200);color:var(--c-indigo-500);border-radius:14px;place-items:center;font-size:22px;font-weight:800;line-height:1;display:grid}.seq-cell.is-gap{border:3px dashed var(--c-indigo-300);box-shadow:none;background:0 0}.result{min-height:100dvh;padding:calc(28px + var(--safe-top)) 24px calc(24px + var(--safe-bottom));text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}@media (width>=640px){.result{min-height:min(900px,96dvh)}}.result h1{margin:0;font-size:34px}.big-stars{gap:8px;display:flex}.big-star{color:#e3e5f5;font-size:72px;line-height:1}.big-star.is-on{color:var(--c-sun-400);text-shadow:0 5px 0 var(--c-sun-600)}.earned{margin:0;font-size:28px;font-weight:800}.accuracy{color:var(--c-graphite-600);margin:0;font-weight:600}.skills{text-align:left;grid-template-columns:1fr 1fr;gap:12px;width:100%;margin:8px 0;display:grid}.skills>div{background:var(--c-white);border-radius:18px;padding:12px}.skills h4{margin:0 0 6px}.skills p{margin:4px 0;font-size:14px}.result-actions{gap:12px;width:100%;margin-top:12px;display:flex}.result-actions .btn3d{flex:1}.sheet-backdrop{z-index:950;background:#1f223559;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:480px;padding:20px 20px calc(20px + var(--safe-bottom));background:var(--c-white);border-radius:28px 28px 0 0;max-height:100dvh;animation:.26s cubic-bezier(.22,1,.36,1) sheet-in;overflow-y:auto}@keyframes sheet-in{0%{transform:translateY(100%)}}.sheet h3{margin:0 0 8px}.toggle-row{border-bottom:1px solid var(--c-lavender-100);justify-content:space-between;align-items:center;padding:12px 0;font-weight:700;display:flex}.toggle-row input{width:22px;height:22px;accent-color:var(--c-indigo-500)}.choice-group{border:0;border-bottom:1px solid var(--c-lavender-100);margin:0;padding:12px 0}.choice-group legend{float:left;width:100%;margin:0 0 6px;padding:0;font-weight:700}.choice-row{clear:both;min-height:44px;color:var(--c-graphite-600);cursor:pointer;border-radius:12px;align-items:center;gap:12px;padding:8px 12px;font-weight:600;display:flex}.choice-row+.choice-row{margin-top:4px}.choice-row.is-active{background:var(--c-lavender-100);color:var(--c-indigo-500)}.choice-row input{width:20px;height:20px;accent-color:var(--c-indigo-500);flex:none;margin:0}@media (prefers-reduced-motion:reduce){.bubble,.sheet{animation:none}}
