html,body{background:#000;height:100%;margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}#app{width:100vw;height:100vh;display:block}#hud{pointer-events:none;color:#fff;-webkit-user-select:none;user-select:none;position:fixed;inset:0}#hud.hidden{display:none}.speed{text-align:right;position:absolute;bottom:22px;right:28px}.speed .val{text-shadow:0 2px 12px #0009;font-size:64px;font-style:italic;font-weight:800;line-height:1}.speed .unit{letter-spacing:.35em;opacity:.85;font-size:13px}.boost{background:#00000059;border:1px solid #ffffff80;border-radius:5px;width:180px;height:10px;position:absolute;bottom:112px;right:30px;overflow:hidden}.boost .fill{background:linear-gradient(90deg,#35d0ff,#2f7bff);border-radius:4px;width:0%;height:100%}.fps{opacity:.7;font-variant-numeric:tabular-nums;font-size:12px;position:absolute;top:10px;left:12px}.hint{letter-spacing:.12em;opacity:.55;white-space:nowrap;font-size:12px;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.racebar{text-shadow:0 2px 10px #0009;font-variant-numeric:tabular-nums;gap:24px;font-size:26px;font-style:italic;font-weight:800;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%)}.stamina{background:#00000059;border:1px solid #ffffff80;border-radius:7px;width:220px;height:14px;position:absolute;bottom:24px;left:28px;overflow:hidden}.stamina .fill{background:#4fd44f;border-radius:6px;width:100%;height:100%}.weapon{letter-spacing:.25em;opacity:.85;font-size:14px;font-weight:700;position:absolute;bottom:48px;left:28px}.countdown{text-shadow:0 4px 24px #000000b3;font-size:140px;font-style:italic;font-weight:900;display:none;position:absolute;top:34%;left:50%;transform:translate(-50%,-50%)}.countdown.go{color:#6fe86f}.results{display:none}#menu{color:#fff;-webkit-user-select:none;user-select:none;background:radial-gradient(at 50% 30%,#2b2140 0%,#16101f 55%,#0b070f 100%);justify-content:center;align-items:center;display:none;position:fixed;inset:0}#menu.open{display:flex}#menu.overlay{background:#08060cb8}.screen{width:min(860px,92vw);max-height:88vh;padding:8px 12px;overflow-y:auto}.screen h1{letter-spacing:.06em;text-align:center;color:#ff5a36;text-shadow:0 6px #6e1a0c,0 10px 32px #000c;margin:0 0 4px;font-size:96px;font-style:italic;font-weight:900}.screen .tagline{text-align:center;letter-spacing:.4em;opacity:.7;margin-bottom:42px;font-size:13px}.screen h2{letter-spacing:.12em;margin:0 0 14px;font-style:italic}.notice{text-align:center;color:#ffb03a;margin-bottom:14px;font-size:13px}.menu-list{flex-direction:column;align-items:center;gap:14px;display:flex}button.mbtn{font:inherit;color:#fff;letter-spacing:.15em;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff59;border-radius:10px;min-width:280px;padding:12px 38px;font-size:20px;font-style:italic;font-weight:700}button.mbtn:hover:not(:disabled){background:#ff5a3640;border-color:#ff5a36}button.mbtn:disabled{opacity:.35;cursor:default}button.mbtn.small{min-width:0;padding:8px 20px;font-size:14px}.hub-top{justify-content:space-between;align-items:baseline;margin-bottom:18px;display:flex}.money{color:#6fe86f;font-variant-numeric:tabular-nums;font-size:30px;font-style:italic;font-weight:800}.level-label{letter-spacing:.1em;font-size:20px;font-style:italic;font-weight:800}.race-grid{grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:20px;display:grid}.race-card{text-align:center;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff4d;border-radius:10px;padding:12px 10px}.race-card:hover:not(.won){background:#ff5a362e;border-color:#ff5a36}.race-card .rname{min-height:32px;margin-bottom:6px;font-size:14px;font-style:italic;font-weight:800}.race-card .status{letter-spacing:.15em;opacity:.75;font-size:12px}.race-card.won{opacity:.55;cursor:default}.race-card.won .status{color:#6fe86f}.hub-bike{border-top:1px solid #ffffff26;justify-content:space-between;align-items:center;padding-top:16px;font-size:15px;display:flex}.hub-bike .bname{font-size:18px;font-style:italic;font-weight:800}.shop-money{color:#6fe86f;font-variant-numeric:tabular-nums;margin-bottom:14px;font-size:24px;font-style:italic;font-weight:800}.shop-section{margin-bottom:22px}.shop-row{border-radius:8px;grid-template-columns:1fr 110px 90px 130px;align-items:center;gap:10px;padding:7px 10px;font-size:15px;display:grid}.shop-row:nth-child(odd){background:#ffffff0a}.shop-row .bname{font-style:italic;font-weight:700}.shop-row .bclass{letter-spacing:.2em;opacity:.7;text-transform:uppercase;font-size:12px}.shop-row .price{text-align:right;font-variant-numeric:tabular-nums}.shop-row.active-bike{outline:1px solid #6fe86f}.tier-dots{letter-spacing:.2em}.res-standings .row{font-variant-numeric:tabular-nums;grid-template-columns:36px 1fr 90px;gap:8px;padding:4px 0;font-size:18px;display:grid}.res-standings .row.you{color:#ffd94a;font-weight:800}.res-money{border-top:1px solid #fff3;margin-top:14px;padding-top:12px;font-size:16px}.res-money .line{font-variant-numeric:tabular-nums;justify-content:space-between;padding:2px 0;display:flex}.res-money .line.total{color:#6fe86f;font-weight:800}.res-money .line.unlock{color:#ffb03a;font-weight:800}.res-actions{justify-content:center;gap:12px;margin-top:20px;display:flex}
