@font-face{font-family:system-sans;src:local("Arial")}*{box-sizing:border-box} :root{--ink:#090d12;--paper:#ecefe9;--orange:#ff673d;--cyan:#6af1e0;--muted:#849198;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}html,body{margin:0;background:var(--ink);color:var(--paper);font-family:Arial,Helvetica,sans-serif}button,a,input,select{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.5}button:focus-visible,a:focus-visible,canvas:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}button:active{transform:translateY(1px)}[hidden]{display:none!important}#app{position:relative;min-height:760px;height:100svh;overflow:hidden;isolation:isolate}#world{position:absolute;inset:0;width:100%;height:100%;display:block;outline:0;touch-action:none}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(5,10,15,.91) 0%,rgba(5,10,15,.66) 31%,transparent 67%),linear-gradient(0deg,#090d12 0%,transparent 19%,transparent 85%,#090d12c7 100%);z-index:1;transition:opacity .8s}#app[data-state=playing] .vignette,#app[data-state=paused] .vignette{background:linear-gradient(0deg,#090d12d9,transparent 26%,transparent 70%,#090d12b5)}.topbar{position:absolute;z-index:5;left:3.5%;right:3.5%;top:27px;display:flex;align-items:center;justify-content:space-between;gap:18px}.wordmark{display:flex;gap:11px;align-items:center;color:var(--paper);text-decoration:none}.wordmark svg{width:30px;height:34px;color:var(--orange)}.wordmark>span{font-size:23px;font-weight:700;letter-spacing:-1px}.wordmark small{display:block;font:8px var(--mono);letter-spacing:3.3px;margin-top:5px}.wordmark img{width:140px;max-height:40px;object-fit:contain}.poc-tag{font:9px var(--mono);letter-spacing:1.8px;color:#a7afb1;display:flex;gap:9px;align-items:center}.poc-tag i,.live-dot{height:5px;width:5px;border-radius:50%;background:var(--cyan);display:inline-block;box-shadow:0 0 10px #6af1e088}.topbar nav{display:flex;align-items:center;gap:7px}.tool{height:35px;border:1px solid #737d7e44;background:#0a11177a;padding:0 13px;font:9px var(--mono);letter-spacing:1px}.tool:hover{border-color:var(--paper)}.tool span{color:var(--orange);margin-left:5px}.tool.square{width:35px;padding:0;font-size:17px}kbd{font:9px var(--mono);padding:3px 5px;display:inline-block;border:1px solid #93a4ae4a;color:#b9c5cc;font-weight:400}.tool kbd{font-size:8px;margin-left:6px;padding:2px 4px}.micro{font:10px var(--mono);letter-spacing:2px;color:#bbc3c3;display:flex;align-items:center;gap:13px}.cross{font-size:20px;color:var(--orange)}#menu{z-index:2;position:absolute;left:7%;top:23%;width:540px;max-width:53%}h1{font-family:Arial,Helvetica,sans-serif;font-weight:900;font-style:italic;letter-spacing:-5px;line-height:.87;margin:27px 0 23px;transform:translateX(-5px)}h1>span{font-size:clamp(63px,7vw,108px);display:block}h1 strong{font-size:clamp(47px,5.65vw,86px);display:block;letter-spacing:-4px;color:var(--orange);margin-top:8px}.orange{color:var(--paper)}.manifesto{font-size:24px;font-weight:600;letter-spacing:-.6px;line-height:1.12;margin:18px 0}.description{font-size:12px;color:#a1b0b8;line-height:1.8;margin:0 0 23px;max-width:340px}.course-switch{display:flex;gap:0;max-width:340px;border-bottom:1px solid #ffffff20;margin-bottom:12px}.course-switch button{background:none;border:0;padding:13px 12px 13px 0;margin-right:18px;font:9px var(--mono);letter-spacing:.6px;color:#819095;border-bottom:2px solid transparent}.course-switch button.selected{color:var(--paper);border-color:var(--orange)}.primary{min-height:54px;border:0;background:var(--orange);color:#11151a;font-size:12px;letter-spacing:1.3px;font-weight:800;padding:0 22px;display:flex;align-items:center;justify-content:space-between;gap:32px;width:100%;max-width:340px}.primary>span:last-child{font-size:30px;font-weight:400;line-height:1}.primary:hover{background:#ff895c}.primary #start-label{font-size:12px;font-weight:800}.secondary{background:none;border:1px solid #ffffff28;padding:13px 16px;font:10px var(--mono);letter-spacing:1px}.control-hint{font:8px var(--mono);letter-spacing:1px;color:#94a0a5;margin-top:17px;display:flex;align-items:center;gap:5px}.control-hint b{padding:0 9px;color:#4d606b}.control-hint kbd{padding:3px 5px;margin-right:4px}.mobile{display:none}.best-row{display:flex;gap:18px;align-items:center;font:8px var(--mono);color:#7f8b91;letter-spacing:.7px;margin-top:23px}.best-row strong{color:var(--paper);font-weight:400;margin-left:7px}.best-row>span+span{border-left:1px solid #ffffff29;padding-left:18px;color:#62988f}#bike-label{position:absolute;right:6%;top:76%;display:flex;align-items:center;gap:12px;font:8px var(--mono);color:#c1cbcb;letter-spacing:1.2px;z-index:2;pointer-events:none}#bike-label small{display:block;font-size:6px;color:#7a8c96;margin-top:8px;letter-spacing:1.4px}.hairline{width:60px;height:1px;background:#77949c}.world-status{position:absolute;z-index:2;bottom:90px;left:7%;font:8px var(--mono);letter-spacing:1.1px;color:#7b969f;display:flex;gap:9px;align-items:center}.world-status strong{font-weight:400;color:#b4c9ca}.status-spacer{margin:0 12px;color:#3e5860}footer{position:absolute;left:3.5%;right:3.5%;bottom:22px;display:flex;justify-content:space-between;gap:12px;font:7px var(--mono);letter-spacing:1.4px;color:#687c88;z-index:2;border-top:1px solid #7797a021;padding-top:17px}footer b{font-weight:400;color:#bbc6c6}footer span:last-child{color:#8aa49f}#hud{position:absolute;inset:0;pointer-events:none;z-index:3}.race-top{position:absolute;top:108px;left:4.5%;right:4.5%;display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.metric>span,.race-clock>span,.speed>span,.distance>span{display:block;font:8px var(--mono);color:#afc0c4;letter-spacing:1.8px}.metric>strong{font:35px var(--mono);letter-spacing:-1px;margin-top:5px;display:block}.metric>span b{color:var(--cyan);margin-left:13px;font-size:13px}.race-clock{text-align:center}.race-clock>strong{font:49px var(--mono);letter-spacing:-3px;display:block;line-height:1.2}.race-clock>span:last-child{font-size:7px;color:var(--cyan);margin-top:7px}.hull{text-align:right}.hull>div{display:flex;gap:5px;justify-content:flex-end;margin-top:15px}.hull i{width:21px;height:7px;background:var(--cyan);transform:skewX(-20deg);box-shadow:0 0 8px #6af1e040}.hull i.lost{background:#4260675e;box-shadow:none}.hull small{display:block;font:7px var(--mono);color:#96a7b1;margin-top:17px;letter-spacing:1px}.race-bottom{position:absolute;bottom:85px;left:5%;right:5%;display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.speed{min-width:120px}.speed strong{font-size:68px;font-style:italic;font-weight:900;letter-spacing:-5px;line-height:1}.speed>span{font-size:9px;letter-spacing:3px;color:#a5b6c0;margin:4px 0 0 6px}.fuel{width:350px;max-width:50%;pointer-events:auto}.fuel-label{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:9px;gap:10px;font:8px var(--mono);letter-spacing:1px;color:#a3bfc4}.fuel-label b{color:var(--cyan);font-weight:400;margin-left:6px}.fuel-label>span+span{font-size:6px;color:#869f9e;letter-spacing:.5px}.fuel-track{height:6px;background:#46616855;overflow:hidden}.fuel-track>div{height:100%;background:var(--cyan);width:52%;box-shadow:0 0 16px #6af1e0;transition:width .08s}#boost{width:100%;margin-top:9px;min-height:48px;border:1px solid #7ddace7a;background:#091d25bf;color:var(--cyan);padding:0 15px;display:flex;align-items:center;justify-content:space-between;gap:14px;font:10px var(--mono);letter-spacing:2px;touch-action:none;user-select:none}#boost kbd{color:var(--cyan)}#boost>span{font-size:24px}#boost.engaged{background:var(--cyan);color:#0b1b20;box-shadow:0 0 30px #6af1e055}#boost.engaged kbd{color:#0b1b20;border-color:#0b1b2055}.distance{text-align:right;min-width:120px}.distance strong{display:block;font:24px var(--mono);margin-top:8px}.distance small{font-size:10px;color:#9aafb7}#notice{position:absolute;left:20%;right:20%;top:29%;text-align:center;font:12px var(--mono);font-weight:600;letter-spacing:2px;color:var(--cyan);text-shadow:0 2px 15px black;transition:opacity .3s}#speed-fx{position:absolute;inset:0;pointer-events:none;opacity:0;z-index:1;border:10px solid #6af1e00f;box-shadow:inset 0 0 90px #5ae7ff40;transition:opacity .2s}#damage-fx{position:absolute;inset:0;pointer-events:none;z-index:4;box-shadow:inset 0 0 170px #ff4d3f;opacity:0;transition:opacity .25s}.overlay{position:absolute;inset:0;z-index:6;display:grid;place-items:center;background:#071017b8;backdrop-filter:blur(9px);overflow:auto;padding:95px 24px 60px}.panel{max-width:440px;width:100%;text-align:left;padding:28px 35px;background:#0b141ce0;border:1px solid #7ca7b537;box-shadow:0 20px 80px #0007}.panel .micro{font-size:8px;color:var(--cyan);margin-bottom:25px}h2{font-size:52px;line-height:.95;letter-spacing:-2px;font-weight:900;font-style:italic;margin:10px 0 25px}h2 em{font-style:inherit;color:var(--orange)}.panel p{color:#9bb0ba;font-size:12px;line-height:1.8;margin-bottom:27px}.panel .primary{max-width:none;margin:20px 0 10px}.panel .secondary{width:100%;border:0;color:#9db0b8}.panel>small{display:block;font-size:9px;color:#76939e;line-height:1.6;margin-top:20px}.final-score{margin:12px 0 20px}.final-score>span,.result-grid span{display:block;font:8px var(--mono);letter-spacing:1.4px;color:#8ea8b3}.final-score strong{font:46px var(--mono);display:block;color:var(--paper);margin-top:6px}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 8px;border-top:1px solid #87b7c126;padding-top:20px}.result-grid strong{font:17px var(--mono);display:block;margin-top:7px}#record-badge{font:9px var(--mono);letter-spacing:1px;color:var(--cyan);margin-bottom:20px}dialog{color:var(--paper);background:#0d171f;border:1px solid #9eb9c33b;padding:38px;width:min(520px,92vw);max-height:86svh;overflow:auto;box-shadow:0 20px 130px #000b}dialog::backdrop{background:#050a10bf;backdrop-filter:blur(8px)}dialog h2{font-size:48px;margin:24px 0}dialog p{font-size:12px;line-height:1.75;color:#afc0c6}.close{position:absolute;right:15px;top:12px;border:0;background:none;font-size:28px;color:#9aafb5}.close:hover{color:var(--orange)}dialog dl{margin:25px 0}dialog dl div{display:grid;grid-template-columns:84px 1fr;gap:14px;margin:17px 0}dt{font:9px var(--mono);color:var(--cyan);padding-top:3px}dd{margin:0;font-size:11px;color:#a2b7c0;line-height:1.6}.fine{font:9px/1.8 var(--mono);color:#78929c!important}dialog .primary{max-width:none}.setting{display:grid;grid-template-columns:64px 1fr 36px;gap:12px;align-items:center;font:9px var(--mono);letter-spacing:1px;margin:24px 0}.setting output{text-align:right;color:var(--cyan)}input[type=range]{width:100%;accent-color:var(--orange);cursor:pointer}input[type=checkbox]{accent-color:var(--cyan);width:18px;height:18px}.switch-row,.quality-row{font:9px var(--mono);letter-spacing:.7px;display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-top:1px solid #7aa8b52b;gap:20px}select{background:#0b141c;border:1px solid #7aa8b53b;color:var(--paper);padding:8px;font:10px var(--mono)}#audio-toggle{width:100%;color:var(--cyan);margin-bottom:8px}#app[data-state=loading] #world{opacity:.35}#app[data-state=playing] .poc-tag{display:none}
@media(min-width:781px){.race-bottom{display:grid;grid-template-columns:145px 1fr 320px;column-gap:25px}.speed{grid-column:1;grid-row:1}.fuel{grid-column:3;grid-row:1;width:100%;max-width:none}.distance{grid-column:2;grid-row:1;text-align:left;min-width:0;margin-bottom:4px}}
@media(min-width:1600px){#menu{top:25%}}@media(max-height:810px) and (min-width:800px){#app{min-height:640px}#menu{top:21%}h1{margin:18px 0}h1>span{font-size:75px}h1 strong{font-size:60px}.manifesto{font-size:20px;margin:15px 0}.description{margin-bottom:14px}.best-row{margin-top:17px}.world-status{bottom:68px}#bike-label{top:80%}}
@media(max-width:780px){#app{min-height:700px}.topbar{top:20px;left:5%;right:5%;gap:10px}.wordmark>span{font-size:19px}.wordmark small{font-size:6px;letter-spacing:2.8px}.wordmark svg{width:25px}.poc-tag{display:none}.tool{padding:0 8px;font-size:8px}.tool.square{width:30px;height:32px}.tool:first-child{height:32px}.topbar nav{gap:5px}#menu{top:17%;left:7%;max-width:86%;width:480px}.micro{font-size:8px;letter-spacing:1.4px}h1{margin:18px 0;letter-spacing:-3px}h1>span{font-size:clamp(55px,13vw,88px)}h1 strong{font-size:clamp(43px,10.1vw,69px);letter-spacing:-2.8px}.manifesto{font-size:20px;margin-top:20px}.description{font-size:11px;line-height:1.7;max-width:270px;margin-bottom:16px}#menu .primary,#menu .course-switch{max-width:290px}.course-switch button{font-size:8px;margin-right:8px}.best-row{font-size:7px;gap:10px}.best-row>span+span{padding-left:10px}.world-status{bottom:67px;font-size:6px;gap:6px;left:7%}.status-spacer{margin:0 4px}#bike-label{display:none}footer{font-size:6px;letter-spacing:.7px;bottom:19px;padding-top:13px}footer>span:nth-child(2){display:none}.vignette{background:linear-gradient(90deg,#050a0fd9,transparent),linear-gradient(0deg,#090d12,transparent 70%)}.race-top{top:92px;left:5%;right:5%}.metric>strong{font-size:24px}.metric>span{font-size:6px;letter-spacing:1px}.metric>span b{font-size:11px;margin-left:4px}.race-clock>strong{font-size:38px}.race-clock>span{font-size:6px;letter-spacing:1px}.race-clock>span:last-child{font-size:6px;letter-spacing:.5px}.hull i{width:13px;height:5px}.hull>div{margin-top:12px;gap:4px}.hull small{font-size:5px;max-width:95px;line-height:1.6}.race-bottom{bottom:67px;left:6%;right:6%;gap:17px;flex-wrap:wrap}.speed{min-width:0;order:0}.speed strong{font-size:48px;letter-spacing:-3px}.speed>span{font-size:7px;letter-spacing:2px}.fuel{order:2;max-width:none;width:100%}.fuel-label{font-size:8px}.fuel-label>span+span{font-size:6px}.distance{min-width:0;order:1}.distance strong{font-size:21px}.distance>span{font-size:7px}.fuel #boost{min-height:52px}#boost kbd{display:none}#notice{top:29%;left:7%;right:7%;font-size:10px;letter-spacing:1px}.panel{padding:25px}.panel h2{font-size:43px}.final-score strong{font-size:38px}.overlay{padding:90px 20px 55px}.topbar #pause{font-size:8px;padding:0 9px}.topbar #pause kbd{display:none}dialog{padding:30px 24px}dialog h2{font-size:41px}}
.overlay{align-items:safe center}
@media(max-height:520px) and (min-width:600px){#app{height:100svh;min-height:0}.topbar{top:12px}.wordmark>span{font-size:18px}.wordmark svg{height:25px}.wordmark small{font-size:6px}#menu{top:23%;left:6%;max-width:55%}#menu>.micro{font-size:7px}h1{margin:12px 0}h1>span{font-size:49px}h1 strong{font-size:40px}.manifesto,.description,.best-row,#bike-label,.world-status{display:none}.course-switch{margin-bottom:8px}.course-switch button{padding-top:8px;padding-bottom:8px;font-size:7px}.primary{min-height:43px}.control-hint{margin-top:8px;font-size:6px}.race-top{top:70px}.race-clock>strong{font-size:32px}.metric>strong{font-size:25px}.race-bottom{bottom:46px;grid-template-columns:100px 1fr 250px}.speed strong{font-size:42px}.fuel{width:250px;max-width:none}#boost{min-height:40px}.fuel-label>span+span{display:none}.distance strong{font-size:18px}#notice{top:45%;font-size:9px}footer{bottom:10px;padding-top:8px;font-size:6px}.panel{margin:0 auto}.overlay{padding:60px 20px 30px}.overlay .panel h2{font-size:37px}}
@media(pointer:coarse){.desktop{display:none}.mobile{display:inline}#boost kbd{display:none}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

/* Exact official corporate wordmark; custom brand asset remains configurable. */
.wordmark #custom-logo{display:block;width:215px;max-width:42vw;height:auto;object-fit:contain}.wordmark>[hidden]{display:none!important}
@media(max-width:760px){.wordmark #custom-logo{width:155px;max-width:40vw}}

/* Escape objectives stay above the action and clear of touch steering. */
.medal-goal{font:9px var(--mono);color:var(--cyan);letter-spacing:1px;margin:14px 0 0}.mission{position:absolute;top:205px;left:50%;transform:translateX(-50%);width:min(420px,70%)}.mission-title{display:flex;justify-content:space-between;gap:12px;font:9px var(--mono);letter-spacing:1px}.mission-title strong{color:var(--cyan);font-weight:400}.mission-track{height:4px;margin-top:10px;background:#43636f66;position:relative}.mission-track>i{display:block;width:0;height:100%;background:var(--cyan)}.mission-track>b{position:absolute;top:-3px;width:2px;height:10px;background:#dcebe8}.mission-track .cp-one{left:29%}.mission-track .cp-two{left:61.3%}#route-hint{font:9px/1.6 var(--mono);color:#ffc2e3;letter-spacing:.4px;text-align:center;margin-top:10px}#notice{top:38%}.result-splits{display:grid;gap:9px;font:9px/1.5 var(--mono);color:var(--cyan);padding-bottom:18px}#result-coach{border-left:2px solid var(--orange);padding-left:13px;font-size:12px;line-height:1.7;margin:0 0 18px}.panel #restart-label{font:700 11px Arial;letter-spacing:1px}.panel #restart{gap:12px}.panel .secondary{min-height:44px}.overlay .panel{max-width:480px}.final-score{margin-top:4px}.final-score strong{font-size:34px}.result-grid{gap:14px 8px}.result-grid strong{font-size:14px}
@media(max-width:780px){.mission{top:190px;width:86%}.mission-title{font-size:9px}#route-hint{font-size:8px}.medal-goal{font-size:8px}#notice{top:37%;font-size:10px}.best-row{flex-wrap:wrap;gap:10px}.best-row>span+span{border:0;padding:0}.panel .result-splits{font-size:8px}}
@media(max-height:520px) and (min-width:600px){.mission{top:137px;width:46%}.mission-title{font-size:8px}.mission-track{margin-top:6px}#route-hint{font-size:7px;margin-top:5px}#notice{top:52%;font-size:9px}.medal-goal{display:none}.overlay .panel{margin-top:0}.overlay{align-items:start}}

.medal-times{font:8px/1.7 var(--mono);letter-spacing:.5px;color:#c6d2d0;margin:10px 0}.medal-times b{color:#5a7983;padding:0 5px}@media(max-height:520px) and (min-width:600px){.medal-times{display:none}}
