:root{--yellow:#ffc21a;--ink:#10131a;--paper:#fffbee;--green:#35f09a;--red:#ff4d42;--panel:#10131ab8;--font:"Arial Black", "Helvetica Neue", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}*{box-sizing:border-box}html,body{width:100%;height:100%;color:var(--paper);font-family:var(--font);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:none;overscroll-behavior:none;background:#bfe3fb;margin:0;font-weight:900;overflow:hidden}[hidden]{display:none!important}#view{width:100%;height:100%;display:block;position:fixed;inset:0}button{font:inherit;color:inherit;cursor:pointer;border:0}.label{letter-spacing:.14em;text-transform:uppercase;opacity:.8;font-size:11px}.hud{pointer-events:none;font-style:italic;position:fixed;inset:0}.hud-side{top:calc(10px + var(--safe-top));flex-direction:column;gap:8px;max-width:44vw;display:flex;position:absolute}.hud-left{left:calc(12px + var(--safe-left));align-items:flex-start}.hud-right{right:calc(12px + var(--safe-right));align-items:flex-end}.panel{background:var(--panel);border-bottom:3px solid var(--yellow);border-radius:12px;min-width:0;padding:8px 12px}.fare-panel{width:min(240px,44vw)}.fare-panel.is-carrying{border-bottom-color:var(--green)}.fare-name{white-space:nowrap;text-overflow:ellipsis;font-size:clamp(14px,2.4vw,20px);line-height:1.15;overflow:hidden}.meter{visibility:hidden;background:#ffffff2e;border-radius:4px;height:8px;margin-top:6px;overflow:hidden}.is-carrying .meter{visibility:visible}.meter-fill{background:var(--green);transform-origin:0;width:100%;height:100%}.clock{text-shadow:0 3px 0 var(--ink), 0 0 12px #00000080;align-items:baseline;gap:8px;display:flex}.clock-value{color:var(--yellow);font-variant-numeric:tabular-nums;transform-origin:0;font-size:clamp(50px,9vw,84px);line-height:1}.clock.is-low .clock-value{color:var(--red);animation:.5s ease-in-out infinite throb}.clock.is-boosted .clock-value{color:var(--green);animation:.4s ease-out pop}.cash-panel{text-align:right}.cash-value{color:var(--green);font-variant-numeric:tabular-nums;font-size:clamp(20px,4vw,32px);line-height:1}.cash-panel.is-paid{animation:.35s ease-out pop}.minimap{border:3px solid var(--ink);background:var(--panel);border-radius:12px;width:150px;height:150px}.combo{left:calc(14px + var(--safe-left));color:var(--yellow);text-shadow:0 3px 0 var(--ink);flex-direction:column;display:flex;position:absolute;top:46%;transform:rotate(-6deg)}.combo #combo-value{font-size:clamp(34px,7vw,58px);line-height:.9}.combo.is-bumped{animation:.3s ease-out pop}.banner{text-align:center;text-transform:uppercase;text-shadow:0 4px 0 var(--ink), 0 0 18px #00000073;opacity:0;font-size:clamp(26px,6vw,56px);line-height:1;position:absolute;top:37%;left:0;right:0}.banner small{color:var(--paper);margin-top:6px;font-size:.5em;display:block}.banner.is-shown{animation:1.9s ease-out forwards banner}.banner.tone-good{color:var(--green)}.banner.tone-bad{color:var(--red)}.banner.tone-info{color:var(--yellow)}.popups{position:absolute;top:50%;left:50%}.popup{white-space:nowrap;color:var(--yellow);text-shadow:0 3px 0 var(--ink);font-size:clamp(18px,3.4vw,30px);animation:1.1s ease-out forwards float;position:absolute;transform:translate(-50%)}.speed{left:50%;bottom:calc(12px + var(--safe-bottom));text-shadow:0 3px 0 var(--ink);align-items:baseline;gap:6px;display:flex;position:absolute;transform:translate(-50%)}.speed #speed{font-variant-numeric:tabular-nums;text-align:right;min-width:2.2ch;font-size:clamp(28px,5vw,44px)}.hud-buttons{pointer-events:auto;gap:8px;display:flex}.icon-button{background:var(--panel);border-radius:12px;place-items:center;width:42px;height:42px;display:grid}.icon-button svg{width:24px;height:24px;fill:var(--paper);stroke:var(--paper);stroke-width:0}.icon-button .wave,.icon-button .cross{fill:none;stroke-width:2px;stroke-linecap:round}.icon-button .cross,.icon-button.is-muted .wave{display:none}.icon-button.is-muted .cross{display:inline}.touch{left:calc(14px + var(--safe-left));right:calc(14px + var(--safe-right));bottom:calc(18px + var(--safe-bottom));pointer-events:none;justify-content:space-between;align-items:flex-end;display:none;position:absolute}.touch-group{pointer-events:auto;align-items:flex-end;gap:12px;display:flex}.touch-pedals{grid-template-columns:auto auto;place-items:end;display:grid}.pad-drift{grid-column:2;justify-self:center}.pad{letter-spacing:.06em;text-transform:uppercase;touch-action:none;background:#10131a8c;border:3px solid #fffbeea6;border-radius:22px;place-items:center;width:78px;height:78px;font-size:13px;font-style:italic;display:grid}.pad svg{width:40px;height:40px;fill:var(--paper)}.pad-small{border-radius:18px;width:62px;height:62px;font-size:11px}.pad-gas{border-color:var(--ink);width:92px;height:92px;color:var(--ink);background:#ffc21ad9;border-radius:50%;font-size:17px}.pad.is-held{background:#fffbee73;transform:scale(.93)}.pad-gas.is-held{background:var(--paper)}.is-touch .touch{display:flex}.is-touch .speed{bottom:calc(122px + var(--safe-bottom))}@media (orientation:landscape){.is-touch .speed{bottom:calc(12px + var(--safe-bottom))}}@media (max-height:500px) and (orientation:landscape){.hud-side{top:calc(6px + var(--safe-top));flex-direction:row;align-items:flex-start;gap:6px}.clock .label{display:none}.clock-value{font-size:38px}.panel{border-bottom-width:2px;border-radius:10px;padding:4px 9px}.label{font-size:9px}.fare-panel{width:180px}.fare-name{font-size:13px}.meter{height:5px;margin-top:3px}.cash-value{font-size:20px}.minimap{border-width:2px;border-radius:9px;width:72px;height:72px}.hud-buttons{gap:6px}.icon-button{border-radius:9px;width:32px;height:32px}.icon-button svg{width:20px;height:20px}}@media (max-width:640px){.banner{top:44%}.minimap{border-width:2px;width:96px;height:96px}.clock .label{display:none}.panel{padding:6px 10px}.icon-button{width:38px;height:38px}}@media (max-width:380px){.pad{width:66px;height:66px}.pad-small{width:54px;height:54px}.pad-gas{width:80px;height:80px}.touch-group{gap:8px}}.screen{padding:calc(16px + var(--safe-top)) 16px calc(16px + var(--safe-bottom));touch-action:pan-y;background:radial-gradient(circle at 50% 40%,#10131a40,#10131ab3);place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}.card{border:3px solid var(--yellow);text-align:center;background:#10131ae0;border-radius:22px;width:min(460px,100%);padding:0 22px 22px;overflow:hidden;box-shadow:0 18px 50px #00000073}.card-small{width:min(320px,100%);padding-top:22px}.checker{background:repeating-conic-gradient(var(--ink) 0% 25%, var(--yellow) 0% 50%) 0 0 / 18px 18px;height:18px;margin:0 -22px 18px}.logo{text-transform:uppercase;letter-spacing:-.03em;color:var(--yellow);text-shadow:0 5px 0 #b37a00, 0 9px 0 var(--ink);flex-direction:column;margin:0;font-size:clamp(54px,16vw,92px);font-style:italic;line-height:.82;display:flex;transform:rotate(-4deg)}.logo-rush{color:var(--paper);text-shadow:0 5px 0 #9a9788, 0 9px 0 var(--ink);padding-left:.5em}.tagline{color:var(--paper);text-wrap:balance;margin:26px 0 18px;font-size:15px;font-style:italic}.heading{text-transform:uppercase;color:var(--yellow);text-shadow:0 4px 0 var(--ink);margin:0 0 6px;font-size:clamp(34px,9vw,48px);font-style:italic}.primary,.secondary{text-transform:uppercase;letter-spacing:.04em;border-radius:14px;width:100%;padding:15px 18px;font-size:20px;font-style:italic;transition:transform 80ms ease-out;display:block}.primary{background:var(--yellow);color:var(--ink);box-shadow:0 5px #b37a00}.secondary{color:var(--paper);background:0 0;border:2px solid #fffbee80;margin-top:14px;padding:11px 18px;font-size:15px}.primary:active{transform:translateY(4px);box-shadow:0 1px #b37a00}.primary:focus-visible,.secondary:focus-visible,.icon-button:focus-visible{outline:3px solid var(--paper);outline-offset:3px}.how{text-align:left;color:#fffbeee6;margin:20px 0 0;padding:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;font-weight:500;line-height:1.35;list-style:none}.how li{padding:5px 0 5px 22px;position:relative}.how li:before{content:"";background:var(--yellow);width:9px;height:9px;position:absolute;top:11px;left:2px;transform:rotate(45deg)}.how b{color:var(--yellow);font-weight:800}.keys{color:#fffbeecc;flex-wrap:wrap;justify-content:center;gap:6px 14px;margin-top:16px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:12px;font-weight:600;display:flex}.keys-touch,.is-touch .keys-desktop{display:none}.is-touch .keys-touch{display:flex}kbd{font:inherit;color:var(--paper);background:#fffbee29;border-radius:5px;padding:2px 6px}.best{color:var(--green);margin:12px 0 0;font-size:14px;font-style:italic}.new-best{color:var(--yellow);font-size:18px;animation:.7s ease-in-out infinite throb}.rank{color:var(--paper);margin:0;font-size:18px;font-style:italic}.total{color:var(--green);text-shadow:0 5px 0 var(--ink);font-variant-numeric:tabular-nums;margin:4px 0 0;font-size:clamp(50px,14vw,76px);font-style:italic;line-height:1}.stats{grid-template-columns:1fr 1fr;gap:8px;margin:16px 0 10px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;display:grid}.stats div{text-align:left;background:#fffbee14;border-radius:10px;padding:8px 10px}.stats dt{letter-spacing:.08em;text-transform:uppercase;color:#fffbeea6;font-size:11px;font-weight:600}.stats dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:18px;font-weight:800}.next{color:#fffbeebf;min-height:1.2em;margin:0 0 14px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:13px;font-weight:600}@media (max-height:560px){.how,.tagline{display:none}.logo{margin-bottom:22px;font-size:52px}.stats{grid-template-columns:1fr 1fr 1fr}.total{font-size:44px}}@keyframes throb{50%{transform:scale(1.12)}}@keyframes pop{0%{transform:scale(1.35)}to{transform:scale(1)}}@keyframes banner{0%{opacity:0;transform:scale(1.6)rotate(-3deg)}12%{opacity:1;transform:scale(1)rotate(-3deg)}75%{opacity:1;transform:scale(1)rotate(-3deg)}to{opacity:0;transform:scale(.9)translateY(-20px)rotate(-3deg)}}@keyframes float{0%{opacity:0;margin-top:0}15%{opacity:1}to{opacity:0;margin-top:-90px}}@media (prefers-reduced-motion:reduce){.clock.is-low .clock-value,.new-best{animation:none}}
