@import"../../_vendor/fonts.googleapis.com/css2-5ae2610d.css";:root{color-scheme:dark;font-family:Barlow Condensed,Arial Narrow,sans-serif;background:#101b1e;color:#f3ead3}*{box-sizing:border-box}html,body,#app,#scene{width:100%;height:100%;margin:0;overflow:hidden}body{background:radial-gradient(circle at 50% 30%,#4c4d38,#1e2c29 38%,#101b1e)}button,kbd{font:inherit}#scene{position:fixed;inset:0}#scene canvas{display:block;width:100%;height:100%}.hud-panel{position:fixed;z-index:2;border:1px solid rgba(244,220,166,.2);background:linear-gradient(135deg,#0c181ad1,#111f1f8c);box-shadow:inset 0 1px #ffffff0d,0 16px 40px #0000002b;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.topbar{top:22px;left:26px;right:26px;height:66px;padding:10px 15px 10px 18px;display:flex;align-items:center;justify-content:space-between;clip-path:polygon(0 0,99.4% 0,100% 18%,100% 100%,.7% 100%,0 82%)}.brand{line-height:.85}.brand-kicker,.eyebrow,.hud-label,.route-head,.route-foot,.engine-state{font-family:DM Mono,monospace;letter-spacing:.08em}.brand-kicker{color:#d9ad65;font-size:9px}.brand h1{margin:4px 0 0;font-size:clamp(24px,3vw,35px);letter-spacing:.07em;font-weight:700}.brand h1 i{color:#e6b15b;font-style:italic}.engine-state{display:flex;align-items:center;gap:8px;color:#9ccbb5;font-size:10px}.status-dot{width:7px;height:7px;border-radius:50%;background:#71e6ae;box-shadow:0 0 11px #71e6ae;animation:pulse 1.8s ease-in-out infinite}.race-hud{top:108px;left:26px;width:190px;padding:13px 14px 12px;clip-path:polygon(0 0,100% 0,100% 93%,92% 100%,0 100%)}.hud-row{display:flex;align-items:baseline;justify-content:space-between;margin:4px 0}.hud-label{color:#9db2a7;font-size:9px}.hud-row strong{font-family:DM Mono,monospace;font-size:16px;color:#f9edd2;font-weight:500}.hud-row strong em{color:#7b9187;font-style:normal;font-size:11px}.checkpoint-row{margin-top:11px}.checkpoint-row strong{color:#e3af58;font-size:13px}.progress-track{height:3px;margin-top:11px;background:#e1e0b826;overflow:hidden}.progress-track span{display:block;width:0%;height:100%;background:linear-gradient(90deg,#84d8a8,#e5bd65);box-shadow:0 0 8px #d9bc6b;transition:width .35s ease}.speedometer{left:26px;bottom:26px;min-width:174px;padding:12px 14px;clip-path:polygon(0 0,94% 0,100% 18%,100% 100%,0 100%)}.speed-readout{display:flex;align-items:flex-end;gap:7px;margin-top:1px}.speed-readout strong{font-family:DM Mono,monospace;color:#f9edd2;font-size:38px;font-weight:500;letter-spacing:-.09em;line-height:1}.speed-readout span{font-family:DM Mono,monospace;font-size:9px;color:#d5aa63;padding-bottom:5px}.speed-bars{display:flex;gap:3px;margin-top:10px}.speed-bars i{height:3px;width:15px;background:#d0e0c32e}.speed-bars i.active{background:#d7ac61;box-shadow:0 0 8px #e1b05bcc}.route-card{right:26px;bottom:26px;width:194px;padding:10px 10px 12px;clip-path:polygon(6% 0,100% 0,100% 100%,0 100%,0 8%)}.route-head{display:flex;justify-content:space-between;padding:0 3px 7px;color:#d7ddc5;font-size:9px}.route-head span:last-child{color:#d4a759}#minimap{width:172px;height:172px;display:block;margin:0 auto;border:1px solid rgba(225,214,170,.13);background:#0a191852}.route-foot{display:flex;align-items:center;gap:6px;margin:8px 2px 0;font-size:8px;color:#94aa9e;white-space:nowrap}.route-key{width:6px;height:6px;border-radius:50%;display:inline-block;margin-left:2px}.route-key.current{background:#7ce5b3;box-shadow:0 0 6px #7ce5b3}.route-key.checkpoint{background:#e6ac55;margin-left:6px}.start-card{left:50%;bottom:28px;transform:translate(-50%);min-width:min(415px,calc(100vw - 460px));padding:10px 11px 10px 15px;display:flex;align-items:center;justify-content:space-between;gap:20px;clip-path:polygon(0 0,97% 0,100% 19%,100% 100%,3% 100%,0 81%)}.eyebrow{display:block;color:#d7a75d;font-size:9px}.start-card p{margin:3px 0 0;color:#dfe1ce;font-size:15px;letter-spacing:.015em}#startButton{flex:0 0 auto;border:1px solid #ebbd68;background:#ddb064;color:#1a2926;padding:10px 12px 9px;cursor:pointer;font-weight:700;letter-spacing:.08em;font-size:13px;transition:transform .16s ease,background .16s ease}#startButton:hover{transform:translateY(-2px);background:#f1c473}#startButton span{font-size:17px;line-height:0;margin-left:5px}.controls{position:fixed;z-index:2;right:244px;bottom:28px;display:flex;align-items:center;gap:12px;color:#ede5c9ab}.control-key{display:flex;align-items:center;gap:4px;font-family:DM Mono,monospace;font-size:8px;letter-spacing:.05em}kbd{border:1px solid rgba(237,229,201,.34);border-bottom-width:2px;background:#0a17188c;color:#e6d7b8;padding:2px 4px;font-family:DM Mono,monospace;font-size:9px}.race-message{position:fixed;z-index:3;left:50%;top:26%;transform:translate(-50%,-12px);color:#fff0ca;font-size:clamp(27px,4vw,48px);letter-spacing:.12em;font-style:italic;font-weight:700;text-shadow:0 3px 18px rgba(0,0,0,.55);opacity:0;transition:opacity .18s ease,transform .18s ease;pointer-events:none}.race-message.show{opacity:1;transform:translate(-50%)}.touch-controls{display:none}.unsupported{position:fixed;z-index:5;inset:0;display:grid;place-content:center;gap:7px;text-align:center;background:#091214e0;font-family:DM Mono,monospace;color:#f1c77d}.unsupported span{font-size:18px;letter-spacing:.13em}.unsupported p{margin:0;color:#d6ddca;font-size:12px}.hidden{display:none}@keyframes pulse{50%{opacity:.45;box-shadow:0 0 4px #71e6ae}}@media(max-width:900px){.topbar{top:12px;left:12px;right:12px;height:57px}.race-hud{top:80px;left:12px;transform:scale(.9);transform-origin:top left}.speedometer{left:12px;bottom:12px;transform:scale(.85);transform-origin:bottom left}.route-card{right:12px;bottom:12px;transform:scale(.83);transform-origin:bottom right}.controls{display:none}.start-card{bottom:13px;min-width:auto;width:min(410px,calc(100vw - 220px))}}@media(max-width:620px){.brand h1{font-size:24px}.engine-state{font-size:8px}.race-hud{transform:scale(.78)}.route-card{display:none}.start-card{width:calc(100vw - 24px);padding:8px 10px;bottom:92px}.start-card p{font-size:13px}.touch-controls{position:fixed;z-index:4;inset:auto 12px 12px;display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:7px}.touch-controls button{border:1px solid rgba(241,221,171,.4);background:#0f1f1fad;color:#f4e2bd;height:52px;font-size:20px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);touch-action:none}.speedometer{bottom:84px;transform:scale(.73)}.speedometer .speed-readout strong{font-size:31px}}
