:root{color-scheme:dark;--ink:#0c1425;--panel:#111f35;--mint:#77f2d5;--text:#f4f7f7;--muted:#b0c3cd;--line:#ffffff24;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--text);min-height:100svh}button,a,input,select{-webkit-tap-highlight-color:transparent}button,select{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--line);background:#162840;padding:11px 16px;border-radius:11px;font-weight:700;transition:background .15s,transform .15s}button:hover:not(:disabled){background:#29415b;transform:translateY(-1px)}button:disabled{opacity:.48;cursor:not-allowed}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--mint);outline-offset:3px}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button[aria-pressed=true]{background:#77f2d521;border-color:var(--mint);color:var(--mint)}[hidden]{display:none!important}#world{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}.vignette{position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,#09121eea 0%,#09121e65 47%,#09121e10 75%),linear-gradient(0deg,#09121eaa,transparent 65%)}body.racing .vignette{background:linear-gradient(0deg,#08132275,transparent 33%)}#topbar{position:relative;z-index:4;display:flex;align-items:center;justify-content:space-between;padding:20px 32px;gap:15px}.brand{display:flex;align-items:center;gap:10px;font-weight:900;font-size:19px;letter-spacing:.07em}.brand small{display:block;font-size:9px;letter-spacing:.27em;color:var(--muted);margin-top:2px}.brand-icon{display:grid;place-items:center;background:var(--mint);color:var(--ink);width:36px;height:36px;border-radius:10px;font-style:italic}.top-actions{display:flex;align-items:center;gap:8px}.top-actions button{font-size:12px;background:#102138b3;backdrop-filter:blur(8px);padding:10px 13px}.device-status{font-size:11px;color:#d0e0e8;padding-right:8px}.menu{position:relative;z-index:2;max-width:1520px;margin:auto;padding:3vh 4.5vw 22px;display:grid;grid-template-columns:minmax(300px,1fr) minmax(410px,550px);gap:45px;align-items:center}.intro{align-self:center;padding-bottom:35px}.eyebrow{font-size:10px;letter-spacing:.18em;font-weight:850;color:var(--mint);margin:0 0 11px;line-height:1.6}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--mint);margin-right:7px}.beta{font-size:8px;letter-spacing:.08em;border:1px solid #c8e6e655;padding:5px 7px;border-radius:5px;color:#d5e1e7;margin-left:5px;white-space:nowrap}h1{font-size:clamp(64px,7.5vw,125px);font-weight:950;letter-spacing:-.065em;line-height:.89;margin:27px 0 23px;text-shadow:0 4px 30px #03162655}h1 em{font-style:italic;color:var(--mint);letter-spacing:-.07em}.strap{max-width:360px;font-size:17px;line-height:1.65;color:#d4e6e8}.stats{display:flex;gap:38px;margin-top:38px}.stats b{display:block;font-size:27px;font-style:italic;line-height:1.2}.stats span{font-size:9px;color:var(--muted);letter-spacing:.14em}.glass{border:1px solid #ffffff28;background:#0e1c30e8;box-shadow:0 20px 70px #03122055;backdrop-filter:blur(18px)}.selection{border-radius:22px;padding:25px}.selection-top{display:flex;align-items:center;justify-content:space-between;gap:10px}h2{font-size:26px;letter-spacing:-.04em;margin:0 0 10px;line-height:1.15}#xp-pill{border:1px solid #f1c56f77;color:#ffe0a1;font-size:11px;border-radius:20px;padding:8px 11px;white-space:nowrap}.tabs{display:grid;grid-template-columns:1fr 1.2fr 1fr .8fr;gap:5px;margin:14px 0 15px}.tabs button{padding:10px 5px;font-size:11px;border-radius:7px}.tracks{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.track{position:relative;text-align:left;padding:0;min-height:105px;overflow:hidden;border-radius:10px;background:linear-gradient(135deg,#34556b,#162d41)}.track svg{display:block;width:100%;height:57px;opacity:.85}.track strong{display:block;font-size:10px;line-height:1.3;padding:0 9px 4px}.track small{display:block;font-size:8px;color:#b6cbd6;font-weight:500;padding:0 9px 9px;min-height:21px}.track[aria-pressed=true]{box-shadow:inset 0 0 0 1px var(--mint);background:#254b54}.cups{display:grid;grid-template-columns:1fr 1fr;gap:10px;min-height:220px}.cups button{background:linear-gradient(145deg,#225469,#26354b);text-align:left}.cups strong{font-size:22px;display:block}.cups small{display:block;margin-top:10px;font-size:12px;line-height:1.8;color:#c9dde1}.setup-bottom{display:flex;align-items:center;gap:13px;justify-content:space-between;margin-top:17px}.setup-bottom>label:first-child{font-size:8px;letter-spacing:.14em;flex:1;color:#a7c4d3}.setup-bottom select{display:block;width:100%;font-size:11px;margin-top:6px;background:#1b3048;border:1px solid var(--line);border-radius:7px;padding:10px 5px}.auto-label{font-size:10px;display:flex;gap:6px;align-items:center;white-space:nowrap}.auto-label input{accent-color:var(--mint);width:16px;height:16px}.race-meta{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:9px;line-height:1.5;margin:14px 0 12px}.primary{display:flex;align-items:center;justify-content:center;gap:15px;width:100%;padding:16px 20px;background:var(--mint);color:#092c31;border:0;border-radius:11px;font-size:13px;font-weight:900;letter-spacing:.035em;text-decoration:none!important}.primary:hover:not(:disabled){background:#a3ffe9;color:#092c31}.primary span{margin-left:auto;font-size:21px;line-height:15px}.fine{color:#abc0cf;font-size:10px;line-height:1.65;margin:12px 0 0}.menu-footer{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;border-top:1px solid #ffffff20;padding-top:17px;color:#c5d7e2;font-size:10px;margin-top:0}.race-top{position:fixed;top:90px;left:28px;right:28px;display:flex;gap:10px;align-items:flex-start;pointer-events:none}.race-top>div{background:#0a192bdd;border:1px solid #ffffff35;backdrop-filter:blur(6px);border-radius:15px}.position-card{padding:13px 18px;min-width:113px}.position-card strong{font-size:48px;font-weight:950;font-style:italic;line-height:1}.position-card span{font-size:16px;color:#bdd8e5}.position-card small{display:block;font-size:8px;letter-spacing:.16em;margin-top:6px}.lap-card{padding:14px 20px}.lap-card span{font-size:9px;letter-spacing:.16em;display:block;color:#a6c0d1}.lap-card b{color:var(--mint);font-size:14px;letter-spacing:0;margin-left:7px}.lap-card strong{display:block;font-size:21px;font-variant-numeric:tabular-nums;margin-top:3px}.lap-card small{display:block;font-size:9px;color:#a6c0d1;margin-top:5px}#pause{margin-left:auto;font-size:19px;pointer-events:auto;background:#0a192bdc}.countdown{position:fixed;top:30%;width:100%;text-align:center;font-size:clamp(85px,14vw,180px);font-weight:950;font-style:italic;color:#e3fff2;text-shadow:0 7px 0 #18475b,0 0 60px #62fbde77;pointer-events:none}.toast{position:fixed;top:28%;left:50%;transform:translateX(-50%);background:#112940de;border:1px solid var(--mint);padding:10px 22px;border-radius:30px;color:var(--mint);font-size:15px;font-weight:900;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s}.toast.show{opacity:1}.wrong{position:fixed;top:21%;width:100%;text-align:center;color:#ffe6a7;font-size:12px;font-weight:800;pointer-events:none}#minimap{position:fixed;right:25px;top:160px;width:170px;height:130px;background:#0b1b2cbb;border:1px solid #ffffff22;border-radius:18px;pointer-events:none}.speed-card{position:fixed;bottom:43px;right:35px;text-align:right;pointer-events:none}.speed-card strong{font-size:66px;line-height:1;font-weight:950;font-style:italic;text-shadow:0 3px 14px #08172b;font-variant-numeric:tabular-nums}.speed-card>span{display:inline-block;font-size:10px;letter-spacing:.14em;margin-left:10px}.drift-meter{height:5px;width:210px;background:#113145;border-radius:5px;overflow:hidden;margin-top:13px}.drift-meter i{display:block;height:100%;width:0;background:var(--mint);transition:width .07s}.speed-card small{font-size:8px;letter-spacing:.12em;color:#b7d8dc;display:block;margin-top:6px}.item-slot{position:fixed;left:28px;bottom:47px;width:132px;min-height:100px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:2px solid #96f0e4;background:#0a2034e8}.item-slot:disabled{opacity:.65;border-color:#ffffff35}.item-slot b{font-size:30px;color:#fce3a9;line-height:1}.item-slot span{font-size:9px}.item-slot small{font-size:7px;color:#a8cad7}.key-hint{position:fixed;bottom:12px;width:100%;text-align:center;color:#d0e3e9;font-size:10px;text-shadow:0 1px 4px #000;pointer-events:none}.touch{display:none;position:fixed;bottom:max(17px,env(safe-area-inset-bottom));left:15px;right:15px;justify-content:space-between;gap:12px;pointer-events:none}.touch button{touch-action:none;user-select:none;width:62px;height:61px;background:#152d45cd;border:1px solid #a9d7de99;backdrop-filter:blur(8px);font-size:20px;pointer-events:auto}.touch button:active{background:#377c81;transform:scale(.97)}.steering,.pedals{display:flex;gap:8px}.touch .brake,.touch .drift,.touch .gas{font-size:10px}.touch .gas{background:#83edcfcc;color:#102b34}.touch .drift{border-color:#9df5e6}.dialog{color:var(--text);background:#102039f5;border:1px solid #86c6cf55;border-radius:22px;padding:30px;max-width:560px;width:calc(100% - 30px);box-shadow:0 25px 110px #0007;max-height:90svh;overflow:auto}.dialog::backdrop{background:#03101aca;backdrop-filter:blur(9px)}.dialog h2{font-size:35px}.dialog p{font-size:13px;line-height:1.8;color:#bfd1dc}.dialog .primary{margin-top:22px}.button-row{display:flex;gap:10px;margin-top:15px;align-items:center}.button-row>*{flex:1}.button-row .primary{margin-top:0}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.results-table{margin-top:20px;border:1px solid #ffffff22;border-radius:12px;overflow:hidden}.result-row{display:grid;grid-template-columns:30px 1fr auto;gap:10px;font-size:12px;padding:10px 13px;border-bottom:1px solid #ffffff12}.result-row:last-child{border:0}.result-row.you{background:#78ead81a;color:var(--mint);font-weight:900}.reward-line{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:17px 0}.reward-line b{color:#ffd688;font-size:19px}.reward-line span{font-size:11px;color:var(--mint)}#cup-status{font-size:12px;line-height:1.8;color:#bbd0dc}.garage-dialog{max-width:720px}.kart-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.kart{padding:18px;text-align:left;position:relative}.kart strong{display:block;font-size:19px;margin:8px 0}.kart small{display:block;font-size:11px;font-weight:400;color:#c1d6de;line-height:1.6}.kart .kart-preview{display:block;font-size:46px;color:var(--kart);filter:drop-shadow(0 3px 10px #59fce533);height:62px}.kart-progress{height:4px;background:#ffffff22;border-radius:4px;margin:12px 0 8px}.kart-progress i{height:100%;display:block;background:var(--mint);border-radius:4px}.badges{display:flex;flex-wrap:wrap;gap:7px}.badges span{font-size:10px;padding:8px 10px;border-radius:7px;border:1px solid #ffffff24;color:#7894a7}.badges .earned{color:#ffe09c;border-color:#ffe09c88;background:#8b662722}.error{position:relative;z-index:10;max-width:560px;margin:70px auto;padding:30px;border-radius:20px}.error a{display:block;margin-top:18px}.error p{line-height:1.7}body.racing{overflow:hidden}.result-dialog h2{color:var(--mint);font-size:45px}
@media(pointer:coarse),(max-width:760px){.touch{display:flex}.key-hint{display:none}.speed-card{bottom:100px;right:22px}.item-slot{bottom:103px;left:18px;width:100px;min-height:80px}.speed-card strong{font-size:46px}.drift-meter{width:155px}.speed-card small{font-size:7px}#minimap{width:130px;height:100px}}
@media(max-width:1000px){.menu{gap:25px;padding:2vh 25px 20px;grid-template-columns:1fr minmax(380px,480px)}h1{font-size:75px}.stats{gap:25px}.eyebrow{font-size:9px}.beta{display:inline-block;margin-top:5px}.selection{padding:20px}.strap{font-size:14px}.intro{padding:0}.menu-footer span{display:none}}
@media(max-width:760px){#topbar{padding:15px;gap:7px}.brand{font-size:15px}.brand-icon{width:30px;height:30px}.top-actions{gap:4px}.top-actions button{font-size:10px;padding:8px}.device-status{display:none}.menu{display:block;padding:15px}.intro{padding:6px 6px 22px}.intro h1{font-size:65px;margin:15px 0 12px}.intro h1 br{display:none}.intro h1 em{margin-left:10px}.stats{display:none}.strap{margin:0;font-size:12px;max-width:100%}.eyebrow{font-size:8px}.beta{margin:0 0 0 4px}.selection{padding:18px;border-radius:18px}.selection h2{font-size:25px}.menu-footer{margin-top:22px;font-size:10px}.vignette{background:linear-gradient(0deg,#09121ee5,#09121e40)}.race-top{left:14px;right:14px;top:77px;gap:7px}.position-card{min-width:86px;padding:10px 12px}.position-card strong{font-size:34px}.position-card span{font-size:12px}.position-card small{font-size:7px}.lap-card{padding:10px 13px}.lap-card strong{font-size:16px}.lap-card span{font-size:8px}.lap-card small{font-size:8px}#minimap{top:177px;right:13px;width:105px;height:80px}.dialog{padding:22px}.kart-list{gap:8px}.kart{padding:12px}.kart strong{font-size:16px}.toast{font-size:11px;padding:8px 16px;top:37%}.wrong{top:29%;font-size:9px}.touch button{width:54px;height:58px}.steering,.pedals{gap:6px}.button-row{flex-wrap:wrap}.dialog .fine{font-size:10px}}
@media(max-width:410px){.intro h1{font-size:56px}.tabs button{font-size:9px}.auto-label{font-size:9px}.touch button{width:46px;height:54px}.track strong{font-size:9px}.top-actions #help{max-width:60px;line-height:1.1}.race-meta{font-size:8px}.selection{padding:15px}}
@media(max-height:600px) and (min-width:760px){.menu{padding-top:0;align-items:start}.intro{padding-top:40px}h1{font-size:70px}.track{min-height:84px}.track svg{height:39px}.selection{padding:15px}.stats{margin-top:20px}.menu-footer{margin-top:5px}.race-top{top:72px}.dialog{max-height:95svh}}
@media(max-height:500px) and (pointer:coarse){#topbar{padding:8px 14px}.race-top{top:58px}.position-card{padding:6px 10px}.position-card strong{font-size:28px}.lap-card{padding:7px 11px}#minimap{top:140px;width:110px;height:85px}.touch button{height:45px;width:58px}.speed-card{bottom:70px}.speed-card strong{font-size:37px}.item-slot{bottom:76px;min-height:65px}.toast{top:30%}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}button:hover:not(:disabled){transform:none}}
