.math-bar{background:var(--surface-2);height:8px;overflow:hidden}.math-bar-fill{background:var(--accent);transform-origin:0;height:100%;transition:transform .1s linear;display:block}.math-streak{text-align:center;min-height:1.4em;color:var(--accent);font-variant-numeric:tabular-nums;font-weight:800}.math-problem.is-in{animation:math-in .18s var(--ease)}.math-input.is-shake{animation:math-shake .28s var(--ease);border-color:var(--danger)}.play-meta .math-count.is-bump{animation:math-bump .22s var(--ease)}@keyframes math-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes math-shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}@keyframes math-bump{0%{color:var(--accent);transform:scale(1.2)}to{transform:none}}@media (prefers-reduced-motion:reduce){.math-problem.is-in,.math-input.is-shake,.play-meta .math-count.is-bump{animation:none}}.arena.is-shake{animation:reaction-shake .3s var(--ease)}.arena.is-pop{animation:reaction-pop .26s var(--ease)}.arena-main.is-bump{animation:reaction-bump .22s var(--ease)}@keyframes reaction-shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(4px)}}@keyframes reaction-pop{0%{transform:scale(.97)}60%{transform:scale(1.02)}to{transform:none}}@keyframes reaction-bump{0%{transform:scale(1.15)}to{transform:none}}@media (prefers-reduced-motion:reduce){.arena.is-shake,.arena.is-pop,.arena-main.is-bump{animation:none}}.schulte .pad-cell.is-pop{animation:schulte-pop .2s var(--ease)}.schulte .pad-cell.is-miss{animation:schulte-miss .26s var(--ease)}.schulte.is-shake{animation:schulte-shake .24s var(--ease)}.play-hint.is-bump{animation:schulte-hint .2s var(--ease)}@keyframes schulte-pop{0%{transform:scale(.9)}60%{transform:scale(1.06)}to{transform:none}}@keyframes schulte-miss{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes schulte-shake{0%,to{transform:translate(0)}30%{transform:translate(-3px)}70%{transform:translate(3px)}}@keyframes schulte-hint{0%{color:var(--accent)}to{color:var(--muted)}}@media (prefers-reduced-motion:reduce){.schulte .pad-cell.is-pop,.schulte .pad-cell.is-miss,.schulte.is-shake,.play-hint.is-bump{animation:none}}.sequence.is-shake{animation:sequence-shake .3s var(--ease)}.sequence .pad-cell.is-pop{animation:sequence-pop .18s var(--ease)}.sequence .pad-cell.is-lit{outline:3px solid var(--accent);outline-offset:2px}@keyframes sequence-shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(3px)}}@keyframes sequence-pop{0%{transform:scale(.92)}60%{transform:scale(1.05)}to{transform:none}}@media (prefers-reduced-motion:reduce){.sequence.is-shake,.sequence .pad-cell.is-pop{animation:none}}.stop-clock.is-reveal{animation:stop-reveal .36s var(--ease)}@keyframes stop-reveal{0%{color:var(--accent);transform:scale(1.12)}to{color:var(--ink);transform:none}}@media (prefers-reduced-motion:reduce){.stop-clock.is-reveal{animation:none}}.stroop-bar{background:var(--surface-2);height:8px;overflow:hidden}.stroop-bar-fill{background:var(--accent);transform-origin:0;height:100%;transition:transform .1s linear;display:block}.stroop-streak{text-align:center;min-height:1.4em;color:var(--accent);font-variant-numeric:tabular-nums;font-weight:800}.stroop-word.is-in{animation:stroop-in .16s var(--ease)}.stroop-word.is-shake{animation:stroop-shake .28s var(--ease)}.play-meta .stroop-count.is-bump{animation:stroop-bump .22s var(--ease)}@keyframes stroop-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}@keyframes stroop-shake{0%,to{transform:translate(0)}20%{transform:translate(-10px)}40%{transform:translate(10px)}60%{transform:translate(-6px)}80%{transform:translate(4px)}}@keyframes stroop-bump{0%{color:var(--accent);transform:scale(1.2)}to{transform:none}}@media (prefers-reduced-motion:reduce){.stroop-word.is-in,.stroop-word.is-shake,.play-meta .stroop-count.is-bump{animation:none}}.balloon-game{gap:12px;width:100%;max-width:480px;margin:0 auto;display:grid}.balloon-rule{text-align:center;color:var(--muted);font-size:var(--step-small);margin:0}.balloon-field{background:var(--surface-2);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:pointer;grid-template-rows:auto 1fr;justify-items:center;min-height:360px;padding:16px;display:grid;position:relative;overflow:hidden}.balloon-field.is-holding{background:color-mix(in srgb, var(--accent) 22%, var(--surface-2))}.balloon-field:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.balloon-readout{color:var(--ink);font-variant-numeric:tabular-nums;pointer-events:none;margin:0;font-size:clamp(2.25rem,1.6rem + 3vw,3.5rem);font-weight:900;line-height:1}.balloon-wrap{will-change:transform;width:150px;height:220px;position:relative}.balloon-body{--s:.4;--bl:var(--c-blue);background:var(--bl);width:130px;height:176px;transform:scale(var(--s));transform-origin:50% 100%;z-index:1;border-radius:50% 50% 46% 46%/46% 46% 54% 54%;margin:auto;transition:background-color .18s linear;position:absolute;inset:0 0 22px}.balloon-body[data-level=low]{--bl:var(--c-blue)}.balloon-body[data-level=mid]{--bl:var(--c-yellow)}.balloon-body[data-level=high]{--bl:var(--c-red)}.balloon-body:after{content:"";border-left:8px solid #0000;border-right:8px solid #0000;border-top:12px solid var(--bl);position:absolute;bottom:-11px;left:50%;transform:translate(-50%)}.balloon-string{background:var(--muted);opacity:.5;width:2px;height:46px;margin-left:-1px;position:absolute;bottom:0;left:50%}.balloon-body.is-warn{background:var(--c-red);animation:.2s step-end infinite balloon-warn}@keyframes balloon-warn{0%{background:var(--c-red)}50%{background:var(--c-yellow)}}.balloon-body.is-popped{visibility:hidden}.balloon-body.is-released{animation:balloon-float .52s var(--ease) forwards}@keyframes balloon-float{to{opacity:0;transform:translateY(-140px) scale(var(--s))}}.balloon-bit{background:var(--c-red);width:12px;height:12px;animation:balloon-bit .6s var(--ease) forwards;z-index:2;margin:-6px 0 0 -6px;position:absolute;top:40%;left:50%}@keyframes balloon-bit{0%{opacity:1;transform:translate(0)scale(1)}to{transform:translate(var(--dx), var(--dy)) scale(.3);opacity:0}}.balloon-score{color:var(--accent);font-variant-numeric:tabular-nums;pointer-events:none;animation:balloon-score .7s var(--ease) forwards;z-index:3;font-size:2rem;font-weight:900;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}@keyframes balloon-score{0%{opacity:1;margin-top:0}to{opacity:0;margin-top:-70px}}.balloon-slots{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.balloon-slot{background:var(--surface-2);min-height:44px;color:var(--muted);font-variant-numeric:tabular-nums;place-items:center;font-weight:800;display:grid}.balloon-slot[data-kind=done]{background:var(--accent);color:var(--accent-ink)}.balloon-slot[data-kind=pop]{background:color-mix(in srgb, var(--c-red) 45%, var(--surface));color:var(--ink)}@media (width>=640px){.balloon-field{min-height:420px}}@media (prefers-reduced-motion:reduce){.balloon-bit,.balloon-score,.balloon-body.is-released,.balloon-body.is-warn{animation:none}.balloon-body.is-released{opacity:0}}.whack-game{gap:12px;width:100%;max-width:460px;margin:0 auto;display:grid}.whack-game.is-shake{animation:whack-shake .32s var(--ease)}@keyframes whack-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px,2px)}40%{transform:translate(5px,-3px)}60%{transform:translate(-4px,2px)}80%{transform:translate(2px,-1px)}}.whack-time{background:var(--surface-2);height:8px;overflow:hidden}.whack-time-fill{background:var(--accent);transform-origin:0;will-change:transform;height:100%;display:block}.whack-rule{text-align:center;color:var(--muted);font-size:var(--step-small);margin:0}.whack-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.whack-hole{aspect-ratio:1;background:var(--surface-2);cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border:0;border-radius:0;min-height:84px;padding:0;position:relative;overflow:hidden}.whack-hole:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.whack-pit{background:color-mix(in srgb, var(--ink) 72%, var(--surface-2));border-radius:50%;height:28%;position:absolute;bottom:8%;left:12%;right:12%}.whack-target{pointer-events:none;height:64%;transition:transform .15s cubic-bezier(.2,1.3,.4,1),opacity .12s linear;position:absolute;bottom:18%;left:18%;right:18%;transform:translateY(130%)}.whack-target svg{width:100%;height:100%;display:block}.whack-hole[data-state=up] .whack-target{transform:translateY(0)}.whack-target .m-x{display:none}.whack-hole[data-state=hit] .whack-target .m-x{display:inline}.whack-hole[data-state=hit] .whack-target .m-eyes{display:none}.whack-hole[data-state=hit] .whack-target{transition:transform .17s ease-out;transform:translateY(130%)}.whack-hole[data-state=gone] .whack-target{transition:transform .16s ease-out;transform:translateY(130%)}.whack-pop{text-align:center;font-variant-numeric:tabular-nums;color:var(--accent);opacity:0;pointer-events:none;font-size:1.5rem;font-weight:900;position:absolute;top:22%;left:0;right:0}.whack-pop[data-tone=bad]{color:var(--c-red)}.whack-pop.is-show{animation:whack-pop .62s var(--ease) forwards}@keyframes whack-pop{0%{opacity:1;transform:translateY(0)scale(1.2)}to{opacity:0;transform:translateY(-26px)scale(1)}}@media (width>=640px){.whack-hole{min-height:110px}}@media (prefers-reduced-motion:reduce){.whack-game.is-shake{animation:none}.whack-pop.is-show{animation-name:whack-fade}@keyframes whack-fade{0%{opacity:1}to{opacity:0}}.whack-target{transition-duration:1ms}}.swipe-game{touch-action:none;-webkit-user-select:none;user-select:none;outline:none;gap:12px;width:100%;max-width:480px;margin:0 auto;display:grid}.swipe-game:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.swipe-rule{text-align:center;color:var(--muted);font-size:var(--step-small);margin:0}.swipe-time{background:var(--surface-2);height:8px;overflow:hidden}.swipe-time-fill{background:var(--accent);transform-origin:0;will-change:transform;height:100%;display:block}.swipe-field{background:var(--surface);place-items:center;min-height:340px;display:grid;overflow:hidden}.swipe-card{background:var(--surface-2);border:4px solid var(--accent);width:200px;height:200px;transition:transform .17s var(--ease), opacity .17s linear;align-content:center;place-items:center;gap:14px;display:grid}.swipe-card[data-mode=reverse]{border-color:var(--c-blue)}.swipe-card.is-out{opacity:0;transform:translate(var(--ox,0), var(--oy,0)) scale(.9)}.swipe-arrow{width:104px;height:104px;transition:transform .12s var(--ease);display:block}.swipe-arrow svg{width:100%;height:100%;fill:var(--accent);display:block}.swipe-card[data-mode=reverse] .swipe-arrow svg{fill:var(--c-blue)}.swipe-tag{background:var(--accent);color:var(--accent-ink);font-size:var(--step-small);padding:4px 12px;font-weight:800}.swipe-card[data-mode=reverse] .swipe-tag{background:var(--c-blue)}.swipe-card.is-in{animation:swipe-in .2s var(--ease)}.swipe-card.is-wrong{animation:swipe-wrong .32s var(--ease)}@keyframes swipe-in{0%{opacity:.4;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes swipe-wrong{0%,to{translate:0}20%{translate:-10px}40%{translate:9px}60%{translate:-6px}80%{translate:3px}}@media (width>=640px){.swipe-field{min-height:400px}}@media (prefers-reduced-motion:reduce){.swipe-card.is-in,.swipe-card.is-wrong{animation:none}.swipe-card,.swipe-arrow{transition-duration:1ms}}.pairs-game{gap:12px;width:100%;max-width:420px;margin:0 auto;display:grid}.pairs-rule{text-align:center;color:var(--muted);font-size:var(--step-small);margin:0}.pairs-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.pairs-card{aspect-ratio:3/4;perspective:700px;cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:0;padding:0;position:relative}.pairs-card:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.pairs-inner{transform-style:preserve-3d;transition:transform .26s var(--ease);position:absolute;inset:0}.pairs-card[data-state=up] .pairs-inner,.pairs-card[data-state=match] .pairs-inner{transform:rotateY(180deg)}.pairs-face{-webkit-backface-visibility:hidden;backface-visibility:hidden;place-items:center;display:grid;position:absolute;inset:0}.pairs-back{background:var(--surface-2)}.pairs-front{background:var(--bg);transform:rotateY(180deg)}.pairs-front svg{width:58%;height:58%}.pairs-card[data-state=match] .pairs-front{background:var(--surface-2);outline:3px solid var(--accent);outline-offset:-3px}@media (prefers-reduced-motion:reduce){.pairs-inner{transition-duration:1ms}}.game-canvas[data-game-id=catch]:focus-visible,.game-canvas[data-game-id=orbit]:focus-visible,.game-canvas[data-game-id=dodge]:focus-visible,.game-canvas[data-game-id=stack]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.bounce-hud{font-variant-numeric:tabular-nums;grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.bounce-cell{background:var(--surface-2);color:var(--muted);font-size:var(--step-small);gap:2px;padding:8px 10px;display:grid}.bounce-num{color:var(--ink);transform-origin:0;font-size:clamp(1.25rem,1rem + 1vw,1.75rem);font-weight:900;line-height:1.1;display:inline-block}.bounce-num.is-bump{animation:bounce-bump .26s var(--ease)}@keyframes bounce-bump{0%{color:var(--accent);transform:translateY(-40%)scale(1.25)}to{transform:none}}@media (prefers-reduced-motion:reduce){.bounce-num.is-bump{animation:none}}.rhythm-hud{font-variant-numeric:tabular-nums;grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.rhythm-cell{background:var(--surface-2);color:var(--muted);font-size:var(--step-small);gap:2px;padding:8px 10px;display:grid}.rhythm-num{color:var(--ink);font-size:clamp(1.25rem,1rem + 1vw,1.75rem);font-weight:900;line-height:1.1;display:inline-block}.rhythm-num.is-bump{animation:rhythm-bump .22s var(--ease)}@keyframes rhythm-bump{0%{color:var(--accent);transform:scale(1.22)}to{transform:none}}.rhythm-field{grid-template-columns:repeat(3,1fr);gap:6px;height:min(60svh,480px);min-height:340px;display:grid;position:relative}.rhythm-lane{background:var(--surface-2);cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent;border:0;border-radius:0;padding:0;position:relative;overflow:hidden}.rhythm-lane.is-flash{animation:rhythm-flash .16s var(--ease)}@keyframes rhythm-flash{0%{background:#2e4f2c}to{background:var(--surface-2)}}.rhythm-note{background:var(--accent);pointer-events:none;will-change:transform;border-radius:7px;height:14px;position:absolute;top:0;left:12%;right:12%}.rhythm-line{background:var(--c-yellow);pointer-events:none;height:4px;position:absolute;top:84%;left:0;right:0}.rhythm-count{color:var(--ink);pointer-events:none;animation:rhythm-count .9s var(--ease) infinite;place-items:center;font-size:clamp(4rem,3rem + 6vw,7rem);font-weight:900;display:grid;position:absolute;inset:0}@keyframes rhythm-count{0%{opacity:.4;transform:scale(1.3)}30%{opacity:1;transform:scale(1)}to{opacity:1;transform:scale(1)}}.rhythm-judge{text-align:center;color:var(--accent);pointer-events:none;min-height:1.2em;font-size:clamp(1.5rem,1.1rem + 2vw,2.25rem);font-weight:900;position:absolute;top:58%;left:0;right:0}.rhythm-judge[data-judge=miss]{color:var(--danger)}.rhythm-judge.is-bump{animation:rhythm-judge-pop .2s var(--ease)}@keyframes rhythm-judge-pop{0%{transform:scale(1.3)}to{transform:none}}@media (prefers-reduced-motion:reduce){.rhythm-count,.rhythm-lane.is-flash,.rhythm-num.is-bump,.rhythm-judge.is-bump{animation:none}}.chosung-hud{font-variant-numeric:tabular-nums;grid-template-columns:1fr 1fr;gap:8px;display:grid}.chosung-cell{background:var(--surface-2);color:var(--muted);font-size:var(--step-small);gap:2px;padding:8px 10px;display:grid}.chosung-num{color:var(--ink);font-size:clamp(1.25rem,1rem + 1vw,1.75rem);font-weight:900;line-height:1.1;display:inline-block}.chosung-num.is-bump{animation:chosung-bump .24s var(--ease)}@keyframes chosung-bump{0%{color:var(--accent);transform:scale(1.2)}to{transform:none}}.chosung-bar{background:var(--surface-2);height:8px;overflow:hidden}.chosung-bar-fill{background:var(--accent);transform-origin:0;height:100%;transition:transform .1s linear;display:block}.chosung-question-wrap{place-items:center;min-height:120px;display:grid;position:relative}.chosung-question{letter-spacing:.08em;text-align:center;color:var(--ink);word-break:keep-all;font-size:clamp(2.5rem,1.8rem + 5vw,4.5rem);font-weight:900}.chosung-question.is-bump{animation:chosung-question-in .26s var(--ease)}@keyframes chosung-question-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.chosung-minus{color:var(--danger);opacity:0;pointer-events:none;font-size:1.25rem;font-weight:900;position:absolute;top:0;right:8px}.chosung-minus.is-show{animation:chosung-minus .7s var(--ease) forwards}@keyframes chosung-minus{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-28px)}}.chosung-choices{grid-template-columns:1fr 1fr;gap:10px;width:100%;max-width:520px;margin:0 auto;display:grid}.chosung-choice{background:var(--surface-2);min-height:64px;color:var(--ink);font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color .12s var(--ease), transform 80ms var(--ease);border:0;border-radius:0;font-size:clamp(1.0625rem,.95rem + .6vw,1.25rem);font-weight:800}.chosung-choice:active{transform:scale(.97)}.chosung-choice.is-right{background:var(--accent);color:var(--accent-ink)}.chosung-choice.is-wrong{animation:chosung-shake .26s var(--ease);background:#5a2b25}@keyframes chosung-shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}@media (prefers-reduced-motion:reduce){.chosung-choice.is-wrong,.chosung-minus.is-show,.chosung-question.is-bump,.chosung-num.is-bump{animation:none}.chosung-minus.is-show{opacity:0}}
