/* Mesa LAN: solid arcade surfaces and accessible controls. */
:root{--felt:#122023;--felt-dark:#0c171a;--parchment:#213135;--gold:#f4bf4f;--ink:#f1f4ff;--chalk:#f1f4ff;--suit-red:#ff5c7a;--radius:12px;--shadow:4px 4px 0 #091315;--muted:#b1c4c6;--line:#3d5155;--font-display:'Segoe UI',system-ui,sans-serif;--font-body:'Segoe UI',system-ui,sans-serif}
[hidden]{display:none!important}html,body,.gate{background:#122023;background-image:none;color:var(--chalk)}button,input,select{font:inherit}button{min-height:44px;border-radius:10px;padding:10px 16px;border:1px solid transparent;cursor:pointer;touch-action:manipulation;transition:transform .15s,background .15s}button:disabled{opacity:.55;cursor:default}button.ghost{background:#ffffff08;border:1px solid #ffffff25;color:#c9d5ee}input,select{background:#101b34;border:1px solid #ffffff25;color:#f1f4ff;border-radius:10px;padding:10px 12px}select{width:100%}input:focus-visible,button:focus-visible,select:focus-visible{outline:3px solid #42e6df;outline-offset:3px}input[type=checkbox]{min-height:20px;width:20px;accent-color:#7b78ff;vertical-align:middle}input[type=range]{padding:0;accent-color:#42e6df;width:100%;min-height:44px}
.wrap{max-width:1180px;padding:30px 28px 100px}.hub-header{padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:28px}.wordmark{align-items:center;gap:12px}.wordmark h1{font-size:1.6rem;letter-spacing:-.04em}.wordmark .dice{background:#7b78ff25;padding:10px;border-radius:14px}.tagline{color:var(--muted);font-size:.85rem;margin-top:8px}.server-address{font-family:var(--font-body);color:var(--muted);font-size:.76rem;margin-top:6px}.status-chip{background:#42e6df0b;border:1px solid #42e6df35;color:#8ceee2;font-family:var(--font-body);font-size:.8rem}.dot{background:#42e6df!important}.offline .dot{background:#ff5c7a!important}
.arcade-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:260px;padding:30px 36px;border:2px solid #e8dfc9;border-radius:12px;background:#e8dfc9;margin-bottom:36px;overflow:hidden;box-shadow:6px 6px 0 #071417}.eyebrow{display:block;color:#a35825;font-size:.72rem;letter-spacing:.18em;font-weight:800}.arcade-hero h2{color:#132b30;font-size:clamp(2rem,4vw,3rem);line-height:1.1;letter-spacing:-.045em;margin:14px 0}.arcade-hero em{font-style:normal;color:#116958}.arcade-hero p{color:#405b5e;line-height:1.6;max-width:400px;font-size:.9rem;margin:0}.hero-tokens{display:flex;align-items:center;gap:18px;transform:rotate(-10deg);padding-right:20px}.hero-tokens span{display:grid;place-items:center;width:95px;height:95px;font-size:3rem;font-weight:900;border-radius:24px;background:#ff6a8a;box-shadow:6px 8px 0 #833849;color:#fff}.hero-tokens span:nth-child(2){background:#263957;box-shadow:6px 8px 0 #101d22;border-radius:50%;transform:translateY(-20px)}.hero-tokens span:nth-child(3){background:#ffcc64;box-shadow:6px 8px 0 #8c632d;color:#4f3750}.section-title{text-transform:none;letter-spacing:0;font-size:1.1rem;color:#eff4ff;display:flex;justify-content:space-between;align-items:center;margin:26px 0 16px;font-weight:750}.section-title span{font-size:.75rem;color:var(--muted);font-weight:400}.game-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.game-card{text-align:left;display:flex;flex-direction:column;padding:0;background:#203236;color:#f1f4ff;border:2px solid #476064;border-radius:12px;overflow:hidden;box-shadow:4px 4px 0 #071417;min-width:0}.game-card:hover:not(:disabled){transform:translateY(-5px);border-color:#f4bf4f;box-shadow:6px 6px 0 #071417}.game-card h3{font-size:1.1rem;margin:18px 18px 8px;color:white;font-weight:850}.game-card p{font-size:.8rem;line-height:1.6;color:var(--muted);margin:0 18px 16px;min-height:58px;font-weight:400}.game-illustration{width:100%;height:155px;background:#6c65ae}.game-cartas .game-illustration{background:#318878}.game-bola8 .game-illustration{background:#2c6b60}.game-carros .game-illustration{background:#c98748}.game-illustration img{width:100%;height:100%;object-fit:contain}.game-card .badges{margin:auto 18px 16px;gap:5px}.badge{background:#122023;color:#e8dfc9;font-family:var(--font-body);font-size:.65rem;padding:5px 7px;border-radius:6px;border:1px solid #476064}.card-cta{display:flex;justify-content:space-between;align-items:center;margin:0 18px;padding:14px 0;border-top:1px solid #ffffff12;color:#f4bf4f;font-size:.8rem}
.ticket{background:#203236;color:var(--chalk);border:1px solid #476064;border-radius:12px;box-shadow:none}.stub{background:#f4bf4f;color:#182b31;font-family:var(--font-mono);font-size:1.15rem;padding:18px;border-right:1px dashed #ffffff25}.ticket .meta{color:var(--muted);font-family:var(--font-body)}.room-name{font-weight:700}.room-list{gap:10px}.empty-hint{border:1px dashed #ffffff25;border-radius:14px;padding:24px;color:var(--muted);font-size:.9rem}.join-code{gap:10px}.join-code input{min-width:0;flex:1}.gate-card{background:#203236;border:1px solid #476064;border-radius:12px;text-align:center;padding:40px;max-width:440px}.gate-card h1{font-size:2.7rem;letter-spacing:-.05em}.gate-card p{color:var(--muted);line-height:1.6}.gate-card form{display:flex;flex-direction:column;gap:12px}.brand-die{width:80px;height:80px;margin:0 auto 30px;display:grid;place-items:center;background:#8476ff;color:white;border-radius:22px;transform:rotate(-10deg);box-shadow:7px 9px 0 #4f4496;font-size:3rem}
.modal-backdrop{background:#070d21bb;backdrop-filter:blur(6px);padding:18px}.modal{background:#203236;border:1px solid #476064;color:var(--chalk);max-height:88dvh;overflow:auto;border-radius:12px}.modal .field-hint{color:var(--muted);line-height:1.5}.modal .mode-select button{background:#101b34;border:1px solid #ffffff20;color:#c9d5ee}.modal .mode-select button.active{background:#7b78ff;color:white;border-color:#7b78ff}.modal label{display:block;margin:12px 0 7px}.modal input{width:100%}.modal input[type=checkbox]{width:20px}.change-game-card{background:#ffffff08;color:var(--chalk);border:1px solid #ffffff18}.change-game-card.selected{border-color:#7b78ff;background:#7b78ff22}#map-select{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}#map-select button{font-size:.75rem;display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 6px;min-width:0;border-radius:8px}#map-select .map-preview{width:100%;height:65px;color:#f4bf4f}#map-select button.active{background:#344f4b;border-color:#f4bf4f}#map-select button[data-map=granpremio] .map-preview{color:#75d998}#map-select button[data-map=velodromo] .map-preview{color:#ef77d0}
.room-screen{display:none}.room-topbar{gap:10px;flex-wrap:wrap;margin-bottom:18px}.room-topbar .ticket{flex:1;min-width:220px}.players-strip{gap:8px}.player-tag{background:#ffffff08;border:1px solid #ffffff18;border-radius:10px;padding:9px 12px;font-family:var(--font-body);font-size:.8rem}.player-tag.turn{border-color:#42e6df;color:#8ceee2;background:#42e6df15}.game-stage{display:flex;flex-direction:column;align-items:stretch;padding:20px;border:1px solid #476064;background:#203236;border-radius:12px;gap:18px}#game-board{width:100%;display:flex;flex-direction:column;align-items:stretch;gap:14px;min-width:0}.game-message{font-size:1.1rem;color:#f1f4ff;text-align:center;background:#16282c;padding:12px;border-radius:12px;min-height:48px}.game-hud{font-size:.85rem;text-align:center;color:#b7c8ec;padding:10px;background:#16282c;border-radius:10px;line-height:1.6}.game-help{font-size:.8rem;line-height:1.7;color:#b3c2df;text-align:center;margin:0}.game-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px}.game-actions span{font-size:.85rem;color:var(--muted)}#rematch-btn{align-self:center}.arcade-scene{position:relative;width:100%;height:clamp(240px,40vw,470px);border-radius:16px;overflow:hidden;background:#152344;border:1px solid #ffffff15}.arcade-canvas{display:block;width:100%;height:100%;touch-action:none}.cell-hit{position:absolute;transform:translate(-50%,-50%);background:transparent!important;border:0!important;min-height:44px;color:transparent;box-shadow:none;z-index:2}.cell-hit:focus-visible{outline:3px solid #6fffe0}.celebrate{animation:celebrate .5s ease-out}.pool-controls{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px}.pool-controls label{display:flex;flex-direction:column;gap:4px;min-width:130px;flex:1;font-size:.8rem;color:var(--muted)}.pool-hud{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.opponents{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.opponent{display:flex;flex-direction:column;gap:5px;border:1px solid #ffffff18;border-radius:12px;padding:12px 18px;font-size:.8rem;min-width:110px;text-align:center}.opponent span{color:var(--muted)}.opponent.active{border-color:#42e6df;background:#42e6df0b}.uno-scene{height:220px}.card-table{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:35px;pointer-events:none}.card-table button{pointer-events:auto}.arcade-card{width:85px;min-width:85px;height:124px;padding:0!important;position:relative;overflow:visible;background:#fff8ef!important;border:0!important;border-radius:14px;box-shadow:1px 2px 0 #d3cbbb,2px 4px 0 #aaa6a7,0 8px 15px #08132680;transform:perspective(650px) rotateY(-5deg);transition:transform .15s,box-shadow .15s}.card-face{width:100%;height:100%;border-radius:12px;display:block;pointer-events:none}.card-hand{display:flex;gap:10px;overflow-x:auto;padding:10px 8px 15px;min-height:150px;align-items:center}.card-hand .arcade-card:not(:disabled):hover,.card-hand .arcade-card:focus-visible{transform:translateY(-8px) rotateY(0);box-shadow:0 0 0 3px #6fffe0,0 12px 20px #08132690}.card-hand .arcade-card:disabled{opacity:1;filter:saturate(.85)}.discard-slot .arcade-card:disabled{opacity:1;filter:none}.deck-button{height:118px;width:80px;padding:0!important;background:#202441!important;color:#ffe26c;font-size:1.7rem;font-weight:900;border:0!important;box-shadow:2px 3px #d3cbbb,4px 6px #aaa6a7,0 10px 20px #0006;position:relative;isolation:isolate;transform:rotate(-7deg);opacity:1!important;filter:none!important}.deck-button::after{content:attr(data-count) ' cartas';position:absolute;bottom:10px;left:8px;right:8px;font-size:.65rem;color:white;background:#202441d9;padding:3px;border-radius:4px}.deck-button:hover:not(:disabled){transform:rotate(-7deg) translateY(-3px)}.uno-picker{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;padding:12px;border:1px solid #ffffff30;border-radius:12px}.uno-picker button{background:var(--card-color)!important;color:#10213b;font-weight:800}.uno-call{background:#ff5c7a!important;color:white!important}
.race-ranking{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.rank-row{padding:8px 12px;background:#ffffff06;border-radius:10px;font-size:.75rem}.race-countdown{position:absolute;inset:0;display:grid;place-items:center;font-size:5rem;font-weight:900;color:#ffe26c;pointer-events:none}.race-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.drive-button{background:#263b55!important;color:#fff;min-height:60px;border:1px solid #ffffff20;touch-action:none;user-select:none}.drive-button:active{background:#52647e!important}.race-controls .drive-button:last-child{background:#b77632!important;color:#fff;grid-column:1/-1;min-height:44px}.race-controls .drive-button:last-child:active{background:#dfab4c!important}.arcade-joystick{display:none;position:relative;width:112px;height:112px;border-radius:50%;background:#253d42;border:2px solid #8f9fff55;box-shadow:inset 0 0 0 15px #192c30;touch-action:none;user-select:none;align-self:center;justify-self:center}.joystick-thumb{position:absolute;left:calc(50% - 22px);top:calc(50% - 22px);width:44px;height:44px;border-radius:50%;background:#f4bf4f;box-shadow:0 4px 8px #0005;pointer-events:none}.joystick-caption{position:absolute;bottom:4px;left:0;right:0;text-align:center;font-size:.6rem;color:#b7c8ec;pointer-events:none}.race-help summary{cursor:pointer;min-height:44px;display:grid;place-items:center}.race-first-person{isolation:isolate}.race-minimap{position:absolute;top:10px;right:10px;width:135px;height:83px;border:2px solid #ffffffa0;border-radius:10px;background:#14213acc;pointer-events:none}.race-cockpit{position:absolute;inset:0;pointer-events:none;overflow:hidden}.race-cockpit[hidden]{display:none}.race-hood{position:absolute;bottom:-22%;left:22%;width:56%;height:40%;background:var(--hood-color,#ff5c7a);border:3px solid #ffffff80;clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);border-radius:28%}.race-wheel{position:absolute;bottom:-64px;left:calc(50% - 65px);width:130px;height:130px;border:14px solid #1a2438;border-radius:50%;box-shadow:inset 0 0 0 3px #7184a3}.race-cockpit.boosting{box-shadow:inset 0 0 35px #ffd65a90}.race-cockpit.shielded{box-shadow:inset 0 0 24px #55ddff}
.race-effects{position:absolute;inset:0;pointer-events:none;overflow:hidden}.exhaust-flame{display:none;position:absolute;bottom:7%;width:28px;height:85px;background:#ff8c28;border:6px solid #ffe57a;clip-path:polygon(50% 0,75% 30%,100% 60%,75% 100%,25% 100%,0 60%,25% 30%);transform-origin:50% 100%;animation:exhaust-flicker .12s infinite alternate}.exhaust-flame.left{left:13%}.exhaust-flame.right{right:13%}.firing .exhaust-flame{display:block}.turbo .exhaust-flame{background:#48dcff;border-color:#d4faff;height:120px}.drift-smoke{display:none;position:absolute;bottom:-10%;left:-5%;width:110%;height:30%;border:18px solid #ced6de66;border-radius:50%;animation:drift-puff .6s infinite}.drifting .drift-smoke{display:block}.airborne::after{content:'EN EL AIRE';position:absolute;top:14px;left:14px;color:#ffe57a;background:#132023;padding:8px 12px;border-radius:8px;font-weight:800;font-size:.8rem}.preferences{display:flex;align-items:center;gap:8px;background:#16282c;border:1px solid #476064;border-radius:12px;padding:10px;font-size:.72rem;white-space:nowrap}.preferences select{width:auto;max-width:150px;min-height:44px}.preferences button{font-size:.72rem;background:transparent;color:white;padding:4px 8px}.preferences label{color:var(--muted)}
button:not(.game-card):not(.ghost):not(.arcade-card):not(.deck-button):not(.cell-hit):not(.drive-button):not(#sound-btn):not(.garage-choice):not(.pilot-choice){background:#645de0;color:white}.uno-picker button{background:var(--card-color)!important;color:#10213b}.gate-card form button{font-weight:800}
@keyframes exhaust-flicker{from{transform:scale(.8,.7) rotate(-5deg)}to{transform:scale(1.15,1.1) rotate(5deg)}}@keyframes drift-puff{from{transform:scale(.8);opacity:.5}to{transform:scale(1.2);opacity:0}}@keyframes celebrate{from{box-shadow:0 0 0 8px #ffe26c55}to{box-shadow:none}}
@media(max-width:900px){.game-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-tokens span{width:65px;height:65px;font-size:2rem}.hero-tokens{gap:12px;padding-right:0}.arcade-hero{padding:26px;gap:12px}.arcade-joystick{display:block;grid-column:1;grid-row:1/span 2}.race-controls{grid-template-columns:112px 1fr 1fr}.race-controls .drive-button{min-height:50px}.race-controls .drive-button:last-child{grid-column:2/span 2}.preferences{padding:6px}.room-topbar{gap:8px}}
@media(max-width:600px){.wrap{padding:18px 14px 70px}.hub-header{gap:12px;flex-wrap:wrap}.hub-header .preferences{width:100%;justify-content:center}.arcade-hero{padding:24px;min-height:230px}.arcade-hero h2{font-size:2rem}.hero-tokens{display:none}.game-grid{gap:12px}.game-illustration{height:125px}.game-card h3{margin:14px 12px 6px;font-size:1rem}.game-card p{margin:0 12px 14px}.game-card .badges{margin:auto 12px 12px}.card-cta{margin:0 12px}.game-stage{padding:12px;gap:12px}.arcade-scene{height:260px}.uno-scene{height:200px}.arcade-card{width:76px;min-width:76px;height:118px}.room-topbar{flex-wrap:wrap}.room-topbar .ticket{min-width:0;width:100%;flex-basis:100%}.room-topbar .ticket .stub{width:auto;flex:none;padding:12px;font-size:1rem}.room-topbar .info{min-width:0}.room-topbar .preferences{flex:1;min-width:0}.room-topbar>.ghost{padding:8px;font-size:.72rem}.race-first-person{height:200px}.race-ranking{gap:4px}.rank-row{padding:5px 7px;font-size:.68rem}.game-hud{padding:7px;font-size:.72rem}.race-minimap{width:96px;height:59px;top:6px;right:6px}.pool-controls{gap:8px}.pool-controls label{min-width:100px}.join-code{flex-wrap:wrap}.join-code input{flex-basis:40%}.section-title span{font-size:.65rem}.modal{padding:20px}}
@media(max-height:500px) and (orientation:landscape){[data-game=carros]{display:grid!important;grid-template-columns:minmax(0,1fr) 235px;gap:8px!important}[data-game=carros] .arcade-scene{grid-column:1;grid-row:1/span 4;height:265px}[data-game=carros] .race-ranking{grid-column:2;grid-row:1}[data-game=carros]>.game-hud{grid-column:2;grid-row:2}[data-game=carros] .race-controls{grid-column:2;grid-row:3;grid-template-columns:86px 1fr 1fr;gap:5px}[data-game=carros] .arcade-joystick{width:86px;height:86px}[data-game=carros] .drive-button{min-height:42px;padding:5px;font-size:.66rem}[data-game=carros] .game-actions{grid-column:2;grid-row:4;gap:4px}[data-game=carros] .game-actions button{font-size:.65rem;padding:5px;min-height:44px}[data-game=carros] .race-help,[data-game=carros] .race-event{grid-column:1/span 2}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

input[type="text"],input[type="password"],#name-input{background:#132a2f;color:#fff6e3;caret-color:#ffd16b}input[type="text"]::placeholder{color:#b6c5c6;opacity:1}.garage{padding:16px;background:#112a30;border:1px solid #547578;border-radius:14px;margin:12px 0}.garage-options{display:flex;gap:10px;flex-wrap:wrap}.garage-choice{flex:1;min-width:95px;display:flex;align-items:center;flex-direction:column;padding:12px;border:2px solid #547578;background:#203d43;color:#fff6e3}.garage-choice[aria-pressed="true"]{border-color:#ffd16b;background:#3c4b3c}.garage-choice img{width:120px;max-width:100%;height:70px;object-fit:contain}.garage p{margin:8px 0}.garage h3{margin:0 0 12px}

.garage button.garage-choice{background:#203d43;color:#fff6e3}.garage button.garage-choice[aria-pressed="true"]{background:#3c4b3c;border-color:#ffd16b}@media(max-width:600px){.preferences{max-width:100%;box-sizing:border-box;flex-wrap:wrap;justify-content:center;gap:6px}.preferences select{max-width:145px}.garage-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.garage-choice{min-width:0}.garage-choice:last-child{grid-column:1/-1}}

@media(max-height:500px) and (orientation:landscape){[data-game=carros]>.garage{grid-column:1/-1;grid-row:1}[data-game=carros]:has(>.garage:not([hidden])) .arcade-scene{grid-row:2/span 4}[data-game=carros]:has(>.garage:not([hidden])) .race-ranking{grid-row:2}[data-game=carros]:has(>.garage:not([hidden]))>.game-hud{grid-row:3}[data-game=carros]:has(>.garage:not([hidden])) .race-controls{grid-row:4}[data-game=carros]:has(>.garage:not([hidden])) .game-actions{grid-row:5}}

.garage .race-ready{margin-top:14px;width:100%;min-height:48px}.garage .race-ready[aria-pressed="true"]{background:#317446!important}.ready-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.ready-list>div{padding:6px 10px;background:#10262b;border-radius:6px}

.pilot-heading{margin-top:20px!important}.pilot-options{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.pilot-choice{padding:8px;background:#203d43;color:#fff6e3;border:2px solid var(--pilot-color);display:flex;align-items:center;flex-direction:column}.pilot-choice[aria-pressed="true"]{background:#40554b;outline:3px solid #ffd16b;outline-offset:1px}.pilot-choice img{width:100%;height:80px;object-fit:contain}.race-effects.impact{box-shadow:inset 0 0 18px 5px #ffdb65}.race-third-person .exhaust-flame{display:none}@media(max-width:600px){.pilot-options{grid-template-columns:repeat(3,minmax(0,1fr))}}

.pilot-reaction{position:absolute;top:16px;left:16px;max-width:70%;padding:9px 12px;border-radius:8px;background:#10262bea;color:#fff6e3;font-weight:bold;font-size:.8rem;pointer-events:none}

.race-hour{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0}.race-hour select{width:auto;min-width:150px;min-height:44px}

.garage-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.garage-choice{min-width:0}@media(max-width:600px){.garage-options{grid-template-columns:repeat(2,minmax(0,1fr))}.garage-choice:last-child{grid-column:auto}}

.pilot-choice small{font-size:.65rem;line-height:1.35;margin-top:5px;color:#d3dfdb}.garage-choice img{height:88px}

.game-display-tools{display:flex;justify-content:flex-end;gap:8px}.game-display-tools button{min-height:44px}.game-expanded-body{overflow:hidden}.game-stage.game-expanded{position:fixed;inset:0;z-index:10000;width:100%;height:100dvh;box-sizing:border-box;border:0;border-radius:0;padding:8px;overflow:auto;gap:8px;background:#102127}.game-stage.game-expanded .game-display-tools{position:absolute;top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));z-index:30}.game-expanded .game-display-tools button{background:#102127dd!important;border:1px solid #8ca8a8;font-size:.75rem}.game-expanded #game-message{display:none}.game-expanded #game-board{min-height:100%;padding-top:52px;box-sizing:border-box}.game-expanded #game-board[data-game=carros]:has(.garage[hidden]){position:absolute;inset:0;height:100%;min-height:0;display:block!important;padding:0;overflow:hidden}.game-expanded [data-game=carros]:has(.garage[hidden]) .arcade-scene{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0}.game-expanded [data-game=carros]:has(.garage[hidden]) .race-controls{position:absolute;left:max(8px,env(safe-area-inset-left));bottom:max(8px,env(safe-area-inset-bottom));z-index:10;display:grid;grid-template-columns:90px 1fr 1fr;width:min(300px,calc(100% - 124px));gap:5px;margin:0;opacity:.92}.game-expanded .race-controls .arcade-joystick{display:block;grid-column:1;grid-row:1/span 2;width:90px;height:90px}.game-expanded .race-controls .drive-button{min-height:44px;padding:5px;font-size:.7rem;background:#213d48df}.game-expanded .race-controls .drive-button:last-child{grid-column:2/span 2}.game-expanded [data-game=carros]:has(.garage[hidden])>.game-actions{position:absolute;bottom:max(8px,env(safe-area-inset-bottom));right:max(8px,env(safe-area-inset-right));width:108px;display:grid;grid-template-columns:1fr;gap:5px;z-index:10}.game-expanded [data-game=carros]>.game-actions button{min-height:44px;padding:5px;font-size:.7rem;background:#172a35df!important}.game-expanded [data-game=carros]:has(.garage[hidden])>.game-hud{position:absolute;top:56px;left:8px;right:200px;z-index:5;width:fit-content;max-width:calc(100% - 190px);font-size:.65rem;padding:6px;background:#102127bb}.game-expanded [data-game=carros]:has(.garage[hidden])>.race-ranking{position:absolute;top:100px;left:8px;z-index:5;font-size:.65rem;max-width:55%;flex-wrap:wrap}.game-expanded [data-game=carros]:has(.garage[hidden]) .race-help,.game-expanded [data-game=carros]:has(.garage[hidden]) .race-event{display:none}.game-expanded .race-minimap{top:56px;right:8px;width:140px;height:86px}.game-expanded .pilot-reaction{top:150px}.game-expanded [data-game=bola8] .arcade-scene{height:calc(100dvh - 240px);min-height:200px}.game-expanded [data-game=tictactoe] .arcade-scene{height:calc(100dvh - 160px);min-height:240px}@media(min-width:600px) and (orientation:landscape){.game-expanded [data-game=carros]:has(.garage[hidden])>.game-actions{width:220px;grid-template-columns:1fr 1fr}.game-expanded [data-game=carros]:has(.garage[hidden]) .race-controls{width:300px}.game-expanded [data-game=bola8] .arcade-scene{height:calc(100dvh - 150px)}}@media(max-width:600px) and (orientation:portrait){.game-expanded [data-game=carros]:has(.garage[hidden]) .race-controls{grid-template-columns:76px 1fr 1fr}.game-expanded .race-controls .arcade-joystick{width:76px;height:86px}.game-expanded .race-controls .joystick-caption{font-size:.6rem}.game-expanded .race-controls .drive-button{font-size:.63rem}}

.game-expanded #rematch-btn{position:absolute;top:8px;right:8px;z-index:35;min-height:44px}.game-expanded[data-game=carros] .race-controls{touch-action:none}

.game-expanded .game-display-tools{position:fixed}.game-display-tools{flex-wrap:wrap;max-width:calc(100% - 16px)}

.game-expanded [data-game=carros]:has(.garage[hidden])>.race-ranking{top:136px}

/* Only the race viewport enters fullscreen; driving overlays remain inside it. */
[data-game=carros] .arcade-scene>.game-display-tools{position:absolute;top:8px;left:8px;z-index:30}
.arcade-scene.race-expanded{position:fixed!important;inset:0!important;z-index:10000;width:100vw!important;height:100dvh!important;max-height:none!important;border:0!important;border-radius:0!important;overflow:hidden;background:#102127}
.race-expanded .game-display-tools{position:absolute;top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left))}
.race-expanded .game-display-tools button{background:#102127dd!important;border:1px solid #8ca8a8;font-size:.75rem}
.race-expanded>.race-controls{position:absolute;left:max(8px,env(safe-area-inset-left));bottom:max(8px,env(safe-area-inset-bottom));z-index:10;display:grid;grid-template-columns:90px 1fr 1fr;width:min(300px,calc(100% - 124px));gap:5px;margin:0;touch-action:none}
.race-expanded .arcade-joystick{display:block;grid-column:1;grid-row:1/span 2;width:90px;height:90px}
.race-expanded .drive-button{min-height:44px;padding:5px;font-size:.7rem;background:#213d48df}
.race-expanded .drive-button:last-child{grid-column:2/span 2}
.race-expanded>.game-actions{position:absolute;bottom:max(8px,env(safe-area-inset-bottom));right:max(8px,env(safe-area-inset-right));width:108px;display:grid;grid-template-columns:1fr;gap:5px;z-index:10}
.race-expanded>.game-actions button{min-height:44px;padding:5px;font-size:.7rem;background:#172a35df!important}
.race-expanded>.game-hud{position:absolute;top:56px;left:8px;z-index:5;width:fit-content;max-width:calc(100% - 190px);font-size:.65rem;padding:6px;background:#102127bb}
.race-expanded>.race-ranking{position:absolute;top:136px;left:8px;z-index:5;font-size:.65rem;max-width:55%;flex-wrap:wrap}
.race-expanded .race-minimap{top:56px;right:8px;width:140px;height:86px}
.race-expanded .pilot-reaction{top:150px}
@media(min-width:600px) and (orientation:landscape){.race-expanded>.game-actions{width:220px;grid-template-columns:1fr 1fr}.race-expanded>.race-controls{width:300px}}
@media(max-width:600px) and (orientation:portrait){.race-expanded>.race-controls{grid-template-columns:76px 1fr 1fr}.race-expanded .arcade-joystick{width:76px;height:86px}.race-expanded .joystick-caption{font-size:.6rem}.race-expanded .drive-button{font-size:.63rem}}

/* Race HUD: transparent route, inventory slot and thumb controls. */
[data-game=carros] .arcade-scene .race-minimap{top:auto!important;right:auto!important;bottom:8px;left:50%;transform:translateX(-50%);width:100px!important;height:62px!important;background:transparent!important;border:0!important;box-shadow:none;pointer-events:none;z-index:8}
.race-power-slot{position:absolute;right:14px;top:14px;width:58px;height:58px;display:grid;place-items:center;border-radius:50%;border:2px solid #d5e8e7;background:#14282b66;color:#f4bf4f;font-size:32px;z-index:15}
.race-power-slot[data-kind=nitroPlus]{color:#62edff}.race-power-slot[data-kind=shield]{color:#74d9ff}.race-power-slot[data-kind=oil]{color:#ffc788}
[data-game=carros] .arcade-scene>.race-controls{position:absolute;left:12px;bottom:12px;width:200px;display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0;z-index:12;touch-action:none}
[data-game=carros] .race-touch-actions{position:absolute;right:12px;bottom:12px;display:flex;gap:10px;z-index:12;align-items:center}
[data-game=carros] .race-touch-actions button{width:60px;height:60px;min-height:60px;border-radius:50%;border:2px solid #b5d2d4;background:#183539dd!important;padding:4px;font-size:12px;color:#fff;touch-action:none}
[data-game=carros] .race-touch-actions .race-power-button{font-size:25px;color:#f4bf4f}
[data-game=carros] .race-touch-actions .drive-button:last-child{grid-column:auto}
[data-game=carros] .race-expanded>.game-actions{display:none}
[data-game=carros] .arcade-scene>.race-controls .arcade-joystick{display:none}
@media(max-width:900px),(pointer:coarse){
 [data-game=carros] .arcade-scene>.race-controls{width:86px!important;display:block!important;left:max(12px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom))}
 [data-game=carros] .arcade-scene>.race-controls .drive-button{display:none!important}
 [data-game=carros] .arcade-scene>.race-controls .arcade-joystick{display:block!important;width:86px!important;height:86px!important;margin:0;grid-column:auto;grid-row:auto}
 [data-game=carros]>.game-actions{display:none!important}
 [data-game=carros] .race-touch-actions{bottom:max(25px,env(safe-area-inset-bottom));right:max(12px,env(safe-area-inset-right));gap:8px}
 [data-game=carros] .race-touch-actions button{width:56px;height:56px;min-height:56px}
 [data-game=carros] .arcade-scene{min-height:300px}
}

@media(max-width:400px){[data-game=carros] .arcade-scene .race-minimap{width:80px!important;height:50px!important}}

[data-game=carros] .race-touch-actions .race-power-button[data-kind='']{font-size:12px}

[data-game=carros] .pilot-reaction{top:80px}

/* Resultado de carrera: tarjeta 3D centrada (título y tiempo) */
.race-victory{position:absolute;inset:0;z-index:3;display:grid;place-items:center;pointer-events:none;perspective:900px;--face:#ffd25a;--edge:#b9791a;--deep:#6b3d08;--ink:#3a2104;--glow:#ffe9a6}
.race-victory[hidden]{display:none}
.race-victory[data-place="2"]{--face:#e9eef5;--edge:#9aa6b6;--deep:#4d5868;--ink:#26303d;--glow:#ffffff}
.race-victory[data-place="3"]{--face:#f0a868;--edge:#a85f25;--deep:#5c300c;--ink:#3b1d05;--glow:#ffd2a8}
.race-victory[data-place="4"]{--face:#9fd8ff;--edge:#3f86c2;--deep:#173f63;--ink:#0d2740;--glow:#e3f4ff}
.race-victory-card{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:min(340px,calc(100vw - 48px));padding:22px 40px 20px;border-radius:22px;
 background:var(--face);border:3px solid #fff8;
 transform:rotateX(14deg);transform-style:preserve-3d;animation:race-victory-in .7s cubic-bezier(.2,1.4,.4,1) both;
 box-shadow:0 2px 0 var(--edge),0 4px 0 var(--edge),0 6px 0 var(--deep),0 8px 0 var(--deep),0 10px 0 var(--deep),0 26px 34px #000a,inset 0 2px 0 #fffc,inset 0 -6px 14px #0003}
.race-victory-title{font-size:clamp(2rem,6vw,3.4rem);font-weight:900;letter-spacing:.04em;text-transform:uppercase;line-height:1;color:var(--glow);
 text-shadow:0 1px 0 var(--edge),0 2px 0 var(--edge),0 3px 0 var(--deep),0 4px 0 var(--deep),0 5px 0 var(--deep),0 10px 14px #0008;-webkit-text-stroke:1px var(--ink)}
.race-victory-time{font-size:clamp(.95rem,2.4vw,1.15rem);font-weight:800;color:var(--ink);padding:5px 14px;border-radius:999px;background:#ffffff8c;box-shadow:inset 0 2px 4px #0002,0 1px 0 #fff9;font-variant-numeric:tabular-nums}
.race-victory-shine{position:absolute;inset:-40% auto -40% -60%;width:40%;background:#ffffff59;transform:skewX(-18deg);animation:race-victory-shine 3.2s ease-in-out 1s infinite}
@keyframes race-victory-in{from{opacity:0;transform:rotateX(80deg) scale(.6)}to{opacity:1;transform:rotateX(14deg) scale(1)}}
@keyframes race-victory-shine{0%,60%{left:-60%}100%{left:130%}}
@media(prefers-reduced-motion:reduce){.race-victory-card{animation:none}.race-victory-shine{display:none}}
@media(max-width:640px){.race-victory-card{padding:16px 24px 14px}}
.race-victory-place{font-size:clamp(1rem,2.6vw,1.3rem);font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);padding:3px 16px;border-radius:8px;background:#ffffff80;box-shadow:0 2px 0 var(--edge)}
.race-victory-next{pointer-events:auto;margin-top:6px;min-height:44px;padding:8px 28px;border:0;border-radius:12px;font-weight:900;font-size:1rem;letter-spacing:.06em;text-transform:uppercase;color:#fff;cursor:pointer;
 background:#2b3850;box-shadow:0 4px 0 #0b111b,0 8px 14px #0006,inset 0 1px 0 #ffffff40;transition:transform .12s,box-shadow .12s}
.race-victory-next:hover{transform:translateY(-1px)}.race-victory-next:active{transform:translateY(3px);box-shadow:0 1px 0 #0b111b,0 3px 8px #0006}
.race-victory-next:focus-visible,.race-results-actions button:focus-visible,.race-watch button:focus-visible{outline:3px solid #ffd25a;outline-offset:3px}

/* Clasificación ampliada al centro tras "Siguiente" */
.race-results{position:absolute;inset:0;z-index:6;display:grid;place-items:center;padding:16px;background:#04080ea6;perspective:1000px}
.race-results[hidden],.race-watch[hidden]{display:none}
.race-results-card{width:min(440px,100%);max-height:calc(100% - 12px);overflow:auto;padding:12px 16px 12px;border-radius:18px;color:#f3f6fa;transform-origin:center;
 background:#16304a;border:2px solid #ffd25a66;
 box-shadow:0 3px 0 #0c1a27,0 6px 0 #091520,0 9px 0 #06101a,0 24px 40px #000b,inset 0 1px 0 #ffffff33}
.race-results-card h3{margin:0 0 6px;text-align:center;font-size:1.1rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:#ffd25a;text-shadow:0 2px 0 #6b3d08}
.race-results-table{width:100%;border-collapse:collapse;font-size:.84rem}
.race-results-table td,.race-results-table th{padding:3px 8px;line-height:1.25;text-align:left;border-bottom:1px solid #ffffff17;font-weight:600;white-space:nowrap}
.race-results-table .race-results-pos{width:3em;font-weight:900;color:#9fc4e0}
.race-results-table .race-results-time{text-align:right;font-variant-numeric:tabular-nums;color:#cfe3f2}
.race-results-table tr:nth-child(1) .race-results-pos{color:#ffd25a}.race-results-table tr:nth-child(2) .race-results-pos{color:#e9eef5}.race-results-table tr:nth-child(3) .race-results-pos{color:#f0a868}
.race-results-table .rank-me{background:#2d5b4f;color:#e2ffb0}
.race-results-actions{position:sticky;bottom:-12px;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:10px -16px -12px;padding:10px 16px 12px;background:#16304a}
.race-results-actions button,.race-watch button{min-height:44px;padding:8px 20px;border:0;border-radius:11px;font-weight:900;letter-spacing:.04em;cursor:pointer;color:#fff;background:#2b3850;box-shadow:0 4px 0 #0b111b,0 8px 14px #0005}
#game-board .race-results-actions .race-results-end{color:#3a2104!important;background:#f2c25e!important;box-shadow:0 4px 0 #8a5a12,0 8px 14px #0005}
.race-results-actions button[hidden]{display:none}
.race-results-actions button:disabled{opacity:.5;cursor:not-allowed}
.race-results-note{margin:10px 0 0;text-align:center;font-size:.8rem;color:#b9cddd}.race-results-note:empty{display:none}
#game-board .arcade-scene>.race-ranking.race-rank-away{visibility:hidden}
#game-board .arcade-scene .race-minimap.race-flow-hidden{display:none!important}
/* Modo observar */
.race-watch{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:4;display:flex;align-items:center;gap:8px;max-width:calc(100% - 32px);padding:8px 10px;border-radius:14px;background:#0f2233e6;color:#fff;box-shadow:0 6px 18px #0007}
.race-watch .race-watch-step{min-width:44px;padding:8px 0}
.race-watch-label{font-weight:800;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
@media(max-width:640px){.race-watch{bottom:96px}.race-results-table{font-size:.8rem}}
