@font-face{font-family:system;src:local('Arial')}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#11191b;color:#f4f7ee;font-family:Arial,'Apple SD Gothic Neo',sans-serif}body{min-height:100dvh}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #d7ff59;outline-offset:4px}a{color:inherit;text-decoration:none}button{color:inherit}#world{position:fixed;inset:0;width:100%;height:100%;display:block}#shade{position:fixed;inset:0;background:linear-gradient(90deg,#11191bed 0%,#11191b5a 45%,#11191b1a 70%),linear-gradient(0deg,#11191b 0%,transparent 38%);pointer-events:none}header{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:28px 4vw;border-bottom:1px solid #ffffff18;gap:24px}.brand{font-size:30px;font-weight:900;letter-spacing:-1.3px}.brand span{font-size:13px;color:#c9d0c7;letter-spacing:2px;margin-left:15px}.header-actions{display:flex;align-items:center;gap:24px;font-size:14px;color:#b8c4c0}.icon,.text-button{border:0;background:none;padding:8px 0;font-size:14px}.icon{border:1px solid #fff3;border-radius:30px;padding:8px 12px}#home{position:relative;min-height:calc(100dvh - 93px);padding:7vh 5vw 30px;display:grid;grid-template-columns:1fr 355px;align-items:center;gap:32px}.title{align-self:start}.eyebrow{font-size:12px;font-weight:bold;letter-spacing:2px;display:flex;align-items:center;gap:8px;color:#d2dec7}.eyebrow i{display:block;width:8px;height:8px;background:#d5ff57}h1{font-size:clamp(66px,8.7vw,140px);line-height:.9;letter-spacing:-.065em;margin:27px 0 25px;font-weight:950}h1 em{color:#d5ff57;font-style:normal}.tagline{font-size:20px;line-height:1.6;color:#d1d9d2}.pills{display:flex;gap:8px;margin-top:26px}.pills span{font-size:13px;border:1px solid #ffffff38;border-radius:30px;padding:8px 12px}.panel{background:#192225ed;border:1px solid #ffffff20;border-radius:18px;box-shadow:0 16px 45px #0003;backdrop-filter:blur(16px)}.entry{padding:26px;align-self:center;margin-top:10vh}.panel-top{font-size:12px;letter-spacing:1.4px;color:#a0b4ac;display:flex;align-items:center;justify-content:space-between}h2{font-size:24px;line-height:1.4;letter-spacing:-1px;margin:20px 0 26px}label{display:block;font-size:14px;margin:0 0 9px;color:#d0d9d4}input{width:100%;border:1px solid #ffffff25;background:#10191c;color:#fff;border-radius:8px;min-width:0;padding:14px;font-size:16px}input::placeholder{color:#81928b}.primary{display:flex;align-items:center;justify-content:space-between;border:0;border-radius:8px;padding:16px 18px;background:#d5ff57;color:#202919;font-weight:800;font-size:16px;width:100%;margin-top:14px}.secondary{background:#ffffff0b;border:1px solid #ffffff28;border-radius:8px;padding:12px 14px;font-size:14px;white-space:nowrap}.secondary:hover{background:#fff2}.primary:hover{background:#e4ff91}.divider{display:flex;align-items:center;gap:12px;margin:25px 0 16px;font-size:12px;color:#81928b}.divider:before,.divider:after{content:'';flex:1;height:1px;background:#ffffff15}#joinForm{display:flex;gap:8px}#roomCode{text-transform:uppercase}.hint{font-size:13px;color:#9cafa6;line-height:1.7;margin:17px 0 0}#homeError{color:#ffb1a1;font-size:14px}.home-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ffffff20;padding-top:20px;grid-column:1/-1;align-self:end;font-size:13px;letter-spacing:1px}.home-footer b{margin:0 20px}.muted{color:#82978e}.overlay{position:relative;z-index:4;width:min(720px,92%);margin:35px auto;padding:30px}.room-share{display:flex;align-items:center;justify-content:space-between;margin:0 0 26px;padding:18px;background:#0e171a;border-radius:12px}.room-share span{font-size:12px}.room-share strong{display:block;font-size:32px;letter-spacing:6px;color:#d5ff57}.teams{display:grid;grid-template-columns:1fr 1fr;gap:20px}.team{padding:20px;border-radius:12px;background:#ffffff06;border-top:3px solid #c8fd63}.team.purple{border-color:#b4a0ff}.team h3{font-size:13px;letter-spacing:1px;color:#c8fd63;margin-top:0}.purple h3{color:#b4a0ff}.team ul{list-style:none;padding:0;min-height:130px}.team li{font-size:16px;margin:14px 0;display:flex;justify-content:space-between;gap:8px}.team li span{font-size:12px;color:#99ada5}.team button{width:100%}[hidden]{display:none!important}.race-top{position:fixed;top:110px;left:3vw;right:3vw;display:flex;justify-content:space-between;align-items:start;pointer-events:none}.position,.clock{padding:14px 20px;display:flex;flex-direction:column;gap:5px}.position b{font-size:38px}.position b span{font-size:16px;color:#b0c0b8}.position>span,.clock>span{font-size:12px;letter-spacing:1px;color:#c0ccc6}.clock{text-align:center}.clock b{font-size:34px;font-variant-numeric:tabular-nums}.map{padding:10px;display:flex;flex-direction:column;align-items:center}.map canvas{width:180px;height:110px}.map span{font-size:12px}.race-bottom{position:fixed;bottom:40px;left:4vw;right:4vw;display:flex;justify-content:space-between;align-items:end;gap:20px}.speed b{font-size:64px;font-style:italic;letter-spacing:-3px}.speed span{font-size:12px;color:#c2d3cc;margin-left:10px}.speed small{display:block;font-size:12px;letter-spacing:2px;color:#d5ff57}.team-gauge{padding:14px 20px;width:240px}.team-gauge>span{font-size:12px;letter-spacing:2px}progress{display:block;width:100%;height:8px;margin:10px 0 5px;accent-color:#d5ff57}.inventory{display:flex;flex-wrap:wrap;gap:8px;width:184px}.inventory small{font-size:12px;width:100%;color:#cad5cf}.item{width:84px;height:75px;border:1px solid #fff5;background:#132323e8;border-radius:14px;font-size:32px}.item.selected{border:2px solid #d5ff57;box-shadow:0 0 20px #d5ff5720}.item small{display:block;font-size:12px}.touch{display:none}#event{position:fixed;top:28%;left:50%;transform:translateX(-50%);padding:15px 24px;border:1px solid #fff3;background:#312b50eb;border-radius:12px;font-size:22px;text-align:center;width:max-content;max-width:85%}#countdown{position:fixed;top:40%;left:50%;transform:translateX(-50%);font-size:110px;font-weight:900;color:#d5ff57}#effect{position:fixed;top:50%;left:50%;transform:translateX(-50%);padding:16px;background:#77392ccc;border-radius:8px;font-size:20px;pointer-events:none}#upgrades{position:fixed;top:38%;left:3vw;display:flex;flex-direction:column;gap:10px;padding:18px;max-width:240px}#upgrades b{font-size:14px}#scores{display:flex;gap:16px;margin:15px 0 25px}#scores>div{background:#0e171a;flex:1;padding:20px;border-radius:12px;font-size:14px}#scores b{display:block;font-size:40px;margin-top:10px}.result-scroll{max-height:310px;overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px;text-align:left}td,th{padding:12px 8px;border-bottom:1px solid #fff2}th{color:#a8bdb3;font-size:12px}#toast{position:fixed;z-index:20;bottom:22px;left:50%;transform:translateX(-50%);padding:14px 22px;background:#d5ff57;color:#18201a;box-shadow:0 4px 30px #0006;border-radius:9px;max-width:90%;text-align:center}dialog{background:#1a2528;color:#eff7ee;border:1px solid #ffffff40;border-radius:18px;padding:28px;max-width:520px;line-height:1.8}dialog::backdrop{background:#0008}dialog button{float:right}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}body.racing #shade{background:linear-gradient(0deg,#071115aa,transparent 25%)}body.racing header{background:#0b131b88;padding-top:14px;padding-bottom:14px}body.racing .header-actions>span{display:none}
@media(max-width:800px){#home{grid-template-columns:1fr 320px;gap:20px;padding:5vh 4vw 24px}h1{font-size:76px}.brand span{font-size:11px}.header-actions{gap:12px}.header-actions>span{display:none}.entry{padding:22px}.tagline{font-size:17px}.pills{flex-wrap:wrap}.pills span{font-size:12px}.race-top{top:86px}.map canvas{width:140px;height:80px}.map span{display:none}}
@media(max-width:650px) and (orientation:portrait){header{padding:18px 5vw}.brand{font-size:26px}.brand span{display:block;margin:4px 0 0;font-size:10px}.header-actions{font-size:12px}#home{display:block;padding:32px 6vw 22px}h1{font-size:82px;max-width:400px}.eyebrow{font-size:10px}.tagline{font-size:17px;margin-top:0}.entry{margin:30px 0 28px}.home-footer{font-size:11px}.home-footer b{margin:0 8px}.home-footer .muted{display:none}.overlay{padding:20px;margin:20px auto}.teams{gap:10px}.team{padding:13px}.team li{font-size:14px}.room-share{gap:10px;padding:14px}.room-share strong{font-size:25px;letter-spacing:3px}.race-top{top:93px;gap:8px}.map{display:none}.position b{font-size:30px}.clock b{font-size:28px}.race-bottom{bottom:145px;flex-wrap:wrap;gap:10px}.team-gauge{width:170px;padding:12px}.speed b{font-size:44px}.inventory{width:150px}.item{width:65px;height:58px;font-size:24px}.inventory small{display:none}#upgrades{top:35%;max-width:185px}#event{top:24%;font-size:17px}}
@media(pointer:coarse){.touch{display:flex;justify-content:space-between;gap:12px;position:fixed;bottom:max(16px,env(safe-area-inset-bottom));left:3vw;right:3vw;user-select:none}.touch>div{display:flex;gap:8px;align-items:end}.touch button{background:#15272bcc;border:1px solid #ffffff50;border-radius:16px;min-height:66px;min-width:60px;font-size:14px;touch-action:none}.touch button:active{background:#d5ff57;color:#172019}.race-bottom{bottom:100px}}
@media(max-height:550px) and (orientation:landscape){header{padding:12px 3vw}.brand{font-size:22px}.race-top{top:68px}.position,.clock{padding:8px 14px}.position b,.clock b{font-size:24px}.map canvas{width:120px;height:70px}.race-bottom{bottom:94px}.speed b{font-size:36px}.item{height:50px;width:60px;font-size:22px}.inventory{width:130px}.inventory small{display:none}.team-gauge{padding:10px;width:190px}.overlay{margin:15px auto}.team ul{min-height:0}#home{padding-top:25px}h1{font-size:72px}.entry{margin-top:0}.home-footer{margin-top:15px}#upgrades{top:30%;left:30%;padding:10px;max-width:250px}.touch button{min-height:55px}.tagline{font-size:16px}.title .pills{margin-top:15px}}

/* Invitation actions stay distinct, with joining first for invite links. */
.entry{display:flex;flex-direction:column}.entry h2{margin-bottom:20px}#joinForm{flex-wrap:wrap;margin-top:14px}#joinForm input{flex:1 1 100%}#joinRace{width:100%;margin-top:0;justify-content:center}.new-race{margin-top:16px;width:100%}.entry.invited #create{order:3}.entry.invited .hint:last-of-type{order:4}.entry.invited #homeError{order:5}#inviteHint{margin-top:12px}.item small{font-size:10px;line-height:1.1}.inventory .item{padding:4px}.panel{backdrop-filter:none}.touch button{min-width:52px}body.racing #world{touch-action:none}

.bug-picker{border:0;padding:0;margin:16px 0 6px}.bug-picker legend{font-size:13px;margin-bottom:9px;color:#d9e9be}#bugChoices{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.bug-choice{background:#253f32;border:1px solid #57725b;border-radius:8px;padding:8px 3px;font-size:10px;line-height:1.4;min-height:48px}.bug-choice[aria-pressed=true]{background:#d5ff57;color:#193125;border-color:#d5ff57}.bug-picker small{font-size:10px;color:#afc6b4;display:block;margin-top:6px}#routeHint{position:fixed;z-index:5;top:29%;left:50%;transform:translateX(-50%);background:#fcf4d8;color:#3a3521;padding:12px 18px;border-radius:30px;font-weight:bold;font-size:15px;text-align:center;max-width:90%;box-shadow:0 4px 15px #0002}.entry{margin-top:0}.title{position:sticky;top:30px}.panel{background:#17392eea}.primary{background:#d5ff57}#shade{background:linear-gradient(90deg,#103222dc,transparent 75%),linear-gradient(0deg,#153d29b0,transparent 50%)}@media(max-width:650px){.title{position:static}#routeHint{top:26%;font-size:12px;width:90%}.bug-choice{min-height:50px}}

.solo-button{margin-top:14px;white-space:normal}.entry.invited .solo-button{order:4}.entry.invited #create{order:3}.entry.invited .hint:last-of-type{order:5}.entry.invited #homeError{order:6}

header{background:#143628d9}.bug-choice{font-size:11px}.entry .solo-button{background:#f4e5bc;color:#23432b;border:0;font-weight:bold;padding:14px}.entry.invited .solo-button{order:4}.entry.invited #create{order:3}

.view-label{margin:0;font-size:12px}#viewMode{font:inherit;font-size:12px;color:#f4f7ee;background:#17392e;border:1px solid #ffffff60;border-radius:20px;padding:8px;max-width:120px}#viewMode:focus-visible{outline:3px solid #d5ff57}.header-actions{gap:12px}@media(max-width:650px){.view-label{display:none}.header-actions{gap:7px}.header-actions>a{font-size:10px}#viewMode{max-width:104px;padding:7px}.icon{font-size:11px;padding:7px}}

#exitGame{color:#ffe1c4;border-color:#edbb84}@media(max-width:800px){body.racing .brand span{display:none}body.racing .header-actions>a{display:none}body.racing header{gap:8px}body.racing .header-actions{gap:6px}}
/* The garage and world selection */
#home{grid-template-columns:minmax(0,1fr) 380px;align-items:start;padding-top:38px}.title{position:static}.title h1{font-size:clamp(42px,5vw,76px);line-height:.9;margin:18px 0}.title h1 br{display:none}.title h1 em{margin-left:.18em}.title .tagline{font-size:18px;margin:12px 0}.title>.hint{max-width:560px;font-size:12px;line-height:1.6}.showroom{position:relative;overflow:hidden;border:1px solid #d4eecc33;border-radius:24px;background:radial-gradient(ellipse at 50% 25%,#52726c88,#102824dd 72%);margin:20px 0 14px;box-shadow:0 25px 60px #0003}.showroom-top{display:flex;justify-content:space-between;position:absolute;left:20px;right:20px;top:18px;font-size:10px;letter-spacing:1.8px;color:#c4dace;pointer-events:none}#showroom{display:block;width:100%;height:330px;touch-action:pan-y;cursor:grab}#showroom:active{cursor:grabbing}.showroom-caption{display:flex;justify-content:space-between;gap:14px;padding:0 22px 22px;align-items:end}.showroom-caption strong{display:block;font-size:26px;letter-spacing:-1px}.showroom-caption span{display:block;font-size:11px;color:#bfcec4;line-height:1.6}.showroom-caption>span{white-space:nowrap}.entry{width:100%}.bug-choice{min-height:60px;font-size:11px;transition:transform .15s,background .15s}.bug-choice:hover{transform:translateY(-2px)}.bug-choice[aria-pressed=true]{box-shadow:0 0 18px #d5ff5740}.map-section{grid-column:1/-1;margin-top:16px}.map-heading h2{font-size:30px;margin:10px 0}.map-heading p{color:#c8d4c9;font-size:14px}.map-choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:22px}.map-card{border:1px solid #ffffff30;border-radius:18px;background:#17352eea;text-align:left;padding:0 16px 18px;overflow:hidden;transition:transform .2s,border-color .2s;min-width:0}.map-card:hover{transform:translateY(-4px)}.map-card[aria-pressed=true]{border-color:#d5ff57;box-shadow:0 0 0 2px #d5ff5740}.map-art{display:flex;height:110px;align-items:center;justify-content:center;font-size:62px;margin:0 -16px 15px;background:radial-gradient(ellipse,#a0c56580,#244d36)}.map-jungle .map-art{background:radial-gradient(ellipse,#49b876,#063f37)}.map-antarctica .map-art{background:radial-gradient(ellipse,#e4fcff,#4b9fc9)}.map-desert .map-art{background:radial-gradient(ellipse,#ffe0a2,#c8843d)}.map-chocolate .map-art{background:radial-gradient(ellipse,#b88562,#542920)}.map-lollipop .map-art{background:radial-gradient(ellipse,#ffdfef,#be80c6)}.map-banana .map-art{background:radial-gradient(ellipse,#fff59a,#85982d)}.map-card strong{display:block;font-size:17px}.map-level{display:block;font-size:10px;letter-spacing:.7px;color:#d5ff87;margin:9px 0}.map-card small{display:block;color:#c1d0c5;line-height:1.5;font-size:12px;min-height:54px}#lobbyMap{display:block;width:100%;padding:12px;margin:8px 0;background:#17362e;color:#f6f7ef;border:1px solid #739075;border-radius:10px;font:inherit}.home-footer{grid-column:1/-1}#viewMode{cursor:pointer}
@media(max-width:900px){#home{grid-template-columns:minmax(0,1fr) 340px;gap:22px}.map-choices{grid-template-columns:repeat(3,minmax(0,1fr))}#showroom{height:290px}.showroom-caption{flex-direction:column;align-items:start;gap:4px}.showroom-caption strong{font-size:23px}}
@media(max-width:650px){#home{grid-template-columns:1fr;padding:24px 18px}.title h1{font-size:49px}.entry{max-width:none}#showroom{height:300px}.map-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.map-card{padding:0 12px 14px}.map-art{margin:0 -12px 12px;height:90px;font-size:50px}.map-card strong{font-size:15px}.map-level{font-size:8px;letter-spacing:0}.map-card small{font-size:11px}.showroom-caption{flex-direction:row;align-items:end}.showroom-caption>span{font-size:9px}}

.world-links{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:12px 20px;font-size:12px;color:#c6d6c9;padding:18px 0;border-top:1px solid #ffffff20}.world-links a:hover{text-decoration:underline}.world-intro{grid-column:1/-1;padding:20px 24px;border:1px solid #d5ff5740;border-radius:18px;background:#14382be8}.world-intro h2{font-size:28px;margin:12px 0}.world-intro a{font-size:12px;color:#d5ff87}.world-intro p{font-size:14px;line-height:1.6;max-width:850px}
