:root{--ink:#141852;--cream:#fff6df;--sun:#ffd21f;--hot:#ff5a1f;--air:#52e5ff;--lime:#a6ee1d;--panel:#12185cdb;--sat:env(safe-area-inset-top,0px);--sar:env(safe-area-inset-right,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--fat:ui-rounded, "Arial Rounded MT Bold", "Baloo 2", "Trebuchet MS", system-ui, sans-serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;color:var(--cream);font-family:var(--sans);overscroll-behavior:none;-webkit-user-select:none;user-select:none;touch-action:none;background:#2432a8;margin:0;overflow:hidden}#game{width:100%;height:100%;display:block;position:fixed;inset:0}[hidden]{display:none!important}.screen{padding:calc(16px + var(--sat)) calc(16px + var(--sar)) calc(16px + var(--sab)) calc(16px + var(--sal));z-index:20;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#loader{background:radial-gradient(circle at 50% 38%,#3f6df0,#18207f 78%)}.loader-card{text-align:center;width:min(420px,86vw)}.logo{font:900 clamp(44px, 9vw, 84px)/.95 var(--fat);color:var(--sun);letter-spacing:-.01em;-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;text-shadow:0 5px 0 var(--hot), 0 10px 0 #1418528c;transform:rotate(-2deg)}.sub{opacity:.85;margin-top:16px;font-size:15px}.loader-bar{background:#fff3;border-radius:9px;height:12px;margin-top:30px;overflow:hidden}.loader-bar i{background:linear-gradient(90deg, var(--air), #c7f9ff);width:0;height:100%;transition:width .15s;display:block}#menu{pointer-events:none;background:linear-gradient(90deg,#0000 36%,#12185c9e 60%,#12185ce6);justify-content:flex-end;align-items:stretch}.menu-col{pointer-events:auto;touch-action:pan-y;flex-direction:column;justify-content:center;gap:10px;width:min(460px,100%);display:flex;overflow-y:auto}.menu-brand{margin-bottom:8px}.menu-brand .logo{font-size:clamp(42px,6vw,76px)}.menu-brand .tag{color:var(--cream);font:700 15px var(--fat);margin-top:12px}.cta{appearance:none;font:800 19px var(--fat);color:#fff;cursor:pointer;text-align:left;background:linear-gradient(#ff7a2e,#e8400e);border:0;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:15px 22px;display:flex;box-shadow:0 5px #a42b05,0 12px 24px #00000047}.cta small{opacity:.9;font-size:13px;font-weight:600}.cta:active{transform:translateY(3px);box-shadow:0 2px #a42b05}.cta.alt{background:linear-gradient(#2fc4e8,#0f8fc7);box-shadow:0 5px #0a5f8a,0 12px 24px #00000040}.ghost{appearance:none;color:var(--cream);font:700 15px var(--fat);cursor:pointer;background:#ffffff21;border:1.5px solid #ffffff4d;border-radius:12px;padding:11px 15px}.track-card{appearance:none;text-align:left;width:100%;color:var(--cream);cursor:pointer;background:var(--panel);font-family:var(--sans);border:1.5px solid #fff3;border-radius:14px;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;padding:11px 14px;display:grid}.track-card:hover{border-color:var(--sun)}.track-card b{font:800 19px var(--fat)}.track-card small{opacity:.8;grid-column:1;font-size:12.5px}.track-card .rec{text-align:right;font-variant-numeric:tabular-nums;grid-area:1/2/span 2;font-size:13px}.medal{vertical-align:-2px;border-radius:50%;width:15px;height:15px;margin-right:4px;display:inline-block;box-shadow:inset 0 -2px 2px #00000059,inset 0 2px 2px #ffffff8c}.medal.gold{background:#f0c22f}.medal.silver{background:#d2d8de}.medal.bronze{background:#c8803d}.medal.none{box-shadow:none;background:#ffffff2e}.menu-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;font-size:14px;display:flex}.toggle{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.dev{opacity:.85;border-top:1px dashed #ffffff4d;flex-wrap:wrap;align-items:center;gap:8px;padding-top:8px;font-size:12px;display:flex}.controls-note{opacity:.85;font-size:13px;line-height:1.4}.controls-note kbd{font:700 12px var(--sans);background:#ffffff2e;border-radius:5px;padding:1px 6px}#hud{pointer-events:none;z-index:10;font-variant-numeric:tabular-nums;position:fixed;inset:0}.hud-top{top:calc(10px + var(--sat));left:calc(12px + var(--sal));right:calc(12px + var(--sar));align-items:center;gap:10px;display:flex;position:absolute}.pill{background:var(--panel);white-space:nowrap;border-radius:14px;align-items:baseline;gap:2px;padding:5px 12px;display:flex}.rank b{font:900 30px/1 var(--fat);color:var(--sun)}.rank span{font:800 15px var(--fat);color:var(--sun)}.rank small{opacity:.7;margin-left:3px;font-size:13px}.time{flex-direction:column;align-items:flex-end;gap:0;min-width:88px;padding:4px 12px}.time b{font-size:20px;font-weight:800;line-height:1.1}.time small{opacity:.75;min-height:12px;font-size:11px;line-height:1.1}.progress{background:#12185cb3;border-radius:8px;flex:1;min-width:40px;height:12px;position:relative}#progress-fill{background:linear-gradient(90deg, #ff9d2e, var(--sun));border-radius:8px;width:0;position:absolute;inset:0 auto 0 0}.progress .dot{border:2px solid #fff;border-radius:50%;width:14px;height:14px;margin:-7px 0 0 -7px;position:absolute;top:50%}.progress .dot.you{z-index:2;width:19px;height:19px;margin:-9.5px 0 0 -9.5px;box-shadow:0 1px 5px #0009}.icon-btn{pointer-events:auto;appearance:none;background:var(--panel);width:42px;height:42px;color:var(--cream);cursor:pointer;border:0;border-radius:12px;flex:none;font-size:14px}.gauge{left:calc(14px + var(--sal));bottom:calc(16px + var(--sab));background:var(--panel);border-radius:18px;align-items:center;gap:12px;width:min(330px,46vw);padding:8px 14px 10px 10px;display:flex;position:absolute}.gauge-sizes{flex:none;align-items:flex-end;gap:1px;display:flex}.size{fill:#ffffff38;width:24px;height:36px;transition:fill .12s,transform .16s cubic-bezier(.3,1.8,.5,1)}.size.on{fill:var(--sun);transform:scale(1.18)}.gauge.venting .size.on{fill:var(--air)}.gauge-main{flex:1;min-width:0}.gauge-label{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.gauge-label b{font:900 18px/1.1 var(--fat)}.gauge-label small{opacity:.88;white-space:nowrap;font-size:11.5px}.gauge-bar{background:linear-gradient(90deg,#ffffff24 0 32%,#ffffff38 32% 67%,#ffffff52 67%);border-radius:8px;height:14px;margin-top:4px;position:relative;overflow:hidden}#gauge-fill{background:linear-gradient(90deg, #17c9ef, var(--air));border-radius:8px 0 0 8px;width:0;position:absolute;inset:0 auto 0 0}.gauge.venting #gauge-fill{background:linear-gradient(90deg, #fff, var(--air))}.band{background:#141852d9;width:2px;position:absolute;top:0;bottom:0}.band.b1{left:32%}.band.b2{left:67%}.gauge.bump{animation:.28s gauge-bump}@keyframes gauge-bump{40%{transform:scale(1.07)}}.gate-call{top:calc(66px + var(--sat));font:800 17px/1.15 var(--fat);white-space:nowrap;border-radius:13px;align-items:center;gap:8px;padding:7px 16px;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #00000047}.gate-call small{font:600 13px var(--sans);opacity:.95}.gate-call.ok{color:#fff;background:#0f9c55}.gate-call.no{color:#fff;background:#d91d16;animation:.32s infinite alternate call-pulse}.gate-call.info{background:var(--panel);color:var(--cream)}@keyframes call-pulse{to{transform:translate(-50%)scale(1.05)}}.hint{top:calc(112px + var(--sat));max-width:min(90vw,640px);color:var(--ink);font:700 15px/1.25 var(--sans);text-align:center;background:#fff6dff5;border-radius:13px;padding:8px 16px;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 5px 18px #00000040}.count{font:900 clamp(76px, 18vw, 160px) var(--fat);color:var(--sun);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:0 6px 0 var(--hot);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.gag{text-align:center;white-space:nowrap;animation:1.4s both gag-pop;position:absolute;top:30%;left:50%;transform:translate(-50%)rotate(-4deg)}.gag b{font:900 clamp(40px, 7vw, 76px)/1 var(--fat);color:var(--sun);-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;text-shadow:0 4px 0 var(--hot);display:block}.gag small{background:var(--panel);font:700 14px var(--sans);color:var(--cream);white-space:normal;border-radius:10px;max-width:88vw;margin-top:8px;padding:4px 12px;display:inline-block}@keyframes gag-pop{0%{opacity:0;transform:translate(-50%)rotate(-4deg)scale(.4)}12%{opacity:1;transform:translate(-50%)rotate(-4deg)scale(1.1)}22%{transform:translate(-50%)rotate(-4deg)scale(1)}85%{opacity:1}to{opacity:0;transform:translate(-50%)rotate(-4deg)scale(1)}}.toast{bottom:calc(92px + var(--sab));left:calc(14px + var(--sal));background:var(--panel);color:var(--air);font:800 15px var(--fat);border-radius:10px;padding:3px 12px;position:absolute}.toast.rival{color:var(--sun)}.scripted-flag{bottom:calc(6px + var(--sab));font:700 10px var(--sans);letter-spacing:.1em;opacity:.7;background:#00000073;border-radius:6px;padding:2px 8px;position:absolute;left:50%;transform:translate(-50%)}.touch{position:absolute;inset:0}.steer-zone{left:var(--sal);pointer-events:auto;touch-action:none;width:68%;height:46%;padding-bottom:calc(18px + var(--sab));justify-content:center;align-items:flex-end;display:flex;position:absolute;bottom:0}.steer-rail{color:#fffc;background:#12185c6b;border:2px solid #fff6;border-radius:28px;justify-content:space-between;align-items:center;width:88%;height:56px;padding:0 16px;font-size:15px;display:flex;position:relative}.steer-zone.active .steer-rail{border-color:var(--sun)}#steer-knob{background:radial-gradient(circle at 40% 35%, #fff8df, var(--sun));border-radius:50%;width:48px;height:48px;margin:-24px 0 0 -24px;position:absolute;top:50%;left:50%;box-shadow:0 2px 8px #00000073}.vent-btn{right:calc(14px + var(--sar));bottom:calc(16px + var(--sab));aspect-ratio:1;width:27%;min-width:96px;max-width:156px;color:var(--ink);font:900 18px var(--fat);pointer-events:auto;touch-action:none;background:radial-gradient(circle at 42% 35%,#a9f6ff,#14a8d6);border:4px solid #fff;border-radius:50%;position:absolute;box-shadow:0 6px 16px #0006}.vent-btn.active{background:radial-gradient(circle at 42% 35%,#fff,#52e5ff);transform:scale(.93)}.vent-btn.empty{opacity:.55}body.touch-on .gauge{bottom:auto;top:calc(62px + var(--sat));left:calc(12px + var(--sal));gap:8px;width:min(250px,58vw);padding:5px 10px 7px 7px}body.touch-on .size{width:16px;height:26px}body.touch-on .gauge-label b{font-size:14px}body.touch-on .gauge-label small{font-size:10.5px}body.touch-on .gauge-bar{height:11px}body.touch-on .gate-call{top:calc(118px + var(--sat));font-size:15px}body.touch-on .hint{top:calc(160px + var(--sat))}body.touch-on .toast{top:calc(66px + var(--sat));bottom:auto;left:auto;right:calc(12px + var(--sar))}@media (orientation:landscape) and (max-height:520px){.steer-zone{width:62%;height:62%;padding-bottom:calc(10px + var(--sab))}.steer-rail{width:92%;height:48px}#steer-knob{width:42px;height:42px;margin:-21px 0 0 -21px}.vent-btn{width:auto;min-width:0;max-width:none;height:34%;bottom:calc(10px + var(--sab));font-size:15px}body.touch-on .gauge{top:calc(56px + var(--sat));width:230px}body.touch-on .gate-call{top:calc(56px + var(--sat));padding:5px 11px;font-size:13px;left:calc(50% + 70px)}body.touch-on .gate-call small{display:none}body.touch-on .hint{top:calc(92px + var(--sat));max-width:46vw;padding:5px 11px;font-size:13px;left:calc(50% + 70px)}.rank b{font-size:24px}}@media (max-width:520px){.gauge-label small{display:none}.gauge{width:58vw}}@media (orientation:portrait){.steer-zone{height:30%}.vent-btn{width:26%;bottom:calc(18px + var(--sab))}.progress{min-width:20px}.gag{top:26%}.gate-call{white-space:normal;width:max-content;max-width:92vw}#menu{background:linear-gradient(#0000 18%,#12185cbd 42%,#12185ced);justify-content:center;align-items:flex-end}.menu-col{justify-content:flex-end;width:100%;max-width:520px}#results{align-items:flex-end}}#pause{background:#0e124673}#results{background:linear-gradient(90deg,#0000 32%,#0e12468c 60%)}@media (min-aspect-ratio:11/10){#results{padding-right:max(4vw, calc(16px + var(--sar)));justify-content:flex-end}}@media (max-aspect-ratio:11/10){#results{background:linear-gradient(#0000 12%,#0e12469e 46%)}}.result-card{touch-action:pan-y;background:linear-gradient(#1e288cf7,#12185cfa);border:2px solid #ffd21f8c;border-radius:22px;width:min(540px,100%);max-height:100%;padding:16px 20px;animation:.28s ease-out rise;overflow-y:auto;box-shadow:0 18px 50px #00000073}@keyframes rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.result-head{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.result-head h2{font:900 28px/1.05 var(--fat);margin:0}.result-pos{font:900 56px/1 var(--fat);color:var(--sun)}.result-pos small{font-size:22px}.result-time{margin:4px 0 0;font-size:16px}.badge{background:#0f9c55;border-radius:8px;margin-left:6px;padding:1px 8px;font-size:12px;font-weight:800;display:inline-block}.standings{border-top:1px solid #ffffff2e;margin:8px 0}.standings div{font-variant-numeric:tabular-nums;border-bottom:1px solid #ffffff1a;justify-content:space-between;padding:3px 2px;font-size:14px;display:flex}.standings .me{color:var(--sun);font-weight:800}.route-title{font:800 13px var(--fat);letter-spacing:.04em;opacity:.85;margin:8px 0 3px}.route-line{grid-template-columns:20px 1fr;gap:0 6px;padding:3px 0;font-size:13.5px;line-height:1.3;display:grid}.route-line i{text-align:center;font-style:normal;font-weight:900}.route-line.taken i{color:#5dff9b}.route-line.bonked i{color:#ff8a70}.route-line.ordinary i{color:#fff9}.route-line small{opacity:.8;font-size:12.5px;display:block}.air-line{opacity:.92;margin:6px 0 0;font-size:13px}.unlock{background:#ffd21f29;border:1px solid #ffd21f8c;border-radius:11px;margin:8px 0;padding:6px 12px;font-size:14px;font-weight:700}.result-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.result-actions .cta{flex:170px;justify-content:center;padding:12px 16px;font-size:17px}.result-actions .ghost{flex:0 auto}.auto-bar{background:#ffffff2e;border-radius:3px;height:5px;margin-top:8px;overflow:hidden}.auto-bar i{background:var(--sun);transform-origin:0;width:100%;height:100%;display:block}.pause-card{text-align:center;background:var(--panel);border-radius:22px;flex-direction:column;gap:10px;width:min(360px,100%);padding:22px;display:flex}.pause-card h2{font:900 34px var(--fat);margin:0 0 4px}.pause-card .cta{justify-content:center}@media (max-height:520px){.result-card{grid-template-columns:1fr 1fr;gap:0 18px;width:min(780px,100%);padding:10px 14px;display:grid}.result-card .result-head{grid-column:1}.result-actions{margin-top:6px}.result-pos{font-size:38px}.result-head h2{font-size:21px}.menu-col{gap:6px;width:min(480px,58%)}.menu-brand .logo{font-size:34px}.menu-brand .tag{display:none}.track-card{padding:6px 10px}.track-card small{display:none}.cta{padding:10px 14px;font-size:16px}.controls-note{display:none}}.gauge.rival{animation:.42s ease-out rival-flash}@keyframes rival-flash{0%{box-shadow:0 0 0 0 var(--rival,#fff), inset 0 0 0 3px var(--rival,#fff)}to{box-shadow:0 0 0 12px #0000,inset 0 0 #0000}}#input-viz{right:calc(12px + var(--sar));top:calc(56px + var(--sat));color:#fff;font:700 11px var(--sans,system-ui);z-index:30;background:#0a0a0eb8;border-radius:10px;width:150px;padding:6px 8px;position:absolute}.menu-col{justify-content:flex-start;max-height:100%;padding:8px 4px 14px}.menu-section{border-top:1px solid #ffffff40;padding:4px 0}summary{cursor:pointer;min-height:48px;padding:12px 4px;font-weight:800}.menu-section .track-card{margin-bottom:7px}.menu-section label{justify-content:space-between;align-items:center;gap:12px;min-height:48px;display:flex}.menu-section p{font-size:14px;line-height:1.45}.menu-section input[type=range]{width:55%;min-height:48px}button,.cta,.ghost,.track-card,.icon-btn{min-height:48px}.icon-btn{min-width:48px}button:disabled{opacity:.55;cursor:default}:focus-visible{outline:3px solid var(--sun);outline-offset:3px}.ready-prompt{background:var(--panel);text-align:center;border:2px solid var(--sun);border-radius:18px;width:min(420px,88vw);padding:18px;position:absolute;top:32%;left:50%;transform:translate(-50%)}.ready-prompt b{font:900 30px var(--fat);color:var(--sun);margin-bottom:6px;display:block}.ready-prompt span{font-size:15px;line-height:1.4;display:block}.reward-line{color:var(--sun);font-size:14px;font-weight:700}.race-details{border-top:1px solid #ffffff40}body.left-handed .steer-zone{left:auto;right:var(--sar)}body.left-handed .vent-btn{right:auto;left:calc(14px + var(--sal))}@media (orientation:portrait){.menu-col{justify-content:flex-start}}@media (max-width:360px){.hud-top{gap:5px;left:8px;right:8px}.pill{padding-left:8px;padding-right:8px}.result-card{padding:14px}}.iv-title{opacity:.7;letter-spacing:.12em;margin-bottom:3px;font-size:9.5px}.iv-keys{gap:4px;margin-bottom:4px;display:flex}.iv-keys b{text-align:center;background:#ffffff24;border-radius:5px;flex:1;padding:3px 0;font-weight:700}.iv-keys b.on{color:#1a0f0b;background:#ffd34a}.iv-data{opacity:.9;white-space:nowrap;font-variant-numeric:tabular-nums;margin-top:7px;font-size:10.5px}.iv-bar{background:#ffffff24;border-radius:3px;height:6px;position:relative}.iv-bar i{background:#ffd34a;border-radius:50%;width:12px;height:12px;margin-left:-6px;position:absolute;top:-3px;left:50%}.collection-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;display:grid}.collection-grid button{border:2px solid var(--air);border-radius:12px;min-height:64px;padding:10px}.collection-grid small{display:block}.menu-section select{max-width:100%;font-size:16px}#room-panel{z-index:30;top:calc(54px + env(safe-area-inset-top));background:#141852d9;border-radius:12px;max-width:min(600px,100vw - 20px);padding:8px;font-size:12px;position:fixed;left:10px}#room-panel p{margin:4px 0}#room-panel button{min-height:44px;margin:2px;padding:5px 10px}#live-code{text-transform:uppercase;max-width:180px;font-size:18px}#steer-zone,#steer-zone *,#vent-btn,#vent-btn *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none}#steer-zone *,#vent-btn *{pointer-events:none}body.ad-pending #results{pointer-events:none;opacity:.65}body.high-contrast button,body.high-contrast .menu-col,body.high-contrast .result-card{color:#fff;background:#111;border:2px solid #fff}body.high-contrast .cta{color:#111;background:#ffe45c}body.high-contrast small{color:inherit}body.high-contrast #touch button{color:#fff;background:#111;border:3px solid #fff}body.high-contrast .gauge,body.high-contrast .pill,body.high-contrast #hint{color:#fff;background:#111;border:2px solid #fff}
