@import"https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800;900&family=Barlow:wght@400;500;600;700;800&display=swap";:root{font-family:Barlow,Arial,sans-serif;color:#fff5de;background:#15172c;font-synthesis:none;--gold:#ffdc66;--blue:#354991;--muted:#b6bfdb}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;color:inherit;border:1px solid #8fa0d066;background:linear-gradient(#3c5089,#283766);border-radius:5px;padding:10px 15px;font-weight:700;box-shadow:inset 0 1px #ffffff20,0 2px #111931}button:hover{filter:brightness(1.17);border-color:var(--gold)}button:active,.pressed{transform:translateY(1px);filter:brightness(1.3)}button:disabled{opacity:.45;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button.selected{background:linear-gradient(#786644,#53455a);border-color:var(--gold);box-shadow:inset 0 0 0 1px #ffdc6666,0 0 15px #ffcd3f17;color:var(--gold)}input,select{min-width:0;background:#182342;border:1px solid #7183ad;color:#fff6dd;padding:10px;border-radius:3px;width:100%}select{cursor:pointer}input::placeholder{color:#939ebd}label{display:block;font-size:11px;font-weight:700;color:#bbc8e2;letter-spacing:1px}label input,label select{display:block;margin-top:5px;letter-spacing:0;font-size:14px}h1,h2,h3,p{margin-top:0}p{line-height:1.5}h1,h2,.section-title{font-family:Barlow Condensed,Arial,sans-serif}small{font-size:11px}#world{position:fixed;inset:0;width:100%;height:100%;display:block;image-rendering:pixelated}#app{position:relative;min-height:100dvh}header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px 4%;position:relative;z-index:2;background:linear-gradient(#11132ed9,transparent)}header nav{display:flex;gap:8px}.logo{font:900 italic 35px/.82 Barlow Condensed,Arial,sans-serif;letter-spacing:1px;color:#ffdf65;text-shadow:2px 2px #9c3e32,-1px -1px #fff3b4,4px 4px #202549;transform:rotate(-4deg);min-width:200px}.logo span{display:block;font-size:50px;letter-spacing:3px}.home{min-height:100dvh;background:linear-gradient(90deg,#141b4240 0%,transparent 45%,#121b3988 100%);display:flex;flex-direction:column}.setup-layout{display:grid;grid-template-columns:1fr 530px;gap:35px;margin:0 4%;flex:1;align-items:center}.showcase{position:relative;height:620px;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between}.section-title{font-size:16px;letter-spacing:3px;color:var(--gold);font-weight:700;text-shadow:1px 2px #172043}.showcase>.section-title{margin-top:18px}.vehicle-label{margin-top:auto;padding:24px 0 12px;text-shadow:2px 3px 2px #122442;max-width:420px}.vehicle-label h1{font-size:62px;line-height:1;margin:0 0 5px;font-weight:800}.vehicle-label p{font-size:17px;font-weight:700;color:#ffebaa}.racer-number{float:left;font:900 italic 62px/.9 Barlow Condensed,sans-serif;color:#ffdd6f;margin:4px 17px 0 0;opacity:.85}.stats{display:flex;gap:20px;margin-top:16px}.stats span{font-size:10px;letter-spacing:1px;font-weight:800;flex:1}.stats i{display:block;width:100%;height:5px;margin-top:5px;background:linear-gradient(90deg,#ffd76d var(--value),#19233dcc var(--value));box-shadow:0 1px 2px #000}.preview-caption{font-size:10px;color:#f0e9d7;text-shadow:1px 1px #123;padding:12px 0}.panel{background:linear-gradient(135deg,#354782f5,#1d2855f5 75%);border:2px solid #8da0c8;border-radius:8px;box-shadow:inset 0 0 0 2px #131e46,inset 0 0 30px #101a4166,4px 5px #0f162b88,0 16px 50px #0c132b66;padding:24px}.setup{padding:20px 23px;margin:8px 0 18px}.racer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.racer-card{padding:3px 4px 7px;background:linear-gradient(#4c6096,#26366a);min-width:0}.racer-card svg{display:block;height:56px;width:100%;filter:drop-shadow(1px 2px 0 #182b42)}.racer-card span{font:600 12px Barlow Condensed,sans-serif;white-space:nowrap;display:block}.mode-tabs{display:flex;border-bottom:1px solid #8393bb44;padding-bottom:9px;gap:3px}.mode-tabs button{padding:9px 5px;flex:1;font:700 14px Barlow Condensed,sans-serif;white-space:nowrap}.mode-description{font-size:11px;color:#c7cee0;margin:8px 0}.course-select{display:flex;gap:10px;align-items:center;background:#15214299;border:1px solid #7083b066;border-radius:5px;padding:5px}.course-select>button{padding:10px 6px;background:transparent;box-shadow:none;border:0;color:var(--gold)}.course-preview{width:94px;flex-shrink:0}.course-preview svg{width:100%;display:block}.course-select>div:nth-last-child(2){flex:1}.course-select small{color:#b2bedb;font-size:9px;letter-spacing:1.5px}.course-select strong{font:700 22px Barlow Condensed,sans-serif;display:block}.difficulty{font-size:11px;color:#f2cb6b}.course-description{font-size:11px;color:#b5c1dd;margin:7px 0 11px;min-height:16px}.fields{display:flex;gap:12px;margin-bottom:15px}.fields>label{flex:1}.fields>label:nth-child(2){flex:0 0 66px}.fields>label:nth-child(3){max-width:145px}.primary{display:flex;align-items:center;justify-content:center;gap:15px;background:linear-gradient(#ffe28a,#eab94c);border-color:#ffeca7;color:#342c3f;font:800 22px Barlow Condensed,sans-serif;letter-spacing:1px;box-shadow:inset 0 1px #fff8d2,0 3px #947037;text-shadow:0 1px #ffe9a0;width:100%;padding:12px 18px}.start-button{justify-content:space-between}footer{padding:17px 4%;font-size:10px;background:linear-gradient(transparent,#11172be8);color:#c3c8db;display:flex;align-items:center;justify-content:space-between;gap:15px}.modal-backdrop,.results-backdrop{position:fixed;inset:0;z-index:20;background:#0b123bb0;display:flex;align-items:center;justify-content:center;padding:20px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal{width:560px;max-width:100%;max-height:90dvh;overflow:auto;padding:25px}.modal-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.modal-title h2{font-size:34px;margin:0}.modal-title button{border:0;background:transparent;box-shadow:none;font-size:20px}.modal p{font-size:13px;color:#d3dbef}.modal p b{color:#ffe7a8}.control-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin-bottom:20px}.control-grid>div{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#d5def0}kbd{font:700 10px Barlow,sans-serif;color:#ffe6a5}.control-grid kbd{border:1px solid #839ac1;padding:5px 7px;border-radius:3px;width:max-content;background:#19264c}.setting{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:15px 0;font-size:14px;letter-spacing:0}.setting select{width:120px}.secondary{display:block;width:100%;margin-top:12px}.toast{position:fixed;z-index:100;left:50%;bottom:25px;transform:translate(-50%);padding:14px 22px;background:#232f60;border:1px solid #e4c870;border-radius:5px;box-shadow:0 7px 20px #0006;font-size:13px;max-width:90vw;overflow-wrap:anywhere}.hidden{display:none!important}.fine{font-size:11px;color:#bcc8e1;line-height:1.6;margin:14px 0 0}body.racing{overflow:hidden}body.racing #app{overflow:hidden;height:100dvh;min-height:0}.hud{height:100dvh;position:relative;pointer-events:none;font-family:Barlow Condensed,Arial,sans-serif;text-shadow:2px 2px #152044}.hud button{pointer-events:auto}.hud-top{position:absolute;top:20px;left:28px;right:28px;display:flex;align-items:flex-start;justify-content:space-between}.lap-box{display:flex;gap:12px;align-items:center}.lap-box>small{font-weight:800;letter-spacing:2px;font-size:21px;color:var(--gold)}.lap-box strong{font-size:43px;line-height:1}.lap-box em{font-size:25px;font-style:normal;color:#eee3bd}.race-title{text-align:center}.race-title small{text-transform:uppercase;letter-spacing:2px;font-size:12px}.race-title strong{display:block;font:700 31px Barlow,Arial,sans-serif;font-variant-numeric:tabular-nums;margin-top:4px}.race-actions{display:flex;align-items:center;gap:12px}.race-actions>span{font-size:11px;letter-spacing:1px}.race-actions button{font-size:20px;padding:6px 13px;background:#26396aab;border-color:#9baac080}.standings{position:absolute;top:93px;left:50%;transform:translate(-50%);display:flex;gap:7px}.standings>div{position:relative;width:73px;padding:4px 6px;background:#17265399;border:1px solid #839ac15c;text-align:center;border-radius:3px}.standings>div.you{border:2px solid var(--gold);padding:3px 5px}.standings svg{width:35px;height:35px;display:block;margin:auto}.standings b{position:absolute;top:1px;left:5px;font-size:18px;color:#fff0b4}.standings span{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.countdown{position:absolute;top:30%;left:0;right:0;text-align:center}.countdown strong{display:block;font:900 italic 128px/.95 Barlow Condensed,sans-serif;color:#ffe269;-webkit-text-stroke:2px #855330;text-shadow:5px 5px #1b2344}.countdown span{display:block;margin-top:18px;font-size:14px;letter-spacing:2px;font-weight:700}.callout{position:absolute;top:26%;left:50%;transform:translate(-50%);padding:8px 24px;background:linear-gradient(90deg,transparent,#243165d9 15%,#243165d9 85%,transparent);font-size:28px;font-weight:800;color:#ffe79a;white-space:nowrap}.network-banner{position:absolute;top:36%;left:50%;transform:translate(-50%);background:#832d4be8;padding:20px;text-align:center;font-size:20px;z-index:4}.hud-bottom{position:absolute;bottom:43px;left:28px;right:25px;display:flex;align-items:flex-end;gap:30px}.position{position:relative;min-width:130px;line-height:.8;padding-bottom:15px}.position>span{font-size:128px;font-weight:900;font-style:italic;color:#ffe169;-webkit-text-stroke:2px #9f733c;text-shadow:5px 5px #26334e}.position sup{font-size:43px;font-weight:800;font-style:italic;color:#ffe169;vertical-align:baseline;margin-left:1px}.position small{display:block;font-size:12px;letter-spacing:4px;margin-top:14px;color:#f4e8c8}.powers{display:flex;gap:12px;padding-bottom:4px}.powers button{background:linear-gradient(135deg,#2d407ec9,#202a56c9);border:2px solid #8a9dc2;border-radius:5px;min-width:155px;padding:9px 12px 7px;text-align:left;box-shadow:inset 0 0 0 1px #1b2853,2px 3px #0d153f77;text-shadow:1px 2px #192141;font-family:Barlow Condensed,sans-serif}.powers button>small{display:flex;justify-content:space-between;gap:30px;color:#d9dfef;font-size:11px;letter-spacing:2px;margin-bottom:7px}.powers strong{font-size:18px;color:#ffe594;display:block}.ability-power{display:flex;flex-direction:column;justify-content:space-between}.ability-power>span{font-size:10px;letter-spacing:1px;color:#d5dcef}.meter{height:7px;display:block;background:#101b3ee0;border:1px solid #6d7d9e;margin:7px 0;width:100%;min-width:100px;overflow:hidden}.meter i{display:block;height:100%;width:0;background:linear-gradient(90deg,#e2ab4a,#ffec92)}.speed-box{margin-left:auto;min-width:140px;text-align:right;padding-bottom:8px}.speed-box>strong{font-size:64px;line-height:1;font-weight:800;font-style:italic;font-variant-numeric:tabular-nums}.speed-box>small{font-size:15px;font-weight:700;margin-left:6px}.speed-box>span{font-size:10px;letter-spacing:1px}.risk i{background:linear-gradient(90deg,#f2df6f,#ea574d)}#minimap{width:180px;height:143px;align-self:flex-end}.race-hint{position:absolute;bottom:13px;left:0;right:0;text-align:center;font-size:11px;font-weight:600;letter-spacing:1.5px;opacity:.9}.results{width:640px;max-width:100%;max-height:92dvh;overflow:auto;text-align:center}.results h1{font-size:64px;font-style:italic;color:#ffe174;margin:9px 0 0;text-shadow:3px 3px #19264a}.results>p{font-size:12px;color:#d5dbea}.result-stats{display:flex;justify-content:center;gap:35px;margin:20px 0;font-size:10px;color:#bcc9e2;letter-spacing:1px}.result-stats strong{display:block;font:700 25px Barlow,sans-serif;color:#fff0cb;margin-top:5px;letter-spacing:0}.results table{border-collapse:collapse;width:100%;font-size:13px;text-align:left}.results th{color:#a5b6d6;font-size:10px;font-weight:600;padding:7px 10px}.results td{padding:10px;border-top:1px solid #7f92bc33}.results td:last-child,.results th:last-child{text-align:right}.results td small{font-size:9px;color:#afbdd9;padding-left:5px}.results tr.you{background:#ffdb5920;color:#ffe59b}.result-actions{display:flex;gap:12px;margin-top:20px}.result-actions button{flex:1;white-space:nowrap}.result-actions .primary{font-size:18px}.results .fine{font-size:10px}#cup-champion{font:800 24px Barlow Condensed,sans-serif;color:var(--gold);margin-top:15px}.graphics-error{position:absolute;top:20%;left:10%;width:80%}@media(min-width:1500px){.setup-layout{grid-template-columns:1fr 600px;max-width:1500px;width:92%;margin:auto}.setup{padding:26px}.racer-card svg{height:66px}.racer-card span{font-size:14px}.showcase{height:670px}.vehicle-label h1{font-size:76px}.course-select strong{font-size:25px}}@media(max-width:1100px){.setup-layout{grid-template-columns:1fr 490px;gap:20px}.showcase{height:610px}.vehicle-label h1{font-size:45px}.racer-number{font-size:48px}.hud-bottom{gap:17px;left:20px;right:20px}.powers button{min-width:133px;padding:8px}.position{min-width:100px}.position>span{font-size:104px}.position sup{font-size:31px}#minimap{width:150px;height:120px}.speed-box{min-width:115px}.speed-box>strong{font-size:55px}}@media(max-width:900px){header{padding:22px 5%}.logo{font-size:27px;min-width:160px}.logo span{font-size:38px}header nav{gap:4px}header nav button{font-size:11px;padding:8px}.setup-layout{grid-template-columns:1fr;max-width:600px;margin:0 auto;width:90%;gap:0}.showcase{height:220px}.showcase>.section-title{margin-top:0;font-size:13px}.vehicle-label{padding-bottom:5px}.vehicle-label h1{font-size:43px}.vehicle-label p{font-size:14px;margin:4px 0}.vehicle-label .stats,.preview-caption{display:none}.setup{margin-top:10px}.home{background:linear-gradient(#17224b44,transparent 25%,#132044bb 60%)}footer{display:block;text-align:center;font-size:9px}.hud-top{top:15px;left:16px;right:16px}.lap-box strong{font-size:32px}.lap-box>small{font-size:16px}.race-title strong{font-size:25px}.race-title small{font-size:10px;letter-spacing:1px}.standings{top:78px;gap:4px}.standings>div{width:58px}.standings svg{width:28px;height:28px}.standings span{font-size:9px}.hud-bottom{bottom:100px;gap:10px;flex-wrap:wrap}.position{min-width:85px}.position>span{font-size:90px}.position sup{font-size:25px}.powers button{min-width:112px}.powers strong{font-size:15px}.powers button>small{font-size:9px;gap:12px}.speed-box{min-width:92px}.speed-box>strong{font-size:42px}#minimap{width:125px;height:100px}.race-hint{display:none}.powers{gap:7px}}button[data-touch]{touch-action:none;-webkit-user-select:none;user-select:none}@media(max-width:600px){header{padding:20px 5% 8px}.logo{font-size:24px;min-width:145px}.logo span{font-size:34px}header nav button{font-size:10px;padding:7px}header nav button:last-child{display:none}.showcase{height:230px}.setup-layout{width:92%}.setup{padding:15px 12px}.racer-grid{gap:5px}.racer-card svg{height:47px}.racer-card span{font-size:10px}.mode-tabs button{font-size:12px;padding:8px 2px}.course-preview{width:70px}.course-select{gap:5px}.course-select strong{font-size:20px}.course-description{font-size:10px}.primary{font-size:21px}.modal-backdrop,.results-backdrop{padding:12px}.modal{padding:19px}.modal-title h2{font-size:28px}.control-grid{gap:10px}.modal p{font-size:12px}.hud-top{top:15px;left:12px;right:12px;gap:10px}.lap-box{display:block;flex-shrink:0}.lap-box>small{font-size:12px;display:block;line-height:1}.lap-box strong{font-size:29px}.lap-box em{font-size:18px}.race-title{margin-top:0}.race-title small{font-size:9px;letter-spacing:.4px;display:block;max-width:170px}.race-title strong{font-size:22px}.race-actions{gap:0}.race-actions>span{display:none}.race-actions button{padding:7px 10px;font-size:18px}.standings{top:79px;width:calc(100% - 24px);gap:3px}.standings>div{flex:1;min-width:0;padding:3px 1px}.standings>div.you{padding:2px 0}.standings b{font-size:14px;left:3px}.standings svg{width:27px;height:27px}.standings span{font-size:8px;letter-spacing:0}.hud-bottom{bottom:90px;left:12px;right:12px;gap:8px;align-items:flex-end}.position{position:absolute;bottom:119px;left:0;min-width:75px;padding-bottom:0}.position>span{font-size:83px}.position sup{font-size:24px}.position small{font-size:8px;letter-spacing:2px;margin-top:8px}.powers{width:calc(100% - 85px);gap:6px;align-items:stretch}.powers button{min-width:0;flex:1;padding:7px}.powers button>small{font-size:9px;letter-spacing:1px;gap:3px}.powers kbd{display:none}.powers strong{font-size:14px}.meter{min-width:0}.ability-power>span{font-size:9px}.speed-box{min-width:0;width:75px;margin:0;padding-bottom:5px}.speed-box>strong{font-size:39px}.speed-box>small{font-size:10px;margin-left:3px}.speed-box>span{font-size:8px;letter-spacing:0;display:block}.speed-box .meter{margin:5px 0}#minimap{position:absolute;right:-5px;bottom:106px;width:125px;height:100px}.countdown{top:32%}.countdown strong{font-size:100px}.countdown span{font-size:10px;letter-spacing:1px;padding:0 30px}.callout{top:25%;font-size:22px;max-width:100%;white-space:normal;text-align:center;width:max-content}.network-banner{font-size:16px;width:85%}.results{padding:19px}.results h1{font-size:52px}.result-stats{gap:20px;margin:15px 0;font-size:9px}.result-stats strong{font-size:19px}.results td{font-size:12px;padding:9px 7px}.result-actions{gap:8px}.result-actions button{font-size:12px;padding:12px 7px}.result-actions .primary{font-size:16px}}@media(max-height:600px)and (orientation:landscape){.hud-top{top:10px}.standings{top:65px}.standings svg{height:22px}.standings span{display:none}.hud-bottom{bottom:78px}.position>span{font-size:75px}.powers button{padding:5px 8px}.powers strong{font-size:14px}.powers button>small{margin-bottom:3px}.position small{font-size:9px}.speed-box>strong{font-size:40px}#minimap{width:120px;height:95px}.countdown{top:29%}.countdown strong{font-size:85px}.countdown span{font-size:11px;margin-top:10px}.callout{top:29%;font-size:22px}.results-backdrop{padding:10px}.results h1{font-size:38px}.result-stats{margin:10px}.results td{padding:5px}.results>p{margin:3px}.result-actions{margin-top:10px}}.touch-device{--touch-left: max(16px, env(safe-area-inset-left));--touch-right: max(16px, env(safe-area-inset-right));--touch-top: max(10px, env(safe-area-inset-top));--touch-bottom: max(12px, env(safe-area-inset-bottom));--touch-gap: clamp(8px, 1.5vmin, 14px);--touch-reach-gap: clamp(14px, 2.6vmin, 24px);--steer-travel: clamp(44px, 7.5vmin, 64px);--pedal-travel: clamp(30px, 5vmin, 44px);--steer-knob: clamp(42px, 6.5vmin, 58px);--steer-w: calc(2 * var(--steer-travel) + var(--steer-knob));--steer-h: calc(2 * var(--pedal-travel) + var(--steer-knob));--utility-size: clamp(40px, 6vmin, 52px);--utility-gap: var(--touch-gap);--pedal-size: clamp(56px, 9.5vmin, 86px);--drive-w: clamp(74px, 13vmin, 116px);--steer-stack-h: var(--steer-h);--utility-row-w: calc(2 * var(--utility-size) + var(--utility-gap));--action-core-w: calc(var(--pedal-size) + var(--touch-gap) + var(--drive-w));--action-core-h: calc(var(--drive-w) + var(--touch-reach-gap) + 2 * var(--pedal-size) + var(--touch-gap));--action-stack-w: var(--action-core-w);--action-stack-h: calc(var(--action-core-h) + var(--touch-reach-gap) + var(--utility-size));--hud-unit: clamp(6px, 1.05vmin, 11px)}@media(orientation:landscape)and (max-height:500px){.touch-device{--action-stack-w: calc(var(--utility-row-w) + var(--touch-gap) + var(--action-core-w));--action-stack-h: var(--action-core-h)}}@media(max-width:359px){.touch-device{--pedal-size: 50px;--drive-w: 66px;--utility-size: 38px;--utility-gap: 5px}}body.racing #world,body.racing .hud{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}.touch-controls{display:none}.touch-device .touch-controls{display:block;position:absolute;inset:auto var(--touch-right) var(--touch-bottom) var(--touch-left);height:max(var(--steer-stack-h),var(--action-stack-h));pointer-events:none;font-family:Barlow Condensed,sans-serif}.touch-controls button{pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.touch-controls button{min-width:0;padding:0;border:2px solid #bce4ffbb;border-radius:50%;background:#27496dda;color:#e0f3ff;box-shadow:0 3px 10px #0a183b66;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;text-shadow:1px 1px #152044}.touch-controls button svg{width:46%;height:46%;flex-shrink:0}.touch-controls button small{font-size:clamp(9px,1.5vmin,13px);font-weight:700;letter-spacing:.5px;line-height:1.1;max-width:92%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.touch-controls button.pressed,.steering-pad.pressed{border-color:#ffe594;box-shadow:inset 0 0 0 3px #ffdc6666,0 0 14px #ffe59466}.steering-side{position:absolute;left:0;bottom:0;width:var(--steer-w);height:var(--steer-stack-h)}.steering-zone{position:absolute;left:calc(var(--touch-left) * -1);bottom:calc(var(--touch-bottom) * -1);width:min(50vw,calc(100vw - var(--touch-right) - var(--action-stack-w) - 2 * var(--touch-gap)));height:calc(100dvh - var(--hud-standings-bottom));padding:0 0 var(--touch-bottom) var(--touch-left);pointer-events:auto;touch-action:none}.steering-pad{position:absolute;left:var(--pad-x, calc(var(--touch-left) + var(--steer-w) / 2));top:var(--pad-y, calc(100% - var(--touch-bottom) - var(--steer-h) / 2));width:var(--steer-w);height:var(--steer-h);transform:translate(-50%,-50%);border:2px solid #d5e7f6aa;border-radius:calc(var(--steer-knob) / 2 + 8px);background:linear-gradient(#5fd38a66,transparent 34% 66%,#ff6f8266),linear-gradient(90deg,#a4d9fc33,#172b4f99 30% 70%,#a4d9fc33);box-shadow:0 3px 12px #0a183b66;color:#d1e9ff;font-size:calc(var(--steer-knob) * .5);line-height:1;pointer-events:none}.steer-arrow{position:absolute;opacity:.75}.steer-arrow.left{left:7%;top:50%;transform:translateY(-55%)}.steer-arrow.right{right:7%;top:50%;transform:translateY(-55%)}.steer-arrow.up{left:50%;top:3%;transform:translate(-50%) rotate(90deg);color:#b9f5cb}.steer-arrow.down{left:50%;bottom:3%;transform:translate(-50%) rotate(-90deg);color:#ffc1c9}.steering-pad[data-pedal=throttle] .steer-arrow.up,.steering-pad[data-pedal=brake] .steer-arrow.down{opacity:1;color:#ffe594}.steer-knob{position:absolute;left:50%;top:50%;width:var(--steer-knob);aspect-ratio:1;border:2px solid #d1e9ff;border-radius:50%;background:radial-gradient(circle at 40% 35%,#a9cdf0,#5d8bbb);box-shadow:0 3px 12px #0a183b88;transform:translate(calc(-50% + var(--steer-offset, 0) * var(--steer-travel)),calc(-50% + var(--pedal-offset, 0) * var(--pedal-travel)))}.steering-pad[data-pedal=throttle] .steer-knob{background:radial-gradient(circle at 40% 35%,#c8f5d6,#3f9a62)}.steering-pad[data-pedal=brake] .steer-knob{background:radial-gradient(circle at 40% 35%,#ffd0d6,#a83e4e)}.steering-pad.pressed .steer-knob{border-color:#ffe594}.touch-controls>.action-pad{position:absolute;right:0;bottom:0;display:grid;grid-template-columns:var(--pedal-size) var(--drive-w);grid-template-rows:var(--utility-size) calc(var(--touch-reach-gap) - var(--touch-gap)) var(--drive-w) calc(var(--touch-reach-gap) - var(--touch-gap)) var(--pedal-size) var(--pedal-size);grid-template-areas:"utility utility" ". ." "ability item" ". ." "drift drive" "brake drive";gap:var(--touch-gap);place-items:center}@media(orientation:landscape)and (max-height:500px){.touch-controls>.action-pad{grid-template-columns:var(--utility-row-w) var(--pedal-size) var(--drive-w);grid-template-rows:var(--drive-w) calc(var(--touch-reach-gap) - var(--touch-gap)) var(--pedal-size) var(--pedal-size);grid-template-areas:"utility ability item" ". . ." ". drift drive" ". brake drive"}.touch-controls .utility-controls{align-self:end}}.touch-controls .utility-controls{grid-area:utility;justify-self:end;display:flex;gap:var(--utility-gap)}.touch-controls .utility-controls button{width:var(--utility-size);height:var(--utility-size);border-width:1px;background:#1d3354cc}.touch-controls .utility-controls svg{width:52%;height:52%}.touch-controls .pedals{display:contents}.touch-controls .mobile-ability{grid-area:ability;align-self:end;width:var(--pedal-size);height:var(--pedal-size);background:conic-gradient(#4c719c var(--charge, 0%),#20344fe6 0)}.touch-controls .mobile-ability.ready{border-color:#ffe594}.touch-controls .mobile-ability .ability-icon{width:58%;height:58%}#mobile-ability-state{font-size:clamp(9px,1.4vmin,12px);font-weight:700}.touch-controls .mobile-item{grid-area:item;align-self:end;width:var(--pedal-size);height:var(--pedal-size)}.magic-stone{position:relative;width:58%;aspect-ratio:1;flex-shrink:0;pointer-events:none}.stone-ball{position:absolute;inset:0;border-radius:50%;overflow:hidden}.stone-ball img{display:block;width:100%;height:100%;-webkit-user-drag:none}.stone-band{position:absolute;left:0;right:0;top:0;height:50%;opacity:0;background:linear-gradient(#fff0,#ffffffd9,#fff0);mix-blend-mode:screen}.stone-flash,.stone-ring{position:absolute;inset:0;border-radius:50%;opacity:0}.stone-flash{background:radial-gradient(#fff 62%,#fff0 71%)}.stone-ring{border:3px solid #fff6c4;box-shadow:0 0 6px #fff6c499}.magic-label{max-width:90%}.touch-controls .mobile-item.empty{background:#1d3354b3;border-color:#bce4ff66;color:#bcd3e8}.mobile-item.empty .stone-ball{border:2px dashed #bce4ff80;background:radial-gradient(#0b183580,#0b183500 70%)}.mobile-item.empty .stone-ball img{visibility:hidden}.touch-controls .mobile-drift{grid-area:drift;width:var(--pedal-size);height:var(--pedal-size);background:#7a5524dd;border-color:#ffd68fcc}.touch-controls .mobile-brake{grid-area:brake;width:var(--pedal-size);height:var(--pedal-size);background:#7a2e3add;border-color:#ffb3bccc}.touch-controls .mobile-drive{grid-area:drive;width:var(--drive-w);height:100%;border-radius:calc(var(--drive-w) / 2);background:linear-gradient(#3f9a62,#24653fe6);border-color:#c6f5d2}.touch-controls .mobile-drive svg{width:50%;height:auto}.touch-controls .mobile-drive small{font-size:clamp(12px,2vmin,17px);letter-spacing:1px}.touch-controls .mobile-drive .auto-label{display:none}.auto-throttle .touch-controls .mobile-drive{background:linear-gradient(#56b37a,#2f7d4fe6);box-shadow:inset 0 0 0 3px #c6f5d266}.auto-throttle .touch-controls .mobile-drive .drive-label{display:none}.auto-throttle .touch-controls .mobile-drive .auto-label{display:block}.touch-controls .mobile-drift.pressed{background-color:#a8742e}.touch-controls .mobile-brake.pressed{background-color:#a83e4e}.touch-controls .mobile-drive.pressed{background:linear-gradient(#5cc283,#2f8a53)}.touch-controls .mobile-ability.pressed,.touch-controls .mobile-item.pressed,.touch-controls .utility-controls button.pressed{background-color:#5377a1}.touch-device{--hud-top-band: max(50px, calc(var(--hud-unit) * 5.6 + 14px));--hud-standings-bottom: calc(var(--touch-top) + var(--hud-top-band) + var(--hud-unit) * 6.2 + 12px);--readout-left-bottom: calc(var(--touch-bottom) + var(--steer-stack-h) + var(--touch-reach-gap));--readout-right-bottom: calc(var(--touch-bottom) + var(--action-stack-h) + 1.5 * var(--touch-reach-gap))}.touch-device .powers,.touch-device .race-hint{display:none}.touch-device .hud-top{top:var(--touch-top);left:var(--touch-left);right:var(--touch-right);gap:10px}.touch-device .lap-box>small{font-size:calc(var(--hud-unit) * 2)}.touch-device .lap-box strong{font-size:calc(var(--hud-unit) * 4.4)}.touch-device .lap-box em{font-size:calc(var(--hud-unit) * 2.6)}.touch-device .race-title small{font-size:max(9px,calc(var(--hud-unit) * 1.3))}.touch-device .race-title strong{font-size:calc(var(--hud-unit) * 3.3)}.touch-device .race-actions>span{font-size:max(10px,calc(var(--hud-unit) * 1.2))}.touch-device .race-actions button{min-width:44px;min-height:44px;font-size:max(18px,calc(var(--hud-unit) * 2.4))}.touch-device .standings{top:calc(var(--touch-top) + var(--hud-top-band));gap:max(3px,calc(var(--hud-unit) * .5))}.touch-device .standings>div{width:calc(var(--hud-unit) * 7.4);background:#172653e8;border-color:#839ac1aa}.touch-device .standings svg{width:calc(var(--hud-unit) * 3.6);height:calc(var(--hud-unit) * 3.6)}.touch-device .standings b{font-size:max(13px,calc(var(--hud-unit) * 1.9))}.touch-device .standings span{font-size:max(8px,calc(var(--hud-unit) * 1.1))}.touch-device .hud-bottom{display:contents}.touch-device .position{position:absolute;left:var(--touch-left);bottom:var(--readout-left-bottom);min-width:0;padding:0}.touch-device .position>span{font-size:calc(var(--hud-unit) * 8)}.touch-device .position sup{font-size:calc(var(--hud-unit) * 2.8)}.touch-device .position small{font-size:max(8px,calc(var(--hud-unit) * 1.1));letter-spacing:2px;margin-top:calc(var(--hud-unit) * .8)}.touch-device .speed-box{position:absolute;right:var(--touch-right);bottom:var(--readout-right-bottom);width:calc(var(--hud-unit) * 12);min-width:0;margin:0;padding:0}.touch-device .speed-box>strong{font-size:calc(var(--hud-unit) * 5.2)}.touch-device .speed-box>small{font-size:max(9px,calc(var(--hud-unit) * 1.4))}.touch-device .speed-box>span{display:block;font-size:max(8px,calc(var(--hud-unit) * 1.1))}.touch-device .meter{min-width:0;margin:calc(var(--hud-unit) * .6) 0}.touch-device #minimap{position:absolute;left:var(--touch-left);bottom:calc(var(--readout-left-bottom) + var(--hud-unit) * 11);width:calc(var(--hud-unit) * 13);height:calc(var(--hud-unit) * 10.3);opacity:.85}.touch-device .countdown{top:calc(var(--hud-standings-bottom) + var(--hud-unit) * 2)}.touch-device .countdown strong{font-size:min(calc(var(--hud-unit) * 14),17dvh)}.touch-device .countdown span{font-size:max(10px,calc(var(--hud-unit) * 1.6));padding:0 var(--touch-left)}.callout.pop{animation:callout-pop .32s cubic-bezier(.2,1.6,.4,1)}.callout.bad{color:#ffb3a0;background:linear-gradient(90deg,transparent,#6a2338d9 15%,#6a2338d9 85%,transparent)}.callout.good{color:#fff2a8}.callout.info{color:#e6f0ff}.callout.status{padding:5px 18px;font-size:22px;font-style:italic;color:#ffe17d;background:linear-gradient(90deg,transparent,#1b244ec0 20%,#1b244ec0 80%,transparent)}@keyframes callout-pop{0%{transform:translate(-50%) scale(1.35);opacity:0}to{transform:translate(-50%) scale(1);opacity:1}}.standings .portrait{display:block;transform-origin:50% 60%}.standings>div.casting .portrait{animation:portrait-bob .35s ease-in-out 2}.standings>div.crashed .portrait{animation:portrait-spin .5s linear infinite}.standings>div.crashed{background:#5a2140b8}.standings>div.finished{background:linear-gradient(#5d5531c0,#2f2f4bc0)}@keyframes portrait-bob{50%{transform:translateY(-9px)}}@keyframes portrait-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.standings>div.crashed .portrait,.standings>div.casting .portrait,.callout.pop{animation:none}}body.finishing .hud-bottom,body.finishing .race-hint,body.finishing .touch-controls,body.finishing .callout{display:none}body.finishing .countdown strong{animation:finish-place .5s cubic-bezier(.2,1.5,.4,1)}@keyframes finish-place{0%{transform:scale(2.2);opacity:0}}body.finishing .countdown{top:21%}body.podium .hud-top,body.podium .standings,body.podium .countdown{display:none}.touch-device .callout,body.finishing.touch-device .countdown{top:calc(var(--hud-standings-bottom) + var(--hud-unit) * 2)}.ability-power strong{display:flex;align-items:center;gap:8px}.ability-power .ability-icon{width:30px;height:30px;flex-shrink:0;filter:drop-shadow(1px 2px 0 #0d153f88)}[data-touch=ability]:not(.ready) .ability-icon{filter:saturate(.45) brightness(.8)}.ability-picker{padding:10px 0 6px}.ability-picker-label{display:block;font-size:11px;font-weight:700;color:#bbc8e2;letter-spacing:1px;margin-bottom:6px}.ability-options{display:grid;grid-template-columns:repeat(9,1fr);gap:5px}.ability-option{min-width:0;padding:5px 2px 4px;display:flex;flex-direction:column;align-items:center;gap:3px;background:linear-gradient(#4c6096,#26366a)}.ability-option .ability-icon{width:34px;height:34px;filter:drop-shadow(1px 2px 0 #182b42)}.ability-option span{font:600 11px/1.1 Barlow Condensed,sans-serif;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.ability-help{font-size:11px;color:#c7cfe4;line-height:1.5;margin:8px 0 0;min-height:33px}.ability-help strong{color:#ffe594;font:700 13px Barlow Condensed,sans-serif;letter-spacing:.5px;margin-right:4px}@media(min-width:1500px){.ability-option .ability-icon{width:40px;height:40px}.ability-option span,.ability-help{font-size:12px}}@media(max-width:600px){.ability-options{grid-template-columns:repeat(5,1fr)}.ability-help{font-size:10px}}.online-name{margin:12px 0 14px}.entry-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}.entry-card{display:flex;flex-direction:column;gap:10px;min-width:0;padding:16px;background:#15214299;border:1px solid #7083b066;border-radius:6px}.entry-card h2{margin:0;font-size:26px;line-height:1;color:var(--gold);text-shadow:1px 2px #172043}.entry-card p{margin:0;font-size:12px;line-height:1.45;color:#c7cee0}.entry-card #join-code{font:800 20px Barlow Condensed,sans-serif;letter-spacing:4px;text-align:center;text-transform:uppercase}.entry-card #join-code::placeholder{font-size:15px;letter-spacing:2px}.entry-card #join-code[aria-invalid=true]{border-color:#ff8a78}.entry-card .entry-error{padding:7px 9px;border-left:3px solid #ff8a78;background:#4a1f3c99;color:#ffd3c9;font-size:12px}.entry-card .entry-status{color:#ffe7a8;font-weight:700}.entry-button{margin-top:auto;width:100%;padding:11px 12px;font:800 20px Barlow Condensed,sans-serif;letter-spacing:1px}.room{display:flex;flex-direction:column}.room-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;margin-bottom:12px;background:#132044;border:1px solid #6f80a9;border-radius:5px}.room-head .section-title{font-size:13px}.room-code-label{display:flex;align-items:baseline;gap:10px;margin-top:2px;font-size:10px;font-weight:700;letter-spacing:2px;color:#bbc8e2}.room-code-label strong{font:800 34px/1 Barlow Condensed,sans-serif;letter-spacing:6px;color:var(--gold)}.room-head button{white-space:nowrap}.room .racer-grid{grid-template-columns:repeat(5,1fr)}.room .racer-card svg{height:44px}.room .racer-card span{overflow:hidden;text-overflow:ellipsis}.room .ability-help{min-height:0;margin-top:6px}.room-name{margin-bottom:10px}.roster{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:8px 0 14px;padding:0;list-style:none}.roster li{display:flex;align-items:center;gap:6px;min-width:0;padding:5px 6px;background:#19254988;border:1px solid transparent;border-radius:4px}.roster li.you{border-color:#ffdc6699;background:#ffdb5914}.roster li.open{opacity:.55}.roster li.absent{opacity:.7}.roster svg{width:36px;height:36px;flex-shrink:0}.roster span{min-width:0}.roster strong,.roster small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.roster strong{font-size:13px}.roster em{font-style:normal;font-size:9px;letter-spacing:1px;color:var(--gold)}.roster small{font-size:9px;color:#b5c4e0}.roster .state{color:#ffe7a8}.roster li.absent .state{color:#ffb4a8}.room-fields{flex-wrap:wrap}.room-actions{display:flex;gap:10px;align-items:stretch}.room-actions>button:first-child{flex-shrink:0;white-space:nowrap}.room-actions>.primary,.room-actions>.room-wait{flex:1}.room-wait{margin:0;padding:13px;border:1px dashed #8fa0d099;border-radius:5px;text-align:center;font-weight:700;color:#ffe7a8}@media(max-width:600px){.room .racer-grid{grid-template-columns:repeat(4,1fr)}.room-fields>label:first-child{flex-basis:100%}.room-fields>label:nth-child(3){max-width:none}.room-actions{flex-direction:column-reverse}.entry-card{padding:13px}.entry-card h2{font-size:23px}.roster{grid-template-columns:1fr 1fr}.room-head{padding:9px 10px}.room-code-label strong{font-size:28px;letter-spacing:4px}}@media(max-width:440px){.entry-cards{grid-template-columns:1fr}}@media(max-width:900px)and (orientation:landscape){.showcase:empty{height:40px}}
