:root{--text:#6b7684;--text-on-bg:#4e5968;--text-h:#191f28;--bg:#f2f4f6;--surface:#fff;--border:#e5e8eb;--card-shadow:0 1px 3px #0000000d;--card-shadow-raised:0 1px 3px #0000000d, 0 8px 24px #00000008;--radius-card:20px;--radius-button:16px;--radius-icon:11px;--penalty-bg:#fff0e3;--penalty-text:#a34a08;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--button-edge-shade:#0000001f;--path-cell:#eef0f3;--path-cell-border:#d1d6db;--sans:"Pretendard Variable", Pretendard, -apple-system, system-ui, sans-serif;--heading:var(--sans);--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:-.01em;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}:root{--ui-scale:1}@media (width>=600px){:root{--ui-scale:1.2}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root[data-theme=light]{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=dark]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--text:#9aa3ae;--text-on-bg:#9aa3ae;--text-h:#f2f4f6;--bg:#101013;--surface:#1c1c21;--border:#2c2c33;--card-shadow:0 0 0 1px #ffffff0f;--card-shadow-raised:0 0 0 1px #ffffff0f;--penalty-bg:#ff8c3c29;--penalty-text:#ffb27a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px;--path-cell:#2a2a31;--path-cell-border:#3a3a42}@media (prefers-color-scheme:dark){:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--text:#9aa3ae;--text-on-bg:#9aa3ae;--text-h:#f2f4f6;--bg:#101013;--surface:#1c1c21;--border:#2c2c33;--card-shadow:0 0 0 1px #ffffff0f;--card-shadow-raised:0 0 0 1px #ffffff0f;--penalty-bg:#ff8c3c29;--penalty-text:#ffb27a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px;--path-cell:#2a2a31;--path-cell-border:#3a3a42}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;box-sizing:border-box;flex-direction:column;width:480px;max-width:100%;height:100svh;margin:0 auto;display:flex;overflow-y:auto}@media (width>=600px){#root{width:720px}}@media (width>=900px) and (orientation:landscape){#root{width:960px}}html,body{overscroll-behavior:none;touch-action:manipulation;height:100%}body{margin:0;overflow:hidden}button{font-family:inherit}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.touch-indicator-layer{pointer-events:none;z-index:9999;position:fixed;inset:0}.touch-indicator-ping{border:2px solid var(--accent);background:var(--accent-bg);pointer-events:none;border-radius:50%;width:36px;height:36px;margin-top:-18px;margin-left:-18px;animation-name:touch-indicator-ping;animation-timing-function:ease-out;animation-fill-mode:forwards;position:fixed}@keyframes touch-indicator-ping{0%{opacity:.9;transform:scale(.3)}to{opacity:0;transform:scale(1.8)}}.app{padding:calc(20px + env(safe-area-inset-top)) calc(20px + env(safe-area-inset-right)) calc(32px + env(safe-area-inset-bottom)) calc(20px + env(safe-area-inset-left));box-sizing:border-box;flex-direction:column;flex-grow:1;gap:20px;display:flex}.app__header{align-items:center;gap:12px;display:flex}.app__title{letter-spacing:-.03em;color:var(--text-h);margin:0 auto 0 0;font-size:26px;font-weight:800;line-height:1.25}.app__notice{color:var(--text-on-bg);margin:-12px 0 0;font-size:13px;line-height:1.4}.line-icon{display:block}.app__home{color:var(--text-h);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;margin-left:-10px;padding:0;display:flex}.app__settings{background:var(--surface);box-shadow:var(--card-shadow);color:var(--text-h);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:flex}.mode--arith{--mode-color:#3182f6;--accent-strong:#0f6df5}.mode--tap{--mode-color:#00a386;--accent-strong:#00846d}.mode--survival{--mode-color:#f27a1a;--accent-strong:#ba590b}.mode--chimp{--mode-color:#7c5cf2;--accent-strong:#7857f2}.mode--stroop{--mode-color:#e0457f;--accent-strong:#db296b}.mode--merge{--mode-color:#0fa3bd;--accent-strong:#0c8095}.mode--estimate{--mode-color:#d69a00;--accent-strong:#966c00}.mode--timing{--mode-color:#5566e8;--accent-strong:#5566e8}.mode--spatial{--mode-color:#b447cc;--accent-strong:#b243cb}.mode--path{--mode-color:#b7791f;--accent-strong:#9f691b}.mode--maze{--mode-color:#78716c;--accent-strong:#78716c}.mode--pair{--mode-color:#805898;--accent-strong:#805898}.mode--flag{--mode-color:#086ca8;--accent-strong:#086ca8}.mode--brightness{--mode-color:#746c2c;--accent-strong:#746c2c}.game-shell{--accent:var(--mode-color);--accent-border:color-mix(in srgb, var(--mode-color) 50%, transparent);--accent-bg:color-mix(in srgb, var(--mode-color) 10%, transparent)}.game-header{grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.game-header .app__home{justify-self:start}.game-header .app__restart{justify-self:end;margin-left:0;margin-right:-10px}.game-header__title{color:var(--text-h);font-size:16px;font-weight:700}.game-hud{border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--card-shadow);color:var(--text);font-variant-numeric:tabular-nums;flex-direction:column;gap:12px;padding:16px 20px 18px;display:flex}.game-hud__row{justify-content:space-between;align-items:center;gap:12px;display:flex}.game-hud__progress{background:var(--border);border-radius:3px;height:6px;overflow:hidden}.game-hud__progress-fill{background:var(--accent);height:100%;transition:width .2s}.game-hud__primary{letter-spacing:-.03em;color:var(--text-h);font-size:44px;font-weight:800;line-height:1.1}.game-hud__secondary{text-align:right;font-size:14px;font-weight:600}.game-board{flex-direction:column;flex-grow:1;gap:20px;display:flex;position:relative}.combo-badge,.penalty-badge{border-radius:999px;margin-left:6px;padding:2px 8px;font-size:12px;font-weight:700;line-height:1.5;display:inline-block}.combo-badge{background:var(--accent-bg);color:var(--text-h)}.penalty-badge{background:var(--penalty-bg);color:var(--penalty-text)}.combo-popup{background:var(--surface);box-shadow:var(--card-shadow-raised);letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--text-h);pointer-events:none;z-index:10;white-space:nowrap;border-radius:999px;padding:6px 16px;font-size:24px;font-weight:800;animation:.7s forwards combo-pop;position:absolute;top:0;left:50%}.penalty-popup{background:var(--penalty-bg);font-variant-numeric:tabular-nums;color:var(--penalty-text);pointer-events:none;z-index:10;white-space:nowrap;border-radius:999px;padding:4px 14px;font-size:20px;font-weight:800;animation:.6s forwards penalty-pop;position:absolute;bottom:0;left:50%}@keyframes penalty-pop{0%{opacity:0;transform:translate(-50%,4px)scale(.8)}20%{opacity:1;transform:translate(-50%)scale(1.1)}to{opacity:0;transform:translate(-50%,-16px)scale(1)}}.beat-popup{font-size:34px;position:fixed;top:38%}.end-beat__cause{color:#ef4444;text-align:center;font-size:18px;font-weight:700}@keyframes combo-pop{0%{opacity:0;transform:translate(-50%,-40%)scale(.6)}20%{opacity:1;transform:translate(-50%,-50%)scale(1.15)}40%{transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-75%)scale(1)}}.lobby{flex-grow:1;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:8px;display:grid}.mode-card{border-radius:var(--radius-card);background:var(--surface);min-width:0;box-shadow:var(--card-shadow-raised);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;flex-direction:column;align-items:flex-start;padding:8px 12px;transition:transform 80ms;display:flex}.mode-card:active{transform:scale(.97)}.mode-card__icon{border-radius:var(--radius-icon);background:color-mix(in srgb, var(--mode-color) 10%, transparent);width:28px;height:28px;color:var(--mode-color);justify-content:center;align-items:center;margin-bottom:4px;display:flex}.mode-card__title{color:var(--text-h);font-size:15px;font-weight:700;line-height:1.2}.mode-card__best{color:var(--text);font-variant-numeric:tabular-nums;font-size:12px;font-weight:500;line-height:1.2}.settings-overlay{z-index:20;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.settings-modal{background:var(--surface);width:100%;max-width:480px;box-shadow:var(--card-shadow);box-sizing:border-box;border-radius:22px 22px 0 0;flex-direction:column;gap:18px;padding:24px 20px 32px;display:flex}.settings-modal__title{letter-spacing:-.03em;color:var(--text-h);font-size:20px;font-weight:800}.settings-modal__group{flex-direction:column;gap:8px;display:flex}.settings-modal__label{color:var(--text);font-size:13px}.settings-modal__segmented{border-radius:var(--radius-button);background:var(--border);gap:4px;padding:4px;display:flex}.settings-modal__option{min-height:44px;color:var(--text-on-bg);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:12px;flex:1;font-size:15px;font-weight:600}.settings-modal__option:focus:not(:focus-visible){outline:none}.settings-modal__option--active{background:var(--surface);color:var(--text-h);font-weight:800}.settings-modal__close{background:var(--bg);box-shadow:none;flex:none}.problem-card{border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--card-shadow);flex-direction:column;align-items:center;gap:16px;padding:24px 20px;transition:background-color .15s;display:flex}.problem-card__expression{color:var(--text-h);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:44px;font-weight:800}.problem-card__value{box-sizing:border-box;background:var(--accent-bg);letter-spacing:-.03em;min-width:160px;min-height:56px;color:var(--text-h);font-variant-numeric:tabular-nums;border-radius:999px;padding:6px 24px;font-size:32px;font-weight:800;line-height:44px}.problem-card--correct{background:color-mix(in srgb, #22c55e 25%, var(--surface));animation:.26s pop-bounce}.problem-card--wrong{background:color-mix(in srgb, #ef4444 25%, var(--surface));animation:.26s pop-shake}@keyframes pop-bounce{0%{transform:scale(1)}40%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes pop-shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.estimate-card{border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--card-shadow);flex-direction:column;gap:12px;margin-top:auto;padding:20px;transition:background-color .15s;display:flex}.estimate-card--correct{background:color-mix(in srgb, #22c55e 25%, var(--surface));animation:.26s pop-bounce}.estimate-card--wrong{background:color-mix(in srgb, #ef4444 25%, var(--surface));animation:.26s pop-shake}.estimate-card__dots{gap:12px;min-height:280px;display:flex}.estimate-side{border-radius:var(--radius-button);background:var(--surface);box-shadow:0 2px 0 var(--border), var(--card-shadow);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:none;flex:1;transition:transform 80ms;position:relative}.estimate-side:active{transform:scale(.98)}.estimate-dot{background:var(--text-h);pointer-events:none;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.tap-board{border-radius:var(--radius-card);box-sizing:border-box;background:var(--surface);width:100%;box-shadow:var(--card-shadow);font:inherit;color:inherit;text-align:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:none;flex-direction:column;gap:14px;margin-top:auto;padding:20px;transition:background-color .15s;display:flex}.tap-board--correct,.tap-board--perfect{background:color-mix(in srgb, #22c55e 25%, var(--surface));animation:.26s pop-bounce}.tap-board--wrong,.tap-board--miss{background:color-mix(in srgb, #ef4444 25%, var(--surface));animation:.26s pop-shake}.tap-board--good{animation:.26s pop-bounce}.timing-board{flex:1;gap:16px;margin-top:0}.timing-stage{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:16px;display:flex}.timing-judgement{color:var(--text-h);font-size:26px;font-weight:800;line-height:1.2}.timing-judgement--perfect{color:var(--mode-color)}.timing-judgement--miss{color:#ef4444}.timing-zone{border:2px dashed color-mix(in srgb, var(--mode-color) 45%, transparent);border-radius:var(--radius-card);min-height:120px;color:var(--text-h);flex:1;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:flex}.timing-bar{background:var(--border);border-radius:12px;width:100%;height:44px;margin:14px 0;position:relative}.timing-bar__target{background:color-mix(in srgb, var(--mode-color) 40%, var(--surface));position:absolute;top:0;bottom:0}.timing-bar__perfect{background:var(--mode-color);width:50%;position:absolute;top:0;bottom:0;left:25%}.timing-bar__marker{background:var(--text-h);width:8px;height:72px;box-shadow:0 0 0 2px var(--surface);border-radius:4px;position:absolute;top:-14px;transform:translate(-50%)}.timing-bar__marker--stopped{background:#ef4444}.timing-lives{vertical-align:middle;gap:4px;display:inline-flex}.timing-lives__dot{box-sizing:border-box;border:2px solid var(--text-h);border-radius:50%;width:12px;height:12px}.timing-lives__dot--full{background:var(--text-h)}@keyframes timing-sweep{0%{left:0%}to{left:100%}}.tap-grid{gap:8px;display:grid}.tap-grid__cell{aspect-ratio:1;background:var(--bg);color:var(--text-h);letter-spacing:-.03em;font-variant-numeric:tabular-nums;cursor:pointer;box-shadow:0 2px 0 var(--border);-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:none;border-radius:14px;font-size:20px;font-weight:800;transition:transform 80ms,box-shadow 80ms,opacity .15s}.tap-grid__cell:active{box-shadow:0 0 0 var(--border);transform:scale(.94)}.tap-grid__cell--wrong{color:#fff;background:#ef4444}.tap-grid__cell--tapped{opacity:0;pointer-events:none}.board-fit{flex-direction:column;flex-grow:1;align-items:center;min-height:0;display:flex;container-type:size}.path-board,.maze-board{--cell:min((100cqw - 16px - (var(--cols) - 1) * var(--gap)) / var(--cols), (100cqh - 16px - (var(--rows) - 1) * var(--gap)) / var(--rows))}.path-board__grid,.maze-board__grid{grid-template-columns:repeat(var(--cols), var(--cell));grid-auto-rows:var(--cell)}.path-board{--gap:4px;border-radius:var(--radius-card);box-sizing:border-box;background:var(--surface);box-shadow:var(--card-shadow);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;margin-top:auto;padding:8px;transition:background-color .15s}.path-board--correct{background:color-mix(in srgb, #22c55e 25%, var(--surface));animation:.26s pop-bounce}.path-board__grid{gap:var(--gap);display:grid;position:relative}.path-board__cell{box-sizing:border-box;border:1px solid var(--path-cell-border);background:var(--path-cell);border-radius:8px}.path-board__cell--visited{background:color-mix(in srgb, var(--mode-color) 28%, var(--path-cell));border-color:color-mix(in srgb, var(--mode-color) 55%, var(--path-cell))}.path-board__cell--blocked{background:var(--text-h);box-shadow:none;opacity:.8;border-color:#0000}.path-board__cell--start,.path-board__cell--end{position:relative}.path-board__cell--end-rejected{animation:.15s 2 path-end-blink}@keyframes path-end-blink{50%{box-shadow:inset 0 0 0 6px var(--mode-color);opacity:.4}}.path-board__line{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.path-board__line polyline{fill:none;stroke:var(--mode-color);stroke-width:.4px;stroke-linecap:round;stroke-linejoin:round}.path-board__tail,.maze-board__tail{stroke:var(--mode-color);stroke-width:.16px;stroke-linecap:round;opacity:.45}.maze-board{--gap:0px;border-radius:var(--radius-card);box-sizing:border-box;background:var(--surface);box-shadow:var(--card-shadow);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;margin-top:auto;padding:8px;transition:background-color .15s}.maze-board--correct{background:color-mix(in srgb, #22c55e 25%, var(--surface));animation:.26s pop-bounce}.maze-board--wrong{background:color-mix(in srgb, #ef4444 25%, var(--surface));animation:.26s pop-shake}.maze-board__grid{display:grid;position:relative}.maze-board__cell{background:var(--surface)}.maze-board__cell--visited{background:var(--accent-bg)}.maze-board__cell--gate{position:relative}.maze-board__gate-arrow{fill:none;width:8px;height:8px;stroke:var(--mode-color);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;position:absolute;left:50%;transform:translate(-50%)}.maze-board__gate-arrow--in{bottom:100%}.maze-board__gate-arrow--out{top:100%}.maze-board__overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.maze-board__line,.maze-board__solution{fill:none;stroke-linecap:round;stroke-linejoin:round}.maze-board__line{stroke:var(--mode-color);stroke-width:.4px}.maze-board__solution{stroke:#ef4444;stroke-width:.18px;stroke-dasharray:.25 .2}.maze-board__walls{fill:none;stroke:var(--text-h);stroke-width:.1px;stroke-linecap:square}.path-marker{vertical-align:-.25em;width:1.2em;height:1.2em;display:inline-block}.path-board__cell .path-marker,.maze-board__cell .path-marker{width:76%;height:76%;position:absolute;inset:12%}.path-marker__fill{fill:var(--mode-color)}.path-marker__glyph{fill:#fff}.path-marker__ring{fill:none;stroke:var(--mode-color);stroke-width:2.5px}.path-marker__pole{fill:none;stroke:var(--mode-color);stroke-width:1.6px;stroke-linecap:round}.path-marker__flag{fill:var(--mode-color)}.path-marker--pulse{animation:1.4s ease-in-out infinite path-marker-pulse}@keyframes path-marker-pulse{50%{opacity:.7;transform:scale(1.12)}}@media (prefers-reduced-motion:reduce){.path-marker--pulse{animation:none}}.path-hint{text-align:center;color:var(--text-on-bg);margin:0;font-size:15px}.pair-board{--gap:4px;--cell:min((100cqw - 32px - (var(--cols) - 1) * var(--gap)) / var(--cols), (100cqh - 32px - (var(--rows) - 1) * var(--gap)) / var(--rows));--link-width:max(3px, var(--cell) * .08);border-radius:var(--radius-card);box-sizing:border-box;background:var(--surface);box-shadow:var(--card-shadow);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;margin-top:auto;padding:16px;transition:background-color .15s;position:relative}.pair-board--correct{background:color-mix(in srgb, #22c55e 25%, var(--surface));animation:.26s pop-bounce}.pair-board--wrong{animation:.26s pop-shake}.pair-board__grid{gap:var(--gap);grid-template-columns:repeat(var(--cols), var(--cell));grid-auto-rows:var(--cell);display:grid}.pair-board__cell{background:var(--bg);box-shadow:0 2px 0 var(--border);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:none;border-radius:10px;justify-content:center;align-items:center;padding:0;transition:transform 80ms,background-color 80ms;display:flex}.pair-board__cell .line-icon{width:55%;height:55%}.pair-board__cell--selected{background:var(--accent-bg);box-shadow:inset 0 0 0 3px var(--mode-color);transform:scale(1.06)}.pair-board__cell--wrong{background:color-mix(in srgb, #ef4444 25%, var(--surface))}.pair-board__cell--empty{box-shadow:none;cursor:default;pointer-events:none;background:0 0}.pair-board__cell--cleared{background:color-mix(in srgb, #22c55e 25%, var(--surface));animation:.26s forwards pair-cell-clear}@keyframes pair-cell-clear{40%{opacity:1;transform:scale(1.05)}to{opacity:0;transform:scale(.9)}}.pair-board--shuffling .pair-board__cell:not(.pair-board__cell--empty){animation:.4s pair-shuffle}@keyframes pair-shuffle{50%{opacity:.4;transform:scale(.8)}}.pair-board__link{pointer-events:none;position:absolute;inset:0}.pair-board__segment{border-radius:calc(var(--link-width) / 2);background:var(--mode-color);position:absolute}@media (prefers-reduced-motion:reduce){.pair-board--correct,.pair-board--wrong,.pair-board--shuffling .pair-board__cell:not(.pair-board__cell--empty){animation:none}.pair-board__cell--cleared{opacity:0;animation:none}}.merge-board{border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--card-shadow);justify-content:center;gap:8px;padding:12px;display:flex}.merge-column{border-radius:var(--radius-button);background:var(--bg);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;box-sizing:border-box;border:none;flex-direction:column-reverse;flex:1;justify-content:flex-end;gap:6px;max-width:clamp(64px,18vw,96px);height:min(340px,55vh);padding:6px;transition:transform 80ms;display:flex}.merge-column--blocked{opacity:.45}.merge-column--overflow{background:color-mix(in srgb, #ef4444 25%, var(--bg));box-shadow:inset 0 0 0 2px #ef4444}.merge-column:active{transform:scale(.98)}.merge-tile{font-variant-numeric:tabular-nums;color:#1a1a1a;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;height:48px;font-size:16px;font-weight:800;display:flex}.merge-next-preview{color:#1a1a1a;vertical-align:middle;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:700;display:inline-flex}.keypad{flex-direction:column;gap:10px;max-width:100%;margin-top:auto;display:flex}.keypad--small{width:260px}.keypad--medium{width:340px}.keypad--large{width:100%}.keypad--align-left{align-self:flex-start}.keypad--align-center{align-self:center}.keypad--align-right{align-self:flex-end}.keypad-row{gap:10px;display:flex}.pop-button{letter-spacing:-.03em;font-variant-numeric:tabular-nums;min-height:56px;color:var(--text-h);background:var(--surface);border-radius:var(--radius-button);box-shadow:0 2px 0 var(--border), var(--card-shadow);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:none;flex:1;justify-content:center;align-items:center;padding:16px 0;font-size:22px;font-weight:700;transition:transform 80ms,box-shadow 80ms;display:flex}.pop-button:active{box-shadow:0 0 0 var(--border);transform:scale(.94)}.pop-button--muted{color:var(--text)}.pop-button--accent{color:#fff;background:var(--accent-strong);box-shadow:0 2px 0 color-mix(in srgb, var(--accent-strong) 70%, black);font-size:18px;font-weight:700}.pop-button--accent:disabled{color:var(--text);background:var(--border);box-shadow:0 2px 0 var(--button-edge-shade);cursor:not-allowed}.results-screen{flex-direction:column;flex-grow:1;gap:20px;display:flex}.results-screen__summary{border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--card-shadow);text-align:center;flex-direction:column;align-items:center;gap:10px;margin:auto 0;padding:28px 20px;display:flex}.results-screen__title{color:var(--text-h);margin:0;font-size:17px;font-weight:700}.results-screen__headline{letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--text-h);margin:4px 0;font-size:48px;font-weight:800;line-height:1.1}.results-screen__badge{background:var(--accent-bg);color:var(--text-h);border-radius:999px;padding:4px 12px;font-size:15px;font-weight:700}.results-screen__delta{font-variant-numeric:tabular-nums;color:var(--text-h);font-size:16px;font-weight:700}.results-screen__details{font-variant-numeric:tabular-nums;color:var(--text);font-size:15px}.results-screen__actions{flex-direction:column;gap:12px;width:100%;display:flex}.results-screen__secondary{gap:12px;display:flex}.ready-screen{text-align:center;flex-direction:column;align-items:center;gap:10px;margin:auto 0;display:flex}.ready-screen__title{letter-spacing:-.03em;color:var(--text-h);font-size:26px;font-weight:800}.ready-screen__rule{color:var(--text-h);word-break:keep-all;font-size:17px;font-weight:500}.ready-screen__best{font-variant-numeric:tabular-nums;color:var(--text-on-bg);font-size:15px}.ready-screen__actions{width:100%;margin-top:20px;display:flex}.countdown{justify-content:center;align-items:center;margin:auto 0;display:flex}.countdown__number{letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--text-h);font-size:96px;font-weight:800;animation:.45s countdown-pop}@keyframes countdown-pop{0%{opacity:0;transform:scale(.5)}60%{opacity:1;transform:scale(1.15)}to{transform:scale(1)}}.stroop-choices{flex-wrap:wrap;gap:10px;width:100%;margin-top:auto;display:flex}.stroop-choice{border-radius:var(--radius-button);cursor:pointer;min-height:64px;box-shadow:0 2px 0 var(--button-edge-shade), var(--card-shadow);-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:none;flex:calc(50% - 5px);justify-content:center;align-items:center;transition:transform 80ms,box-shadow 80ms;display:flex}.stroop-choice:active{box-shadow:0 0 0 var(--button-edge-shade);transform:scale(.9)}.stroop-choice__label{color:#1f2937;pointer-events:none;background:#ffffffe6;border-radius:999px;padding:4px 12px;font-size:17px;font-weight:700}.stroop-timer{background:var(--border);border-radius:3px;height:6px;overflow:hidden}.stroop-timer__fill{background:var(--accent);height:100%;transition:width .1s linear}.shape-grid{justify-content:center;align-items:center;display:flex;position:relative;overflow:visible}.shape-grid__reference{justify-content:center;padding:12px 0;display:flex}.shape-grid__rotor{display:flex}.shape-grid__cells{display:grid}.shape-grid__cell{background:var(--text-h);border-radius:2px}.spatial-choices{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:auto;display:flex}.spatial-choice{border-radius:var(--radius-button);background:var(--surface);cursor:pointer;min-width:100px;box-shadow:0 2px 0 var(--border), var(--card-shadow);-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:none;flex:1;justify-content:center;align-items:center;padding:12px;transition:transform 80ms;display:flex}.spatial-choice:active{box-shadow:0 0 0 var(--border);transform:scale(.94)}.flag-card{--flag-max:280px;width:min(100%, var(--flag-max), calc(32dvh * 4 / 3));aspect-ratio:4/3;background:var(--surface);box-shadow:0 0 0 1px var(--border);border-radius:8px;align-self:center;overflow:hidden}.flag-card--correct{animation:.26s pop-bounce}.flag-card--wrong{animation:.26s pop-shake}.flag-card__image{object-fit:contain;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;height:100%;display:block}.flag-card--loading{animation:1.2s ease-in-out infinite flag-skeleton}.flag-card--loading .flag-card__image{opacity:0}@keyframes flag-skeleton{0%,to{background:var(--surface)}50%{background:color-mix(in srgb, var(--border) 60%, var(--surface))}}.flag-card__error{text-align:center;height:100%;color:var(--text);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:8px;font-size:14px;display:flex}.flag-card__error p{margin:0}.flag-card__reload{border-radius:var(--radius-button);background:var(--accent);color:#fff;cursor:pointer;touch-action:manipulation;border:none;padding:8px 14px;font-size:14px;font-weight:700}.flag-choices{grid-template-columns:1fr 1fr;gap:12px;margin-top:auto;display:grid}.flag-choice{border-radius:var(--radius-button);background:var(--surface);min-width:0;min-height:56px;color:var(--text-h);word-break:keep-all;overflow-wrap:anywhere;cursor:pointer;box-shadow:0 2px 0 var(--border), var(--card-shadow);-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:none;padding:6px 8px;font-size:16px;font-weight:700;line-height:1.25;transition:transform 80ms}.flag-choice:active{box-shadow:0 0 0 var(--border);transform:scale(.94)}.flag-choice--correct{background:color-mix(in srgb, #22c55e 35%, var(--surface))}.flag-choice--wrong{background:color-mix(in srgb, #ef4444 25%, var(--surface));opacity:.55;cursor:default}.flag-choice--reveal{animation:.45s 2 flag-reveal;box-shadow:inset 0 0 0 3px #22c55e}@keyframes flag-reveal{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@media (prefers-reduced-motion:reduce){.flag-card--correct,.flag-card--wrong,.flag-card--loading,.flag-choice--reveal{animation:none}}.brightness-board{padding:12px}.brightness-board .tap-grid__cell{border-radius:10px}@media (width>=600px){.lobby{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.mode-card{padding:14px 16px}.mode-card__icon{width:36px;height:36px;margin-bottom:8px}.mode-card__icon .line-icon{width:24px;height:24px}.mode-card__title{font-size:17px}.mode-card__best{font-size:13px}.game-shell{width:100%;max-width:600px;margin:0 auto}.game-board{justify-content:center}.estimate-card,.tap-board,.keypad,.stroop-choices,.spatial-choices,.flag-choices{margin-top:0}.path-board,.maze-board,.pair-board{margin-top:auto;margin-bottom:auto}.board-fit{align-self:center;width:100%;max-width:560px}.tap-grid{align-self:center;width:min(100%,55svh)}.game-header__title{font-size:calc(16px * var(--ui-scale))}.game-hud__primary{font-size:calc(44px * var(--ui-scale))}.game-hud__secondary{font-size:calc(14px * var(--ui-scale))}.problem-card__expression{font-size:calc(44px * var(--ui-scale))}.problem-card__value{min-width:calc(160px * var(--ui-scale));min-height:calc(56px * var(--ui-scale));font-size:calc(32px * var(--ui-scale));line-height:calc(44px * var(--ui-scale))}.keypad--small{width:calc(260px * var(--ui-scale))}.keypad--medium{width:calc(340px * var(--ui-scale))}.pop-button{min-height:calc(56px * var(--ui-scale));padding:calc(16px * var(--ui-scale)) 0;font-size:calc(22px * var(--ui-scale))}.pop-button--accent{font-size:calc(18px * var(--ui-scale))}.stroop-choice{min-height:calc(64px * var(--ui-scale))}.stroop-choice__label{font-size:calc(17px * var(--ui-scale))}.spatial-choice{padding:calc(12px * var(--ui-scale));--shape-cell:calc(16.8px * var(--ui-scale))}.estimate-card__dots{min-height:calc(280px * var(--ui-scale))}.flag-card{--flag-max:calc(280px * var(--ui-scale))}.flag-choice{min-height:calc(56px * var(--ui-scale));font-size:calc(16px * var(--ui-scale))}.tap-grid__cell{font-size:calc(20px * var(--ui-scale))}.merge-column{max-width:calc(96px * var(--ui-scale));height:min(calc(340px * var(--ui-scale)), 55vh)}.merge-tile{height:calc(48px * var(--ui-scale));font-size:calc(16px * var(--ui-scale))}.timing-judgement{font-size:calc(26px * var(--ui-scale))}.timing-zone{font-size:calc(18px * var(--ui-scale))}.path-hint{font-size:calc(15px * var(--ui-scale))}.results-screen__title{font-size:calc(17px * var(--ui-scale))}.results-screen__headline{font-size:calc(48px * var(--ui-scale))}.results-screen__badge,.results-screen__details{font-size:calc(15px * var(--ui-scale))}.results-screen__delta{font-size:calc(16px * var(--ui-scale))}.ready-screen__title{font-size:calc(26px * var(--ui-scale))}.ready-screen__rule{font-size:calc(17px * var(--ui-scale))}.ready-screen__best{font-size:calc(15px * var(--ui-scale))}.countdown__number{font-size:calc(96px * var(--ui-scale))}.settings-modal{max-width:600px}.settings-modal__title{font-size:calc(20px * var(--ui-scale))}.settings-modal__label{font-size:calc(13px * var(--ui-scale))}.settings-modal__option{min-height:calc(44px * var(--ui-scale));font-size:calc(15px * var(--ui-scale))}}@media (width>=900px) and (orientation:landscape){.lobby{grid-template-columns:repeat(4,minmax(0,1fr))}}
