:root{color-scheme:dark;--bg:#101b2a;--panel:#182637;--line:#334254;--cream:#f0efe2;--muted:#95a7b7;--lime:#d7f55b;--orange:#ff8850}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--cream);font:15px/1.5 'Courier New',monospace}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--orange);outline-offset:4px}button{border:0}button:hover{filter:brightness(1.12)}[hidden]{display:none!important}.app{max-width:1500px;margin:auto;padding:0 42px}header{height:104px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{text-decoration:none;color:var(--cream);display:flex;align-items:center;gap:12px;font-size:27px;font-weight:1000;font-style:italic;letter-spacing:-1.5px;line-height:1}.brand small{display:block;font-size:10px;letter-spacing:3px;font-style:normal;margin-top:9px;font-weight:400}.flag{font-size:49px;color:var(--lime)}.lime{color:var(--lime)}.header-right{display:flex;align-items:center;gap:12px}.edition{font-size:12px;color:var(--muted);margin-right:16px}.icon-button{border:1px solid var(--line);color:var(--cream);background:transparent;padding:10px 14px;font-size:12px;font-weight:bold}.section-head{display:flex;align-items:end;justify-content:space-between;margin:28px 0 22px}.eyebrow{font-size:11px;font-weight:bold;letter-spacing:2px;color:var(--lime)}h1{font-family:Arial,sans-serif;font-size:30px;letter-spacing:-1px;margin:5px 0 0}h2,p{margin:0}.tour{font-size:11px;color:var(--muted);padding-bottom:5px}.tour span{color:var(--lime);padding:0 8px}.tracks{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin-bottom:22px}.track{background:var(--panel);border:1px solid var(--line);color:var(--cream);text-align:left;padding:11px 12px;position:relative;min-width:0}.track.active{color:var(--bg);background:var(--lime);border-color:var(--lime);box-shadow:0 3px 0 #91aa34}.track-number{font-size:11px;opacity:.65;display:block;margin-bottom:5px}.track strong{font-size:13px;white-space:nowrap;display:block}.track small{font-size:10px;opacity:.7;display:block;margin-top:3px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 286px;gap:22px;align-items:start}.race-panel{border:1px solid var(--line);background:#0b1421;box-shadow:0 10px 28px #07111c44;overflow:hidden}.race-top{height:47px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;font-size:11px;letter-spacing:.5px}.race-top i{display:inline-block;width:7px;height:7px;background:var(--orange);margin-right:10px}.race-top strong{font-size:12px}.race-top span span{color:var(--muted)}.race-top button{background:none;color:var(--cream);font-size:23px;margin-left:12px;padding:2px 7px}.viewport{position:relative;aspect-ratio:16/9;overflow:hidden;background:#77c3c4}.viewport canvas{width:100%;height:100%;display:block;image-rendering:pixelated}#game{position:absolute;inset:0}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(90deg,#101b2a77,#101b2a05);z-index:4}.start-card{margin-right:37%;padding:16px 12px;display:flex;align-items:start;flex-direction:column;text-shadow:2px 2px #132a38}.start-card .eyebrow{font-size:10px}.start-card h2{font:bold italic 64px/.84 Arial,sans-serif;letter-spacing:-4px;margin:14px 0 17px;color:#fff4cd;filter:drop-shadow(4px 4px 0 #172536)}.start-card em{color:var(--lime);font-style:italic}.speed-lines{font:20px monospace;letter-spacing:-5px;display:inline-block;margin-left:9px;color:var(--orange)}.start-card p{font-size:12px;margin-bottom:17px;color:white}.primary{background:var(--lime);color:#14222a;border:1px solid #cce653;box-shadow:0 4px 0 #839b2c;padding:13px 20px;font-size:13px;font-weight:1000;letter-spacing:.6px;text-shadow:none}.small{font-size:10px;max-width:290px;margin-top:12px;color:white}.race-bottom{padding:12px 15px;display:flex;justify-content:space-between;font-size:9px;gap:12px;color:var(--muted)}.live{display:inline-block;background:var(--lime);height:5px;width:5px;margin-right:4px}.divider{color:#445664;margin:0 6px}aside{display:flex;flex-direction:column;gap:18px}.route-card{padding:19px;background:var(--panel);border-top:3px solid var(--orange)}.route-card .eyebrow{font-size:9px;color:var(--muted);letter-spacing:.9px;display:flex;justify-content:space-between}.route-card .eyebrow span{color:var(--orange)}.route-card h2{font:700 24px/1.2 Arial,sans-serif;margin:13px 0 8px;letter-spacing:-.5px}.route-card p{font:13px/1.6 Arial,sans-serif;color:#b5c2cc}.route-stats{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:17px 0;padding:12px 0}.route-stats span{display:block;font-size:9px;color:var(--muted)}.route-stats b{font-size:14px;display:block;margin-top:3px}.landmark-label{font-size:9px;letter-spacing:1px;color:var(--orange)}#landmarks{list-style:none;margin:7px 0 0;padding:0;font-size:11px}#landmarks li{margin:5px 0}#landmarks li:before{content:'◆';color:var(--lime);font-size:8px;margin-right:9px}.leaderboard{padding:0 1px}.leader-head{display:flex;align-items:center;justify-content:space-between}.leader-head h2{font:700 18px Arial,sans-serif;letter-spacing:-.5px}.leader-head>span{font-size:9px;border:1px solid var(--line);padding:3px 5px;color:var(--lime)}#ranking-label{font-size:9px;color:var(--muted);margin:9px 0 14px}.table-head{border-top:1px solid var(--line);padding:10px 0 7px;display:flex;justify-content:space-between;font-size:9px;color:var(--muted)}#scores{padding:0;margin:0;list-style:none}#scores li{display:flex;justify-content:space-between;border-bottom:1px solid #283747;padding:8px 0;font-size:12px}#scores li span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#scores li b{color:var(--muted);margin-right:9px;font-size:10px}#scores li:first-child{color:var(--lime)}#ranking-status{font-size:12px;color:var(--muted);padding:12px 0}.text-button{color:var(--muted);background:transparent;padding:12px 0;font-size:10px}footer{padding:23px 0;display:flex;justify-content:space-between;color:#728597;font-size:9px;letter-spacing:1px}.hud{position:absolute;inset:15px 18px;pointer-events:none;display:flex;justify-content:space-between;align-items:start;text-shadow:2px 2px #101b2a;color:white}.hud span{display:block;font-size:10px;font-weight:bold}.hud b{font-size:24px;line-height:1.2}.hud .speed b{font-size:34px;font-style:italic}.hud .speed{text-align:right}.hud-center{text-align:center;margin-top:4px}.progress{background:#15263988;width:130px;height:5px;margin-top:8px}.progress i{display:block;width:0;height:100%;background:var(--lime)}.nitro{position:absolute;bottom:6px;left:0}.nitro div{width:90px;height:7px;background:#152639aa;border:1px solid #ffffff66}.nitro i{display:block;background:#6ee8ef;width:100%;height:100%}.dialog-card{background:#101b2aee;border:1px solid #708193;padding:23px;max-width:400px;text-align:center}.dialog-card h2{font:bold 28px/1.1 Arial,sans-serif;margin:9px 0 12px}.dialog-card .primary{margin:6px 0;font-size:11px;padding:10px 15px}.secondary{display:block;margin:13px auto 0;background:none;color:var(--cream);font-size:11px;text-decoration:underline;padding:6px}.result-time{display:block;font-size:30px;color:var(--lime)}.dialog-card p{font-size:11px;color:var(--muted);margin:8px 0}.name-row{display:flex;gap:8px}.name-row input{width:160px;min-width:0;background:#223248;border:1px solid #627486;padding:7px;color:white;font-size:13px}#score-form label{display:block;text-align:left;font-size:9px;color:var(--muted);margin-top:12px}.name-row .primary{margin:0}.event{position:absolute;bottom:18%;left:0;right:0;text-align:center;color:#fff4cd;font-weight:bold;pointer-events:none;text-shadow:2px 2px #172536;font-size:14px}#countdown{position:absolute;inset:0;display:grid;place-items:center;font:bold italic 88px Arial,sans-serif;color:var(--lime);text-shadow:5px 5px #142638;z-index:5}.touch-controls{display:none;padding:10px;gap:10px;align-items:center;touch-action:none}.touch-controls button{background:#293d51;border:1px solid #667688;color:var(--cream);height:51px;min-width:55px;font-size:19px;touch-action:none;user-select:none}.touch-controls span{flex:1;color:var(--muted);font-size:8px;text-align:center}.touch-controls .boost{background:var(--lime);color:#182535;font-size:12px;font-weight:bold}.touch-controls .brake{font-size:11px}.touch-controls button.pressed{filter:brightness(1.5)}dialog{border:1px solid #617385;background:var(--bg);color:var(--cream);max-width:460px;padding:30px}dialog::backdrop{background:#07101bba}dialog h2{font:bold 27px Arial,sans-serif;margin:12px 0 20px}dialog p{font-size:13px;color:var(--muted);margin:20px 0}dialog dl{display:grid;grid-template-columns:120px 1fr;font-size:13px;gap:10px}dialog dt{color:var(--lime)}dialog dd{margin:0}.close{position:absolute;right:13px;top:9px;background:none;color:white;font-size:28px}.viewport:fullscreen{aspect-ratio:auto;width:100vw;height:100vh;background:#0b1421}.viewport:fullscreen canvas{object-fit:contain}body.playing .track{opacity:.45;cursor:not-allowed}body.playing .track.active{opacity:1}@media(min-width:1550px){.start-card h2{font-size:80px}}@media(max-width:1150px){.app{padding:0 24px}.layout{grid-template-columns:minmax(0,1fr) 248px;gap:15px}.start-card h2{font-size:50px}.start-card p{font-size:10px}.track{padding:10px 8px}.track strong{font-size:11px}.tour,.edition{display:none}.race-bottom>span:last-child{display:none}.start-card .primary{padding:10px 15px}.small{font-size:9px}.route-card{padding:15px}}@media(max-width:900px){.layout{grid-template-columns:1fr}aside{display:grid;grid-template-columns:1fr 1fr;gap:22px}.start-card h2{font-size:70px}.start-card p{font-size:12px}.tracks{overflow:auto;display:flex;padding-bottom:5px}.track{min-width:121px}.touch-controls{display:flex}.race-bottom{padding-top:4px}.start-card .primary{padding:13px 22px}}@media(max-width:580px){.app{padding:0 12px}header{height:82px}.brand{font-size:21px;gap:6px}.brand small{font-size:8px;letter-spacing:1.4px}.flag{font-size:34px}.header-right{gap:5px}.icon-button{font-size:9px;padding:9px 7px}.section-head{margin:22px 0 16px}h1{font-size:24px}.eyebrow{font-size:10px}.tracks{margin-bottom:13px}.race-top{padding:0 10px;height:40px;font-size:9px}.race-top strong{font-size:10px}#track-sub{display:none}.viewport{aspect-ratio:4/3}.viewport canvas{object-fit:cover}.start-card{margin-right:13%;padding:10px}.start-card h2{font-size:53px}.start-card .eyebrow{font-size:9px}.start-card p{font-size:10px;margin-bottom:12px}.start-card .primary{padding:11px 14px;font-size:11px}.small{font-size:9px;max-width:230px}.touch-controls{gap:7px;padding:10px 8px}.touch-controls button{min-width:47px}.hud{inset:10px}.hud b{font-size:19px}.hud .speed b{font-size:25px}.progress{width:80px}.hud span{font-size:8px}.event{font-size:11px}.dialog-card{padding:12px;max-width:94%}.dialog-card h2{font-size:21px;margin:5px 0}.result-time{font-size:22px}.dialog-card p{font-size:10px;margin:5px 0}aside{grid-template-columns:1fr}.route-card{margin-top:2px}.route-card h2{font-size:23px}.route-card p{font-size:14px}#landmarks{font-size:12px}.route-stats b{font-size:15px}.leaderboard{padding:4px 7px}#scores li{font-size:14px}footer{font-size:8px;gap:20px}footer>span:last-child{text-align:right}}@media(pointer:coarse){.touch-controls{display:flex}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* Key labels remain readable even on small pixel-art displays. */
.track small{font-size:11px}.route-card p{font-size:14px}.race-bottom{font-size:10px}#ranking-status{font-size:13px}.small{font-size:11px}.start-card p{font-size:13px}.landmark-label,.route-stats span{font-size:10px}#landmarks{font-size:12px}#fullscreen{font-family:Arial,sans-serif;font-size:19px}@media(max-width:580px){.small{font-size:10px}.start-card p{font-size:11px}.track small{font-size:10px}}
