:root{--ink:#12151f;--card:#12151fd1;--line:#ffffff24;--text:#f5f2ea;--muted:#b8bccb;--accent:#ff9b3d;--accent-2:#ffd36b}*{box-sizing:border-box}html,body{background:var(--ink);height:100%;color:var(--text);margin:0;font-family:ui-rounded,SF Pro Rounded,system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}canvas#game{width:100%;height:100%;display:block;position:fixed;inset:0}.hidden{display:none!important}kbd{border:1px solid var(--line);min-width:1.6em;font:inherit;text-align:center;background:#ffffff14;border-bottom-width:2px;border-radius:6px;padding:.1em .4em;font-size:.85em;display:inline-block}.menu{background:radial-gradient(1200px 600px at 30% 20%,#2a3a5c 0%,#12151f 60%);place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow:auto}.menu-card{border:1px solid var(--line);background:var(--card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:22px;width:min(960px,100%);padding:28px;box-shadow:0 30px 80px #00000073}h1{letter-spacing:-.02em;margin:0;font-size:clamp(30px,5vw,48px)}.tag{vertical-align:middle;background:var(--accent);color:var(--ink);letter-spacing:0;border-radius:999px;padding:4px 10px;font-size:13px}.lead{color:var(--muted);margin:8px 0 18px}h2{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:18px 0 8px;font-size:14px}.row{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;display:grid}.pick{text-align:left;border:2px solid var(--line);color:var(--text);cursor:pointer;font:inherit;background:#ffffff0a;border-radius:16px;padding:14px;transition:transform .12s,border-color .12s}.pick:hover{border-color:#ffffff4d;transform:translateY(-2px)}.pick.on{border-color:var(--accent);background:#ff9b3d1f}.pick b{font-size:17px;display:block}.pick span{color:var(--muted);margin-top:4px;font-size:13px;display:block}.pick .swatch{vertical-align:-1px;border-radius:4px;width:12px;height:12px;margin-right:6px;display:inline-block}.play{background:linear-gradient(180deg, var(--accent-2), var(--accent));width:100%;height:60px;color:var(--ink);font:inherit;cursor:pointer;border:0;border-radius:16px;margin-top:22px;font-size:22px;font-weight:800;box-shadow:0 10px 30px #ff9b3d59}.play:hover{filter:brightness(1.05)}.keys{color:var(--muted);margin:14px 0 0;font-size:13px;line-height:2}.hud{pointer-events:none;text-shadow:0 2px 8px #00000073;position:fixed;inset:0}.top-left{position:absolute;top:16px;left:18px}#map-name{font-size:20px;font-weight:800}#map-rule{color:#e9ecf5;max-width:360px;font-size:14px}.top-mid{text-align:center;position:absolute;top:14px;left:50%;transform:translate(-50%)}#timer{font-variant-numeric:tabular-nums;font-size:28px;font-weight:800}#banner{background:#12151f99;border-radius:999px;margin-top:8px;padding:8px 16px;font-size:18px;font-weight:700}#banner:empty{display:none}.bottom-right{text-align:right;position:absolute;bottom:18px;right:22px}#speed{font-variant-numeric:tabular-nums;font-size:64px;font-weight:900;line-height:1}.unit{color:#e9ecf5;font-weight:700}#surface{color:var(--accent-2);margin-top:6px;font-weight:700}.drift{background:#fff3;border-radius:99px;width:180px;height:8px;margin-top:8px;margin-left:auto;overflow:hidden}#drift-bar{background:linear-gradient(90deg,#6fd3ff,#ffa53a);width:0%;height:100%;transition:width 80ms linear}.bottom-left{color:#e9ecf5;font-size:13px;position:absolute;bottom:16px;left:18px}@media (max-width:640px){#speed{font-size:44px}#map-rule{display:none}}
