:root{color-scheme:dark;--bg:#111024;--panel:#1d1c35;--muted:#aaa9bf;--lime:#b8ff64;--purple:#a490ff;--line:#ffffff21}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:'Trebuchet MS',system-ui,sans-serif;color:#fff;background:var(--bg)}button,a,input{-webkit-tap-highlight-color:transparent}button{font:700 14px 'Trebuchet MS',system-ui;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--lime);outline-offset:5px}button{transition:transform .15s,background .15s}button:hover{filter:brightness(1.08)}button:active{transform:translateY(2px)}button:disabled{opacity:.4;cursor:wait}#game{position:fixed;inset:0;width:100%;height:100%;display:block}[hidden]{display:none!important}.topbar{position:absolute;top:0;left:0;right:0;padding:27px 4%;display:flex;align-items:center;justify-content:space-between;z-index:3;pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:11px;color:white;text-decoration:none;font-size:17px;font-weight:800;letter-spacing:.5px;line-height:1}.brand i{color:var(--lime);font-style:normal}.brand small{display:block;font:600 12px 'Trebuchet MS';letter-spacing:5.7px;margin-top:8px}.flag{font-size:40px;transform:skew(-12deg);color:var(--lime)}.topright{display:flex;align-items:center;gap:10px}.edition{font-size:12px;letter-spacing:2px;margin-right:20px}.icon-btn{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:#15142899;font-size:22px;display:grid;place-items:center}.menu{position:absolute;inset:0;overflow:auto;background-image:linear-gradient(90deg,#111024 0%,#111024df 29%,#11102440 64%,#11102410),linear-gradient(0deg,#111024 0%,transparent 45%);background-size:cover;background-position:center}.menu.has-art{background-image:linear-gradient(90deg,#111024f5 0%,#111024d8 28%,#11102430 64%,#11102410),linear-gradient(0deg,#111024 0%,#11102450 24%,transparent 60%),url('assets/race-keyart.webp')}.intro{position:relative;margin:150px 0 130px 6%;width:min(590px,50%);z-index:1}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:700;color:var(--lime);margin:0 0 20px;display:flex;align-items:center;gap:8px}.eyebrow>span{width:6px;height:6px;border-radius:50%;background:var(--lime)}h1{font-family:'Trebuchet MS',Arial,sans-serif,Impact,sans-serif;font-size:clamp(65px,7.3vw,112px);font-weight:800;line-height:.88;letter-spacing:-1.5px;margin:0;text-transform:uppercase}h1 em{font-style:italic;color:var(--lime)}.subtitle{color:#d3d1df;font-size:16px;line-height:1.5;margin:25px 0}.driver-picker{display:flex;gap:10px;margin:28px 0 22px}.driver{display:flex;align-items:center;text-align:left;gap:11px;padding:12px;background:#17162ad9;border:1px solid #ffffff26;border-radius:10px;min-width:0;flex:1}.driver.selected{border-color:var(--lime);background:#b8ff640b}.driver-letter{display:grid;place-items:center;flex:none;width:36px;height:40px;border-radius:10px;font:800 26px 'Trebuchet MS',Arial,sans-serif,sans-serif}.lime{background:#b8ff64;color:#26440c}.purple{background:#a490ff;color:#2a1362}.driver b{font-size:16px;display:block}.driver small{display:block;font-size:12px;color:var(--muted);margin-top:4px;line-height:1.3}.check{color:var(--lime);margin-left:auto}.driver:not(.selected) .check{visibility:hidden}.start-row{display:flex;gap:12px}.primary,.secondary{display:flex;align-items:center;justify-content:space-between;border-radius:8px;min-height:52px;padding:0 24px;gap:25px;letter-spacing:.5px}.primary{border:0;background:var(--lime);color:#151922;font-size:16px;font-weight:800;box-shadow:0 5px 0 #6c993d}.primary span{font-size:24px}.start-row .primary{flex:1}.secondary{border:1px solid #ffffff30;background:#1e1c3299;font-size:13px}.secondary span{font-size:12px;border:1px solid #ffffff35;padding:3px 5px;border-radius:4px}.preferences{display:flex;gap:20px;margin-top:24px;font-size:13px;color:#c2bfd5}.preferences label{display:flex;align-items:center;gap:6px;cursor:pointer}.preferences input{accent-color:var(--lime);width:16px;height:16px}.keys{font-size:12px;color:#9290a9;display:flex;align-items:center;gap:5px;margin-top:18px}kbd{font:600 11px 'Trebuchet MS',sans-serif;display:inline-block;border:1px solid #ffffff30;border-radius:3px;min-width:19px;padding:3px 4px;text-align:center;color:#d0ccde;background:#ffffff05}.race-card{position:absolute;right:5%;bottom:110px;width:350px;border:1px solid #ffffff38;background:#1a182abc;backdrop-filter:blur(20px);border-radius:14px;padding:23px;box-shadow:0 20px 60px #09091c50}.race-card .eyebrow{font-size:11px;margin-bottom:10px}.race-card h2{font:700 36px 'Trebuchet MS',Arial,sans-serif,sans-serif;margin:0 0 10px}.track-meta{display:flex;gap:12px;font-size:11px;color:#c5c1d4}.card-bottom{display:flex;align-items:center;gap:15px;margin-top:8px}.card-bottom canvas{width:150px;height:70px}.card-bottom span{font-size:12px;color:#c5c1d4;line-height:1.7}.card-bottom b{color:var(--lime);font-size:13px}.menu-footer{position:absolute;bottom:27px;left:4%;right:4%;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:20px;font-size:11px;color:var(--muted);letter-spacing:1px}.menu-footer b{color:#d9d5e7;font-weight:500;margin-left:20px}dialog{color:white;background:linear-gradient(140deg,#272440,#141323);border:1px solid #ffffff2c;border-radius:20px;padding:32px;max-height:88dvh;max-width:min(950px,94vw);box-shadow:0 30px 100px #0009}dialog::backdrop{background:#0a091ad9;backdrop-filter:blur(10px)}dialog h2{font:700 42px 'Trebuchet MS',Arial,sans-serif,sans-serif;margin:0 0 15px}.dialog-top{display:flex;justify-content:space-between;gap:30px;align-items:flex-start}.dialog-top .eyebrow{margin-bottom:10px}.dialog-note,.save-note{font-size:14px;color:var(--muted);line-height:1.5}.save-note{text-align:center;margin-bottom:0}#level-grid{margin:24px 0}.cup-row{margin-top:20px}.cup-row h3{font-size:12px;letter-spacing:2px;color:var(--lime);margin:0 0 10px}.cup-tracks{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.level{border:1px solid #ffffff20;background:#ffffff05;padding:13px 12px;border-radius:9px;text-align:left;position:relative;min-height:110px}.level.current{border-color:var(--lime);background:#b8ff6410}.level>span{display:block;font:800 28px 'Trebuchet MS',Arial,sans-serif;color:var(--purple)}.level b{display:block;font-size:13px;line-height:1.2;margin:9px 0 5px}.level small{font-size:11px;color:var(--muted)}.level .stars{position:absolute;right:10px;top:16px;color:#ffc967;letter-spacing:1px;font-size:13px}#pause-dialog,#result-dialog{width:420px;text-align:center}#pause-dialog .eyebrow,#result-dialog .eyebrow{justify-content:center}#pause-dialog button,#result-dialog button{width:100%;justify-content:center;margin-top:13px}.text-btn{background:none;border:0;color:#c4bdd7;min-height:40px}.result-stats{display:flex;justify-content:center;gap:30px;margin:24px 0}.result-stats span{font-size:10px;color:var(--muted);letter-spacing:1px}.result-stats b{display:block;font:700 30px 'Trebuchet MS',Arial,sans-serif;color:white;letter-spacing:0;margin-top:7px}#result-medal{font-size:75px;color:#ffd46b;filter:drop-shadow(0 0 30px #ffdc6b60)}#result-text{color:#c3bfd4;line-height:1.5}body.racing .topbar{display:none}#hud{position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#080e2580,transparent 27%,transparent 65%,#080e2550)}#hud button{pointer-events:auto}.race-top{display:flex;align-items:center;gap:40px;position:absolute;top:25px;left:30px;right:30px}.race-top #pause{margin-left:auto}.position{display:flex;gap:8px;align-items:center}.position>b{font:800 italic 80px 'Trebuchet MS',Arial,sans-serif;color:var(--lime);line-height:1}.position>span{font:700 25px 'Trebuchet MS',Arial,sans-serif}.position small{display:block;font:700 10px 'Trebuchet MS';letter-spacing:2px}.laps>span,.timing>span{display:block;font:600 11px 'Trebuchet MS';letter-spacing:2px;margin-bottom:5px}.laps b,.timing b{font:700 30px 'Trebuchet MS',Arial,sans-serif;font-variant-numeric:tabular-nums}#leaderboard{position:absolute;top:130px;left:30px;margin:0;padding:0;list-style:none;width:165px}#leaderboard li{padding:8px 12px;border-radius:5px;font-size:13px;margin-bottom:4px;background:#11152c88;display:flex;gap:12px;color:#e3e7ef}#leaderboard li.me{background:var(--lime);color:#152025;font-weight:800}#leaderboard .dot{width:7px;height:7px;margin-top:4px;border-radius:100%;display:inline-block}.minimap{position:absolute;right:25px;top:120px;width:180px}.minimap canvas{width:100%;height:auto}.race-bottom{position:absolute;bottom:30px;left:30px;right:30px;display:flex;justify-content:space-between;align-items:flex-end}.speedbox{text-align:center;width:190px}.speedbox>b{font:800 italic 90px 'Trebuchet MS',Arial,sans-serif;line-height:.9;font-variant-numeric:tabular-nums}.speedbox>span{font-size:12px;display:block;letter-spacing:4px;margin:5px}.nitro{height:8px;border-radius:10px;background:#fff3;overflow:hidden;margin:13px 0 7px}.nitro i{display:block;height:100%;background:var(--lime);width:100%;transition:width .1s}.speedbox small{font-size:11px;letter-spacing:2px}#race-hint{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);font-size:12px;white-space:nowrap;background:#11152c55;padding:8px 12px;border-radius:6px}#countdown{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);font:900 italic 160px 'Trebuchet MS',Arial,sans-serif;color:var(--lime);text-shadow:0 8px 0 #182226,0 0 70px #fff5;pointer-events:none}#toast{position:absolute;top:26%;left:50%;transform:translateX(-50%);background:#151328d9;border:1px solid #ffffff40;border-radius:30px;padding:12px 24px;color:var(--lime);font-weight:700;font-size:17px;opacity:0;transition:opacity .2s;pointer-events:none;white-space:nowrap}#toast.visible{opacity:1}#touch{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));left:16px;right:16px;justify-content:space-between;pointer-events:none}#touch>div{display:flex;align-items:flex-end;gap:8px}#touch button{pointer-events:auto;touch-action:none;user-select:none;width:62px;height:64px;border:1px solid #ffffff65;border-radius:16px;background:#14152aa6;backdrop-filter:blur(5px);font-size:20px}#touch .gas{background:#b8ff64bb;color:#14200e;height:85px;font-size:15px}#touch .boost{background:#9572eab0;font-size:12px;height:50px}#touch button[data-control=brake]{font-size:12px}#error{position:absolute;z-index:20;top:100px;left:10%;right:10%;padding:25px;background:#341c31;border:1px solid #fb8cb0;border-radius:12px;line-height:1.6}.racing #menu{display:none}.confetti{position:fixed;top:-20px;width:9px;height:18px;pointer-events:none;z-index:99;animation:fall 3s linear forwards}@keyframes fall{to{transform:translateY(110vh) rotate(500deg);opacity:.3}}@media(min-width:1500px){.intro{margin-top:180px}.race-card{bottom:140px}}@media(max-height:800px) and (min-width:901px){.intro{margin-top:120px;margin-bottom:95px}h1{font-size:80px}.subtitle{margin:20px 0}.driver-picker{margin:20px 0}.preferences{margin-top:18px}.race-card{bottom:100px}.keys{margin:13px 0}}@media(max-width:1050px){.driver-picker{flex-direction:column;width:280px}.intro{width:56%;margin-left:5%}h1{font-size:80px}.driver{padding:9px 12px}.start-row{width:400px}.race-card{width:290px;right:3%}.keys{display:none}.edition{display:none}.card-bottom canvas{width:115px}.preferences{gap:10px;flex-wrap:wrap}}@media(max-width:700px){.topbar{padding:20px 5%}.brand{font-size:14px}.brand small{font-size:10px;letter-spacing:4.5px}.flag{font-size:32px}.icon-btn{width:38px;height:38px}.menu{background-position:60% center}.menu.has-art{background-position:right top;background-size:auto 62vh;background-repeat:no-repeat;background-color:var(--bg);background-image:linear-gradient(0deg,#111024 0%,#11102415 60%,#11102430),url('assets/race-keyart.webp')}.intro{margin:0;padding:36vh 6% 185px;width:100%;background:linear-gradient(0deg,#111024 0%,#111024 48%,transparent 95%)}.intro>.eyebrow{font-size:9px;letter-spacing:1.3px;margin-bottom:14px}h1{font-size:60px;line-height:.88}h1 br:first-of-type{display:none}h1 em:before{content:' ';white-space:pre}.subtitle{font-size:14px;margin:16px 0}.driver-picker{flex-direction:row;width:100%;margin:20px 0}.driver{padding:10px 8px;gap:7px}.driver-letter{width:30px;height:34px;font-size:22px}.driver b{font-size:14px}.driver small{font-size:10px}.check{display:none}.start-row{width:100%;gap:8px}.primary,.secondary{padding:0 17px;gap:10px;min-height:51px}.secondary{font-size:12px}.preferences{font-size:12px;margin:22px 0}.race-card{position:relative;right:auto;bottom:auto;margin:-164px 6% 80px;width:88%;padding:18px}.race-card h2{font-size:30px}.race-card .eyebrow{font-size:10px}.card-bottom{display:none}.menu-footer{bottom:22px;left:6%;right:6%;font-size:10px}.menu-footer b{display:none}.cup-tracks{grid-template-columns:repeat(2,1fr)}.cup-tracks .level:last-child{grid-column:span 2;min-height:78px}.level{min-height:100px}.dialog-top h2{font-size:34px}dialog{padding:23px}#hud .race-top{left:16px;right:16px;top:17px;gap:23px}.position>b{font-size:60px}.laps b,.timing b{font-size:25px}.timing>span,.laps>span{font-size:9px}.position small{font-size:8px}#leaderboard{top:100px;left:16px;width:125px}#leaderboard li{font-size:11px;padding:6px 8px;gap:8px}.minimap{top:97px;right:8px;width:125px}.race-bottom{left:16px;right:16px;bottom:135px}.speedbox{width:130px}.speedbox>b{font-size:64px}.race-bottom .secondary{font-size:10px;min-height:38px;padding:0 10px}#race-hint{display:none}#countdown{font-size:120px}#toast{font-size:13px;max-width:95%;white-space:normal;text-align:center}#touch{display:flex}}@media(pointer:coarse){#touch:not([hidden]){display:flex}.race-bottom{bottom:140px}#race-hint{display:none}}@media(max-height:540px) and (orientation:landscape){.topbar{padding:12px 4%}.intro{margin:90px 0 90px 5%;padding:0;width:55%;background:none}.menu.has-art{background-size:cover;background-position:center}.intro>.eyebrow{display:none}h1{font-size:50px;line-height:.9}h1 br{display:none}.subtitle{font-size:13px;margin:12px 0}.driver-picker{flex-direction:row;width:100%;margin:10px 0}.driver small{display:none}.driver-letter{width:28px;height:30px}.start-row{width:100%}.preferences{margin:16px 0;font-size:12px}.race-card{position:absolute;width:30%;right:3%;bottom:80px;margin:0;padding:15px}.race-card h2{font-size:28px}.card-bottom{display:none}.track-meta{flex-wrap:wrap;font-size:10px}.menu-footer{bottom:15px}.menu-footer b{display:none}.race-top{top:12px!important;gap:25px!important}.position>b{font-size:52px}.minimap{top:80px;width:115px}#leaderboard{top:80px;width:125px}#leaderboard li{font-size:10px;padding:3px 8px}.race-bottom{bottom:105px!important}.speedbox{width:120px}.speedbox>b{font-size:50px}#touch button{height:50px;width:58px}#touch .gas{height:63px}.speedbox small{display:none}}
