:root{--text:#eef2f5;--dim:#eef2f58c;--accent:#00c2b8;--ok:#2ee86b;--bad:#ff5a5a;--boost:#4da3ff;--edge:#ffffff4d;--font:"Saira Semi Condensed", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--text);font-family:var(--font);touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#05070a;margin:0;overflow:hidden}button{font:700 13px var(--font);letter-spacing:.12em;color:var(--text);-webkit-tap-highlight-color:transparent;touch-action:none}.hidden{display:none!important}.screen{padding:max(12px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));position:fixed;inset:0}#join{touch-action:auto;background:radial-gradient(at 50% 30%,#00c2b81f,#0000 60%),#05070a;place-items:center;display:grid;overflow-y:auto}.card{text-align:center;width:min(360px,100%)}.mark{letter-spacing:.04em;font-size:34px;font-weight:700;line-height:1}.mark b{color:var(--accent)}.sub{letter-spacing:.26em;color:var(--dim);margin-top:6px;font-size:12px}.code-label{color:var(--dim);margin-top:22px;font-size:13px;display:block}.code{border:1.5px solid var(--edge);width:100%;color:var(--text);font:700 30px var(--font);letter-spacing:.3em;text-align:center;text-transform:uppercase;-webkit-user-select:text;user-select:text;touch-action:auto;background:#ffffff0d;border-radius:10px;margin-top:8px;padding:10px}.code:focus{border-color:var(--accent);outline:none}.connect{background:var(--accent);color:#031614;touch-action:auto;border:0;border-radius:12px;width:100%;margin-top:14px;padding:15px;font-size:18px}.connect:disabled{opacity:.5}.msg{min-height:1.4em;color:var(--bad);margin:12px 0 0;font-size:14px}.hint{color:var(--dim);margin:10px 0 0;font-size:13px;line-height:1.45}#drive{flex-direction:column;gap:10px;display:flex}.top{justify-content:space-between;gap:6px;display:flex}.b{border:1.5px solid var(--edge);background:#ffffff0a;border-radius:10px;flex:1;padding:10px 4px;font-size:11px}.b.down{border-color:var(--accent);background:#00c2b873}.zones{flex:1;gap:10px;min-height:0;display:grid}body.tilt .zones{grid-template-columns:1fr .55fr 1fr;grid-template-areas:"brake mid gas"}body.slide .zones{grid-template-columns:1.15fr minmax(88px,.45fr) 1fr 1fr;grid-template-areas:"steer mid brake gas"}body.slide .zone{letter-spacing:.1em;font-size:13px}body.tilt .steer,body.slide #centre{display:none}.zone{border:1.5px solid var(--edge);letter-spacing:.16em;color:var(--dim);background:#ffffff0a;border-radius:18px;place-items:center;font-size:15px;font-weight:700;display:grid}.brake{grid-area:brake}.gas{grid-area:gas}.steer{grid-area:steer;align-content:center;gap:12px;padding:0 14px}.brake.down{border-color:var(--bad);color:var(--text);background:#ff5a5a66}.gas.down{border-color:var(--ok);color:var(--text);background:#2ee86b66}.track{border:1.5px solid var(--edge);background:#080a0e80;border-radius:27px;width:100%;height:54px;position:relative}.knob{background:#00c2b8d9;border-radius:50%;width:44px;height:44px;position:absolute;top:3.5px;left:calc(50% - 22px)}.mid{flex-direction:column;grid-area:mid;justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.wheel{aspect-ratio:1;width:min(100%,22vh);color:var(--accent);transition:transform 40ms linear}.wheel svg{width:100%;height:100%;display:block}body.slide .wheel{color:var(--dim)}.mode{flex:none;width:100%;max-width:120px;padding:8px 4px;font-size:11px}.mode:after{content:" ⇄";color:var(--dim)}.state{color:var(--dim);text-align:center;flex-direction:column;align-items:center;gap:2px;font-size:12px;display:flex}.state-row{justify-content:center;align-items:center;gap:6px;max-width:100%;line-height:1.25;display:flex}.state small{font-variant-numeric:tabular-nums;min-height:1.2em;font-size:11px}.state i{background:#ffd23f;border-radius:50%;flex:0 0 8px;height:8px}.state.ok i{background:var(--ok)}.state.bad i{background:var(--bad)}.gas{grid-template-columns:minmax(52px,34%) minmax(0,1fr);place-items:stretch stretch;display:grid;overflow:hidden}.gas>span{place-items:center;display:grid}.boost-tab{color:#eef2f5b3;background:#4da3ff14;border-right:1.5px solid #4da3ff99;font-size:13px}.throttle{position:relative}.swipe{letter-spacing:.14em;color:var(--dim);font-size:10px;position:absolute;top:10px;left:10px}body.boosting .boost-tab{color:#fff;background:#4da3ff99}.boost-badge{letter-spacing:.14em;color:#fff;text-shadow:0 0 10px #4da3ff;opacity:0;white-space:nowrap;font-size:13px;font-weight:800;transition:opacity .12s}body.boosting .boost-badge{opacity:1}#drive:after{content:"";pointer-events:none;opacity:0;transition:opacity .12s;position:fixed;inset:0;box-shadow:inset 0 0 60px #4da3ff8c,inset 0 0 0 3px #4da3ffb3}body.boosting #drive:after{opacity:1}#lock{touch-action:auto;place-items:center;display:grid;overflow-y:auto}.lock-icon{width:64px;height:64px;color:var(--accent);margin:0 auto 14px}.lock-icon svg{width:100%;height:100%;display:block}.lock-title{font-size:24px;font-weight:700;line-height:1.2}.lock-how{color:var(--text);margin:12px 0 0;font-size:15px;line-height:1.5}.lock-android{color:var(--dim);margin:8px 0 0;font-size:13px}.lock-next{color:var(--dim);margin:12px 0 0;font-size:13px}#drive.rotated{padding:max(16px, env(safe-area-inset-top), env(safe-area-inset-bottom));transform-origin:50%}
