.race-wrap{padding-top:36px;padding-bottom:42px}.race-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.race-heading h2{font-size:clamp(26px,4vw,42px);margin-top:14px}.drivers{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.driver{padding:0;border:3px solid transparent;border-radius:20px;overflow:hidden;background:#30176a;color:white;text-align:center;cursor:pointer;position:relative}.driver[aria-pressed=true]{border-color:var(--sun);box-shadow:0 0 0 3px #ffc21a33}.driver .portrait{height:115px;background:var(--color);position:relative;overflow:hidden;display:block}.driver .portrait img{height:100%;width:100%;object-fit:contain;position:relative}.driver .name{display:block;padding:9px 4px 2px;font-weight:800;font-size:14px}.driver small{display:block;color:#dbd0ff;font-size:11px;padding:0 4px 10px}.driver .check{position:absolute;top:7px;right:7px;border-radius:50%;background:var(--sun);color:var(--night);width:25px;height:25px;font-weight:900;display:none}.driver[aria-pressed=true] .check{display:block}.race-start{margin:22px 0;display:flex;align-items:center;gap:20px;padding:20px;background:#30176a;border-radius:22px;flex-wrap:wrap}#chosen{flex:1;font-weight:800}#chosen small{display:block;font-size:13px;color:#d7c8ff;font-weight:400}.auto{font-size:13px;display:flex;align-items:center;gap:8px}.auto input{accent-color:var(--sun);width:18px;height:18px}.race-panel{background:#30176a;padding:16px;border-radius:28px;scroll-margin-top:88px}.race-hud{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.race-hud>div{background:var(--sun);color:var(--ink);border-radius:14px;padding:10px;text-align:center}.race-hud>div:nth-child(2){background:var(--teal)}.race-hud>div:nth-child(3){background:var(--pink)}.race-hud>div:nth-child(4){background:#b397ff}.race-hud span{display:block;font-size:10px;font-weight:800;text-transform:uppercase}.race-hud strong{display:block;font-size:clamp(15px,2.6vw,25px);font-style:italic;font-weight:900}.race-stage{position:relative;border-radius:18px;overflow:hidden;background:#1f0f4d}#track{display:block;width:100%;height:auto;aspect-ratio:8/5;outline-offset:-4px;touch-action:pan-y}.race-overlay{position:absolute;inset:0;background:#1f0f4dbb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}.race-overlay strong{font-size:clamp(34px,7vw,80px);font-weight:900;font-style:italic;color:var(--sun)}[hidden]{display:none!important}.race-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0}.race-actions p{flex:1;margin:0;font-size:13px;min-width:160px}.race-actions .mg-btn{font-size:11px;padding:10px 16px}.touch-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px}.touch-controls button{background:var(--violet);color:white;border:2px solid #ffffff25;border-radius:14px;padding:17px 8px;font-weight:800;font-size:16px;touch-action:none;user-select:none}.touch-controls button:active,.touch-controls button.held{background:var(--sun);color:var(--ink)}.race-progress{height:7px;background:var(--night);border-radius:10px;margin-top:16px;overflow:hidden}#progress{height:100%;width:0;background:var(--teal)}.race-result{padding:32px;background:var(--violet);border:3px solid var(--teal);border-radius:24px;margin-top:24px;text-align:center}.race-result h2{color:var(--sun);font-size:clamp(30px,4vw,50px);margin-top:16px}.result-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}.race-result details{max-width:550px;margin:24px auto 0;text-align:left}.race-result ol{padding-left:30px}.race-result li{padding:7px;border-bottom:1px solid #ffffff22}.race-result li.you{background:var(--sun);color:var(--night);font-weight:800;border-radius:10px}.race-result li span{float:right;font-variant-numeric:tabular-nums}.race-help{padding:20px;background:#30176a;border-radius:20px;margin-top:22px;font-size:14px}.race-help summary,.race-result summary{cursor:pointer;font-weight:800;color:var(--sun)}.mg-hub{grid-template-columns:repeat(3,minmax(0,1fr))}.mg-choice-art .race-hub-ufo{width:210px;height:180px;object-fit:contain}@media(max-width:980px){.drivers{grid-template-columns:repeat(4,minmax(0,1fr))}.mg-hub{grid-template-columns:1fr 1fr}.race-heading .mg-btn{font-size:11px;padding:10px 14px}}@media(max-width:600px){.drivers{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.driver .portrait{height:100px}.driver .name{font-size:12px}.driver small{font-size:10px}.race-heading{align-items:flex-start;flex-direction:column}.race-start{gap:14px;padding:16px}.race-start .mg-btn{width:100%}.race-hud{gap:6px}.race-hud>div{padding:9px 3px;border-radius:10px}.race-hud span{font-size:8px}.race-panel{padding:10px;border-radius:20px}.touch-controls{gap:6px}.touch-controls button{font-size:12px;padding:16px 4px}.race-result{padding:24px 14px}.mg-hub{grid-template-columns:1fr}}
/* Vehicle previews share the exact on-track renderer. */
.driver .portrait{height:92px}.mini-vehicle{display:block;width:100%;height:96px;object-fit:contain;background:#201040;pointer-events:none}.driver .name{padding-top:7px}@media(max-width:600px){.driver .portrait{height:78px}.mini-vehicle{height:78px}.driver small{font-size:9px}}

.mg-intro{background:linear-gradient(90deg,#1f0f4df5 5%,#1f0f4da0 55%,#1f0f4d25),url(/img/gp-cidade.png) center 46%/cover;padding-top:70px;padding-bottom:70px}.mg-intro h1{font-size:clamp(38px,6vw,76px);text-shadow:0 3px 22px #1f0f4d}.mg-intro p{color:#fff}.mini-vehicle{height:110px}@media(max-width:600px){.mg-intro{padding-top:44px;padding-bottom:44px}.mini-vehicle{height:84px}}

@media(min-width:981px){.race-panel{max-width:760px;margin-left:auto;margin-right:auto}.race-hud>div{padding:8px}.race-hud strong{font-size:21px}.race-actions{margin:10px 0}}@media(min-width:981px) and (hover:hover) and (pointer:fine){.race-panel .touch-controls{display:none}}

/* Wider race framing without increasing desktop height. */
@media(min-width:981px){.race-panel{max-width:none;width:100%}#track{aspect-ratio:8/3}.race-hud strong{font-size:23px}}@media(max-width:980px){#track{aspect-ratio:8/3}}

.mini-vehicle{background:transparent;transform-origin:center center}

.start-lights{position:absolute;top:18%;left:50%;display:flex;gap:clamp(10px,2vw,24px);padding:clamp(16px,3vw,28px);border:3px solid #7e8293;border-radius:18px;background:linear-gradient(#353846,#11121b);box-shadow:0 12px 24px #0009;transform:translateX(-50%) scale(.6667);transform-origin:top center;transition:transform .55s ease-in;pointer-events:none}.start-lights:before{content:"";position:absolute;bottom:100%;left:50%;width:6px;height:200px;background:#717587}.start-lights span{width:clamp(40px,5vw,65px);aspect-ratio:1;border-radius:50%;border:4px solid #080b12;background:radial-gradient(circle at 35% 30%,#ff8b83,#ff2828 50%,#af0000);box-shadow:0 0 22px #ff3434aa,inset 0 0 8px #fff5}.start-lights span.off{background:#24171a;box-shadow:inset 0 2px 8px #000}.start-lights.lifting{transform:translate(-50%,-240px) scale(.6667)}

/* Stable mobile HUD: changing numbers and messages cannot move the track. */
.race-panel{overflow-anchor:none}.race-hud strong{font-variant-numeric:tabular-nums}.race-actions p{min-height:2.6em;line-height:1.3}.race-stage{touch-action:none}#track{touch-action:none}@media(max-width:980px){.race-hud strong{height:2.5em;line-height:1.2;display:flex;align-items:center;justify-content:center;overflow:hidden}.race-actions{display:grid;grid-template-columns:1fr 1fr}.race-actions p{grid-column:1;min-width:0;height:3.9em;overflow:hidden}.race-actions #sound{grid-column:2;min-width:0;white-space:nowrap}.race-actions .mg-btn{width:100%}}

/* Floating card ship and antigravity start gantry. */
.race-hub-ufo{animation:card-levitation 3s ease-in-out infinite;filter:drop-shadow(0 14px 8px #28124d35);will-change:transform}@keyframes card-levitation{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-14px) rotate(2deg)}}.start-lights{border-color:#59e7ff;box-shadow:0 0 16px #26d8ff88,0 12px 24px #0009;animation:signal-hover 1.8s ease-in-out infinite}.start-lights:before{display:none}.start-lights:after{content:"";position:absolute;top:100%;left:12%;width:76%;height:25px;background:radial-gradient(ellipse at top,#d5ffff 0,#29dfffaa 25%,transparent 70%);filter:blur(2px);border-radius:0 0 50% 50%;transition:height .2s}.start-lights.lifting{animation:signal-launch 1.05s cubic-bezier(.55,0,.85,.5) forwards}.start-lights.lifting:after{height:95px;background:linear-gradient(#e0ffff,#34dcff99,transparent);clip-path:polygon(8% 0,92% 0,72% 100%,28% 100%)}@keyframes signal-hover{0%,100%{transform:translate(-50%,0) scale(.6667)}50%{transform:translate(-50%,-7px) scale(.6667)}}@keyframes signal-launch{0%{transform:translate(-50%,0) scale(.6667)}18%{transform:translate(-50%,5px) scale(.6667)}100%{transform:translate(-50%,-360px) scale(.6667)}}@media(prefers-reduced-motion:reduce){.race-hub-ufo,.start-lights{animation:none}.start-lights.lifting{animation:none;transform:translate(-50%,-360px) scale(.6667)}}

/* Leave room around the hovering ship in the games card. */
.mg-choice-art .race-hub-ufo{height:calc(100% - 40px);max-height:170px;width:210px;max-width:75%}@keyframes card-levitation{0%,100%{transform:translateY(4px) rotate(-1deg)}50%{transform:translateY(-4px) rotate(1deg)}}

/* Compact controls with secondary actions below progress. */
.race-actions{display:block;margin:8px 0}.race-actions p{height:2.6em;min-height:2.6em;overflow:hidden}.touch-controls{display:grid!important;grid-template-columns:1fr 86px 1fr;align-items:center}.touch-controls #sound{font-size:9px;padding:10px 3px;min-height:34px;border-radius:999px;white-space:nowrap;background:#ffffff12}.race-secondary{display:flex;justify-content:center;gap:12px;margin-top:12px}.race-secondary .mg-btn{font-size:10px;padding:9px 20px}.race-progress{margin-top:12px}
.touch-controls,.touch-controls button,.touch-controls button *{-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important;-webkit-tap-highlight-color:transparent;touch-action:none}.touch-controls button{-webkit-user-drag:none}

/* Antigravity launch module: faceted hull, reactor lamps and holographic telemetry. */
.start-lights{gap:14px;padding:29px 27px 21px;border:0;border-radius:7px;background:linear-gradient(135deg,#0d354e,#10152f 45%,#173851);box-shadow:inset 0 0 0 2px #54e8ff,inset 0 0 20px #21caff55,0 0 24px #20d9ff88;outline:1px solid #acf8ff;outline-offset:5px;isolation:isolate}
.start-lights:before{display:block;content:'GP / LAUNCH';position:absolute;top:7px;bottom:auto;left:0;width:100%;height:auto;background:none;text-align:center;color:#93f7ff;font:700 10px/1.2 monospace;letter-spacing:4px}
.start-lights span{position:relative;width:clamp(40px,5vw,65px);border:2px solid #fc6979;border-radius:0;clip-path:polygon(25% 0,75% 0,100% 25%,100% 75%,75% 100%,25% 100%,0 75%,0 25%);background:repeating-linear-gradient(0deg,transparent 0 4px,#ffb9c51c 4px 5px),radial-gradient(circle,#fff1ed 0,#ff5779 19%,#ec154c 55%,#631c41 90%);box-shadow:inset 0 0 12px #ffb3bd}
.start-lights span:after{content:'';position:absolute;inset:7px;border:1px solid #ffbdc866;clip-path:inherit}
.start-lights span.off{border-color:#3acadd;background:radial-gradient(circle,#122b45,#0b162e);box-shadow:inset 0 0 8px #25d8ff55}.start-lights span.off:after{border-color:#33d6ee55}
.start-lights:after{left:8%;width:84%;height:32px;background:radial-gradient(ellipse at top,#deffff,#23dfff99 30%,transparent 70%)}
.driver .mini-vehicle{height:auto;aspect-ratio:260/166;background:radial-gradient(ellipse at 50% 65%,#ffffff18,transparent 70%),#24114f}.driver .name{padding:9px 4px 13px}.driver .check{z-index:2}@media(max-width:600px){.drivers{grid-template-columns:repeat(3,minmax(0,1fr))}.driver .name{font-size:12px;padding:7px 3px 10px}}
