/* Match preparation: the roster is a preview, not a simulated online lobby. */
body #match-loading,body[data-map] #match-loading{background:#050b14;color:#eaf6fc;overflow:auto}
#match-loading .versus-shell{isolation:isolate;position:relative;min-height:100dvh;max-width:1600px;margin:auto;padding:22px 4vw 18px;display:flex;flex-direction:column;background:radial-gradient(ellipse at 20% 40%,#11617a55,transparent 50%),radial-gradient(ellipse at 90% 45%,#971c3844,transparent 50%);font-family:system-ui,sans-serif}
.versus-shell::before{content:'';position:absolute;z-index:-1;inset:0;opacity:.3;background:repeating-linear-gradient(120deg,transparent 0 95px,#779fb211 96px 97px,transparent 98px 190px);pointer-events:none}
.versus-top{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:18px;border-bottom:1px solid #7393a333}
.versus-brand{font-size:30px;font-weight:950;letter-spacing:-.12em;color:#e7c185;display:flex;align-items:center;gap:15px}.versus-brand>span{font-size:10px;letter-spacing:.3em;color:#9db3c1}
.versus-top>div{text-align:center}.versus-top small{font-size:9px;letter-spacing:.26em;color:#c7a97d}.versus-top h1{font-size:20px;text-transform:uppercase;letter-spacing:.1em;margin:5px 0 0}.versus-top>span:last-child{font-size:10px;color:#a1b4c4}
.versus-arena{display:grid;grid-template-columns:minmax(0,1fr) 90px minmax(0,1fr);flex:1;min-height:350px;height:calc(100dvh - 255px);max-height:650px;gap:0;padding:20px 0 12px}
.versus-team{min-width:0;display:grid;gap:9px;--team:#70dbf4;--tint:#0b5671;grid-template-rows:20px minmax(180px,1fr) 54px 54px}.versus-team-red{--team:#ff596f;--tint:#791b36;grid-template-rows:20px repeat(3,minmax(86px,1fr))}
.versus-team-label{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.18em;color:var(--team);padding:0 10px}.versus-team-label b{font-size:8px;font-weight:500;color:#9baebb;letter-spacing:.08em}
.versus-fighter{position:relative;min-height:0;overflow:hidden;border-block:1px solid var(--team);background:linear-gradient(110deg,var(--tint),#10141d 85%);box-shadow:inset 0 0 40px #0008;clip-path:polygon(0 0,100% 0,94% 100%,0 100%)}
.versus-fighter::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#020913e8,transparent 55%),repeating-linear-gradient(115deg,transparent 0 110px,#ffffff07 111px 114px,transparent 115px 150px)}
.versus-chosen{animation:versus-blue-in .6s ease-out both}.versus-hero-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--versus-art-position,55% 20%);filter:drop-shadow(0 0 12px #53d5f433)}
/* Cupida's art is a full-height portrait. Size it from the card height so
   the face stays visible in both a solo card and short online roster rows. */
.versus-hero-art[data-champion=akanda]{inset:0 0 auto auto;height:210%;object-fit:contain;--versus-art-position:80% top}
.versus-number{position:absolute;right:12%;top:0;font-size:clamp(50px,8vw,115px);font-weight:950;color:var(--team);opacity:.1;font-style:italic;line-height:1;z-index:1}
.versus-nameplate{position:absolute;z-index:2;bottom:14px;left:16px;right:16px;display:flex;align-items:center;gap:12px}.versus-nameplate>img{width:48px;height:48px;border:1px solid var(--team);object-fit:cover}.versus-nameplate small{font-size:8px;letter-spacing:.15em;color:var(--team)}.versus-nameplate h2{font-size:clamp(16px,2.3vw,28px);text-transform:uppercase;margin:3px 0;color:#fff;letter-spacing:.02em}.versus-nameplate p{font-size:9px;color:#bac8d2;margin:0}
.versus-ally{display:flex;align-items:center;gap:15px;padding:6px 18px;border:1px solid #50859955;background:linear-gradient(110deg,#0b2b3e99,#081421);clip-path:polygon(0 0,94% 0,91% 100%,0 100%)}.versus-ally>span{font-size:24px;font-weight:900;font-style:italic;color:#4c8093}.versus-ally b{font-size:10px;letter-spacing:.1em;color:#9cb8c7}.versus-ally small{display:block;margin-top:3px;font-size:8px;color:#6f8c9f}.versus-ally i{font-size:26px;font-style:normal;font-weight:200;margin-left:auto;margin-right:8%;color:#507990}
.versus-team-red .versus-fighter{clip-path:polygon(6% 0,100% 0,100% 100%,0 100%);animation:versus-red-in .6s ease-out both}.versus-robot>img{position:absolute;right:4%;bottom:-12%;width:56%;height:130%;object-fit:contain;transform:rotate(-8deg);filter:drop-shadow(-5px 4px 10px #0008)}.versus-robot-two>img{filter:hue-rotate(315deg) drop-shadow(-5px 4px 10px #0008);transform:rotate(7deg)}.versus-robot-three>img{filter:hue-rotate(26deg) saturate(.8) drop-shadow(-5px 4px 10px #0008);transform:rotate(-4deg)}.versus-robot-name{position:absolute;z-index:2;left:10%;bottom:15px;right:5%}.versus-robot-name small{font-size:7px;letter-spacing:.1em;color:#ffa1a9}.versus-robot-name h2{font-size:clamp(18px,2.3vw,30px);font-style:italic;margin:3px 0 0;letter-spacing:.04em}.versus-team-red .versus-number{right:auto;left:10%;font-size:90px}
.versus-divider{position:relative;display:flex;align-items:center;justify-content:center;z-index:3}.versus-divider>span{font-size:clamp(42px,6vw,80px);font-weight:950;font-style:italic;letter-spacing:-.09em;color:#ffe4a9;text-shadow:0 3px #855b42,0 0 30px #ffc57233;transform:rotate(-8deg)}.versus-divider>i{position:absolute;top:12%;bottom:4%;width:1px;transform:rotate(16deg);background:linear-gradient(transparent,#e8c27e66 30%,transparent 45% 60%,#e8c27e66 80%,transparent);z-index:-1}
.versus-bottom{padding-top:8px}.versus-mission{display:flex;justify-content:space-between;align-items:center;gap:15px}.versus-mission>span{font-size:8px;letter-spacing:.18em;color:#8eafbf}.versus-mission>p{font-size:10px;color:#d0d9de;margin:0}
#match-loading .match-load-progress{margin-top:12px;height:3px;border:0;background:#243b49}#match-loading .match-load-progress i{background:linear-gradient(90deg,#62d7e7,#f1d5a1);box-shadow:0 0 12px #82ccd5}
#match-load-status{font-size:9px;letter-spacing:.04em;color:#8bb1c5;margin:8px 0 0;text-align:center}#loading-tip{font-size:10px;color:#839baa;line-height:1.5;margin:8px 0 10px;text-align:center}
.versus-actions{display:flex;align-items:center;justify-content:space-between;gap:20px}.versus-actions>small{max-width:320px;text-align:center;font-size:8px;line-height:1.7;color:#6e889b}#match-loading #enter-match{border-color:#ffdfa3;background:linear-gradient(110deg,#ffe3a3,#b98144);color:#172333;padding:13px 24px;font-size:10px;box-shadow:0 0 20px #dca45422;white-space:nowrap}
#versus-label[hidden],#match-countdown[hidden]{display:none}
#match-countdown{font-size:clamp(70px,10vw,130px);font-style:normal;letter-spacing:0;color:#edffff;text-shadow:0 0 9px #9af8ff,0 0 30px #36c6ff,0 0 65px #246dff;transform:none;animation:versus-count-pulse 1s ease-out infinite;z-index:1}
#match-loading[data-counting=true] .versus-divider::before{content:'';position:absolute;width:clamp(180px,28vw,380px);height:180px;pointer-events:none;background:radial-gradient(ellipse,#0ab6ff44,transparent 65%),linear-gradient(transparent 47%,#62edff88 49%,#c5fbff 50%,#62edff88 51%,transparent 53%);filter:drop-shadow(0 0 12px #219aff)}
#match-loading[data-counting=true] #enter-match{cursor:default;opacity:.7}
@keyframes versus-count-pulse{from{opacity:.55;scale:1.18}25%{opacity:1;scale:1}to{opacity:.9;scale:.96}}
@keyframes versus-blue-in{from{opacity:0;translate:-24px 0}to{opacity:1;translate:0 0}}@keyframes versus-red-in{from{opacity:0;translate:24px 0}to{opacity:1;translate:0 0}}
@media(max-width:750px){#match-loading .versus-shell{padding:15px 18px}.versus-top{gap:10px;padding-bottom:12px}.versus-brand{font-size:24px}.versus-brand>span{display:none}.versus-top h1{font-size:15px}.versus-top small{font-size:7px}.versus-top>span:last-child{font-size:8px;max-width:90px;text-align:right}.versus-arena{grid-template-columns:minmax(0,1fr) 45px minmax(0,1fr);min-height:330px}.versus-team-label{font-size:7px;padding:0}.versus-team-label b{font-size:6px}.versus-team{gap:7px;grid-template-rows:16px minmax(180px,1fr) 49px 49px}.versus-team-red{grid-template-rows:16px repeat(3,minmax(80px,1fr))}.versus-nameplate{left:9px;gap:7px;bottom:10px}.versus-nameplate>img{width:30px;height:30px}.versus-nameplate small{font-size:6px}.versus-nameplate p{font-size:7px}.versus-nameplate h2{font-size:14px}.versus-ally{padding:6px 10px;gap:8px}.versus-ally>span{font-size:18px}.versus-ally b{font-size:7px}.versus-ally small{font-size:6px}.versus-robot>img{width:72%;right:0}.versus-robot-name{bottom:10px;left:12%}.versus-robot-name small{font-size:5px}.versus-robot-name h2{font-size:18px}.versus-mission{flex-direction:column;gap:4px}.versus-mission>p{font-size:9px;text-align:center}.versus-actions{flex-wrap:wrap;gap:10px}.versus-actions>small{order:3;max-width:none;width:100%;font-size:7px}#loading-tip{font-size:9px}.versus-actions .dock-back{font-size:10px}}
@media(prefers-reduced-motion:reduce){.versus-fighter,#match-countdown{animation:none!important}}body.effects-reduced .versus-fighter,body.effects-reduced #match-countdown{animation:none!important}
