:root{color:#22242a;font-synthesis:none;--ink:#22242a;--paper:#fffdf5;--red:#ff5d73;--blue:#47f;--green:#5ee18b;--shadow:0 16px 50px #29251d1f;background:#f7f2e6;font-family:DM Sans,system-ui,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 10% 10%,#fff 0,#0000 28%),linear-gradient(140deg,#f9f4e8,#eee8d9);min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{border:2px solid var(--ink);color:var(--ink);cursor:pointer;box-shadow:3px 3px 0 var(--ink);background:#fffdf5;border-radius:12px;padding:.75rem 1.1rem;font-weight:800;transition:transform .14s,box-shadow .14s}button:hover:not(:disabled){box-shadow:5px 5px 0 var(--ink);transform:translate(-1px,-1px)}button:active:not(:disabled){box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}button:disabled{opacity:.46;cursor:not-allowed}.primary{background:var(--red);color:#fff}.welcome{place-items:center;min-height:100vh;padding:24px;display:grid}.hero-card,.center-card{border:2px solid var(--ink);width:min(560px,100%);box-shadow:8px 8px 0 var(--ink),var(--shadow);text-align:center;background:#fffdf5f0;border-radius:28px;padding:clamp(24px,5vw,48px)}.logo-mark,.spinner{color:var(--red);font:700 4rem/.6 Fredoka}.eyebrow{letter-spacing:.18em;color:#73706a;font-size:.74rem;font-weight:800}.hero-card h1,.center-card h2,.section-heading h2,.waiting-screen h2{margin:.3em 0;font-family:Fredoka,sans-serif;font-size:clamp(2rem,5vw,3.5rem);line-height:1}.lead{color:#66645f;max-width:440px;margin:0 auto 28px;line-height:1.6}.hero-card label{text-align:left;gap:8px;margin:16px 0;font-weight:700;display:grid}.hero-card input,.code-row input{border:2px solid var(--ink);background:#fff;border-radius:12px;outline:none;width:100%;padding:.85rem 1rem;font-weight:700}.hero-card input:focus{box-shadow:0 0 0 4px #ff5d7330}.hero-card>.primary{width:100%;margin-top:8px}.divider{color:#888;align-items:center;gap:12px;margin:20px 0;display:flex}.divider:before,.divider:after{content:"";background:#ccc;flex:1;height:1px}.code-row{gap:10px;display:flex}.join-box{background:#f2eddf;border-radius:16px;padding:14px}.connection{color:#777;margin:22px 0 0;font-size:.8rem}.connection i,.status-dot{border-radius:50%;width:9px;height:9px;margin-right:7px;display:inline-block}.online{background:#28bd69}.offline{background:#ff5d73}.form-error,.toast.error{color:#a11930;background:#ffe4e8;border-radius:10px;padding:10px}.app-shell{grid-template-rows:auto 1fr auto;min-height:100vh;display:grid}.topbar{background:var(--paper);border-bottom:2px solid var(--ink);align-items:center;gap:18px;height:68px;padding:0 clamp(14px,3vw,34px);display:flex}.brand{font-family:Fredoka;font-size:1.2rem}.brand:first-letter{color:var(--red)}.phase-pill{background:#eee8d9;border-radius:99px;margin:auto;padding:7px 14px;font-size:.82rem;font-weight:800}.invite{box-shadow:none;padding:.48rem .8rem;font-size:.8rem}.status-dot{margin:0}.game-main{min-height:0;padding:clamp(18px,3vw,38px)}.center-card{margin:4vh auto}.big-icon{font-size:4rem}.roster{gap:8px;margin:25px 0;display:grid}.roster-player{text-align:left;background:#f2eddf;border-radius:12px;align-items:center;gap:10px;padding:12px 15px;display:flex}.roster-player i,.player-strip i{border:2px solid var(--ink);border-radius:50%;width:14px;height:14px}.roster-player span{letter-spacing:.1em;background:var(--ink);color:#fff;border-radius:5px;margin-left:auto;padding:4px 7px;font-size:.65rem}.jumbo{width:100%;padding:1rem}.waiting{color:#777}.player-strip{background:var(--paper);border-top:2px solid var(--ink);justify-content:center;align-items:center;gap:20px;min-height:48px;padding:8px 18px;font-size:.78rem;display:flex;overflow-x:auto}.player-strip span{white-space:nowrap}.player-strip i{width:10px;height:10px;margin-right:5px;display:inline-block}.section-heading{justify-content:space-between;align-items:end;gap:30px;max-width:1100px;margin:0 auto 18px;display:flex}.section-heading h2{font-size:2.3rem}.section-heading p{color:#6c6963;max-width:430px}.drawing-board{background:var(--paper);border:2px solid var(--ink);max-width:1100px;box-shadow:6px 6px 0 var(--ink);border-radius:20px;margin:auto;padding:12px}.drawing-board canvas{touch-action:none;cursor:crosshair;border-radius:12px;width:100%;height:min(63vh,650px);display:block}.canvas-actions{align-items:center;gap:10px;padding:12px 4px 2px;display:flex}.canvas-actions span{color:#777;margin-right:auto}.canvas-actions .valid{color:#168248;font-weight:800}.waiting-screen{text-align:center;place-content:center;min-height:65vh;display:grid}.spinner{animation:1s infinite alternate pulse}@keyframes pulse{to{color:var(--blue);transform:scale(1.15)}}.track-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;max-width:1100px;margin:auto;display:grid}.track-card{background:var(--paper);border:2px solid var(--ink);box-shadow:5px 5px 0 var(--ink);border-radius:18px;overflow:hidden}.track-card.own{opacity:.72}.track-preview{width:100%;height:210px;display:block}.track-card>div{align-items:center;gap:10px;padding:14px;display:flex}.track-card button,.track-card span{margin-left:auto;font-size:.75rem}.vote-count{text-align:center;font-weight:800}.countdown{background:var(--red);color:#fff;border:2px solid var(--ink);box-shadow:3px 3px var(--ink);border-radius:12px;padding:9px 14px;font:700 2rem Fredoka}.race-layout{grid-template-rows:auto 1fr;max-width:1400px;height:calc(100vh - 154px);margin:auto;display:grid}.race-hud{gap:20px;padding:0 4px 10px;font-size:1rem;display:flex}.race-hud span:last-child{color:#777;margin-left:auto}.race-canvas-wrap{border:2px solid var(--ink);min-height:0;box-shadow:6px 6px var(--ink);border-radius:20px;position:relative;overflow:hidden}.race-canvas-wrap>canvas{width:100%;height:100%;display:block}.touch-controls{pointer-events:none;justify-content:space-between;display:none;position:absolute;inset:auto 18px 18px}.touch-controls>div{gap:8px;display:flex}.touch-controls button{pointer-events:auto;touch-action:none;background:#fff9;width:58px;height:58px;padding:0}.results ol{gap:8px;padding:0;list-style:none;display:grid}.results li{text-align:left;background:#f2eddf;border-radius:12px;grid-template-columns:40px 1fr auto;align-items:center;padding:12px;display:grid}.results li>span{font:700 1.3rem Fredoka}.button-row{gap:12px;margin-top:24px;display:flex}.button-row button{flex:1}.toast{z-index:10;box-shadow:var(--shadow);position:fixed;top:78px;left:50%;transform:translate(-50%)}@media (width<=700px){.brand strong{display:none}.phase-pill{margin-left:0}.invite{margin-left:auto;font-size:0}.invite b{font-size:.8rem}.topbar{gap:10px}.game-main{padding:14px}.section-heading{flex-direction:column;align-items:start;gap:0}.section-heading>p{margin-top:0}.drawing-board canvas{height:58vh}.canvas-actions{flex-wrap:wrap}.canvas-actions span{width:100%;margin:0}.canvas-actions button{flex:1}.player-strip{justify-content:start}.touch-controls{display:flex}.race-layout{height:calc(100vh - 146px)}.race-hud span:last-child{display:none}.track-preview{height:170px}.code-row{flex-direction:column}}.countdown-screen{text-align:center;place-content:center;min-height:70vh;display:grid}.countdown-screen h2{margin:.1em 0;font:700 clamp(2.2rem,7vw,5rem) Fredoka}.big-countdown{color:var(--red);text-shadow:6px 6px 0 var(--ink);font:700 clamp(5rem,18vw,13rem)/1 Fredoka;animation:.45s ease-out countpop}@keyframes countpop{0%{opacity:0;transform:scale(1.7)}to{opacity:1;transform:scale(1)}}.results.compact{margin-top:1vh}.results li{grid-template-columns:38px 1fr auto 50px;gap:10px}.results li>strong{text-align:right;color:var(--red);font:800 1.05rem Fredoka}.results li>i{border:2px solid var(--ink);border-radius:50%;width:15px;height:15px}.results:not(.compact) li{grid-template-columns:34px 18px 1fr auto auto}.results li small{color:#777}.race-hud time{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:800}.race-hud span+time{margin-left:0}.roster-player em{letter-spacing:.1em;background:#ddd5c5;border-radius:5px;padding:4px 7px;font-size:.62rem;font-style:normal}.roster-player .remove-bot{width:28px;height:28px;box-shadow:none;color:#a11930;background:#ffe4e8;border-radius:8px;margin-left:4px;padding:0}.bot-button{color:#294a9b;background:#e8f0ff;width:100%;margin:-10px 0 18px}.drift-hint{color:#fff;letter-spacing:.08em;pointer-events:none;background:#141518b8;border-radius:9px;padding:7px 10px;font-size:.7rem;font-weight:800;position:absolute;top:14px;right:14px}.touch-controls>.drift-button{color:#fff;background:#ff5d73e0;align-self:flex-end;width:72px;font-size:.72rem}@media (width<=700px){.drift-hint{display:none}}:root{font-family:Inter,ui-rounded,Segoe UI,system-ui,sans-serif}.landing,.legal-shell{color:#17181b;background:#f5f1e8;min-height:100vh}.landing-nav,.legal-shell>header{justify-content:space-between;align-items:center;padding:20px clamp(20px,5vw,72px);display:flex}.landing a,.legal-shell a,.site-footer a{color:inherit;text-decoration:none}.landing-hero{grid-template-columns:1.05fr .95fr;align-items:center;gap:6vw;min-height:68vh;padding:40px clamp(20px,7vw,100px);display:grid}.landing-hero h1{max-width:850px;margin:.2em 0;font-size:clamp(44px,6vw,82px);line-height:.95}.landing-hero p{max-width:700px;font-size:clamp(18px,2vw,24px)}.hero-art{background:#24262b;border-radius:48% 52% 42% 58%;height:430px;position:relative;box-shadow:inset 0 0 0 4px #fff,0 30px 80px #0002}.hero-art:after{content:"";border:4px dashed #fff8;border-radius:50%;position:absolute;inset:20%}.hero-art span{z-index:2;font-size:58px;position:absolute}.hero-art span:first-child{top:22%;left:15%;transform:rotate(30deg)}.hero-art span:nth-child(2){top:45%;right:13%;transform:rotate(-20deg)}.hero-art span:nth-child(3){bottom:12%;left:35%;transform:rotate(130deg)}.steps,.faq{padding:80px clamp(20px,7vw,100px)}.steps>div{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.steps article,.faq details{background:#fff;border:2px solid #17181b;border-radius:22px;padding:24px;box-shadow:6px 6px #17181b}.steps article>b{color:#ff5d73;font-size:36px}.faq{max-width:900px}.faq details{margin:12px 0}.faq summary{cursor:pointer;font-weight:800}.site-footer{color:#fff;background:#17181b;justify-content:space-between;gap:20px;padding:22px clamp(20px,5vw,72px);font-size:13px;display:flex}.site-footer.compact{padding:8px 20px}.site-footer nav{flex-wrap:wrap;gap:16px;display:flex}.site-footer button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.legal-shell main{max-width:860px;margin:auto;padding:40px 24px 100px}.legal-shell article{background:#fff;border:2px solid #17181b;border-radius:24px;padding:clamp(22px,5vw,60px);line-height:1.65}.notice{background:#fff3c4;border-left:5px solid #ffc857;padding:14px}.modal-backdrop{z-index:9999;background:#0009;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{color:#17181b;background:#fff;border:2px solid #17181b;border-radius:22px;width:100%;max-width:580px;padding:28px;position:relative;box-shadow:8px 8px #17181b}.modal .close{position:absolute;top:10px;right:12px}.modal label{grid-template-columns:1fr 2fr 60px;gap:10px;margin:16px 0;display:grid}.choice{border-top:1px solid #ddd;justify-content:space-between;padding:14px;display:flex}.admin{color:#f7f7f7;background:#121419;min-height:100vh;padding:28px}.admin>header{justify-content:space-between;align-items:center;gap:20px;display:flex}.admin>header>div{margin-right:auto}.live-bar{color:#5ee18b;padding:18px 0}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;display:grid}.kpi-grid article,.chart-card{background:#20232b;border:1px solid #343844;border-radius:18px;padding:20px}.kpi-grid span{color:#aeb4c0;display:block}.kpi-grid strong{margin-top:8px;font-size:34px;display:block}.admin-grid{grid-template-columns:2fr 1fr;gap:16px;margin-top:16px;display:grid}.chart-card:first-child{grid-row:span 2}.bar-chart{align-items:end;gap:10px;height:280px;display:flex}.bar-chart>div{flex:1;align-items:end;gap:2px;height:100%;display:flex;position:relative}.bar-chart i,.bar-chart b{background:#51a8ff;width:45%;min-height:2px}.bar-chart b{background:#ff5d73}.bar-chart span{font-size:10px;position:absolute;bottom:-24px}.admin-login{background:#121419;place-items:center;min-height:100vh;display:grid}.admin-login form{background:#fff;border-radius:20px;gap:14px;width:min(400px,90vw);padding:36px;display:grid}.admin-login label{gap:6px;display:grid}.loading{place-items:center;min-height:100vh;display:grid}@media (width<=800px){.landing-hero{grid-template-columns:1fr}.hero-art{height:280px}.steps>div,.admin-grid{grid-template-columns:1fr}.admin>header{flex-wrap:wrap}.site-footer{flex-direction:column}.landing-hero h1{font-size:48px}}.nav-play-button{background:#ff5d73;border:2px solid #17181b;border-radius:999px;align-items:center;gap:12px;padding:10px 12px 10px 18px;font-size:13px;font-weight:900;transition:transform .16s,box-shadow .16s,background .16s;display:flex;box-shadow:3px 3px #17181b;color:#fff!important}.nav-play-button b{color:#17181b;background:#fff;border-radius:50%;place-items:center;width:27px;height:27px;font-size:17px;display:grid}.nav-play-button:hover{background:#ff4863;transform:translate(-2px,-2px);box-shadow:6px 6px #17181b}.nav-play-button:active{transform:translate(2px,2px);box-shadow:1px 1px #17181b}.hero-copy{z-index:2;position:relative}.hero-actions{flex-wrap:wrap;align-items:stretch;gap:14px;margin-top:32px;display:flex}.landing-cta{border:2px solid #17181b;border-radius:17px;align-items:center;gap:12px;min-height:76px;padding:12px 16px;transition:transform .16s,box-shadow .16s,background .16s;display:flex;box-shadow:5px 5px #17181b}.landing-cta>span:nth-child(2){text-align:left;display:grid}.landing-cta b{font-size:16px}.landing-cta small{opacity:.72;margin-top:3px;font-size:11px;font-weight:650}.landing-cta .cta-icon{background:#fff;border:2px solid #17181b;border-radius:13px;flex:none;place-items:center;width:46px;height:46px;font-size:20px;display:grid}.primary-cta{background:#ff5d73;min-width:285px;color:#fff!important}.primary-cta i{color:#fff;background:#17181b;border-radius:50%;place-items:center;width:34px;height:34px;margin-left:auto;font-size:20px;font-style:normal;display:grid}.secondary-cta{background:#fff}.secondary-cta .cta-icon{background:#ffc857}.landing-cta:hover{transform:translate(-3px,-3px);box-shadow:8px 8px #17181b}.primary-cta:hover{background:#ff4863}.secondary-cta:hover{background:#fff9e9}.landing-cta:active{transform:translate(2px,2px);box-shadow:2px 2px #17181b}.landing-cta:focus-visible,.nav-play-button:focus-visible{outline-offset:4px;outline:4px solid #51a8ff}@media (width<=620px){.landing-nav{padding:15px 18px}.nav-play-button{padding:9px}.nav-play-button>span{display:none}.landing-hero{padding:30px 18px}.landing-hero h1{font-size:42px}.hero-actions{grid-template-columns:1fr;width:100%;display:grid}.landing-cta{width:100%;min-width:0}.hero-art{height:230px}.steps,.faq{padding:55px 18px}}.gameplay-guide{color:#fff;background:#202228;padding:80px clamp(20px,7vw,100px)}.gameplay-guide>h2{max-width:760px;margin:10px 0 34px;font:700 clamp(34px,5vw,58px)/1.05 Fredoka,sans-serif}.gameplay-guide>.eyebrow{color:#ffc857}.gameplay-guide>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:1200px;display:grid}.gameplay-guide article{background:#ffffff0b;border:1px solid #ffffff2b;border-radius:18px;padding:24px}.gameplay-guide h3{margin:0 0 10px;font-size:20px}.gameplay-guide p{color:#d8d8db;margin:0;line-height:1.65}.landing-ad-wrap{background:#f5f1e8;padding:42px clamp(20px,7vw,100px) 24px}.ad-unit-landing{text-align:center;flex-direction:column;justify-content:center;width:min(970px,100%);min-height:110px;margin:auto;display:flex;overflow:hidden}.ad-unit-landing .ad-consent-placeholder{min-height:110px}.ad-unit-landing .ad-label{letter-spacing:.14em;color:#777;margin-bottom:6px;font-size:9px;display:block}@media (width<=700px){.gameplay-guide{padding:55px 18px}.gameplay-guide>div{grid-template-columns:1fr}.landing-ad-wrap{padding:30px 18px 10px}.ad-unit-landing,.ad-unit-landing .ad-consent-placeholder{min-height:100px}}.play-guide{grid-template-columns:minmax(0,1.6fr) minmax(260px,.7fr);align-items:start;gap:50px;padding:80px clamp(20px,7vw,100px);display:grid}.play-guide>div{max-width:820px}.play-guide h2{margin:10px 0 25px;font:700 clamp(34px,5vw,56px)/1.05 Fredoka,sans-serif}.play-guide p{color:#4e4c48;line-height:1.75}.play-guide aside{background:#fff;border:2px solid #17181b;border-radius:20px;padding:24px;box-shadow:6px 6px #17181b}.play-guide aside h3:first-child{margin-top:0}.play-guide li{margin:10px 0;line-height:1.45}@media (width<=800px){.play-guide{grid-template-columns:1fr;gap:25px;padding:55px 18px}}.landing-links{align-items:center;gap:24px;font-size:13px;font-weight:750;display:flex}.landing-links a:hover{text-underline-offset:5px;text-decoration:underline}.content-shell{color:#17181b;background:#f5f1e8;min-height:100vh}.content-shell>header{background:#fffdf5;border-bottom:1px solid #d9d3c7;justify-content:space-between;align-items:center;gap:20px;padding:20px clamp(20px,5vw,72px);display:flex}.content-shell>header nav{align-items:center;gap:22px;display:flex}.content-shell a{color:inherit;text-decoration:none}.content-shell>main{max-width:920px;margin:auto;padding:80px 24px 110px}.content-shell h1{margin:12px 0 22px;font:700 clamp(46px,7vw,78px)/.98 Fredoka,sans-serif}.content-intro{color:#55524d;border-left:5px solid #ff5d73;margin-bottom:55px;padding-left:20px;font-size:21px;line-height:1.65}.content-shell main section{border-top:1px solid #d9d3c7;padding:30px 0}.content-shell main h2{margin:0 0 16px;font:700 30px Fredoka}.content-shell main p,.content-shell main li{color:#46443f;font-size:17px;line-height:1.75}.content-shell main li{margin:8px 0}.static-public-content{color:#17181b;max-width:1000px;margin:auto;padding:30px 24px 80px;font-family:system-ui,sans-serif;line-height:1.65}.static-public-content>header{justify-content:space-between;gap:20px;display:flex}.static-public-content a{color:inherit}.static-public-content h1{font-size:48px;line-height:1.05}.static-public-content section{border-top:1px solid #ccc;padding:20px 0}@media (width<=850px){.landing-links,.content-shell>header nav>a:not(.nav-play-button){display:none}.content-shell>main{padding-top:50px}.static-public-content>header nav{display:none}}.hero-art.hero-race-scene{background:#dcefcf;border:3px solid #17181b;border-radius:42px;height:430px;position:relative;overflow:hidden;transform:rotate(1.5deg);box-shadow:10px 12px #17181b,0 30px 80px #0002}.hero-art.hero-race-scene:after{content:"";pointer-events:none;background:linear-gradient(135deg,#fff4,#0000 35%,#0000000a);border:0;border-radius:0;position:absolute;inset:0;box-shadow:inset 0 0 0 3px #fff8}.hero-race-scene canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.hero-race-scene .landing-car{z-index:3;transform-origin:50%;pointer-events:none;margin:0;position:absolute;box-shadow:4px 5px #0004}.hero-race-scene .car-one{top:20%;left:62%;transform:rotate(112deg)scale(.48)}.hero-race-scene .car-two{top:57%;left:68%;transform:rotate(-112deg)scale(.5)}.hero-race-scene .car-three{top:64%;left:22%;transform:rotate(-38deg)scale(.46)}.hero-art.hero-race-scene .hero-race-label{z-index:5;background:#fff;border:2px solid #17181b;border-radius:11px;padding:9px 11px;font-size:10px;line-height:1.2;display:grid;position:absolute;top:16px;left:18px;transform:none;box-shadow:3px 3px #17181b}.hero-race-label b{letter-spacing:.08em}.hero-race-label small{color:#666;margin-top:3px;font-size:9px}@media (width<=800px){.hero-art.hero-race-scene{height:280px;transform:none}.hero-race-scene .car-one{top:18%;left:60%;transform:rotate(112deg)scale(.37)}.hero-race-scene .car-two{top:56%;left:67%;transform:rotate(-112deg)scale(.38)}.hero-race-scene .car-three{top:62%;left:20%;transform:rotate(-38deg)scale(.35)}}.topbar .brand{color:var(--ink);text-decoration:none}.game-content-only{min-height:0}.ad-game-grid{grid-template-columns:minmax(130px,180px) minmax(0,1fr) minmax(130px,180px);align-items:stretch;gap:16px;min-height:0;padding:0 14px;display:grid}.ad-game-grid>.game-main{grid-column:2;padding-left:0;padding-right:0}.ad-rail-left{grid-area:1/1}.ad-rail-right{grid-area:1/3}.ad-rail{border-radius:16px;flex-direction:column;justify-content:center;min-height:250px;margin:28px 0 18px;display:flex;position:relative;overflow:hidden}.ad-label{letter-spacing:.14em;color:#777;text-align:center;margin-bottom:5px;font-size:9px}.ad-consent-placeholder{min-height:250px;box-shadow:none;color:#777;background:#ffffff80;border:1px dashed #aaa;font-size:11px;line-height:1.5}.ad-consent-placeholder span{letter-spacing:.14em;font-size:9px;display:block}.consent-toggle{border-top:1px solid #ddd;justify-content:space-between;align-items:center;padding:14px;grid-template-columns:none!important;margin:0!important;display:flex!important}.consent-toggle span{gap:3px;display:grid}.consent-toggle small{color:#666}.consent-toggle input{width:22px;height:22px}.consent-actions{flex-wrap:wrap}.consent-actions button{min-width:145px}@media (width<=1050px){.ad-game-grid{grid-template-columns:minmax(0,1fr)}.ad-game-grid>.game-main{grid-column:1}.ad-rail{display:none}}.lobby-card{border:2px solid var(--ink);width:min(900px,100%);box-shadow:8px 8px 0 var(--ink),var(--shadow);background:#fffdf5f5;border-radius:26px;margin:4vh auto;padding:clamp(20px,3vw,34px)}.lobby-heading{border-bottom:2px solid #ded8c9;justify-content:space-between;align-items:center;gap:20px;padding-bottom:22px;display:flex}.lobby-heading>div{align-items:center;gap:16px;display:flex}.lobby-flag{border:2px solid var(--ink);width:58px;height:58px;box-shadow:3px 3px 0 var(--ink);background:#ffc857;border-radius:16px;place-items:center;font-size:28px;display:grid}.lobby-heading h2{margin:3px 0;font:700 clamp(32px,4vw,48px)/1 Fredoka,sans-serif}.lobby-heading p{margin:0}.lobby-rule{text-align:right;color:#6f6b63;font-size:13px;line-height:1.45}.lobby-content{grid-template-columns:minmax(0,1.55fr) minmax(230px,.8fr);gap:24px;padding-top:24px;display:grid}.lobby-roster{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.lobby-roster .roster-player,.roster-slot{border:2px solid var(--ink);min-height:70px;box-shadow:2px 2px 0 var(--ink);border-radius:14px;padding:10px}.lobby-roster .roster-player{background:#fff;align-items:center;gap:10px;display:flex}.driver-avatar{border:2px solid var(--ink);border-radius:12px;flex:none;place-items:center;width:42px;height:42px;font-size:20px;display:grid}.driver-copy{text-align:left;min-width:0;display:grid}.driver-copy b{text-overflow:ellipsis;overflow:hidden}.driver-copy small{color:#777;font-size:11px}.lobby-roster .roster-player em{background:#d9e6ff;border-radius:5px;padding:4px 6px;font-size:9px;font-style:normal}.lobby-roster .roster-player span{margin-left:auto}.roster-slot{color:#999;box-shadow:none;background:#f6f1e6;border-style:dashed;justify-content:center;align-items:center;gap:8px;font-size:12px;display:flex}.roster-slot b{font-size:21px}.lobby-actions{text-align:left;background:#f0eadc;border-radius:18px;flex-direction:column;justify-content:center;padding:20px;display:flex}.lobby-actions h3{margin:0 0 8px;font:700 24px Fredoka}.lobby-actions p{color:#706c64;font-size:13px;line-height:1.45}.lobby-actions .bot-button{margin:12px 0}.lobby-actions .jumbo{margin-top:4px}.lobby-actions .waiting{text-align:center}.lobby-actions .remove-bot{width:auto}@media (width<=760px){.lobby-card{border-radius:20px;margin:1vh auto;padding:18px}.lobby-heading{align-items:flex-start}.lobby-rule{display:none}.lobby-content,.lobby-roster{grid-template-columns:1fr}.roster-slot:nth-of-type(n+4){display:none}.lobby-actions{padding:16px}.lobby-flag{width:48px;height:48px}.lobby-heading h2{font-size:34px}}.finish-overlay{z-index:20;color:#17181b;text-align:center;pointer-events:none;background:#fffdf5f0;border:3px solid #17181b;border-radius:18px;gap:5px;min-width:260px;padding:18px 26px;display:grid;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);box-shadow:7px 7px #17181b}.finish-overlay strong{color:#ff5d73;font-size:2rem}.customizer-card{max-width:1180px}.play-welcome-heading{text-align:left;border-bottom:2px solid #ded8c9;grid-template-columns:auto auto minmax(260px,1fr);align-items:center;gap:16px;padding-bottom:14px;display:grid}.play-welcome-heading .logo-mark{font-size:3.25rem}.play-welcome-heading h1{margin:.05em 0;font-size:clamp(2.2rem,4vw,3.6rem)}.play-welcome-heading .eyebrow{margin:0}.play-welcome-heading .lead{text-align:right;max-width:470px;margin:0 0 0 auto;font-size:14px}.play-setup-grid{grid-template-columns:minmax(300px,.72fr) minmax(620px,1.55fr);grid-template-areas:"name garage""lobby garage";align-items:start;gap:12px 22px;padding-top:16px;display:grid}.play-name-field{text-align:left;grid-area:name;margin:0!important}.play-lobby-setup{text-align:left;grid-area:lobby}.play-lobby-setup>.primary{width:100%}.play-lobby-setup .divider{margin:13px 0}.play-lobby-setup .connection{text-align:center;margin:13px 0 0}.play-lobby-setup .public-lobby-browser{margin-top:13px;padding-top:12px}.play-lobby-setup .public-lobby-list{max-height:142px}.play-setup-grid>.car-customizer{grid-area:garage;gap:10px;margin:0;padding:14px}.play-setup-grid .garage-preview-stage{min-height:122px}.play-setup-grid .body-choice{min-height:58px}.play-setup-grid .garage-section legend{margin-bottom:6px}.play-setup-grid .named-colors button{height:40px}.play-setup-grid .wheel-choice{padding:5px 3px}@media (width>=850px){.welcome{min-height:calc(100dvh - 61px);padding:12px 24px}.customizer-card{padding:18px 24px}.customizer-card.hero-card{width:min(1180px,100%)}}.car-customizer{background:#f4f1e9;border:2px solid #17181b;border-radius:22px;gap:16px;margin:16px 0;padding:18px;display:grid;box-shadow:4px 4px #17181b}.car-customizer h3{margin:1px 0 0;font:700 24px/1.05 Fredoka,sans-serif}.garage-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.garage-kicker{letter-spacing:.16em;text-transform:uppercase;color:#706c64;font-size:10px;font-weight:900}.cosmetic-badge{background:#fff;border:1.5px solid #17181b;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:900;box-shadow:2px 2px #17181b}.garage-preview-stage{background:linear-gradient(155deg,#dff4ff 0 55%,#cde9ea 55%);border:2px solid #17181b;border-radius:17px;place-items:center;min-height:150px;display:grid;position:relative;overflow:hidden}.garage-preview-stage:before{content:"";background:repeating-linear-gradient(90deg,#d8d4ca 0 22px,#ece9df 22px 44px);border-top:2px solid #17181b;height:34%;position:absolute;bottom:0;left:0;right:0}.preview-speed-line{background:#17181b26;border-radius:4px;height:3px;position:absolute;transform:skew(-28deg)}.preview-speed-line.line-one{width:80px;top:35%;left:7%}.preview-speed-line.line-two{width:55px;top:22%;right:9%}.garage-selection-summary{z-index:3;text-align:left;background:#fff;border:1.5px solid #17181b;border-radius:9px;flex-direction:column;padding:6px 9px;display:flex;position:absolute;bottom:10px;left:12px;box-shadow:2px 2px #17181b}.garage-selection-summary strong{font:700 15px Fredoka}.garage-selection-summary span{color:#65625c;font-size:9px}.garage-section{text-align:left;border:0;margin:0;padding:0}.garage-section legend{letter-spacing:.08em;text-transform:uppercase;color:#4f4d48;width:100%;margin-bottom:8px;font-size:11px;font-weight:900}.garage-section legend small{float:right;letter-spacing:0;text-transform:none;color:#1767a8;font-size:10px}.body-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.body-choice{text-align:left;color:#17181b;min-height:66px;box-shadow:none;background:#fff;border:1.5px solid #bbb6ab;border-radius:12px;grid-template-columns:58px 1fr;align-items:center;gap:7px;padding:8px;display:grid;position:relative}.body-choice:hover{border-color:#17181b;transform:translateY(-2px)}.body-choice.selected{background:#fff4c8;border:2px solid #17181b;box-shadow:2px 2px #17181b}.body-choice>span:last-of-type{display:grid}.body-choice b{font-size:12px}.body-choice small{color:#777;font-size:9px}.body-choice em{color:#fff;background:#1767a8;border-radius:50%;place-items:center;width:17px;height:17px;font-size:10px;font-style:normal;display:none;position:absolute;top:4px;right:5px}.body-choice.selected em{display:grid}.mini-car{--car-color:#ff5d73;background:var(--car-color);border:2px solid #17181b;border-radius:10px;width:46px;height:25px;margin:auto;display:block;position:relative;transform:rotate(-8deg)}.mini-car i{background:#dff4ff;border:1.5px solid #17181b;border-radius:3px;width:12px;height:12px;position:absolute;top:4px;right:7px}.mini-car.compact{border-radius:13px;width:36px;height:28px}.mini-car.muscle{border-radius:5px;width:50px;height:28px}.mini-car.formula{clip-path:polygon(0 20%,72% 0,100% 28%,100% 72%,72% 100%,0 80%);width:53px;height:20px}.mini-car.buggy{border-radius:7px;width:43px;height:31px;box-shadow:-5px 0 0 -2px #17181b,5px 0 0 -2px #17181b}.mini-car.roadster{border-radius:14px 7px 7px 14px;width:44px;height:27px}.mini-car.formula i{height:11px;top:2px;right:12px}.mini-car.roadster i{background:#17181b55;border-radius:50%}.named-colors{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;display:grid}.named-colors button{color:#555;width:auto;height:45px;box-shadow:none;border:1.5px solid #bbb6ab;border-radius:10px;place-items:center;gap:1px;padding:4px 2px;display:grid;background:#fff!important}.named-colors button span{border:1.5px solid #17181b;border-radius:50%;width:22px;height:22px}.named-colors button small{font-size:8px}.named-colors button.selected{border:2px solid #17181b;transform:none;box-shadow:2px 2px #17181b;background:#fff4c8!important}.wheel-choice-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;display:grid}.wheel-choice{color:#17181b;box-shadow:none;background:#fff;border:1.5px solid #bbb6ab;border-radius:10px;place-items:center;gap:4px;padding:7px 3px;display:grid}.wheel-choice:hover{transform:translateY(-2px)}.wheel-choice.selected{background:#fff4c8;border:2px solid #17181b;box-shadow:2px 2px #17181b}.wheel-choice i{background:#17181b;border-radius:50%;place-items:center;width:27px;height:27px;font-style:normal;display:grid}.wheel-choice i span{background:#777;border:3px dotted #ddd;border-radius:50%;width:15px;height:15px}.wheel-choice small{font-size:9px;font-weight:800}.wheel-choice.racing i span{background:#eee;border-color:#777}.wheel-choice.neon i{box-shadow:0 0 8px #4de1c1}.wheel-choice.neon i span{background:#4de1c1}.wheel-choice.aero i span{background:#8691a7;border-style:solid;border-color:#dbe0e8}.wheel-choice.gold i span{background:#ffc857;border-color:#fff0b5}.wheel-choice.whitewall i{background:#17181b;border:5px solid #f7f2e8}.wheel-choice.whitewall i span{background:#aeb3bd;border:0;width:10px;height:10px}.color-picks{flex-wrap:wrap;gap:7px;display:flex}.color-picks.named-colors{grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.color-picks button{border:2px solid #fff;border-radius:50%;width:25px;height:25px;padding:0;box-shadow:0 0 0 1px #17181b}.color-picks button.selected{transform:scale(1.18);box-shadow:0 0 0 3px #17181b}.custom-row{gap:12px;margin-top:10px;display:flex}.custom-row label{gap:3px;font-size:12px;font-weight:700;display:grid}.custom-row select{border:1px solid #17181b;border-radius:8px;padding:6px 8px}.car-preview{--car-color:#ff5d73;z-index:2;background:var(--car-color);border:3px solid #17181b;border-radius:20px;width:105px;height:54px;margin:0 0 15px;position:relative;transform:rotate(-7deg)scale(1.08);box-shadow:8px 9px #0002}.car-preview.compact{border-radius:24px;width:82px;height:58px}.car-preview.muscle{border-radius:10px;width:112px;height:60px}.car-preview.formula{clip-path:polygon(0 20%,68% 0,100% 29%,100% 71%,68% 100%,0 80%);border-radius:8px 24px 24px 8px;width:124px;height:43px}.car-preview.buggy{border-radius:13px;width:100px;height:66px;box-shadow:-9px 0 0 -4px #17181b,9px 0 0 -4px #17181b,8px 9px #0002}.car-preview.roadster{border-radius:28px 15px 15px 28px;width:100px;height:58px}.car-preview.formula>b{width:24px;height:24px;top:7px;right:30px}.car-preview.buggy>b{top:12px;right:17px}.car-preview.roadster>b{background:#17181b55;border-radius:50%;right:17px}.car-preview>b{background:#dff4ff;border:2px solid #17181b;border-radius:7px;width:28px;height:30px;position:absolute;top:9px;right:18px}.preview-wheel{background:#17181b;border-radius:3px;width:22px;height:8px;position:absolute}.preview-wheel.racing:after,.preview-wheel.neon:after{content:"";background:#eee;position:absolute;inset:2px 5px}.preview-wheel.aero:after,.preview-wheel.gold:after,.preview-wheel.whitewall:after{content:"";background:#8792a5;border-radius:3px;position:absolute;inset:1px 5px}.preview-wheel.gold:after{background:#ffc857}.preview-wheel.whitewall:after{background:#f7f2e8;border:1px solid #777;inset:1px 3px}.preview-wheel.neon:after{background:#7dffda;box-shadow:0 0 7px #4de1c1}.preview-wheel.w1{top:-7px;left:12px}.preview-wheel.w2{top:-7px;right:12px}.preview-wheel.w3{bottom:-7px;left:12px}.preview-wheel.w4{bottom:-7px;right:12px}@media (width<=520px){.car-customizer{gap:13px;padding:13px}.garage-preview-stage{min-height:135px}.body-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.color-picks.named-colors{grid-template-columns:repeat(4,minmax(0,1fr))}.wheel-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.body-choice{grid-template-columns:47px 1fr;min-height:60px;padding:6px}.mini-car{transform:rotate(-8deg)scale(.9)}}@media (width<=849px){.customizer-card{max-width:720px}.play-welcome-heading{text-align:center;border-bottom:0;padding-bottom:0;display:block}.play-welcome-heading .lead{text-align:center;font-size:inherit;margin:0 auto 28px}.play-welcome-heading .logo-mark{font-size:4rem}.play-setup-grid{flex-direction:column;gap:0;padding-top:0;display:flex}.play-name-field{width:100%;margin:16px 0!important}.play-setup-grid>.car-customizer{gap:16px;width:100%;margin:0 0 16px;padding:18px}.play-lobby-setup{width:100%}.play-lobby-setup .public-lobby-list{max-height:238px}.play-lobby-setup .public-lobby-browser{margin-top:19px;padding-top:16px}}.public-lobby-toggle{cursor:pointer;background:#fff;border:1.5px solid #bbb6ab;border-radius:12px;align-items:center;padding:11px 13px;text-align:left!important;grid-template-columns:24px 1fr!important;gap:11px!important;margin:12px 0 8px!important;display:flex!important}.public-lobby-toggle input{accent-color:#1767a8;height:21px;margin:0;width:21px!important}.public-lobby-toggle span{gap:1px;display:grid}.public-lobby-toggle b{font-size:12px}.public-lobby-toggle small{color:#716e68;font-size:10px;font-weight:500}.public-lobby-browser{text-align:left;border-top:2px solid #ded8c9;margin-top:19px;padding-top:16px}.public-lobby-heading{justify-content:space-between;align-items:center;margin-bottom:9px;display:flex}.public-lobby-heading>div{align-items:center;gap:7px;display:flex}.public-lobby-heading b{font:700 17px Fredoka,sans-serif}.public-lobby-heading small{color:#777;text-transform:uppercase;letter-spacing:.08em;font-size:9px;font-weight:800}.live-pulse{background:#28bd69;border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 4px #28bd6925}.public-lobby-list{gap:7px;max-height:238px;padding:1px 4px 4px 1px;display:grid;overflow:auto}.public-lobby-row{color:#17181b;width:100%;box-shadow:none;text-align:left;background:#fff;border:1.5px solid #bbb6ab;border-radius:12px;grid-template-columns:38px minmax(0,1fr) auto auto;align-items:center;gap:9px;padding:9px;display:grid}.public-lobby-row:hover{background:#fff8dc;border-color:#17181b}.public-host-avatar{background:#dff4ff;border:1.5px solid #17181b;border-radius:10px;place-items:center;width:36px;height:36px;display:grid}.public-lobby-copy{min-width:0;display:grid}.public-lobby-copy b{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.public-lobby-copy small{color:#777;font-size:9px}.public-player-count{background:#f0eadc;border-radius:999px;padding:4px 7px;font-size:10px;font-weight:900}.public-lobby-row>strong{color:#fff;background:#1767a8;border-radius:8px;padding:6px 8px;font-size:10px}.public-lobby-empty{color:#716e68;background:#ebe6da;border:1.5px dashed #aaa49a;border-radius:12px;justify-content:center;align-items:center;gap:11px;min-height:70px;padding:12px;display:flex}.public-lobby-empty>span{font-size:27px}.public-lobby-empty p{gap:2px;margin:0;display:grid}.public-lobby-empty b{color:#4d4a45;font-size:11px}.public-lobby-empty small{font-size:9px}@media (width<=520px){.public-lobby-row{grid-template-columns:34px minmax(0,1fr) auto}.public-lobby-row>strong{display:none}.public-host-avatar{width:32px;height:32px}.public-lobby-copy small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}}.track-editor{gap:10px;width:min(1280px,100%);margin:0 auto;display:grid}.drawing-layout .section-heading{max-width:1280px}.track-editor .drawing-board{width:100%;max-width:none}.track-editor .drawing-board canvas{height:min(70vh,720px)}.route-ready{font-weight:800;color:#1767a8!important}.route-check{white-space:nowrap}.editor-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.editor-top select{border:2px solid #17181b;border-radius:10px;padding:9px 12px;font-weight:800}.editor-steps{letter-spacing:.08em;font-size:12px;font-weight:900}.editor-steps b{color:#ff5d73;margin:0 5px}.editor-body{grid-template-columns:116px 1fr;gap:12px;display:grid}.editor-tools{align-content:start;gap:7px;display:grid}.editor-tools button{text-align:left;background:#fff;border:2px solid #17181b;border-radius:11px;grid-template-columns:25px 1fr;align-items:center;padding:8px;font-weight:800;display:grid;box-shadow:2px 2px #17181b}.editor-tools button.active{box-shadow:none;background:#ffc857;transform:translate(2px,2px)}.editor-tools button span{font-size:18px}.editor-tools button small{color:#777;grid-column:2}.editor-help{color:#666;margin:0;font-size:12px}.item-hud{z-index:8;color:#fff;background:#17181be8;border:3px solid #fff;border-radius:14px;gap:2px;min-width:116px;padding:12px;display:grid;position:absolute;bottom:64px;right:18px;box-shadow:0 5px 18px #0005}.item-hud small{color:#ffc857;font-size:9px}.drawing-board canvas{touch-action:none}@media (width<=720px){.track-editor .drawing-board canvas{height:62vh}.editor-body{grid-template-columns:1fr}.editor-tools{display:flex;overflow-x:auto}.editor-tools button{text-align:center;grid-template-columns:1fr;min-width:83px;display:grid}.editor-tools button small{grid-column:1}.editor-top{align-items:flex-start}.editor-steps{max-width:210px}.canvas-actions{flex-wrap:wrap}.item-hud{bottom:125px;right:10px}}.mobile-driving-controls{display:none}@media (width<=700px) and (pointer:coarse){.race-canvas-wrap{touch-action:none;-webkit-user-select:none;user-select:none}.drift-hint,.race-canvas-wrap>.item-hud{display:none}.touch-controls.mobile-driving-controls{z-index:12;left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));pointer-events:none;grid-template-columns:minmax(126px,1fr) 66px minmax(66px,.55fr);align-items:end;gap:10px;display:grid;position:absolute}.mobile-driving-controls button{pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent;color:#17181b;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fffdf5e6;border:2px solid #17181b;margin:0;padding:0;box-shadow:2px 3px #17181b,0 5px 16px #0003}.mobile-driving-controls button:hover:not(:disabled){transform:none;box-shadow:2px 3px #17181b,0 5px 16px #0003}.mobile-driving-controls button:active:not(:disabled){background:#ffc857;transform:translate(2px,3px)scale(.97);box-shadow:0 0 #17181b}.mobile-driving-controls button:disabled{opacity:.4}.touch-cluster{pointer-events:none;gap:5px;display:grid!important}.touch-cluster>small{color:#fff;letter-spacing:.14em;text-shadow:0 1px 4px #000;text-align:left;padding-left:3px;font-size:8px;font-weight:900}.steering-cluster>div{grid-template-columns:1fr 1fr;gap:7px;display:grid}.steering-cluster button{border-radius:19px;width:auto;height:68px;font-size:23px}.touch-action-stack{align-items:end;gap:6px;display:grid!important}.touch-action-stack button{border-radius:17px;place-items:center;gap:0;width:100%;display:grid}.touch-action-stack button b{font-size:21px;line-height:1}.touch-action-stack button small{letter-spacing:.08em;font-size:7px}.touch-reset{background:#ffffffb8!important;grid-template-columns:auto auto!important;gap:3px!important;height:32px!important;font-size:15px!important}.touch-reset small{font-size:6px!important}.touch-item{color:#fff!important;background:#18191dd6!important;height:49px!important}.touch-item.ready{background:#4477ffeb!important;border-color:#fff!important;box-shadow:2px 3px #17181b,0 0 13px #47f9!important}.touch-controls>.touch-action-stack>.drift-button{color:#fff;width:100%;height:62px;font-size:inherit;background:#ff5d73eb;align-self:auto}.throttle-cluster{grid-template-columns:1fr;justify-items:stretch}.throttle-cluster button{border-radius:18px;place-items:center;width:100%;display:grid}.throttle-cluster button b{font-size:19px;line-height:1}.throttle-cluster button span{letter-spacing:.08em;font-size:7px}.mobile-driving-controls .gas-button{height:76px;background:#5ee18beb!important}.mobile-driving-controls .brake-button{height:43px;background:#fffdf5e0!important}}@media (width<=700px) and (pointer:coarse) and (height<=600px){.touch-controls.mobile-driving-controls{bottom:max(6px,env(safe-area-inset-bottom));grid-template-columns:minmax(112px,1fr) 58px 62px;gap:7px}.steering-cluster button{border-radius:15px;height:54px}.touch-controls>.touch-action-stack>.drift-button{height:50px}.touch-item{height:40px!important}.touch-reset{display:none!important}.mobile-driving-controls .gas-button{height:61px}.mobile-driving-controls .brake-button{height:36px}}
