:root{color-scheme:dark}button,a,input,select{-webkit-tap-highlight-color:transparent}button,input,select{font:inherit}button{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,canvas:focus-visible{outline:3px solid #f4ffbb;outline-offset:4px}button:disabled{opacity:.55;cursor:default}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.topbar{gap:16px;z-index:8}.topbar nav{gap:10px}.icon-button{min-width:44px;min-height:44px;padding:8px;border:1px solid #acc1c31a;background:#07131c88;border-radius:7px}.icon-button:hover{background:#baff3515;border-color:#baff3566}.icon-button span{font-size:9px;letter-spacing:1.3px}
.intro{top:19%;bottom:auto;max-width:680px}.intro h1{font-size:clamp(72px,9.5vw,148px);margin:26px 0 20px}.intro .description{font-size:15px;margin:12px 0 22px}.intro .tagline{margin:21px 0 0}.title-line{margin-top:22px}.mode-picker{display:flex;gap:10px;max-width:440px}.mode-picker button{flex:1;min-height:67px;padding:12px 15px;border:1px solid #78909766;border-radius:8px;background:#06131de0;color:#c6d2d7;text-align:left}.mode-picker b{display:block;font-size:12px;letter-spacing:2px}.mode-picker span{display:block;font-size:10px;margin-top:6px;line-height:1.3}.mode-picker button[aria-pressed=true]{color:#caff42;border-color:#caff42;background:#caff4212;box-shadow:inset 3px 0 #caff42}.mode-description{min-height:18px;margin:10px 0 18px;font-size:11px;color:#b4c7cf;line-height:1.5;max-width:440px}.garage-actions{display:flex;align-items:center;gap:22px}.primary{min-height:50px;font-size:11px}.text-button{min-height:44px;padding:8px 4px;background:none;border:0;color:#c8d9df;text-decoration:underline;text-underline-offset:5px;font-size:12px;cursor:pointer}.garage-progress{display:flex;gap:25px;margin-top:18px;color:#aec2cb;letter-spacing:1px;font-size:9px;align-items:center}.garage-progress b{color:#d5ff64;margin-left:7px;font-size:13px}.start-note{margin:13px 0 0;font-size:8px}.intro .rider-label{position:fixed;left:70%;bottom:15%}
.hud{inset:116px 4% 35px;pointer-events:none}.hud .score strong{font-size:54px}.hud .score>span{display:block;margin-top:7px}.hud .score .best-chase{color:#a8c3d0;font-size:9px}.route-progress{position:absolute;top:0;left:50%;transform:translateX(-50%);width:190px;text-align:center}.route-progress>span{display:block;font-size:9px;letter-spacing:1.5px;color:#d5e3e5}.district-meter{margin-top:9px;height:3px;background:#39565c88}.district-meter i{display:block;width:0;height:100%;background:#8be4e4}.run-info{align-items:center}#assist-label{color:#d8ff72;border:1px solid #91b83066;padding:5px 8px;border-radius:4px}.touch-controls{z-index:7}.touch-controls button{min-width:64px;min-height:60px}.touch-controls button[data-active]{background:#c8ff3570;border-color:#e1ff99}.toast{z-index:6;max-width:min(85vw,650px);text-align:center;font-size:20px;text-wrap:balance}
dialog{width:min(590px,92vw);max-height:min(90dvh,900px);padding:38px;border:1px solid #698642;border-radius:14px;box-sizing:border-box;overscroll-behavior:contain}dialog h2{font-size:40px;padding-right:10px}dialog .close{min-width:44px;min-height:44px;top:7px;right:7px;line-height:1;cursor:pointer}dialog .eyebrow{font-size:9px;padding-right:20px}dialog p{font-size:14px}dialog section{min-width:0}.panel-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:12px}.secondary{min-height:44px;font-size:10px;padding:10px 15px;margin:0;border-radius:5px}.panel-actions .text-button{font-size:11px}.run-recap{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 18px;margin:20px 0}.run-recap div{border-top:1px solid #8cb1b633;padding-top:9px}.run-recap dt{color:#93abb6;font-size:9px;letter-spacing:1px}.run-recap dd{margin:6px 0 0;font:700 24px 'Barlow Condensed',sans-serif}.earned-badges{color:#d8ff72;border-left:2px solid #baff35;padding-left:12px}.earned-badges:empty{display:none}.save-row{gap:0}.save-row input{min-height:46px;font-size:16px;border-radius:5px 0 0 5px}.save-row button{min-height:46px;border-radius:0 5px 5px 0;font-family:inherit;cursor:pointer}#save-status{min-height:24px}.field-label,.settings-grid label{display:block;color:#d0dfe3;font-size:11px;letter-spacing:1.2px}select{width:100%;min-height:46px;padding:10px;background:#10242d;color:#eef9fa;border:1px solid #48616e;border-radius:5px;font-size:16px;margin-top:8px}.settings-grid{display:grid;gap:10px;margin:22px 0}.settings-grid label{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.settings-grid output{color:#caff42;font-size:12px}.settings-grid input[type=range]{width:100%;min-height:44px;margin:0;accent-color:#caff42;touch-action:pan-y}.settings-grid select{margin:0}.settings-grid .fine{margin:-4px 0 0}.check-label{justify-content:flex-start!important;gap:13px;min-height:56px;border:1px solid #5e7b684d;padding:12px;border-radius:6px}.check-label input{width:22px;height:22px;accent-color:#caff42;margin:0}.check-label small{display:block;font-size:11px;line-height:1.5;letter-spacing:0;margin-top:4px;color:#9cb8c3}.settings-note{color:#a8c1cc}.controls-list div{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #68828e33;gap:10px}.controls-list dt{font-size:11px;letter-spacing:1px;color:#b2c9d3}.controls-list dd{margin:0;font-size:13px}.badge-heading{display:flex;justify-content:space-between;align-items:center;margin-top:24px}.badge-heading h3{font-size:12px;letter-spacing:2px;color:#caff42}.badge-heading span{font-size:11px;color:#b6ccd4}.badge-list{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.badge-list li{padding:12px;border:1px solid #5b758155;border-radius:6px;color:#94adb8}.badge-list b{display:block;color:#d4e3e7;font-size:12px;margin-bottom:6px}.badge-list span{display:block;font-size:11px;line-height:1.5}.badge-list [data-earned]{border-color:#baff3577;background:#baff3509}.badge-list [data-earned] b{color:#caff42}#scores li small{display:block;color:#9fb8c5;font-size:10px;margin-top:5px}
@media(max-height:800px) and (min-width:850px){.intro{top:15%}.intro h1{font-size:clamp(65px,8vw,105px);margin:18px 0 10px}.intro .tagline{margin-top:14px}.intro .description{margin:9px 0 15px}.mode-picker button{min-height:58px}.mode-description{margin:8px 0 12px}.garage-progress{margin-top:12px}}
@media(max-width:650px){.topbar{padding:max(12px,env(safe-area-inset-top)) max(4%,env(safe-area-inset-right)) 10px max(4%,env(safe-area-inset-left))}.topbar nav{gap:5px}.icon-button{padding:6px;font-size:18px}.icon-button span{display:none}.brand{font-size:9px;gap:8px}.brand-icon{font-size:24px}.intro{top:21%;left:6%;right:6%;max-width:none}.intro h1{font-size:clamp(62px,17vw,100px);margin:20px 0 12px}.intro .eyebrow{font-size:8px;letter-spacing:1px}.intro .tagline{margin-top:17px;font-size:22px}.intro .description{font-size:13px;margin:10px 0 16px}.mode-picker{gap:8px}.mode-picker button{padding:11px;min-height:64px}.mode-picker span{font-size:10px}.mode-description{font-size:11px;min-height:30px;margin:9px 0 12px}.garage-actions{gap:16px}.garage-actions .primary{min-width:190px;padding-inline:17px}.garage-progress{gap:17px;margin-top:14px}.start-note{font-size:7px}.rotate-hint{top:78px;padding:8px;font-size:7px}.hud{inset:88px 5% 23px}.hud .score strong{font-size:39px}.route-progress{width:130px;left:auto;right:0;transform:none;top:0}.route-progress span{font-size:8px}.hud .telemetry{bottom:94px}.hud .run-info{bottom:70px;font-size:8px;gap:12px;flex-wrap:wrap}.toast{top:28%;font-size:16px}dialog{padding:30px 22px;max-height:90dvh}dialog h2{font-size:33px;margin:16px 0}.final-score{font-size:56px}.run-recap{gap:10px}.run-recap dt{font-size:8px}.run-recap dd{font-size:21px}}
@media(max-width:360px){.intro{top:19%}.intro h1{font-size:60px}.intro .description{margin-bottom:10px}.garage-actions{gap:12px}.garage-actions .primary{min-width:170px}.mode-picker button{min-height:58px}.mode-picker span{font-size:9px}.rotate-hint{font-size:6px}}
@media(orientation:landscape) and (max-height:650px){.topbar{padding-top:max(6px,env(safe-area-inset-top));padding-bottom:4px}.intro{top:65px;left:max(5%,env(safe-area-inset-left));right:auto;width:min(440px,62%);pointer-events:auto}.intro .eyebrow{font-size:7px;margin:3px 0}.intro h1{font-size:clamp(45px,14vh,70px);line-height:.82;margin:12px 0}.intro .tagline,.intro .title-line,.intro .description,.intro .rider-label,.intro .start-note,#footer{display:none}.mode-picker{gap:8px}.mode-picker button{padding:8px 11px;min-height:48px}.mode-picker b{font-size:10px}.mode-picker span{font-size:9px;margin-top:4px}.mode-description{font-size:10px;margin:7px 0 10px;min-height:15px}.garage-actions .primary{padding:12px 17px;min-height:44px;min-width:190px}.garage-progress{margin-top:8px;font-size:8px}.garage-progress b{font-size:11px}.text-button{font-size:11px}.hud{inset:65px max(4%,env(safe-area-inset-right)) 20px max(4%,env(safe-area-inset-left))}.hud .score strong{font-size:30px}.hud .score small,.hud .score>span{font-size:7px;margin-top:4px}.hud .telemetry{top:0;bottom:auto!important;gap:12px}.route-progress{width:130px;top:5px;left:50%;right:auto;transform:translateX(-50%)}.route-progress span{font-size:7px}.hud .run-info{left:50%;bottom:0!important;transform:translateX(-50%);flex-wrap:nowrap;gap:14px;white-space:nowrap;font-size:7px}.toast{top:27%;font-size:16px}dialog{width:min(620px,89vw);padding:25px 30px;max-height:90dvh}.playing .topbar .brand{display:none}.playing .topbar nav{width:100%;justify-content:flex-end}}
@media(prefers-reduced-motion:reduce){.toast{transition:none}}
#game-shell{min-height:280px}
@media(orientation:portrait) and (max-width:650px){body[data-mode=intro]{overflow-y:auto}body[data-mode=intro] #game-shell{height:auto;min-height:100svh}body[data-mode=intro] #intro{position:relative;inset:auto;margin:0 6%;padding-top:150px;padding-bottom:90px}body[data-mode=intro] canvas{position:fixed!important;height:100dvh!important;pointer-events:none}body[data-mode=intro] .vignette{position:fixed;inset:0}body[data-mode=intro] #footer{display:none}}
/* Keep the fourth live-game menu action and both thumb groups inside a narrow phone. */
@media(max-width:650px){.playing .topbar .brand{display:none}.playing .topbar nav{margin-left:auto;justify-content:flex-end}}
@media(max-width:360px){.touch-controls{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right))}.touch-controls>div{gap:8px}.touch-controls button{width:64px;min-width:64px}.touch-controls .touch-fire{width:68px}}
