:root{--cream:#f5e8ca;--white:#fff8e9;--gold:#ffd05a;--orange:#f1883b;--ink:#10282c;--deep:#092023;--line:rgba(255,255,255,.15)}
.menu-links{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap;margin-top:9px}.menu-links a{display:inline-block;padding:8px 12px;border:1px solid #ffdc8277;border-radius:9px;background:#10282cdc;color:#ffdf8f;font:800 11px/1.2 system-ui,sans-serif;text-decoration:none;letter-spacing:.025em}.menu-links a:hover{background:#2c4c3b}.menu-links a:focus-visible{outline:2px solid #ffdc82;outline-offset:3px}.entry .menu-links{justify-content:flex-start;margin:12px 0}.register-cup{padding:14px;background:#183e3580;border:1px solid #ffdc8250;border-radius:11px;margin:12px 0;text-align:left}.register-cup h3{font-size:12px;color:#ffdf8f;margin:0 0 8px}.register-cup p{font-size:11px;line-height:1.45;color:#d2e1cc}.register-cup label{display:block;font-size:10px;color:#ffdf8f;margin:10px 0 7px;font-weight:800}.register-cup input{width:100%;font-size:14px}.register-cup .primary{font-size:15px}.finish-menu{justify-content:center}.register-cup #registrationStatus{color:#ffdf8f;margin-bottom:0}@media(max-width:750px){.selection-title .menu-links{gap:5px}.menu-links a{font-size:9px;padding:7px 9px}.selection-title .menu-links{justify-content:flex-end}}
.share-link{width:100%;margin-top:9px;padding:9px 11px;font-size:11px;color:#b8d9ce;background:#081e20;border-style:dashed}
#previewWorld{position:fixed;right:0;top:0;width:50vw;height:100vh;z-index:1;pointer-events:none;background:transparent}
@media(max-width:750px){#previewWorld{display:none}}
.showcase{position:fixed;z-index:2;right:4vw;bottom:6vh;min-width:245px;max-width:32vw;padding:14px 18px;background:linear-gradient(135deg,#102b2ce8,#0a2023cc);border:1px solid #ffdd8177;border-radius:12px;box-shadow:0 16px 35px #0017;text-align:right;pointer-events:none}.showcase small{display:block;color:#ffce69;font-size:10px;font-weight:800;letter-spacing:.18em}.showcase strong{display:block;color:#fff9e9;font-family:Impact,'Arial Narrow',sans-serif;font-size:35px;line-height:1.1;text-transform:uppercase}.showcase span{display:block;color:#c5d4c7;font-size:10px;margin-top:4px}
@media(max-width:750px){.showcase{display:none}}
@media(max-height:800px) and (min-width:751px){.entry{padding:20px 25px}.entry h1{font-size:58px}.intro{margin:12px 0}.avatars{max-height:155px}.entry-actions{position:sticky;bottom:0;background:#0b2426;padding:8px 0 6px}}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;font-family:'DM Sans',system-ui,sans-serif;color:var(--white);background:#112c30}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}#world{position:fixed;inset:0;width:100%;height:100%;display:block}.vignette{position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(6,24,29,.87) 0%,rgba(6,24,29,.42) 43%,transparent 80%),linear-gradient(0deg,rgba(5,21,23,.35),transparent 25%)}.hidden{display:none!important}.brand{position:fixed;z-index:5;left:3.8vw;top:28px;display:flex;align-items:center;gap:11px;text-shadow:0 2px 12px #0018}.brand-mark{width:45px;height:45px;border:3px solid var(--gold);border-radius:12px;display:grid;place-items:center;color:var(--gold);font-size:28px;transform:rotate(-12deg)}.brand strong{font-family:'Barlow Condensed',Impact,sans-serif;font-size:31px;letter-spacing:.03em;line-height:.85;display:block}.brand strong span{color:var(--gold)}.brand small{font-size:9px;font-weight:800;letter-spacing:.28em;color:#d7cba8}.connection{position:fixed;z-index:5;right:3.7vw;top:35px;background:#10282cbb;border:1px solid var(--line);border-radius:99px;padding:8px 14px;font-size:11px;font-weight:800;letter-spacing:.08em;color:#bfe8d3}.connection.off{color:#ffc8ad}.panel{position:fixed;z-index:4;background:linear-gradient(145deg,rgba(16,43,47,.96),rgba(7,29,32,.96));border:1px solid rgba(242,211,143,.22);box-shadow:0 24px 90px #001a, inset 0 1px #ffffff18;backdrop-filter:blur(18px)}.entry{left:3.8vw;top:107px;bottom:26px;width:min(545px,52vw);padding:28px 30px;overflow:auto;border-radius:22px}.eyebrow{margin:0 0 8px;color:var(--gold);font-size:10px;font-weight:800;letter-spacing:.26em}.entry h1,.lobby h2,.finish h2{font-family:'Barlow Condensed',Impact,sans-serif;text-transform:uppercase;line-height:.93;letter-spacing:.005em}.entry h1{font-size:clamp(48px,5vw,77px);margin:0}.entry h1 em{font-style:normal;color:var(--gold)}.intro{font-size:13px;line-height:1.5;color:#d8dfd4;max-width:460px;margin:16px 0 20px}.form-row label,.choose-heading{font-size:10px;font-weight:800;letter-spacing:.16em;color:#c7d3bd}.form-row label{display:block;margin-bottom:7px}input{border:1px solid #ffffff30;background:#05191ca3;color:var(--white);border-radius:10px;padding:13px 14px;outline:none}input:focus{border-color:var(--gold)}#nick{width:100%;height:44px}.choose-heading{display:flex;justify-content:space-between;gap:8px;margin:22px 0 10px}.choose-heading span:last-child{color:#9db5ad;text-transform:none;letter-spacing:0;font-size:10px}.avatars{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;max-height:210px;overflow:auto;padding-right:3px}.avatar{min-height:58px;padding:8px 6px;display:flex;align-items:center;gap:8px;text-align:left;border:1px solid #ffffff20;background:#ffffff0a;border-radius:10px;color:#f2f4e9;transition:.15s}.avatar:hover,.avatar.selected{background:#f4b44824;border-color:var(--gold)}.avatar.selected{box-shadow:inset 0 0 0 1px var(--gold)}.avatar .emoji{font-size:25px;flex:0 0 28px;text-align:center}.avatar .name{font-size:11px;font-weight:800;line-height:1.1}.entry-actions{display:flex;gap:8px;margin-top:17px}.primary{border:none;border-radius:10px;background:linear-gradient(135deg,#ffd65d,#f39c3d);color:#182529;font-family:'Barlow Condensed',Impact,sans-serif;font-size:22px;font-weight:900;letter-spacing:.04em;padding:10px 16px;min-height:49px;box-shadow:0 6px 0 #aa581e;display:flex;align-items:center;justify-content:space-between;gap:16px}.primary:hover{filter:brightness(1.07)}.entry-actions>.primary{flex:1}.join-row{display:flex;gap:6px;flex:1}.join-row input{width:105px;min-width:0;text-transform:uppercase;font-weight:800;letter-spacing:.12em}.join-row button,#copyLink,#copySecret,#nextView{background:#ffffff17;border:1px solid #ffffff35;color:var(--white);border-radius:9px;padding:9px 12px;font-weight:800;font-size:11px}.join-row button:hover,#copyLink:hover,#copySecret:hover,#nextView:hover{background:#ffffff30}.error{font-size:12px;color:#ffb7a8;min-height:18px;margin:12px 0 0}.lobby{left:3.8vw;top:145px;width:min(480px,90vw);padding:30px;border-radius:22px}.lobby h2,.finish h2{font-size:56px;margin:4px 0 20px}.room-code{display:flex;align-items:center;justify-content:space-between;border:1px dashed #ffd26791;border-radius:13px;background:#eaa53b15;padding:15px 17px}.room-code small,.secret-box small{display:block;color:#cfc8a4;font-size:10px;font-weight:800;letter-spacing:.18em}.room-code strong{font-family:'Barlow Condensed',Impact,sans-serif;font-size:42px;letter-spacing:.13em;color:var(--gold);line-height:1}.help{font-size:12px;line-height:1.5;color:#b9c8c0}.roster{display:grid;gap:8px;margin:21px 0}.roster-row{height:52px;border:1px solid var(--line);border-radius:10px;background:#ffffff0a;display:flex;align-items:center;gap:12px;padding:8px 12px}.roster-row .num{color:var(--gold);font-family:'Barlow Condensed',Impact,sans-serif;font-size:22px}.roster-row .face{font-size:25px}.roster-row .who{flex:1;min-width:0}.roster-row .who strong{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-row .who small{display:block;color:#aebdb2;font-size:10px}.badge{font-size:10px;font-weight:800;color:#ffc77c}.badge.yes{color:#7ce9b5}.full{width:100%}.lobby-message{text-align:center;color:#aabcb1;font-size:12px;margin:16px 0 0}.hud{position:fixed;inset:0;z-index:3;pointer-events:none}.hud button{pointer-events:auto}.hud-top{position:absolute;top:100px;right:3.8vw;display:flex;gap:8px}.hud-chip{background:#09272ad9;border:1px solid var(--line);padding:10px 15px;border-radius:11px;min-width:100px;box-shadow:0 8px 22px #0017}.hud-chip small,.item-slot small{display:block;font-size:9px;font-weight:800;letter-spacing:.13em;color:#a7c3b7}.hud-chip strong{font-family:'Barlow Condensed',Impact,sans-serif;font-size:23px;color:var(--gold)}.hud-chip.phase{min-width:160px}.countdown{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(100px,20vw,230px);font-weight:900;color:var(--gold);text-shadow:0 9px 0 #853d21,0 20px 50px #001}.race-notice{position:absolute;top:25%;left:50%;transform:translateX(-50%);min-width:250px;text-align:center;font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(22px,3vw,36px);font-weight:900;color:#fff6d5;text-shadow:0 3px 12px #001;transition:opacity .3s}.hud-bottom{position:absolute;bottom:24px;left:3.8vw;right:3.8vw;display:flex;align-items:flex-end;gap:10px}.speed{background:#09272ae8;border:1px solid var(--line);border-radius:50%;width:106px;height:106px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 8px 25px #0017}.speed strong{font-family:'Barlow Condensed',Impact,sans-serif;font-size:51px;color:var(--white);line-height:.9}.speed small{font-size:10px;font-weight:800;color:var(--gold)}.item-slot{min-width:122px;height:83px;padding:11px 13px;background:#09272ae8;border:1px solid var(--line);border-radius:11px}.item-slot strong{display:block;font-family:'Barlow Condensed',Impact,sans-serif;font-size:25px;color:var(--gold)}.item-slot span{display:block;font-size:8px;color:#afc0b5}.leaderboard{margin-left:auto;width:185px;background:#09272ae8;border:1px solid var(--line);border-radius:11px;padding:8px}.leader{display:flex;gap:7px;font-size:10px;padding:3px 4px;color:#dbe7d5}.leader.me{color:var(--gold);font-weight:800}.leader.out{text-decoration:line-through;opacity:.5}.leader b{width:14px}.leader span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spectator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#07272be6;border:1px solid #ffd66877;border-radius:14px;padding:17px 22px;text-align:center;display:grid;gap:7px;min-width:220px;box-shadow:0 20px 50px #0018}.spectator strong{color:var(--gold);font-family:'Barlow Condensed',Impact,sans-serif;font-size:33px}.spectator span{font-size:12px}.touch{display:none}.finish{left:50%;top:50%;transform:translate(-50%,-50%);width:min(510px,92vw);padding:30px;border-radius:22px;text-align:center}.finish h2{color:var(--gold);margin-bottom:10px}.finish>p:not(.eyebrow){font-size:13px;line-height:1.5}.secret-box{background:#f4bc4b16;border:1px dashed var(--gold);border-radius:12px;padding:16px;margin:20px 0}.secret-box strong{display:block;color:var(--gold);font-size:clamp(20px,4vw,32px);overflow-wrap:anywhere;margin:10px 0}.secret-box button{margin:auto}
@media(max-width:750px){.brand{left:16px;top:13px}.brand-mark{width:36px;height:36px;font-size:21px}.brand strong{font-size:25px}.brand small{font-size:7px}.connection{right:12px;top:16px;font-size:9px;padding:7px 9px}.entry{left:8px;right:8px;top:70px;bottom:8px;width:auto;padding:19px}.entry h1{font-size:54px}.intro{margin:12px 0;font-size:12px}.choose-heading{margin-top:15px}.avatars{max-height:27vh;grid-template-columns:repeat(3,1fr)}.avatar{min-height:49px;gap:4px}.avatar .emoji{font-size:20px;flex-basis:23px}.avatar .name{font-size:10px}.entry-actions{flex-wrap:wrap}.entry-actions>.primary,.join-row{flex:1 1 100%}.lobby{left:8px;right:8px;top:84px;width:auto;padding:22px}.lobby h2{font-size:48px}.hud-top{left:8px;right:8px;top:65px;gap:4px}.hud-chip{flex:1;min-width:0;padding:6px 7px}.hud-chip.phase{min-width:0;flex:1.4}.hud-chip small{font-size:7px}.hud-chip strong{font-size:18px}.hud-bottom{left:8px;right:8px;bottom:calc(130px + env(safe-area-inset-bottom));gap:5px}.speed{height:68px;width:68px}.speed strong{font-size:36px}.item-slot{height:63px;min-width:84px;padding:7px}.item-slot strong{font-size:20px}.item-slot span{display:none}.leaderboard{width:120px;padding:4px}.leader{font-size:9px;padding:2px}.touch{display:flex;position:absolute;left:8px;right:8px;bottom:calc(9px + env(safe-area-inset-bottom));justify-content:space-between;gap:14px;height:105px}.touch-steer,.touch-drive{display:flex;gap:8px;align-items:end}.touch button{user-select:none;touch-action:none;border:1px solid #ffe1959c;background:#0b3036d9;color:#fff4d2;border-radius:18px;min-width:65px;height:83px;font-family:'Barlow Condensed',Impact,sans-serif;font-size:23px;font-weight:900;box-shadow:0 5px 0 #06191d}.touch button.pressed{background:#d7943b;color:#132729;transform:translateY(4px);box-shadow:0 1px 0 #06191d}.touch-drive button{min-width:57px;font-size:18px}.touch-drive button[data-touch=gas]{background:#f5ba4b;color:#122a2d;min-width:72px;height:101px}.touch-drive button[data-touch=item]{font-size:13px;min-width:59px}.spectator{top:45%}.race-notice{top:22%;width:90%}.vignette{background:linear-gradient(0deg,#06181b56,transparent 25%),linear-gradient(90deg,#06181b6b,transparent 60%)}}
@media(max-width:390px){.avatar .name{font-size:9px}.touch{gap:5px}.touch-steer,.touch-drive{gap:4px}.touch button{min-width:51px}.touch-drive button{min-width:50px}.touch-drive button[data-touch=gas]{min-width:58px}.touch-drive button[data-touch=item]{min-width:50px}}

/* Preparation and lobby use the same warm wood and forest colors as the art. */
body:has(.entry:not(.hidden))::before,body:has(.lobby:not(.hidden))::before,body:has(.finish:not(.hidden))::before{content:"";position:fixed;inset:-20px;z-index:0;background:linear-gradient(#224a5877,#361e14a3),url('assets/pilots-v3133/landscape.webp') center/cover;filter:blur(13px)}
body:has(.entry:not(.hidden)) #world,body:has(.lobby:not(.hidden)) #world,body:has(.finish:not(.hidden)) #world{visibility:hidden}
#previewWorld{display:none!important}
.vignette{background:linear-gradient(90deg,#1d160f6b,transparent 70%)}
.brand{z-index:6}.brand-mark{background:#55a43c;border-color:#23331d;box-shadow:0 4px 0 #17281d;color:#fff1ad}
.brand strong{font-family:Impact,'Arial Narrow',sans-serif;color:#ffc246;text-shadow:-2px -2px #193022,2px 3px #14251b,0 5px 0 #152c21}.brand strong span{color:#76d74d}.brand small{color:#ffecd1;text-shadow:0 2px #261708}
.panel{background:linear-gradient(145deg,#734723f5,#3b2518f7);border:5px solid #2c1d14;box-shadow:0 18px 0 #24170c91,0 28px 75px #190e0db0,inset 0 0 0 2px #ad7b45;backdrop-filter:none}
.entry{top:118px;bottom:auto;width:min(540px,93vw);max-height:calc(100vh - 136px);padding:26px;overflow:auto;border-radius:22px}
.entry{padding:20px 24px;scrollbar-color:#bd8952 #3f2718;scrollbar-width:thin}.entry h1{font-size:clamp(49px,4.8vw,63px)}.entry .intro{margin:12px 0 14px}.entry .entry-actions{position:static;background:transparent;padding:0;margin-top:12px}
.entry h1,.lobby h2,.finish h2{font-family:Impact,'Arial Narrow',sans-serif;text-shadow:0 3px 1px #24160e}
.entry h1 em,.lobby h2,.finish h2{color:#ffd071}.eyebrow{color:#ffe4a8}.intro,.help{color:#f5e1c2}
.chosen-driver{display:flex;align-items:center;gap:17px;margin:16px 0 19px;background:#27180e9e;border:2px solid #b07b40;border-radius:14px;padding:8px}
.chosen-portrait{flex:0 0 91px;height:112px;border:3px solid #92c5e2;border-radius:9px;background-image:url('assets/seleccion-referencia.png');background-size:600% 320%;background-position:var(--col-pos) var(--row-pos)}
.chosen-portrait.extra-portrait{background-image:url('assets/personajes-extra.png');background-size:300% 100%;background-position:var(--extra-pos) center}
.chosen-driver small{display:block;font-size:10px;letter-spacing:.15em;color:#f8c575;font-weight:900}
.chosen-driver strong{display:block;font:30px Impact,'Arial Narrow',sans-serif;text-transform:uppercase;color:#fff7e3;text-shadow:0 3px #180f0b}
.chosen-driver button{border:0;background:transparent;color:#93e77b;font-size:11px;font-weight:900;text-decoration:underline;padding:8px 0}
.form-row label{color:#ffe1a7}input{background:#2d2018ed;border-color:#b98d55;color:#fff7df}input:focus{border-color:#b7ee65}
.primary{background:linear-gradient(#83e85c,#329a31);color:#fff9df;text-shadow:0 2px #275a20;border:3px solid #234f1c;box-shadow:0 5px 0 #172b15,inset 0 2px #b4ff8d;border-radius:15px}
.primary:hover{filter:brightness(1.1)}.room-code{background:#2c1c13b0;border-color:#dfac5d}.room-code strong{color:#b7f381}.roster-row{background:#2b1c13ac;border-color:#a5774966}.badge.yes{color:#b2ef79}
.lobby{top:108px;padding:20px 24px;max-height:calc(100vh - 125px);overflow:auto;scrollbar-color:#bd8952 #3f2718;scrollbar-width:thin}.lobby h2{font-size:45px;margin:2px 0 10px}.lobby .room-code{padding:9px 12px}.lobby .room-code strong{font-size:34px}.lobby .share-link{margin-top:6px;padding:7px}.lobby .help{margin:8px 0}.lobby .roster{margin:11px 0;gap:5px}.lobby .roster-row{height:44px;padding:5px 10px}.lobby .primary{min-height:43px}.lobby-message{margin:8px 0 0}
.practice-button{font-size:20px;justify-content:center}.practice-button span{margin-left:auto}
.race-portrait{width:76px;height:96px;flex:0 0 76px;border:3px solid #96bed2;border-radius:10px;background-image:url('assets/seleccion-referencia.png');background-size:600% 320%;background-position:var(--col-pos) var(--row-pos);box-shadow:0 5px 0 #302011,0 10px 20px #0a161a80}
.race-portrait.extra-portrait{background-image:url('assets/personajes-extra.png');background-size:300% 100%;background-position:var(--extra-pos) center}
.showcase{right:7vw;top:21vh;bottom:auto;width:min(28vw,310px);max-width:none;height:min(65vh,430px);min-width:0;border:6px solid #88b6d2;border-radius:16px;background-image:url('assets/seleccion-referencia.png');background-size:600% 320%;background-position:var(--col-pos) var(--row-pos);box-shadow:0 17px 0 #29190e,0 28px 55px #120d0ac7;padding:0}
.showcase.extra-portrait{background-image:url('assets/personajes-extra.png');background-size:300% 100%;background-position:var(--extra-pos) center}
.showcase small,.showcase strong,.showcase span{display:none}.showcase.extra-portrait strong{display:block;position:absolute;left:0;right:0;bottom:0;padding:12px 3px;font-size:24px;text-align:center;background:#754523e8}
.finish{background:linear-gradient(#754725,#342015);border-color:#2a1a11}
.finish .primary{margin-top:20px}
.entry-actions{flex-direction:column}.entry-actions>.primary,.entry-actions>.join-row{width:100%;flex:none}.entry-actions #create{font-size:20px;background:linear-gradient(#f9d58b,#c4843d);color:#36200e;text-shadow:none;border-color:#73451e;box-shadow:0 5px 0 #3b2414,inset 0 2px #ffe9b6}.entry-actions .join-row input{width:auto;flex:1}
.item-slot{position:relative;overflow:hidden;transition:border-color .2s,box-shadow .2s,background .2s}
.item-slot.rolling{border-color:#ffe890;background:linear-gradient(140deg,#3c6035e8,#173b37ec);box-shadow:0 0 0 3px #ffda632e,0 0 26px #ffcc5e70,inset 0 0 18px #fff2a12e}
.item-slot.rolling::before{content:"";position:absolute;inset:-70%;background:conic-gradient(from 0deg,transparent 0 37%,#fff0a54a 48%,transparent 59% 100%);animation:item-sweep .5s linear infinite;pointer-events:none}
.item-slot.rolling strong{position:relative;animation:item-pulse .16s ease-in-out infinite alternate;color:#fff3bd;text-shadow:0 2px 8px #f7a82b}
.item-slot.rolling span::after{content:" · GIRANDO";color:#ffe08b}
@keyframes item-sweep{to{transform:rotate(360deg)}}
@keyframes item-pulse{to{transform:translateY(-3px) scale(1.06)}}
@media(max-width:750px){
  .entry{top:75px;bottom:8px;left:8px;right:8px;width:auto;max-height:none;padding:18px}.entry h1{font-size:49px}.chosen-driver{margin:12px 0}
  .lobby{top:75px;bottom:8px;overflow:auto}.showcase,.race-portrait{display:none}
}
.lap-track{position:absolute;top:169px;right:3.8vw;width:374px;padding:5px 8px 7px;border-radius:9px;background:#09272abf;box-shadow:0 5px 16px #0015}
.lap-track span{display:block;margin-bottom:4px;color:#fff0c2;font:800 9px 'DM Sans',system-ui,sans-serif;letter-spacing:.12em}
.lap-track-line{height:6px;border-radius:10px;background:#031618b8;overflow:hidden}
.lap-track-line i{display:block;height:100%;width:0;background:linear-gradient(90deg,#76d45c,#ffe178);border-radius:10px;box-shadow:0 0 9px #b8f477;transition:width .15s linear}
.speed{position:relative}
.drive-state{position:absolute;left:50%;bottom:9px;transform:translateX(-50%);min-width:95px;text-align:center;color:#ffe392;font:900 10px 'Barlow Condensed',Impact,sans-serif;letter-spacing:.08em;text-shadow:0 2px 4px #183026;pointer-events:none}
.hud.drifting .speed{border-color:#fbd37e;box-shadow:0 0 16px #f7bf5266,0 8px 25px #0017}
.hud.hit::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 65%,transparent 44%,#e9823140 100%)}
.race-notice{top:30%;max-width:70vw;min-width:0;padding:6px 14px;border-radius:12px;background:#132d2bc0;font-size:clamp(18px,2.1vw,28px);line-height:1.08;box-shadow:0 7px 20px #12201538}
@media(max-width:750px){.lap-track{top:115px;left:8px;right:8px;width:auto}.lap-track span{font-size:8px}.drive-state{bottom:3px;font-size:8px;min-width:70px}.speed small{transform:translateY(-3px)}.race-notice{top:21%;max-width:92vw;font-size:19px}}

/* The entire roster is visible together, using the approved character art. */
.selection-screen{position:fixed;inset:0;z-index:20;display:grid;place-items:center;overflow:auto;background:#34533a;padding:14px 24px}
.selection-screen::before{content:"";position:fixed;inset:-25px;background:linear-gradient(#1b42386b,#402916a6),url('assets/pilots-v3133/landscape.webp') center/cover;filter:blur(14px);pointer-events:none}
.selection-art{position:relative;width:min(1150px,100%);height:min(950px,calc(100dvh - 28px));min-height:580px;display:flex;flex-direction:column;gap:12px}
.selection-title{display:flex;align-items:center;justify-content:space-between;gap:24px;text-shadow:0 3px #231e12}
.selection-title strong{display:block;font:clamp(36px,4vw,62px) Impact,'Arial Narrow',sans-serif;letter-spacing:-.04em;color:#ffc246;-webkit-text-stroke:1.5px #233420;line-height:1}
.selection-title strong span{color:#75d342}.selection-title small{font:12px Impact,'Arial Narrow',sans-serif;letter-spacing:.1em;color:#ffeac6}
.selection-title h1{font:clamp(22px,2.4vw,34px) Impact,'Arial Narrow',sans-serif;margin:0;color:#fff1cb}
.selection-title p{font-size:12px;margin:5px 0 0;color:#d9ead0;text-align:right}
.reference-choices{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(var(--pilot-grid-rows,3),minmax(0,1fr));gap:10px;flex:1;min-height:0}
.pilot-card{position:relative;min-width:0;min-height:0;padding:0;display:flex;flex-direction:column;align-items:stretch;border:3px solid #85abc0;border-radius:12px;background:#344b36;overflow:hidden;color:#fff8e4;box-shadow:0 4px 0 #24190e,0 8px 14px #16291688;transition:transform .15s,border-color .15s,box-shadow .15s}
.pilot-card img{width:100%;height:0;min-height:0;flex:1;object-fit:cover;background:#80653f}
.pilot-card.custom-pilot img{object-fit:contain}
.pilot-card.custom-pilot img{background-image:radial-gradient(ellipse at 50% 94%,#30221380 0%,#30221350 24%,transparent 50%),url('assets/pilots-v3133/landscape.webp');background-size:100% 100%,cover}
.pilot-name{flex:none;display:flex;justify-content:center;align-items:center;min-height:34px;padding:5px;font:clamp(13px,1.25vw,18px) Impact,'Arial Narrow',sans-serif;text-transform:uppercase;text-align:center;text-shadow:0 2px #28170c;background:linear-gradient(#936439,#674123);border-top:2px solid #3b2715;line-height:1.08}
.pilot-check{display:none;position:absolute;right:7px;top:7px;background:#ffdf66;color:#274226;width:26px;height:26px;border-radius:50%;font-weight:900;box-shadow:0 2px 7px #18271888}
.pilot-card:hover,.pilot-card:focus-visible{border-color:#fff2b0;outline:3px solid #ffdf6555;outline-offset:2px;transform:translateY(-2px)}
.pilot-card.selected{border-color:#ffdf66;box-shadow:0 0 0 2px #51360e,0 0 22px #ffdf6577}.pilot-card.selected .pilot-check{display:block}
.confirm-character{flex:none;align-self:center;min-height:53px;padding:9px 35px;border:4px solid #264219;border-radius:16px;background:linear-gradient(#89e763,#329538);color:#fff5d7;box-shadow:0 5px 0 #231a0d,inset 0 2px #c4ff94;font:clamp(20px,2vw,29px) Impact,'Arial Narrow',sans-serif;text-shadow:0 2px #255620}
.confirm-character:hover{filter:brightness(1.1)}
@media(max-width:750px){
.selection-screen{display:block;padding:18px 10px 88px}
.selection-art{height:auto;min-height:0;gap:16px}
.selection-title{display:block;text-align:center}.selection-title strong{font-size:49px}.selection-title h1{margin-top:14px;font-size:25px}.selection-title p{text-align:center;font-size:11px}
.reference-choices{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:none;gap:8px;flex:none}
.pilot-card{aspect-ratio:.8;border-width:2px}.pilot-name{font-size:12px;min-height:33px}.pilot-check{width:21px;height:21px;font-size:13px;right:4px;top:4px}
.confirm-character{position:fixed;z-index:2;bottom:calc(10px + env(safe-area-inset-bottom));left:10px;right:10px;width:calc(100% - 20px);min-height:58px;font-size:22px;box-shadow:0 5px 0 #231a0d,0 -10px 24px #213329bb}
}
@media(max-width:370px){.reference-choices{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:751px) and (max-height:640px){.selection-art{min-height:470px}.selection-title strong{font-size:36px}.selection-title h1{font-size:24px}.selection-title small{font-size:10px}.pilot-name{font-size:12px;min-height:26px}.confirm-character{min-height:43px;font-size:21px;padding:6px 26px}}


.recover-kart{position:absolute;left:3.8vw;top:90px;padding:8px 12px;border:1px solid #e8d5a155;border-radius:9px;background:#09272ad9;color:#ffe8b2;font-size:10px;font-weight:800;box-shadow:0 4px 12px #0014}
@media(max-width:750px){.recover-kart{left:8px;top:148px;padding:7px 10px;font-size:9px}}

.audio-controls{position:fixed;z-index:7;right:3.7vw;top:70px;display:flex;align-items:center;gap:8px;background:#10282ccd;border:1px solid #ffda6755;border-radius:9px;padding:5px 9px}
.audio-controls button{border:0;background:transparent;color:#ffe4a5;font-weight:800;font-size:10px;min-width:73px;padding:2px 0}.audio-controls input{width:72px;height:16px;padding:0;accent-color:#a2e567;border:0;background:transparent}
body:has(.selection-screen:not(.hidden)) .audio-controls{display:none}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.driving-help{color:#e6d6b9;font-size:11px;line-height:1.6;margin:13px 0 7px}
#retryRace{background:#ffcb69;color:#1d3025;border:0;border-radius:8px;padding:9px;font-weight:800}
.hud-chip:last-child strong{font-size:21px}
@media(max-width:750px){.audio-controls{right:8px;top:40px;padding:3px 7px;gap:5px}.audio-controls button{font-size:8px;min-width:65px}.audio-controls input{width:48px;height:12px}.hud-chip:last-child strong{font-size:15px}}
.hud:has(.spectator:not(.hidden)) .touch{display:none}
.spectator{top:145px;left:3.8vw;transform:none;min-width:0;width:210px;padding:12px 14px;text-align:left;box-shadow:0 8px 24px #0018}
.spectator strong{font-size:25px}
@media(max-width:750px){.spectator{top:auto;bottom:20px;left:8px;width:185px}.spectator strong{font-size:23px}}
.lap-track-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.lap-track-heading #sectorName{letter-spacing:0;text-align:right}
.minimap-panel{position:absolute;left:3.8vw;top:145px;width:180px;padding:8px 9px 3px;border-radius:13px;background:#09272ad4;border:1px solid #ffe09a3b;box-shadow:0 5px 20px #0015}
.minimap-panel small{display:block;font-size:8px;font-weight:800;letter-spacing:.16em;color:#bbd6c7;text-align:center}.minimap-panel canvas{display:block;width:100%;height:auto}
.spectator{top:320px}
@media(max-width:750px){.minimap-panel{left:auto;right:8px;top:170px;width:120px;padding:5px 5px 0}.minimap-panel small{font-size:6px}.spectator{top:auto}.lap-track-heading #sectorName{font-size:8px}}
.item-slot[data-item=greenTurtle]{border-color:#93de84;box-shadow:inset 0 0 20px #59ad4925}.item-slot[data-item=greenTurtle] strong{color:#a9eb97}
.item-slot[data-item=redTurtle]{border-color:#f08e7d;box-shadow:inset 0 0 20px #d7534925}.item-slot[data-item=redTurtle] strong{color:#ff9d88}
.record-card{display:flex;flex-direction:column;gap:3px;border-left:3px solid #ffda68;background:#163b342e;padding:9px 12px;margin:10px 0;color:#fff0c7}.record-card small{font-size:9px;letter-spacing:.12em}.record-card strong{font-size:18px}.record-card span{font-size:10px;color:#b6d0bb}.records-list{font-size:10px;color:#dfcfaa;margin:8px 0}.records-list summary{cursor:pointer}.records-list ol{padding-left:20px;max-height:120px;overflow:auto}.records-list li{padding:4px 0}
.personal-goal{display:flex;flex-direction:column;gap:4px;padding:8px 12px;border-left:3px solid #a6df83;background:#183b342e;margin:10px 0}.personal-goal small{font-size:9px;letter-spacing:.12em;color:#bae5a7}.personal-goal strong{font-size:14px;color:#f1ffd9}.personal-goal span{font-size:10px;line-height:1.4;color:#ded7bf}.records-list>small{display:block;padding:6px 0;color:#ffdf8d}
.attack-status{position:absolute;top:95px;left:50%;transform:translateX(-50%);max-width:270px;padding:9px 14px;border-radius:11px;background:#233128e8;border:1px solid #ffdf75;color:#fff3ac;text-align:center;box-shadow:0 3px 16px #0016;pointer-events:none}.attack-status strong{display:block;font-size:14px}.attack-status small{display:block;margin-top:4px;font-size:9px;line-height:1.3}.attack-status[data-type=redTurtle]{background:#481c22e8;border-color:#ff8779;color:#ffe1d7}
@media(max-width:750px){.attack-status{top:auto;bottom:225px;max-width:235px;padding:7px 10px}.attack-status strong{font-size:12px}.attack-status small{font-size:8px}}
.race-clock{position:absolute;left:3.8vw;top:337px;display:flex;gap:18px;border:1px solid #ffde7c44;border-radius:10px;background:#09272adb;padding:9px 12px;color:#ffeac2}.race-clock div{display:flex;flex-direction:column;gap:2px}.race-clock small{font-size:7px;letter-spacing:.12em}.race-clock strong{font-size:17px;font-variant-numeric:tabular-nums}.race-clock span{font-size:8px;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hud:has(.spectator:not(.hidden)) .race-clock{top:435px}
.draft-indicator{position:absolute;bottom:128px;left:50%;transform:translateX(-50%);width:184px;text-align:center;color:#d8ffff;background:#103a48e8;border:1px solid #81eaff99;border-radius:11px;padding:9px 13px;box-shadow:0 0 22px #5bd8ed33}.draft-indicator strong{font-size:18px}.draft-indicator small{font-size:8px;display:block;margin-top:5px}.draft-indicator>div{height:4px;background:#061a28;border-radius:5px;margin-top:5px;overflow:hidden}.draft-indicator i{display:block;height:100%;background:#a5f6ff;transition:width .1s}.draft-indicator.active{border-color:#e7ffff;box-shadow:0 0 25px #5bd8ed66}.finish-time{font-weight:800;color:#ffe496;font-variant-numeric:tabular-nums;white-space:pre-line}
@media(max-width:750px){.race-clock{left:8px;top:185px;padding:6px 9px;gap:9px}.race-clock strong{font-size:13px}.race-clock small{font-size:6px}.draft-indicator{bottom:170px;width:155px;padding:6px 10px}.draft-indicator strong{font-size:14px}.hud:has(.spectator:not(.hidden)) .race-clock{top:185px}.record-card strong{font-size:14px}}
.custom-portrait{background-size:contain,100% 100%,cover!important;background-position:center!important;background-repeat:no-repeat!important;background-color:#80653f!important}
.course-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:9px 0}.course-card{padding:7px;border:1px solid #fbd67b44;border-radius:8px;background:linear-gradient(140deg,var(--course-color),#193d35);font-size:10px;color:#fff0c6}.course-card b{display:block;color:#ffd665;font-size:11px}.cup-rules{font-size:10px;line-height:1.5;color:#c1d4bb}.cup-progress{position:absolute;left:50%;transform:translateX(-50%);top:25px;background:#103c36e8;border:1px solid #ffe18b66;border-radius:9px;padding:8px 15px;text-align:center;max-width:380px}.cup-progress strong{display:block;font-size:12px;color:#ffde7c}.cup-progress small{font-size:10px;color:#dbedbf}.cup-table{margin:12px 0;text-align:left;background:#153f3580;border-radius:10px;padding:10px 15px}.cup-table h3{font-size:11px;letter-spacing:.1em;color:#ffdb8f;margin:0 0 8px}.cup-table ol{list-style:none;padding:0;margin:0}.cup-table li{font-size:12px;padding:6px;border-bottom:1px solid #b8dbae25}.cup-table .me{color:#ffe07e;font-weight:800}.finish{max-height:88vh;overflow:auto;min-width:0}.finish .primary{margin-top:10px}.finish #restart{font-size:12px;background:#e6d298;color:#254335;box-shadow:none}.finish h2{font-size:33px}.finish-time{font-size:12px}.entry h1{font-size:51px}.entry{max-height:calc(100vh - 120px);overflow:auto}.course-card small{display:block;opacity:.8;font-size:8px;margin-top:3px}
@media(max-width:750px){.cup-progress{top:75px;max-width:calc(100vw - 20px);width:300px;padding:6px 10px}.cup-progress strong{font-size:10px}.cup-progress small{font-size:8px}.finish{width:calc(100vw - 24px);max-height:88vh;padding:20px}.finish h2{font-size:25px}.entry h1{font-size:36px}.course-cards{grid-template-columns:repeat(2,1fr)}.entry{max-height:calc(100vh - 75px)}}
@media(min-width:751px){.reference-choices{grid-template-columns:repeat(6,minmax(0,var(--pilot-card-width,1fr)));grid-template-rows:repeat(var(--pilot-grid-rows,3),minmax(0,1fr));justify-content:center}.selection-art{width:min(1350px,100%)}.pilot-name{font-size:14px;height:var(--pilot-label-height,auto)}}
.finish{padding:20px 24px}.finish h2{font-size:30px;margin:4px 0 8px}.finish>p:not(.eyebrow){font-size:12px;line-height:1.4;margin:8px 0}.finish .cup-table{margin:8px 0;padding:8px 12px}.finish .cup-table li{font-size:11px;line-height:1.4;padding:3px 4px}.finish .secret-box{padding:10px;margin:10px 0}.finish .secret-box strong{font-size:24px;margin:7px 0}.finish .primary{min-height:40px;padding:8px 12px}.records-list ol{list-style:none;padding-left:0}.finish .records-list{margin:7px 0 0}.finish .records-list li{font-size:10px}
.next-course-preview{display:flex;flex-direction:column;gap:5px;margin:10px 0;padding:10px 12px;border:1px solid #f5da8590;border-left:5px solid #9bddad;border-radius:8px;background:linear-gradient(110deg,#21483c,var(--preview-color,#355447));text-align:left}.next-course-preview small{font-size:8px;color:#ffdfa1;letter-spacing:.1em}.next-course-preview strong{font:19px Impact,sans-serif;color:#fff2c8}.next-course-preview span{font-size:10px;line-height:1.35;color:#e5f2d6}.finish #nextRace{position:sticky;bottom:0;z-index:1;min-height:48px;box-shadow:0 4px 18px #0018;font-size:14px;white-space:normal}
@media(max-width:750px){.cup-progress{top:72px;padding:6px 10px}.hud-top{top:120px}.lap-track{top:170px}.minimap-panel{top:218px}.race-clock,.hud:has(.spectator:not(.hidden)) .race-clock{top:218px}.recover-kart{top:277px}.race-notice{top:38%}.finish h2{font-size:25px}}

/* Phone controls remain independent, so steering, gas and items work together. */
.mobile-toolbar,.mobile-help{display:none}
.tilt-test{padding:10px;border:1px solid #bdd78066;border-radius:10px;background:#061e2366}.tilt-test small{font-size:9px;color:#d9e8b7}.tilt-test strong{display:block;font-size:11px;line-height:1.5;margin-top:8px;color:#ffdf8a}
.tilt-meter{position:relative;display:block;width:100%;height:9px;border-radius:8px;background:linear-gradient(90deg,#d7a45d,#74d8a1 47%,#74d8a1 53%,#d7a45d);margin-top:10px}
.tilt-meter::after{content:'';position:absolute;left:50%;top:-3px;height:15px;width:1px;background:#ffffffaa}
.tilt-meter i{position:absolute;top:-4px;left:50%;height:17px;width:8px;border:1px solid #093037;border-radius:5px;background:#fff6d9;transform:translateX(-50%);transition:left .06s linear;z-index:1}
.tilt-live{position:absolute;right:calc(12px + env(safe-area-inset-right));bottom:calc(112px + env(safe-area-inset-bottom));width:142px;pointer-events:auto}
.tilt-live button{width:100%;min-height:56px;padding:9px;border-radius:11px;border:1px solid #edce6b;background:#12362be8;color:#ffe89d;font-size:9px;font-weight:900}
.tilt-live[data-state=ready] button{border-color:#89e0a6;color:#beffda}.tilt-live[data-state=error] button,.tilt-live[data-state=denied] button{border-color:#f69c7c;color:#ffd2af}
@media(min-width:1001px) and (pointer:fine){.tilt-live{bottom:140px}}
@media(max-width:360px){.tilt-live{width:106px;font-size:8px}}
@media(max-width:1000px) and (max-height:500px){.tilt-live{top:calc(155px + env(safe-area-inset-top));bottom:auto;width:125px}}
.mobile-panel{width:min(420px,calc(100vw - 24px));max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto;margin:auto;padding:22px;color:#fff4d5;background:linear-gradient(145deg,#19483e,#09282d);border:2px solid #d4b56d;border-radius:18px;box-shadow:0 15px 60px #001b}
.mobile-panel::backdrop{background:#051b24b8;backdrop-filter:blur(4px)}
.mobile-panel h2{font:25px Impact,sans-serif;margin:0 0 12px;color:#ffde80}
.mobile-panel p{font-size:13px;line-height:1.55}.mobile-panel .mobile-tip{font-size:11px;color:#b6d6c5}
.mobile-panel button:not(.primary){min-height:48px;width:100%;border:1px solid #a8d8bb;border-radius:10px;background:#306349;color:#fff3c7;font-weight:800;padding:10px;font-size:13px}
.mobile-panel #tiltStatus{min-height:42px;color:#ffe19b}
.mobile-panel label{display:flex;justify-content:space-between;font-size:12px;font-weight:800;margin:14px 0 3px}
.mobile-panel input{width:100%;height:42px;padding:0;accent-color:#9fea76;border:0;background:transparent;touch-action:pan-x}
.mobile-panel .primary{justify-content:center;font-size:18px;margin-top:16px;min-height:50px}
.touch button{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
@media (pointer:coarse),(max-width:750px),(max-width:1000px) and (max-height:500px){
  .mobile-toolbar{position:fixed;z-index:8;display:flex;gap:6px;right:calc(12px + env(safe-area-inset-right));top:calc(10px + env(safe-area-inset-top))}
  .mobile-toolbar button{border:1px solid #e1d69b77;border-radius:10px;background:#102e31ee;color:#fff0c2;min-height:40px;padding:8px 12px;font-size:10px;font-weight:900}
  .mobile-toolbar #mobileFullscreen{font-size:23px;line-height:1;padding:4px 10px;min-width:40px}
  body:has(.selection-screen:not(.hidden)) .mobile-toolbar{display:none}
  body:has(.hud:not(.hidden)) .brand,body:has(.hud:not(.hidden)) .connection{display:none}
  body:has(.entry:not(.hidden)) .brand{top:calc(14px + env(safe-area-inset-top));left:calc(12px + env(safe-area-inset-left))}
  body:has(.entry:not(.hidden)) .connection{display:none}
  .audio-controls{right:calc(12px + env(safe-area-inset-right));top:calc(54px + env(safe-area-inset-top));padding:6px}
  .audio-controls input{display:none}.audio-controls button{min-height:24px;font-size:9px;min-width:74px}
  .pc-help{display:none}.mobile-help{display:inline}
  .entry{top:calc(94px + env(safe-area-inset-top));bottom:calc(8px + env(safe-area-inset-bottom));left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right));width:auto;max-height:none;padding:20px}
  .showcase{display:none}
  .cup-progress{left:calc(12px + env(safe-area-inset-left));top:calc(10px + env(safe-area-inset-top));transform:none;width:calc(100% - 170px - env(safe-area-inset-left) - env(safe-area-inset-right));max-width:360px;text-align:left;padding:7px 9px}
  .cup-progress strong{font-size:9px;line-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cup-progress small{display:block;font-size:8px;line-height:12px}
  .hud-top{left:calc(12px + env(safe-area-inset-left));right:calc(12px + env(safe-area-inset-right));top:calc(92px + env(safe-area-inset-top));gap:5px}
  .hud-chip{min-width:0;padding:6px 8px;flex:1}.hud-chip.phase{min-width:0;flex:1.4}.hud-chip small{font-size:6px}.hud-chip strong,.hud-chip:last-child strong{font-size:16px;white-space:nowrap}.hud-chip.phase strong{font-size:14px}
  .lap-track{left:calc(12px + env(safe-area-inset-left));right:calc(12px + env(safe-area-inset-right));top:calc(142px + env(safe-area-inset-top));width:auto}
  .lap-track span{font-size:8px}
  .race-clock,.hud:has(.spectator:not(.hidden)) .race-clock{left:calc(12px + env(safe-area-inset-left));top:calc(55px + env(safe-area-inset-top));padding:4px 9px;gap:0}
  .race-clock div:not(:first-child){display:none}.race-clock strong{font-size:14px}.race-clock small{font-size:6px}
  .minimap-panel{left:auto;right:calc(12px + env(safe-area-inset-right));top:calc(183px + env(safe-area-inset-top));width:94px;padding:3px}.minimap-panel small{display:none}
  .recover-kart{top:calc(185px + env(safe-area-inset-top));left:calc(12px + env(safe-area-inset-left));padding:10px;font-size:8px;min-height:40px}
  .hud-bottom{left:calc(12px + env(safe-area-inset-left));right:calc(12px + env(safe-area-inset-right));bottom:calc(110px + env(safe-area-inset-bottom));gap:8px}
  .speed{width:58px;height:58px}.speed strong{font-size:30px}.speed small{font-size:8px}.drive-state{font-size:7px;bottom:1px;min-width:0}
  .item-slot{height:58px;min-width:108px;padding:6px 9px}.item-slot small{font-size:7px}.item-slot strong{font-size:19px}.item-slot span{display:none}
  .race-portrait,.hud-bottom .leaderboard{display:none}
  .touch{display:flex;position:absolute;left:calc(12px + env(safe-area-inset-left));right:calc(12px + env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom));height:82px;justify-content:space-between;gap:12px}
  .touch-steer,.touch-drive{display:flex;align-items:flex-end;gap:6px}
  .touch button{min-width:56px;min-height:68px;height:68px;padding:8px 5px;border:2px solid #abcab977;border-radius:16px;background:#102f35e8;color:#fff2c7;font-size:25px;box-shadow:0 4px 0 #071e20,0 7px 18px #0016}
  .touch-drive button{min-width:52px;min-height:62px;height:62px;font-size:11px}
  .touch-drive button[data-touch=gas]{min-width:72px;min-height:82px;height:82px;background:linear-gradient(#96e970,#328b47);border-color:#b4f897;color:#143322;font-size:18px}
  .touch-drive button[data-touch=brake]{background:#673634e8;border-color:#dd9784}
  .touch-drive button[data-touch=item]{min-width:58px;background:#665124e8;border-color:#f7d66b}
  .touch button.pressed{filter:brightness(1.3);transform:translateY(3px);box-shadow:0 1px 0 #071e20}
  .tilt-mode .touch-steer{opacity:.65}
  .draft-indicator{bottom:calc(177px + env(safe-area-inset-bottom));width:130px;padding:5px 9px}.draft-indicator strong{font-size:12px}.draft-indicator small{display:none}
  .attack-status{top:auto;bottom:calc(220px + env(safe-area-inset-bottom));max-width:235px;padding:7px 10px}.attack-status strong{font-size:12px}.attack-status small{font-size:8px}
  .race-notice{top:42%;min-width:0;width:90%;font-size:22px}
  .spectator{top:auto;bottom:calc(12px + env(safe-area-inset-bottom));left:calc(12px + env(safe-area-inset-left));width:190px;font-size:11px}
}
@media(max-width:360px){
  .touch{left:8px;right:8px;gap:8px}.touch button{min-width:50px}.touch-drive button{min-width:44px;font-size:10px}.touch-drive button[data-touch=gas]{min-width:59px}.touch-drive button[data-touch=item]{min-width:48px}
  .hud-chip.phase strong{font-size:12px}
}
@media(max-width:1000px) and (max-height:500px){
  .selection-screen{display:block;padding:12px max(12px,env(safe-area-inset-left)) 85px}
  .selection-art{height:auto;min-height:0;gap:12px}.selection-title strong{font-size:35px}.selection-title h1{font-size:24px}.selection-title p{font-size:10px}
  .reference-choices{grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:none;gap:8px;flex:none}.pilot-card{aspect-ratio:.83}.pilot-name{font-size:11px;height:auto;min-height:28px}
  .confirm-character{position:fixed;z-index:2;bottom:calc(10px + env(safe-area-inset-bottom));left:20%;width:60%;min-height:48px;font-size:21px;box-shadow:0 5px 0 #231a0d,0 -8px 28px #102e2c}
  .brand strong{font-size:23px}.brand small{font-size:7px}.brand-mark{width:34px;height:34px;font-size:20px}
  .entry{top:calc(60px + env(safe-area-inset-top));max-width:580px}.entry h1{font-size:30px}.chosen-driver{margin:10px 0}.chosen-portrait{height:76px;flex-basis:64px}.chosen-driver strong{font-size:22px}
  .cup-progress{width:290px;padding:5px 9px}.cup-progress small{display:none}
  .hud-top{left:50%;right:auto;transform:translateX(-50%);top:calc(10px + env(safe-area-inset-top));width:250px}.hud-chip{padding:5px 6px}.hud-chip strong{font-size:14px}.hud-chip.phase strong{font-size:10px}.hud-chip small{font-size:5px}
  .cup-progress{max-width:calc(50% - 140px - env(safe-area-inset-left));font-size:9px}
  .lap-track{top:calc(51px + env(safe-area-inset-top));left:50%;right:auto;transform:translateX(-50%);width:240px}.lap-track #sectorName{display:none}
  .race-clock,.hud:has(.spectator:not(.hidden)) .race-clock{top:calc(50px + env(safe-area-inset-top))}
  .minimap-panel{top:calc(88px + env(safe-area-inset-top));width:78px}
  .recover-kart{top:calc(86px + env(safe-area-inset-top))}
  .hud-bottom{left:50%;right:auto;transform:translateX(-50%);bottom:calc(12px + env(safe-area-inset-bottom));opacity:.94}
  .speed{height:48px;width:48px}.speed strong{font-size:26px}.item-slot{height:48px;min-width:108px}.item-slot strong{font-size:17px}
  .draft-indicator{bottom:calc(73px + env(safe-area-inset-bottom))}.attack-status{top:88px;bottom:auto}.race-notice{top:28%;font-size:21px}
  .mobile-panel{padding:14px 20px}.mobile-panel h2{font-size:20px}.mobile-panel p{font-size:11px;margin:7px 0}.mobile-panel #tiltStatus{min-height:0}.mobile-panel .mobile-tip{font-size:10px}
  .finish{max-height:calc(100dvh - 20px)}
}

/* Copa welcome: separate preparation, itinerary and persistent start action. */
body:has(#entry:not(.hidden))::before{background:linear-gradient(110deg,#142f29b0,#29190a66),url('assets/pilots-v3133/landscape.webp') center/cover;filter:blur(6px)}
body:has(#entry:not(.hidden)) .showcase{display:none}
.entry{left:50%;right:auto;transform:translateX(-50%);top:108px;bottom:24px;width:min(1100px,calc(100% - 60px));max-height:none;padding:0;overflow:hidden;display:flex;flex-direction:column;border:2px solid #b38c53;border-radius:24px;background:linear-gradient(135deg,#243b2deb,#192f27f2 52%,#1e302af5);box-shadow:0 25px 80px #061d1bbc,inset 0 1px #fff3ae3d;backdrop-filter:blur(14px)}
.entry-scroll{padding:26px 30px 22px;overflow:auto;overscroll-behavior:contain;min-height:0;scrollbar-color:#a88d55 #152b23;scrollbar-width:thin}
.cup-heading{display:flex;justify-content:space-between;align-items:center;gap:18px}
.entry .eyebrow{font-size:10px;letter-spacing:.22em;color:#a7d09f;margin:0 0 10px}
.entry h1{font-size:clamp(32px,4vw,51px);line-height:1.05;margin:0;color:#fff4d8;text-shadow:0 3px #10291c;letter-spacing:.01em}
.entry h1 em{color:#ffd56b;white-space:nowrap}
.entry .intro{max-width:none;margin:9px 0 0;font-size:13px;line-height:1.5;color:#d4dfcf}
.cup-emblem{flex:none;width:83px;height:94px;display:grid;justify-items:center;padding:7px;background:linear-gradient(#ffd979,#c58c2d);border:2px solid #ffeba5;border-radius:15px 15px 28px 28px;box-shadow:0 5px 0 #0d271d,0 9px 24px #0004;transform:rotate(5deg)}
.cup-emblem svg{width:58px;height:58px;fill:#fff2bd;stroke:#69480c;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.cup-emblem .cup-star{fill:#b98420;stroke:none}.cup-emblem span{color:#573a10;font:20px Impact,sans-serif;letter-spacing:.12em}
.device-advice{display:flex;align-items:center;gap:13px;margin:20px 0 23px;padding:13px 16px;border:1px solid #ba9d594f;border-radius:12px;background:linear-gradient(90deg,#fbd57014,#ffd26707);box-shadow:inset 3px 0 #ffce61}
.device-icon{font-size:29px;color:#ffdf87;line-height:1}.device-advice p{margin:0;font-size:12px;line-height:1.5;color:#d4ddca}.device-advice strong,.device-advice span:not(.device-icon){display:block}.device-advice strong{color:#ffe2a0;font-size:13px}
.entry-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.1fr);gap:35px}
.entry-section-title{display:flex;align-items:center;justify-content:space-between;margin:0 0 14px;padding-bottom:10px;border-bottom:1px solid #e5c77727;color:#fff0c9;font:17px Impact,'Arial Narrow',sans-serif;letter-spacing:.07em}.entry-section-title span{font:10px system-ui,sans-serif;font-weight:800;color:#a8c1a0}
.entry .chosen-driver{margin:0 0 16px;padding:10px;gap:15px;border:1px solid #d6b77f36;border-radius:13px;background:linear-gradient(120deg,#061c159c,#102c2180);min-height:122px}
.entry .chosen-portrait{height:116px;flex-basis:100px;border:2px solid #b7b486;border-radius:9px;box-shadow:0 4px 10px #0005}
.entry .chosen-driver>div:last-child{min-width:0}.entry .chosen-driver small{font-size:9px;letter-spacing:.16em;color:#9bbc9c}.entry .chosen-driver strong{display:block;font:28px Impact,sans-serif;line-height:1.1;margin:5px 0;color:#ffedc0;overflow-wrap:anywhere}.equal-performance{display:block;font-size:10px;color:#b8ccaf}
.entry #changeCharacter{margin-top:11px;min-height:34px;padding:6px 9px;border:1px solid #acc4985c;border-radius:7px;background:#b8cb8514;color:#e4edc9;font-size:10px;font-weight:800;letter-spacing:.03em}
.entry #changeCharacter:hover{background:#c7d58626}.entry .form-row label{font-size:10px;color:#e5d9ab;letter-spacing:.09em}.entry #nick{height:48px;border:1px solid #d9c99861;background:#0a211cb0;border-radius:10px;font-size:15px;padding:12px 14px;box-shadow:inset 0 2px 7px #0002}.entry #nick:focus{border-color:#ffd877;box-shadow:0 0 0 3px #ffd87724}.entry #nickHint{display:block;font-size:10px;color:#a8bca2;margin-top:7px}
.entry .driving-help{font-size:11px;line-height:1.9;color:#c9d9be;margin:16px 0}.entry .pc-help b{display:inline-block;color:#ffe9a6;font-size:10px;padding:0 4px;border:1px solid #bdcc9652;border-radius:4px;margin-right:3px}
.entry .personal-goal,.entry .record-card{padding:11px 13px;margin:13px 0 0;background:#08231e59;border:1px solid #a4b98c30;border-radius:10px;border-left:3px solid #97cd69}.entry .record-card{border-left-color:#ffd06a}.entry .personal-goal small,.entry .record-card small{color:#b5cf9e;font-size:9px;letter-spacing:.08em}.entry .record-card small{color:#edcf82}.entry .personal-goal strong,.entry .record-card strong{font:18px Impact,sans-serif;line-height:1.2;margin:6px 0;color:#fff0c5}.entry .personal-goal span,.entry .record-card span{font-size:10px;line-height:1.5;color:#b8cbae}
.cup-facts{display:flex;justify-content:space-between;gap:6px;margin:0 0 13px}.cup-facts span{display:flex;align-items:center;gap:7px;color:#c3d3b9;font-size:9px;font-weight:800;letter-spacing:.05em}.cup-facts b{color:#ffd783;font:24px Impact,sans-serif}
.entry .course-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:0;counter-reset:circuit}
.entry .course-card{position:relative;isolation:isolate;overflow:hidden;min-height:101px;padding:45px 10px 10px;border:1px solid #d4c4934f;border-radius:9px;background:linear-gradient(180deg,#63876f 0%,#324a37 38%,#2a3119 39%,#142d22 100%);box-shadow:0 3px 0 #081e1c}
.entry .course-card::before{content:'';position:absolute;z-index:-1;width:75px;height:65px;border:11px solid #dfc79575;outline:2px dashed #ffe5ab80;border-radius:50% 40% 55% 30%;top:-25px;right:13px;transform:rotate(-32deg)}
.entry .course-card::after{counter-increment:circuit;content:counter(circuit,decimal-leading-zero);position:absolute;left:9px;top:8px;color:#fff4c5;font:14px Impact,sans-serif;text-shadow:0 2px #203423}
.entry .course-card:nth-child(2){background:linear-gradient(180deg,#899d9b,#444d3c 39%,#162d27 70%)}.entry .course-card:nth-child(3){background:linear-gradient(180deg,#9aacaa,#415a58 39%,#18342e 70%)}.entry .course-card:nth-child(4){background:linear-gradient(180deg,#956c67,#454554 39%,#202f34 70%)}.entry .course-card:nth-child(5){background:linear-gradient(180deg,#b59866,#594b36 39%,#343325 70%)}.entry .course-card:nth-child(6){background:linear-gradient(180deg,#ac8c7c,#5b3e48 39%,#2f2932 70%)}
.entry .course-card b{display:block;font:13px Impact,sans-serif;color:#fff0c6;line-height:1.13;text-shadow:0 2px 4px #10201a}.entry .course-card small{display:block;margin-top:5px;color:#d2dfc7;font-size:9px;line-height:1.2}
.entry .cup-guide,.entry .records-list{border:0;border-top:1px solid #e5c77723;padding:10px 0 0;margin:14px 0 0;font-size:10px;color:#cbdac1}.entry summary{min-height:30px;padding:6px 0;color:#e3d8ad;font-size:10px;font-weight:800;letter-spacing:.04em;cursor:pointer}.entry .cup-guide p{font-size:11px;line-height:1.6;margin:5px 0 9px;color:#c2d3b9}.entry .cup-rules{padding:8px;border-radius:7px;background:#f8d8770b}.entry .records-list ol{max-height:150px}
.entry-launch{flex:none;display:grid;grid-template-columns:1fr minmax(275px,.78fr);align-items:center;gap:12px 22px;padding:17px 30px 21px;border-top:1px solid #d5c8883d;background:linear-gradient(110deg,#193b2bf5,#182d24fa);box-shadow:0 -8px 22px #0b241b33}.launch-caption strong{display:block;font:18px Impact,sans-serif;color:#ffedbb;letter-spacing:.04em}.launch-caption span{display:block;font-size:10px;color:#bdd1b2;margin-top:5px}.entry .entry-actions{position:static;margin:0;padding:0;background:none}.entry #solo{min-height:54px;width:100%;font-size:24px;padding:12px 20px;border:2px solid #b6ed82;color:#f9ffde;background:linear-gradient(#7bce48,#3a8d30);border-radius:12px;box-shadow:0 5px 0 #0b2919,0 9px 20px #0004;text-shadow:0 2px #2c641d}.entry #solo span{color:#efffcf;font-size:19px}.entry #solo:hover{filter:brightness(1.12);transform:translateY(-1px)}.entry button:focus-visible,.entry summary:focus-visible{outline:3px solid #ffe68d;outline-offset:3px}.entry .error{grid-column:1/-1;min-height:0;margin:0;color:#ffcbad;font-size:12px}.entry .error:empty{display:none}
@media(max-width:900px){.entry{width:calc(100% - 28px)}.entry-scroll{padding:21px}.entry-grid{gap:23px}.entry h1{font-size:36px}.entry-launch{padding:16px 21px 20px}.entry .course-card{padding-left:7px;padding-right:7px}.entry .course-card b{font-size:12px}}
@media(max-width:650px){
 .entry{left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right));transform:none;top:calc(94px + env(safe-area-inset-top));bottom:calc(8px + env(safe-area-inset-bottom));width:auto;border-radius:18px}
 .entry-scroll{padding:19px 17px}.entry h1{font-size:30px;max-width:260px}.entry h1 em{display:block}.entry .eyebrow{font-size:8px;margin-bottom:7px}.entry .intro{font-size:11px;line-height:1.5}.cup-emblem{width:61px;height:76px;align-self:flex-start}.cup-emblem svg{width:43px;height:43px}.cup-emblem span{font-size:16px}
 .device-advice{padding:10px 12px;gap:10px;margin:17px 0 20px}.device-icon{font-size:22px}.device-advice strong{font-size:11px}.device-advice p{font-size:10px}
 .entry-grid{grid-template-columns:1fr;gap:24px}.entry .chosen-driver{padding:8px;gap:12px;min-height:104px}.entry .chosen-portrait{height:100px;flex-basis:86px}.entry .chosen-driver strong{font-size:25px}.entry .entry-section-title{font-size:15px;margin-bottom:12px}.entry .course-card{min-height:100px}.entry .course-card b{font-size:13px}
 .entry-launch{grid-template-columns:1fr;padding:11px 17px 16px;gap:9px}.launch-caption strong{display:none}.launch-caption span{text-align:center;font-size:9px;margin:0}.entry #solo{min-height:52px;font-size:23px}
}
@media(max-width:1000px) and (max-height:500px){
 .entry{top:calc(60px + env(safe-area-inset-top));bottom:calc(8px + env(safe-area-inset-bottom));left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right));width:auto;max-width:none;transform:none;border-radius:16px}
 .entry-scroll{padding:16px 20px}.entry h1{font-size:32px}.cup-emblem{width:58px;height:66px;padding:4px}.cup-emblem svg{width:37px;height:37px}.cup-emblem span{font-size:14px}.device-advice{margin:12px 0 15px;padding:9px 12px}.entry-launch{grid-template-columns:1fr minmax(260px,.8fr);padding:8px 20px 12px}.entry #solo{min-height:44px;font-size:21px}.launch-caption strong{font-size:14px}.entry .chosen-portrait{height:100px;flex-basis:86px}
}
@media(prefers-reduced-motion:reduce){.entry button{transition:none}.entry #solo:hover{transform:none}}
@media(max-width:1000px) and (max-height:500px){body:has(#entry:not(.hidden)) .audio-controls{top:calc(10px + env(safe-area-inset-top));right:calc(155px + env(safe-area-inset-right))}}

/* Installation help stays usable in both iPhone orientations. */
.fullscreen-steps{padding-left:22px;margin:18px 0;font-size:13px;line-height:1.6}.fullscreen-steps li{margin:12px 0;padding-left:5px}.fullscreen-steps b{color:#ffe19b}
.fullscreen-panel [hidden]{display:none!important}
@media(pointer:coarse),(max-width:750px){.mobile-toolbar #mobileFullscreen{min-width:44px;min-height:44px}}

/* Keep the road clear on desktop as well as on phones. */
.race-notice{top:86px;left:50%;transform:translateX(-50%);width:max-content;min-width:0;max-width:min(420px,50vw);padding:9px 15px;border:1px solid #ffd66b55;border-radius:10px;background:#09272ade;font-family:system-ui,sans-serif;font-size:13px;font-weight:700;line-height:1.3;text-shadow:none;pointer-events:none;box-shadow:0 4px 18px #0014}
/* Mobile notices occupy one compact line above the road, never the middle. */
@media(pointer:coarse),(max-width:750px),(max-width:1000px) and (max-height:500px){
  .race-notice{top:calc(174px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:calc(100% - 226px - env(safe-area-inset-left) - env(safe-area-inset-right));max-width:280px;min-width:0;padding:7px 9px;border:1px solid #ffd66b55;border-radius:9px;background:#09272ad9;font-family:system-ui,sans-serif;font-size:10px;font-weight:700;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:none;pointer-events:none;box-shadow:0 3px 10px #0014;opacity:0;transition:opacity .14s}
  .attack-status{display:none!important}
}
@media(max-width:1000px) and (max-height:500px){.race-notice{top:calc(77px + env(safe-area-inset-top));width:240px;font-size:11px}}

/* Layout preferences leave every driving control at least 44 CSS pixels. */
.mobile-panel select{width:100%;margin:8px 0 16px;padding:12px;border:1px solid #b6cba65e;border-radius:9px;background:#152f30;color:#fff1c9;font:inherit}
.mobile-panel .hand-choice{display:flex;align-items:center;gap:12px;margin:4px 0 18px;font-size:13px}
.mobile-panel .hand-choice input{width:22px;height:22px;accent-color:#84d668}
@media(pointer:coarse),(max-width:750px),(max-width:1000px) and (max-height:500px){
 .touch-left-handed .touch{flex-direction:row-reverse}
 .touch-left-handed .touch-drive{flex-direction:row-reverse}
 body[data-touch-size=compact] .touch{height:62px;gap:6px}
 body[data-touch-size=compact] .touch button{min-width:44px;min-height:48px;height:48px;padding:5px;font-size:20px;border-radius:13px}
 body[data-touch-size=compact] .touch-drive button{font-size:10px}
 body[data-touch-size=compact] .touch-drive button[data-touch=gas]{height:62px;min-height:62px;min-width:58px;font-size:16px}
 body[data-touch-size=large] .touch{height:98px;gap:6px}
 body[data-touch-size=large] .touch button{min-width:clamp(44px,calc((100vw - 56px - env(safe-area-inset-left) - env(safe-area-inset-right))/5),74px);height:82px;min-height:82px;border-radius:18px}
 body[data-touch-size=large] .touch-drive button[data-touch=gas]{min-width:clamp(44px,calc((100vw - 56px - env(safe-area-inset-left) - env(safe-area-inset-right))/5),78px);height:98px;min-height:98px}
 body[data-touch-size=large] .touch-steer,body[data-touch-size=large] .touch-drive{gap:4px}
}
@media(max-width:750px) and (min-height:501px){
 body[data-touch-size=compact] .hud-bottom{bottom:calc(86px + env(safe-area-inset-bottom))}
 body[data-touch-size=large] .hud-bottom{bottom:calc(122px + env(safe-area-inset-bottom))}
 body[data-touch-size=large] .draft-indicator{bottom:calc(191px + env(safe-area-inset-bottom))}
}

.entry .course-card::before{display:none}.entry .course-outline{position:absolute;top:5px;right:5px;width:92px;height:49px;opacity:.86;filter:drop-shadow(0 2px 2px #071f2580)}
.race-options{display:grid;gap:7px;margin:15px 0;padding:13px;border:1px solid #87bc7660;border-radius:10px;background:#102f2480}.race-options label,.league-filters label{font-weight:bold;font-size:12px;color:#f3e8c6}.race-options select,.league-filters select{width:100%;min-height:42px;padding:7px 10px;color:#f6f0d5;background:#183e36;border:1px solid #87bc76;border-radius:7px;font:inherit;font-size:13px}.race-options small{font-size:11px;line-height:1.45;color:#ccdac2}.race-options #practiceOptions{display:grid;gap:7px}.league-filters{display:grid;grid-template-columns:auto 1fr auto 100px;gap:7px;align-items:center;margin:12px 0}.league-filters select{font-size:11px}.records-list li details{margin:7px 0;padding:6px 8px;background:#102c2680;border-radius:7px}.records-list li details summary{font-size:11px;cursor:pointer}.pause-race{position:absolute;left:18px;top:100px;pointer-events:auto;z-index:6;background:#153a35e8;border:1px solid #dfce96;border-radius:8px;color:#fff3bf;min-height:40px;padding:7px 14px;font-weight:bold}.pause-overlay{position:fixed;inset:0;z-index:150;display:flex;align-items:center;justify-content:center;padding:18px;background:#071a2cc2;backdrop-filter:blur(5px)}.pause-overlay>.panel{position:static;transform:none;width:min(480px,100%);max-height:calc(100dvh - 36px);overflow:auto;padding:25px;text-align:center}.pause-overlay h2{font:clamp(26px,5vw,36px) Impact,sans-serif;color:#ffe395;margin:12px 0}.pause-overlay p{font-size:14px;line-height:1.5}.pause-overlay #pauseError{color:#ffd6a9}.race-details{text-align:left;margin:12px 0;padding:12px;border:1px solid #97be8260;border-radius:10px;background:#183c3380}.race-details summary{font-weight:bold;font-size:12px;cursor:pointer;color:#ffdf99}.race-details p,.race-details li{font-size:12px;line-height:1.55}.race-details ol{padding-left:20px}.race-details h3{font-size:13px}
@media(max-width:750px){.league-filters{grid-template-columns:1fr 1fr}.league-filters label{font-size:10px}.pause-race{top:72px;left:10px;min-height:36px;padding:5px 9px;font-size:11px}.race-details{padding:9px}.race-details li,.race-details p{font-size:11px}}
@media(max-height:500px) and (min-width:751px){.pause-race{top:76px;left:10px;min-height:30px;font-size:11px}.pause-overlay>.panel{padding:15px}.pause-overlay p{font-size:12px}}
.records-list ol ol,.entry .records-list ol ol{max-height:none;overflow:visible;padding-left:12px}.records-list ol ol li{list-style:none}.records-list>ol{max-height:220px}
@media(min-width:751px) and (min-height:501px){.reference-choices{grid-template-columns:repeat(6,minmax(0,var(--pilot-card-width,1fr)));grid-template-rows:repeat(var(--pilot-grid-rows,3),minmax(0,1fr))}}

@media(min-width:1100px) and (min-height:501px){.reference-choices{grid-template-columns:repeat(8,minmax(0,var(--pilot-card-width,1fr)))}}

/* A card stays readable during a slow or interrupted mobile download. */
.pilot-card.portrait-loading img,.pilot-card.portrait-error img{background-image:url('assets/pilots-v3133/landscape.webp');background-size:cover}
.pilot-card.portrait-loading::after,.pilot-card.portrait-error::after{position:absolute;left:5px;right:5px;top:40%;padding:8px 3px;border-radius:7px;background:#15372de8;color:#fff0bf;font:11px sans-serif;pointer-events:none;text-align:center;content:'CARGANDO…'}
.pilot-card.portrait-error::after{content:'TOCA PARA REINTENTAR'}

#courseLoading{z-index:100;background:#10282c}#courseLoading .panel{max-width:560px}#courseLoading h2{font:32px Impact,sans-serif;color:#ffda74}
