@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;500;600;700;800&family=Barlow:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--ink:#10232a;--cream:#f6efdd;--amber:#ffbc58;--muted:#a6b8b8;--line:#d1e5df26;font-family:Barlow,Arial,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--cream);overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #a9f4f4;outline-offset:6px}button:disabled{opacity:.4;cursor:default}#world{position:fixed;inset:0;width:100%;height:100%;touch-action:none}.vignette{position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,#07191fe6 0%,#0c202b45 39%,transparent 65%),linear-gradient(0deg,#071b26e8,transparent 24%,transparent 77%,#0c1a22b3);transition:opacity .6s}.playing .vignette{opacity:.55}#damage{position:fixed;inset:0;background:#ff592f;opacity:0;pointer-events:none;z-index:4}.topbar{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:30px 42px;z-index:5}.brand{display:flex;gap:12px;align-items:center;color:var(--cream);text-decoration:none;font-size:20px;font-weight:800;letter-spacing:2px;line-height:1.1}.brand-icon{width:66px;height:44px;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 2px 5px #0005)}.brand-light{font-weight:400;margin-left:4px}.brand small{display:block;font-size:10px;font-weight:500;letter-spacing:3.6px;margin-top:8px;color:#c9d6d2}.route-label{font-size:11px;font-weight:600;letter-spacing:2.2px;display:flex;align-items:center;gap:13px}.route-dash{width:25px;height:2px;background:var(--amber)}.divider{color:#a2afac66}.top-actions{display:flex;gap:10px}.icon-button{border:1px solid var(--line);background:#15252a55;width:43px;height:43px;font-size:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;gap:3px}.icon-button span{font-size:8px}.icon-button:hover{border-color:var(--amber);background:#233c42}.run-hud{position:fixed;top:125px;left:44px;display:flex;gap:30px;align-items:center;opacity:0;transition:opacity .3s}.playing .run-hud,.paused .run-hud{opacity:1}.eyebrow{font-size:10px;font-weight:600;letter-spacing:2.2px;color:var(--muted)}.score-block strong{font-family:'Barlow Condensed',Arial,sans-serif;font-size:46px;font-weight:500;letter-spacing:2px}.unit{font-size:12px;color:var(--muted)}.best-block{display:flex;flex-direction:column;gap:9px;border-left:1px solid var(--line);padding-left:25px;font-size:16px}.intro-panel{position:fixed;left:8%;top:50%;transform:translateY(-46%);width:480px;max-width:80vw;z-index:3}.intro-kicker{display:flex;align-items:center;gap:10px;color:var(--amber);font-size:11px;letter-spacing:2.3px}h1{font-family:'Barlow Condensed',Impact,sans-serif;font-weight:600;font-size:clamp(60px,6.3vw,94px);line-height:.98;letter-spacing:-1px;margin:25px 0 23px}h1 em{font-style:normal;color:var(--amber)}.intro-panel p{font-size:15px;line-height:1.8;color:#c0cfcc;margin:0 0 30px}.start-button{background:var(--amber);color:#15262b;border:0;min-height:54px;padding:0 23px;min-width:266px;text-align:left;font-size:12px;letter-spacing:1.3px;font-weight:800;display:flex;align-items:center;justify-content:space-between;gap:30px;clip-path:polygon(0 0,100% 0,100% 79%,96% 100%,0 100%);transition:background .2s,transform .2s}.start-button span{font-size:22px}.start-button:hover{background:#ffd38e;transform:translateY(-2px)}.start-hint{font-size:9px;letter-spacing:2px;color:#9aaead;margin:14px 0 0 35px}.instructions{display:flex;gap:16px;align-items:center;margin-top:40px;padding-top:22px;border-top:1px solid var(--line);width:306px;color:#c0cfcc;font-size:12px;line-height:1.6}.instructions b{font-weight:400;color:#859c9d}.key-grid{text-align:center;line-height:1}.key-grid>kbd{margin-bottom:3px}kbd{font-family:inherit;display:inline-flex;width:24px;height:23px;align-items:center;justify-content:center;border:1px solid #c5d8d055;border-radius:3px;font-size:14px}.key-grid>div{display:flex;gap:3px}.altimeter{position:fixed;right:43px;top:45%;display:flex;align-items:flex-end;flex-direction:column;gap:18px}#levels{display:flex;flex-direction:column;gap:18px}#levels>span{font-family:'Barlow Condensed',Arial,sans-serif;font-size:14px;color:#c4d6d07a;display:flex;gap:12px;align-items:center}#levels i{width:14px;height:2px;background:#cfdfda55}#levels .active{color:var(--amber)}#levels .active i{width:29px;background:var(--amber);box-shadow:0 0 12px #ffbc5850}.altimeter small{font-size:10px;letter-spacing:1px;color:#b4c7c4}.world-caption{position:fixed;right:10%;bottom:21%;text-align:right;display:flex;flex-direction:column;gap:8px;color:#dee7de}.world-caption>.eyebrow{color:var(--amber);font-size:11px}.world-caption>span:nth-child(2){font-size:9px;letter-spacing:2px}.world-caption>div{font-family:'Barlow Condensed',sans-serif;font-size:38px;color:#e5ece7aa;letter-spacing:4px}.world-caption>div span{color:var(--amber);font-size:24px}.playing .world-caption,.paused .world-caption{display:none}.bottom-bar{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:24px 43px 28px;border-top:1px solid var(--line);background:#09212a26;z-index:2}.cab-id{display:flex;align-items:center;gap:13px;font-size:11px;letter-spacing:1.5px}.cab-tag{background:var(--amber);color:var(--ink);font-size:10px;font-weight:800;padding:7px 8px;letter-spacing:1px}.cab-id small{display:block;font-size:8px;color:#809a9f;margin-top:5px;letter-spacing:2px}.hull{display:flex;align-items:center;gap:14px}#hull{display:flex;gap:5px}#hull i{display:block;width:23px;height:5px;background:var(--amber);transform:skewX(-18deg)}#hull i.lost{background:#aac8cb25}.speed strong{font-family:'Barlow Condensed',sans-serif;font-size:31px;font-weight:500}.speed>span{font-size:9px;color:#b5c6c5;letter-spacing:1px}.speed-track{width:104px;height:2px;background:#b2cccc25;margin-top:5px}.speed-track i{display:block;height:100%;background:var(--amber);width:0}#toast{position:fixed;top:26%;left:50%;transform:translateX(-50%);font-size:13px;letter-spacing:2px;color:var(--amber);text-align:center;text-shadow:0 2px 8px #000;pointer-events:none}.touch-controls{display:none;position:fixed;bottom:117px;left:50%;transform:translateX(-50%);align-items:center;gap:10px;z-index:5}.touch-controls>div{display:flex;flex-direction:column;gap:8px}.touch-controls button{width:48px;height:45px;border:1px solid #d7e8df44;border-radius:8px;background:#102a35b3;font-size:25px;touch-action:manipulation}.result{display:flex;align-items:baseline;gap:10px;margin-bottom:25px}.result strong{font-family:'Barlow Condensed',sans-serif;font-size:50px;color:var(--amber)}.result span{font-size:10px;letter-spacing:2px}[hidden]{display:none!important}.fatal{position:fixed;inset:20%;padding:40px;background:#10232a;z-index:20;font-size:20px;line-height:1.6}.gameover .intro-panel,.paused .intro-panel{background:#0b202bdd;padding:30px;backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:3px}.gameover h1,.paused h1{font-size:58px}.gameover .instructions,.paused .instructions{display:none}
@media(pointer:coarse){.playing .touch-controls{display:flex}.start-hint{visibility:hidden}}
@media(max-width:700px){.topbar{padding:22px}.brand{font-size:16px}.brand small{font-size:8px}.route-label{display:none}.top-actions{gap:7px}.icon-button{width:37px;height:37px}.intro-panel{left:7%;top:44%;width:86%;max-width:86%}h1{font-size:66px}.intro-panel p{font-size:14px}.instructions{margin-top:25px;padding-top:18px}.world-caption{display:none}.bottom-bar{padding:17px 22px}.cab-id{font-size:10px;gap:8px}.cab-id small{font-size:7px}.hull{gap:8px}.hull .eyebrow{display:none}#hull i{width:17px}.speed-track{width:75px}.altimeter{right:23px;top:41%}.intro-panel~.altimeter{display:none}.run-hud{top:104px;left:24px;gap:20px}.score-block strong{font-size:36px}.best-block{padding-left:20px}.gameover .intro-panel,.paused .intro-panel{padding:24px}.gameover h1,.paused h1{font-size:52px}.gameover .intro-panel p,.paused .intro-panel p{max-width:90%}body:not(.playing):not(.paused) .altimeter{display:none}}
@media(max-height:650px){.intro-panel{top:47%}h1{font-size:57px;margin:17px 0}.instructions{margin-top:18px;padding-top:12px}.intro-panel p{margin-bottom:18px}.topbar{padding-top:18px}.bottom-bar{padding-top:12px;padding-bottom:15px}.start-hint{display:none}.gameover h1,.paused h1{font-size:45px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Live scoring and end-of-run receipt. */
.live-distance{font-size:12px;color:var(--muted);margin-top:3px;letter-spacing:.5px}
.pickup-block{display:flex;flex-direction:column;gap:5px;border-left:1px solid var(--line);padding-left:24px}
.pickup-block strong{font-family:'Barlow Condensed',sans-serif;font-size:30px;font-weight:500;color:var(--amber)}
.pickup-block small{font-size:10px;color:var(--muted);letter-spacing:.8px}
.result{display:block;margin:20px 0 26px}
.result-total{padding-bottom:14px;border-bottom:1px solid var(--line)}
.result-total>.eyebrow{font-size:12px;letter-spacing:2px}
.result-total>div{display:flex;align-items:baseline;gap:9px}
.result-total strong{font-size:54px;line-height:1.15;overflow-wrap:anywhere}
.result-total>div>span{font-size:13px;letter-spacing:1px;color:var(--muted)}
.score-breakdown{margin:15px 0 0;display:grid;gap:14px}
.score-breakdown>div{display:flex;justify-content:space-between;gap:18px;align-items:center;font-size:14px}
.score-breakdown dt{line-height:1.4}.score-breakdown dt>span{display:block;font-size:12px;color:var(--muted);letter-spacing:.3px}
.score-breakdown b{font-weight:500}.score-breakdown dd{margin:0;color:var(--cream);font-weight:600;white-space:nowrap}
.gameover .intro-panel{max-height:calc(100dvh - 160px);overflow-y:auto}
.gameover h1{font-size:48px;margin:18px 0}.gameover #overlay-copy{display:none}
@media(max-width:700px){.run-hud{gap:16px;right:23px}.pickup-block{padding-left:16px}.best-block{padding-left:16px}.pickup-block small{font-size:9px;letter-spacing:0}.best-block .eyebrow,.pickup-block .eyebrow{font-size:9px;letter-spacing:1px}.best-block{font-size:14px}.gameover .intro-panel{top:50%;transform:translateY(-50%)}.gameover h1{font-size:40px}.result{margin:16px 0 22px}.result-total strong{font-size:46px}}
@media(max-height:650px){.gameover .intro-panel{top:50%;transform:translateY(-50%)}.gameover h1{font-size:36px}.gameover .start-hint{display:none}}

/* Let the game receive swipes beneath informational overlays. */
html,body{overscroll-behavior:none;height:100%;height:100dvh}
.topbar,.run-hud,.altimeter,.bottom-bar,.world-caption{pointer-events:none}
.topbar a,.topbar button{pointer-events:auto}
button{touch-action:manipulation}
.playing{user-select:none;-webkit-user-select:none}
.mobile-instructions{display:none}
#intersection-warning{position:fixed;top:calc(185px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);max-width:90vw;padding:10px 16px;border:1px solid #ffbc5880;border-radius:4px;background:#18282fe8;color:var(--amber);font-size:12px;letter-spacing:1px;text-align:center;pointer-events:none;z-index:3}
@media(pointer:coarse){
 .desktop-instructions,.key-grid{display:none}.mobile-instructions{display:inline}
 .icon-button{min-width:44px;min-height:44px}
 .topbar{padding-top:max(16px,env(safe-area-inset-top));padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}
 .bottom-bar{padding-bottom:max(16px,env(safe-area-inset-bottom))}
 .touch-controls{bottom:calc(90px + env(safe-area-inset-bottom))}
 .run-hud{top:calc(88px + env(safe-area-inset-top))}
 .intro-panel{max-height:calc(100dvh - 190px);overflow:auto}
 #toast{top:auto;bottom:calc(207px + env(safe-area-inset-bottom));width:88%;font-size:11px}
}
@media(max-width:400px){.run-hud{gap:11px;left:18px;right:18px}.pickup-block,.best-block{padding-left:11px}.best-block{font-size:12px}.score-block strong{font-size:31px}.brand{font-size:14px}.brand small{letter-spacing:2px}.intro-panel h1{font-size:54px}.start-button{min-width:0;width:100%}.gameover h1{font-size:34px}}
@media(pointer:coarse) and (max-height:500px){
 .brand small,.cab-id,.instructions{display:none}.brand{font-size:14px}.topbar{padding-bottom:8px}
 .run-hud{top:65px;gap:15px}.score-block strong{font-size:28px}.pickup-block strong{font-size:24px}
 .bottom-bar{padding:7px max(18px,env(safe-area-inset-right)) max(7px,env(safe-area-inset-bottom))}.speed strong{font-size:23px}
 .touch-controls{left:auto;right:max(70px,env(safe-area-inset-right));bottom:60px;transform:none}.touch-controls button{width:44px;height:44px}
 .intro-panel,.gameover .intro-panel,.paused .intro-panel{left:6%;top:54%;transform:translateY(-50%);width:55%;max-height:calc(100dvh - 120px);padding:16px}
 .intro-panel h1{font-size:38px;margin:12px 0}.intro-panel p{font-size:12px;line-height:1.4;margin-bottom:12px}.intro-kicker{font-size:9px}
 #intersection-warning{top:70px;left:65%;max-width:45vw;font-size:10px}#toast{bottom:55px;width:55%;left:33%}
}

/* Creator credit stays clickable above the swipe-through footer. */
.creator-credit{display:inline-flex;align-items:center;min-height:44px;color:var(--muted);font-size:12px;white-space:nowrap;text-decoration:underline;text-underline-offset:4px;pointer-events:auto;touch-action:manipulation}
.creator-credit:hover,.creator-credit:focus-visible{color:var(--amber)}
@media(max-width:700px){.bottom-bar .cab-id{display:none}.creator-credit{font-size:11px}}

.collection-summary{margin-top:14px;color:var(--muted);font-size:12px}.collection-summary span{font-size:12px;letter-spacing:0}

@media(max-width:700px){.brand{gap:8px}.brand-icon{width:48px;height:36px}}

/* Final receipt and leaderboard stay scrollable on short/mobile screens. */
.gameover .intro-panel{top:100px;bottom:92px;transform:none;max-height:calc(100dvh - 192px);overflow-y:auto;overscroll-behavior:contain;width:650px;max-width:86vw;box-sizing:border-box}
.gameover h1{font-size:42px;margin:14px 0}.gameover .intro-panel>p{margin-bottom:12px}.gameover .result{margin-bottom:14px}
.leaderboard{border-top:1px solid var(--line);padding:16px 0;margin-bottom:16px}
.leaderboards{display:grid;grid-template-columns:1fr 1fr;gap:20px}.leaderboards h2{font-size:10px;letter-spacing:1.5px;color:var(--amber);margin:0 0 10px}.leaderboards ol{list-style:none;margin:0;padding:0}.leaderboards li{display:flex;gap:9px;align-items:center;min-height:43px;border-bottom:1px solid var(--line);font-size:13px}.leader-rank{color:var(--amber);font-size:10px}.leaderboards li>span:nth-child(2){flex:1;min-width:0;overflow-wrap:anywhere}.leaderboards small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.leaderboards b{font-size:11px;white-space:nowrap}.leader-empty{color:var(--muted);font-size:12px!important}
.pilot-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.pilot-fields label{font-size:11px;color:var(--cream)}.pilot-fields label>span{color:var(--muted)}.pilot-fields input{box-sizing:border-box;width:100%;margin-top:6px;border:1px solid var(--line);border-radius:5px;background:#071b26;color:var(--cream);padding:10px;font:inherit;font-size:16px}.pilot-fields input:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.submit-row{display:flex;gap:14px;align-items:center;justify-content:space-between;margin-top:12px}.submit-row small{font-size:10px;line-height:1.5;color:var(--muted)}#submit-score{flex-shrink:0;border:1px solid var(--amber);border-radius:4px;padding:10px 12px;background:transparent;color:var(--amber);font-size:10px;letter-spacing:1px;font-weight:700}#leaderboard-status{font-size:12px;line-height:1.5;color:var(--muted);margin-top:10px;min-height:18px}
@media(max-width:700px){.gameover .intro-panel{top:84px;bottom:78px;max-height:calc(100dvh - 162px);padding:18px}.gameover h1{font-size:36px}.leaderboards{grid-template-columns:1fr;gap:16px}.leaderboards li{min-height:39px}.gameover .start-button{min-width:0;width:100%}}

#pickup-flare{position:fixed;left:50%;top:60%;z-index:4;pointer-events:none;opacity:0;font-family:"Barlow Condensed",sans-serif;font-size:34px;font-weight:700;text-shadow:0 0 16px currentColor;padding:22px;border:2px solid currentColor;border-radius:50%;transform:translate(-50%,-50%)}#score{display:inline-block}
