:root{--bg:#1a1625;--panel:#241f36;--text:#f1eefc;--muted:#a89fc9;--accent:#7c4dff;--success:#22c55e;--danger:#ef4444;color:var(--text);background:var(--bg);font:18px/1.4 Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--bg);min-height:100svh;color:var(--text);margin:0}button{font:inherit;color:var(--text);background:var(--accent);cursor:pointer;touch-action:manipulation;border:none;border-radius:10px;padding:12px 18px}button:disabled{opacity:.45;cursor:not-allowed}button.active{outline:3px solid var(--text)}input{font:inherit;border:2px solid var(--accent);background:var(--panel);color:var(--text);border-radius:8px;padding:10px 12px}.app{flex-direction:column;min-height:100svh;display:flex}.screen{text-align:center;flex-direction:column;flex:1;justify-content:safe center;align-items:center;gap:16px;padding:24px;display:flex;overflow-y:auto}.race-grid,.level-grid{flex-wrap:wrap;justify-content:center;gap:14px;max-width:720px;display:flex}.race-card{border:3px solid #0000;flex-direction:column;gap:6px;min-width:160px;display:flex}.locked-badge{color:var(--muted);font-size:.75em}.grade-tabs{gap:8px;display:flex}.level-grid button{flex-direction:column;gap:4px;min-width:130px;display:flex}.settings-row{align-items:center;gap:10px;display:flex}.battle-screen{flex-direction:column;min-height:100svh;display:flex;position:relative}.back-button{color:var(--text);background:0 0;align-self:flex-start;margin:6px 10px;padding:6px 12px}.battle-layout{flex:1;justify-content:center;align-items:flex-start;display:flex;position:relative}.game-canvas{aspect-ratio:960/540;width:100%;max-width:min(960px,177.778svh - 533.333px);margin:0 auto}.hud{background:#141020bf;border-radius:10px;flex-wrap:wrap;justify-content:center;gap:16px;margin:0 auto;padding:6px 16px;font-size:.9em;display:flex}.hud-streak{color:var(--success);font-weight:700}.battle-footer{background:var(--panel);flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:10px;padding:8px 12px;display:flex}.task-panel{border-radius:12px;flex-direction:column;align-items:center;gap:6px;min-width:260px;padding:4px 6px;transition:box-shadow .15s;display:flex;position:relative}.task-panel.flash-correct{box-shadow:0 0 0 3px var(--success)}.task-panel.flash-incorrect{box-shadow:0 0 0 3px var(--danger);animation:.3s task-shake}@keyframes task-shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}.task-float{white-space:nowrap;pointer-events:none;font-size:1.05em;font-weight:700;animation:.7s ease-out forwards task-float-rise;position:absolute;top:-6px;left:50%;transform:translate(-50%)}.task-float-correct{color:var(--success)}.task-float-incorrect{color:var(--danger)}@keyframes task-float-rise{0%{opacity:0;transform:translate(-50%,6px)}20%{opacity:1}to{opacity:0;transform:translate(-50%,-28px)}}.task-prompt-text{font-size:1.4em;font-weight:700}.task-choices{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.task-hint{color:var(--muted);margin:0;font-size:.8em}.keypad{flex-direction:column;align-items:stretch;gap:4px;width:190px;max-width:70vw;display:flex}.keypad-display{text-align:center;-webkit-user-select:none;user-select:none;caret-color:#0000;min-height:1.2em;padding:3px 10px;font-size:1.1em;font-weight:700}.keypad-grid{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.keypad-key{background:var(--panel);border:2px solid var(--accent);padding:5px 0;font-size:1.05em}.keypad-key:active{background:var(--accent)}.keypad-submit{background:var(--accent);border-color:var(--accent);grid-column:1/-1}.keypad-spacer{visibility:hidden}.build-hint{color:var(--muted);align-self:center;margin:0;font-size:.85em}.build-menu-overlay{z-index:20;background:#0a081099;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.build-menu-card{background:var(--panel);text-align:left;border:1px solid #ffffff14;border-radius:16px;flex-direction:column;gap:12px;width:min(92vw,440px);max-height:88svh;padding:16px;display:flex;overflow-y:auto;box-shadow:0 12px 40px #00000080}.build-menu-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.build-menu-header h2{margin:0;font-size:1.15em}.build-menu-close{color:var(--muted);background:0 0;padding:6px 10px;font-size:1.1em;line-height:1}.build-menu-list{flex-direction:column;gap:10px;display:flex}.build-menu-option{background:#ffffff0a;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.build-menu-option-info{flex-direction:column;gap:2px;min-width:0;display:flex}.build-menu-option-name{font-weight:700}.build-menu-option-desc{color:var(--muted);font-size:.8em}.build-menu-stats{color:var(--muted);flex-wrap:wrap;gap:10px;margin-top:2px;font-size:.78em;display:flex}.build-menu-action{flex-direction:column;flex-shrink:0;align-items:center;gap:2px;min-width:96px;padding:10px 14px;display:flex}.build-menu-cost{opacity:.85;font-size:.75em}.build-menu-max{color:var(--muted);flex-shrink:0;padding:0 8px;font-weight:700}.results-overlay{background:#0a0810d9;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0;overflow-y:auto}.results-card{background:var(--panel);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:14px;max-width:min(90vw,420px);max-height:90svh;padding:32px;display:flex;overflow-y:auto}.results-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}
