:root{--desk:#f1edfb;--board:#5f3dc4;--board-edge:#43298f;--foil:#e5dbff;--star:#f59f00;--ok:#2b8a3e;--no:#e03131}@media (prefers-color-scheme:dark){:root:not(.light-only){--desk:#15111f;--board:#4c2fa8;--board-edge:#33206f}}.sheet h1{font-size:25px}.buddy{background:#f6f2ff;border-radius:16px;align-items:center;gap:14px;margin:6px 0 16px;padding:12px 14px;display:flex}.buddy-face{white-space:nowrap;margin:0;font-size:56px;line-height:1;animation:2.4s ease-in-out infinite bob}@keyframes bob{50%{transform:translateY(-5px)rotate(-4deg)}}.buddy-info{flex:1;min-width:0}.buddy-name{margin:0 0 6px;font-size:17px;font-weight:800}.xp-bar,.bar{background:#e5dbff;border-radius:999px;height:10px;overflow:hidden}.xp-bar i,.bar i{border-radius:inherit;background:linear-gradient(90deg, #845ef7, var(--board));height:100%;transition:width .4s;display:block}.xp-text{color:var(--ink-soft);margin:6px 0 0;font-size:13px}.stamps{margin:0 0 16px}.stamps ol{text-align:center;grid-template-columns:repeat(7,1fr);gap:4px;margin:0;padding:0;list-style:none;display:grid}.stamps li{color:var(--ink-soft);gap:2px;font-size:13px;display:grid}.stamps li b{height:34px;color:var(--star);border:2px dashed #d0bfff;border-radius:50%;place-items:center;font-size:20px;display:grid}.stamps li.done b{border:2px solid var(--star);background:#fff9db}.stamps li.today span{color:var(--board);font-weight:800}.stamps p{text-align:center;color:var(--board);margin:8px 0 0;font-size:15px;font-weight:700}.open.huge{padding:18px;font-size:19px}#retry{margin-top:10px}.settings{margin-top:18px;font-size:15px}.settings summary{cursor:pointer;color:var(--ink-soft)}.topic-list{gap:8px;margin:12px 0;display:grid}.quiz{gap:12px;display:grid}.quiz-top{justify-content:space-between;align-items:center;gap:8px;font-weight:700;display:flex}.quiz-top p{margin:0}.progress{color:var(--board);font-size:17px}.clock{color:var(--ink-soft);font-variant-numeric:tabular-nums}.combo{color:#e8590c;min-height:1.4em;font-size:18px}.combo.hot{animation:.35s pop}@keyframes pop{40%{transform:scale(1.3)}}.card{background:var(--paper);color:#1b2230;border-radius:18px;justify-items:center;gap:14px;padding:22px 16px 18px;transition:box-shadow .2s;display:grid;box-shadow:0 6px 18px -12px #10182880}.card.right{box-shadow:inset 0 0 0 3px var(--ok)}.card.wrong{box-shadow:inset 0 0 0 3px var(--no);animation:.3s shake}@keyframes shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}.topic-tag{color:var(--board);background:#f3f0ff;border-radius:999px;margin:0;padding:3px 10px;font-size:13px;font-weight:700}.question{text-align:center;word-break:keep-all;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin:0;font-size:30px;font-weight:800;display:flex}.fr{justify-items:center;font-size:.85em;line-height:1.15;display:inline-grid}.fr i{padding:0 4px;font-style:normal}.fr i:first-child{border-bottom:3px solid}.whole{margin-right:2px}.answer{justify-content:center;display:flex}.slot{color:#1b2230;min-width:96px;min-height:58px;font:inherit;cursor:pointer;background:#fff;border:2px solid #d0bfff;border-radius:12px;padding:6px 12px;font-size:30px;font-weight:800}.slot.on{border-color:var(--board);box-shadow:0 0 0 3px #e5dbff}.frac-input{align-items:center;gap:10px;display:flex}.frac-input>.slot{min-width:60px}.frac-stack{justify-items:center;gap:4px;display:grid}.frac-stack .slot{min-width:76px;min-height:48px;font-size:24px}.frac-line{background:#1b2230;border-radius:2px;width:100%;height:3px}.feedback{text-align:center;white-space:pre-line;word-break:keep-all;min-height:1.5em;margin:0;font-size:17px;font-weight:700}.feedback.good{color:var(--ok)}.feedback.bad{color:var(--no)}.keypad{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.keypad button{background:var(--paper);color:#1b2230;height:56px;font:inherit;cursor:pointer;border:0;border-radius:14px;font-size:24px;font-weight:700;box-shadow:0 2px #d0bfff}.keypad button:active{box-shadow:none;transform:translateY(2px)}.keypad button:disabled{opacity:.3}.keypad .wide{grid-column:span 1;font-size:18px}.keypad .ok{background:var(--board);color:#fff;box-shadow:0 2px 0 var(--board-edge);grid-column:span 2}.keypad .ok.wide2{grid-column:span 3}.result-sheet{text-align:center}.stars{color:var(--star);letter-spacing:6px;margin:0;font-size:44px}.levelup{background:#fff9db;border-radius:12px;margin:0 0 14px;padding:10px;font-weight:800;animation:.6s pop}.review{text-align:left;gap:6px;margin:0 0 16px;padding:0;list-style:none;display:grid}.review li{background:#f8f9fa;border-radius:10px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:8px 10px;font-size:16px;display:grid}.review li.wrong{background:#fff5f5}.review .q{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.review b{color:var(--board)}.review em{font-style:normal}#again{margin-bottom:10px}@media (prefers-reduced-motion:reduce){.buddy-face,.combo.hot,.card.wrong,.levelup{animation:none}}.chips.sem{justify-content:center;margin:0 0 6px}.chips.sem span{padding:8px 18px;font-size:16px}.sem-note{text-align:center;min-height:1.2em;color:var(--ink-soft);margin:0 0 8px;font-size:13px}.open.challenge{background:linear-gradient(90deg,#f76707,#e8590c);margin-top:10px;font-size:18px}.open.challenge small{opacity:.9;margin-top:2px;font-size:13px;font-weight:600;display:block}.medals{margin-top:22px}.medals h2,.ladder summary{margin:0 0 10px;font-size:17px}.medals h2 small{color:var(--ink-soft);font-size:13px}.medals ul{grid-template-columns:repeat(3,1fr);gap:8px;margin:0;padding:0;list-style:none;display:grid}.medals li{text-align:center;opacity:.55;background:#f8f9fa;border-radius:12px;justify-items:center;gap:2px;padding:10px 4px;display:grid}.medals li.got{box-shadow:inset 0 0 0 1.5px var(--star);opacity:1;background:#fff9db}.medals li b{font-size:26px;line-height:1.2}.medals li span{font-size:13px;font-weight:800}.medals li small{color:var(--ink-soft);word-break:keep-all;font-size:11px;line-height:1.35}.ladder{margin-top:18px;font-size:14px}.ladder summary{cursor:pointer;font-weight:800}.ladder p{color:var(--ink-soft)}.ladder ol{gap:4px;margin:0;padding:0;list-style:none;display:grid}.ladder li{border-radius:10px;grid-template-columns:3.2em 1fr auto;align-items:center;gap:8px;padding:6px 10px;display:grid}.ladder li b{font-size:22px}.ladder li.past{opacity:.55}.ladder li.now{box-shadow:inset 0 0 0 1.5px var(--board);background:#f3f0ff;font-weight:800}.ladder li small{color:var(--ink-soft);font-variant-numeric:tabular-nums}.clock.hurry{color:var(--no);animation:.5s infinite pop}body.ta-mode .bar i{background:linear-gradient(90deg,#f76707,#e8590c);transition:width .2s linear}#result.record .stars{animation:.6s 2 pop}@media (prefers-reduced-motion:reduce){.clock.hurry,#result.record .stars{animation:none}}.open.pop-btn{background:linear-gradient(90deg,#1971c2,#339af0);margin-top:10px;font-size:18px}.open.pop-btn small{opacity:.9;margin-top:2px;font-size:13px;font-weight:600;display:block}.field{touch-action:manipulation;background:linear-gradient(#a5d8ff,#e7f5ff 82%,#b2f2bb 82%,#8ce99a);border-radius:18px;height:clamp(230px,100svh - 480px,420px);position:relative;overflow:hidden}.pop-speed{flex-wrap:nowrap;justify-content:center;margin-top:8px}.pop-speed span{padding:6px 10px;font-size:13px}.speed-btn{border:1px solid var(--rule);background:var(--paper);color:#1b2230;font:inherit;white-space:nowrap;cursor:pointer;border-radius:999px;margin-right:auto;padding:5px 10px;font-size:13px;font-weight:700;display:none}body.pop-mode .speed-btn{display:block}.field:before{content:"";pointer-events:none;background:linear-gradient(#e0313138,#0000);border-top:3px dashed #e0313173;height:16%;position:absolute;inset:0 0 auto}.balloon{z-index:1;background:radial-gradient(circle at 30% 25%, #fffc, transparent 35%), var(--b);color:#1b2230;min-width:84px;font:inherit;cursor:pointer;will-change:transform;border:2px solid #1b223026;border-radius:50% 50% 46% 46%/58% 58% 42% 42%;padding:12px 12px 16px;font-size:16px;font-weight:800;line-height:1.25;transition:scale .2s ease-out,opacity .2s ease-out;position:absolute;top:0}.balloon:before{content:"";border:5px solid #0000;border-bottom-color:var(--b);margin-left:-5px;position:absolute;top:100%;left:50%;transform:translateY(-4px)rotate(180deg)}.balloon:after{content:"";background:#1b223059;width:2px;height:26px;position:absolute;top:calc(100% + 4px);left:50%}.balloon .q{word-break:keep-all;flex-wrap:wrap;justify-content:center;align-items:center;gap:3px;display:flex}.balloon .fr i:first-child{border-bottom-width:2px}.balloon.target{outline-offset:4px;outline:3px dashed #e8590c}.balloon.popped{opacity:0;pointer-events:none;scale:1.5}.boom{z-index:3;color:#e8590c;white-space:nowrap;pointer-events:none;font-size:20px;font-weight:900;animation:.7s ease-out forwards rise;position:absolute;translate:-50% -50%}@keyframes rise{to{opacity:0;translate:-50% -140%}}.cannon{z-index:2;pointer-events:none;width:64px;height:64px;margin-left:-32px;position:absolute;bottom:6px;left:50%}.barrel{transform-origin:50% 100%;background:linear-gradient(90deg,#43298f,#7048e8,#43298f);border-radius:6px 6px 4px 4px;width:18px;height:46px;margin-left:-9px;position:absolute;bottom:18px;left:50%}.wheel{background:var(--board);height:30px;box-shadow:inset 0 -4px 0 var(--board-edge);border-radius:32px 32px 8px 8px;position:absolute;inset:auto 0 0}.ball{z-index:3;pointer-events:none;background:#212529;border-radius:50%;width:14px;height:14px;margin:-7px 0 0 -7px;position:absolute;top:0;left:0}body.pop-mode .topic-tag{display:none}body.pop-mode .quiz{gap:8px}body.pop-mode .card{gap:8px;padding:10px 12px}body.pop-mode .question{min-height:1.4em;font-size:20px}body.pop-mode .slot{min-height:46px;font-size:24px}body.pop-mode .frac-stack .slot{min-height:38px;font-size:20px}body.pop-mode .feedback{min-height:1.3em;font-size:15px}body.pop-mode .keypad{gap:6px}body.pop-mode .keypad button{height:46px}@media (prefers-color-scheme:dark){:root:not(.light-only) .field{background:linear-gradient(#1c2541,#3a506b 82%,#2b8a3e 82%,#237032)}}@media (prefers-reduced-motion:reduce){.balloon,.boom{transition:none;animation:none}}.progress .lv{background:var(--board);color:#fff;vertical-align:2px;border-radius:999px;margin-left:4px;padding:2px 8px;font-size:13px}.level-up{z-index:4;color:#e8590c;text-align:center;white-space:nowrap;pointer-events:none;background:#ffffffeb;border-radius:18px;margin:0;padding:12px 20px;font-size:30px;font-weight:900;animation:1.8s ease-out forwards level-up;position:absolute;top:38%;left:50%;translate:-50% -50%}.level-up small{color:#1b2230;margin-top:4px;font-size:14px;font-weight:700;display:block}@keyframes level-up{0%{opacity:0;scale:.6}15%{opacity:1;scale:1.1}25%{scale:1}80%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.level-up{animation:none}}body.pop-mode .quiz-top p,body.pop-mode .progress .lv{white-space:nowrap}body.pop-mode .combo{font-size:15px}body.pop-mode .speed-btn{padding:5px 9px;font-size:16px;line-height:1}
