/* Clash Arena V2 — lobby, search radar and match-found stage */
.v2-play-page .v2-main{position:relative;isolation:isolate}
.v2-play-backdrop{position:absolute;inset:0 0 auto;height:520px;z-index:-1;pointer-events:none;
  background:radial-gradient(70% 90% at 50% 0%,rgba(255,122,46,.16),transparent 70%),url("/clash-arena/assets/v2/art/battlefield-768.webp") center 30%/cover no-repeat;opacity:.38;
  -webkit-mask:linear-gradient(180deg,#000 10%,transparent);mask:linear-gradient(180deg,#000 10%,transparent)}
.v2-play-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 28px;padding-top:clamp(24px,4vw,44px);padding-bottom:clamp(18px,3vw,28px)}
.v2-play-head h1{font-size:var(--v2-fs-h1)}
.v2-steps{display:flex;gap:6px;margin:0;padding:6px;list-style:none;border-radius:18px;background:rgba(0,0,0,.4);border:1px solid var(--v2-stone-edge);overflow-x:auto;scrollbar-width:none}
.v2-steps li{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:12px;color:var(--v2-text-3);font-size:.9rem;font-weight:800;white-space:nowrap}
.v2-steps span{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:rgba(255,236,190,.08);font:700 .9rem/1 var(--v2-display)}
.v2-steps .is-done{color:var(--v2-go-hi)}
.v2-steps .is-done span{background:var(--v2-mat-go);color:#fff;font-size:0}
.v2-steps .is-done span::before{content:"✓";font-size:.95rem}
.v2-steps .is-current{color:var(--v2-gold-hi);background:rgba(242,195,95,.1)}
.v2-steps .is-current span{background:var(--v2-mat-gold);color:#3a2306}
@media (max-width:600px){.v2-steps b{display:none}.v2-steps li{padding:4px}.v2-steps .is-current b{display:inline}}

/* Gate */
.v2-gate{padding-block:clamp(10px,3vw,30px) clamp(40px,6vw,80px)}
.v2-gate-card{display:grid;justify-items:center;gap:14px;max-width:640px;margin:auto;text-align:center}
.v2-gate-art{width:120px;height:auto;filter:drop-shadow(0 12px 18px rgba(0,0,0,.55));animation:v2-float 5s ease-in-out infinite}
.v2-gate-card h2{font-size:var(--v2-fs-h2)}
.v2-gate-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
@media (max-width:520px){.v2-gate-actions{display:grid;width:100%}.v2-gate-actions .v2-btn{width:100%}}

/* Lobby grid */
.v2-lobby{padding-bottom:clamp(30px,5vw,60px)}
.v2-lobby-loading{display:grid;gap:16px}
.v2-lobby-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:var(--v2-gap);align-items:start}
.v2-lobby-col{display:grid;gap:var(--v2-gap)}
@media (max-width:1023px){.v2-lobby-grid{grid-template-columns:minmax(0,1fr)}}
fieldset.v2-panel{margin:0;min-width:0}
fieldset.v2-panel>legend{float:left;width:100%;margin-bottom:6px}
fieldset.v2-panel>legend+*{clear:both}
.v2-clan-card{display:flex;align-items:center;gap:16px;padding:12px;border-radius:20px;background:linear-gradient(90deg,rgba(91,184,255,.12),rgba(0,0,0,.2));border:1px solid rgba(91,184,255,.28)}
.v2-clan-copy{min-width:0}
.v2-clan-copy b{display:block;font:700 clamp(1.2rem,2.4vw,1.55rem)/1.1 var(--v2-display);overflow-wrap:anywhere}
.v2-clan-copy small{color:var(--v2-text-3);font-weight:700}
.v2-clan-select{margin-top:14px}
.v2-th-grid,.v2-mode-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}
.v2-th-pick .v2-pick-face,.v2-mode-pick .v2-pick-face{justify-items:center;text-align:center;padding:12px 8px}
.v2-th-pick img{width:clamp(48px,6vw,72px);height:auto}
.v2-mode-pick img{width:clamp(48px,6vw,66px);height:auto}
.v2-th-pick b,.v2-mode-pick b{font-size:clamp(1.05rem,2vw,1.35rem)}
.v2-th-pick small,.v2-mode-pick small{font-size:.82rem;font-weight:700;color:var(--v2-text-3);line-height:1.2}
@media (max-width:420px){.v2-th-grid,.v2-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Lineup */
.v2-lineup{position:sticky;top:calc(var(--v2-hud-h) + 16px)}
@media (max-width:1023px){.v2-lineup{position:static}}
.v2-lineup-group{margin:0 0 18px;padding:0;border:0;min-width:0}
.v2-lineup-group legend{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:4px}
.v2-lineup-group legend .v2-display{font-size:1.5rem;color:var(--v2-gold-hi)}
.v2-lineup-count{padding:4px 12px;border-radius:99px;background:rgba(255,236,190,.08);font:700 1rem/1.2 var(--v2-display);color:var(--v2-text-2)}
.v2-lineup-count.is-complete{background:var(--v2-mat-go);color:#fff;text-shadow:0 1px 0 #1d3d06}
.v2-player-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:10px;margin-top:10px}
.v2-player-pick .v2-pick-face{grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;padding:10px 12px}
.v2-player-pick img{width:48px;height:48px;object-fit:contain}
.v2-player-copy{min-width:0;display:grid;gap:2px}
.v2-player-copy b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem}
.v2-player-copy small{color:var(--v2-text-3);font-size:.85rem}
.v2-player-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.v2-player-tags .v2-chip{min-height:22px;font-size:.78rem;padding:.15em .55em}

/* Launch bar */
.v2-launch{grid-column:1/-1;position:sticky;bottom:12px;z-index:20;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 16px;padding:14px;border-radius:24px;
  background:linear-gradient(180deg,rgba(43,34,25,.96),rgba(22,17,13,.97));border:2px solid rgba(242,195,95,.45);box-shadow:var(--v2-shadow-2);backdrop-filter:blur(10px)}
.v2-launch-summary{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.v2-launch-feedback{grid-column:1/-1}
.v2-launch-feedback:empty{display:none}
.v2-launch-btn{min-width:min(100%,280px)}
.v2-launch-btn.is-ready{animation:v2-ready 2.4s ease-in-out infinite}
@keyframes v2-ready{0%,100%{box-shadow:inset 0 2px 0 rgba(255,255,255,.55),inset 0 -3px 0 rgba(0,0,0,.18),0 4px 0 #15120d,0 8px 16px rgba(0,0,0,.35)}50%{box-shadow:inset 0 2px 0 rgba(255,255,255,.55),inset 0 -3px 0 rgba(0,0,0,.18),0 4px 0 #15120d,0 12px 26px rgba(0,0,0,.55)}}
@media (max-width:1023px){.v2-launch{bottom:calc(var(--v2-dock-h) + env(safe-area-inset-bottom) + 10px)}}
@media (max-width:600px){.v2-launch{grid-template-columns:minmax(0,1fr)}.v2-launch-btn{width:100%}}
@media (max-height:520px) and (orientation:landscape){.v2-launch{position:static}}

/* Lists */
.v2-lobby-lists{display:grid;grid-template-columns:1fr 1fr;gap:var(--v2-gap);margin-top:var(--v2-gap)}
@media (max-width:900px){.v2-lobby-lists{grid-template-columns:minmax(0,1fr)}}

/* Floating search pill */
.v2-search-pill{position:fixed;z-index:56;right:max(16px,env(safe-area-inset-right));bottom:calc(var(--v2-dock-h) + env(safe-area-inset-bottom) + 16px);display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 18px 0 14px;border-radius:99px;border:2px solid #1d3d06;background:var(--v2-mat-go);color:#fff;font:700 1rem/1 var(--v2-display);text-shadow:0 2px 0 rgba(0,0,0,.4);box-shadow:0 4px 0 #15120d,0 12px 28px rgba(0,0,0,.5);animation:v2-pop var(--v2-mid) var(--v2-ease-pop)}
.v2-search-pill-dot{width:12px;height:12px;border-radius:50%;background:#fff;animation:v2-ping 1.4s infinite}
@media (min-width:1024px){.v2-search-pill{bottom:24px}}
.v2-search-pill.is-docked{position:static;grid-column:1/-1;justify-self:stretch;justify-content:center;box-shadow:0 4px 0 #15120d}
.v2-search-pill.is-docked:not([hidden])~.v2-launch-btn{--btn-mat:linear-gradient(180deg,#3a2f25,#271f18);--btn-depth:#0b0806}

/* ---------- Stage (full-screen dialog) ---------- */
.v2-stage{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;color:var(--v2-text);overflow:auto;overscroll-behavior:contain;
  background:radial-gradient(80% 60% at 50% 40%,#2a1c10 0%,#100b08 60%,#070504 100%)}
.v2-stage::backdrop{background:#070504}
.v2-stage[open]{animation:v2-stage-in var(--v2-slow) var(--v2-ease)}
@keyframes v2-stage-in{from{opacity:0;transform:scale(1.04)}to{opacity:1;transform:none}}
html.v2-stage-open{overflow:hidden}
.v2-stage-search::before{content:"";position:absolute;inset:0;z-index:-1;background:url("/clash-arena/assets/v2/art/battlefield-768.webp") center/cover;opacity:.14;filter:blur(2px) saturate(.8)}
.v2-stage-search,.v2-stage-found{position:relative;isolation:isolate;display:grid;justify-items:center;align-content:center;gap:clamp(10px,2vh,18px);min-height:100%;padding:calc(18px + env(safe-area-inset-top)) var(--v2-gutter) calc(24px + env(safe-area-inset-bottom));text-align:center}
.v2-stage-top{position:absolute;top:calc(14px + env(safe-area-inset-top));left:var(--v2-gutter);right:var(--v2-gutter);display:flex;align-items:center;justify-content:space-between;z-index:3}
.v2-stage-title,.v2-found-title{font-size:clamp(1.8rem,5vw,3.2rem)}
.v2-stage-clan b{font:700 1.3rem/1.1 var(--v2-display)}
.v2-stage-clan small{color:var(--v2-text-3);font-weight:700}
.v2-stage-chips,.v2-found-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.v2-stage-timer{display:inline-flex;align-items:center;gap:10px;padding:6px 18px 6px 8px;border-radius:99px;background:rgba(0,0,0,.4);border:1px solid rgba(242,195,95,.35)}
.v2-stage-timer img{width:44px;height:44px;animation:v2-float 3s ease-in-out infinite}
.v2-stage-timer b{font:700 1.6rem/1 var(--v2-display);color:var(--v2-gold-hi)}
.v2-stage-hint{max-width:46ch}
.v2-stage-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:6px}
@media (max-width:520px){.v2-stage-actions{display:grid;width:100%;max-width:420px}.v2-stage-actions .v2-btn{width:100%}}

/* Radar */
.v2-radar{position:relative;display:grid;place-items:center;width:min(66vw,46vh,340px);aspect-ratio:1;margin-top:clamp(36px,6vh,60px)}
.v2-radar-ring{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(242,195,95,.28);box-shadow:inset 0 0 40px rgba(242,195,95,.06)}
.v2-radar-ring:nth-child(2){inset:17%}
.v2-radar-ring:nth-child(3){inset:34%;border-color:rgba(242,195,95,.4)}
.v2-radar-sweep{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,rgba(242,195,95,.55),rgba(242,195,95,.08) 22%,transparent 30%);animation:v2-sweep 2.6s linear infinite;-webkit-mask:radial-gradient(circle,transparent 18%,#000 19%);mask:radial-gradient(circle,transparent 18%,#000 19%)}
.v2-radar-pulse{position:absolute;inset:20%;border-radius:50%;border:3px solid rgba(255,231,168,.6);animation:v2-pulse-ring 2.2s ease-out infinite}
.v2-radar-crest{position:relative;z-index:2;--size:min(30vw,118px)!important;box-shadow:0 0 0 6px rgba(0,0,0,.5),0 0 46px rgba(242,195,95,.45)}

/* Found / VS */
.v2-stage-found{overflow:hidden}
.v2-stage-found::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(91,184,255,.18),transparent 38%,transparent 62%,rgba(255,90,74,.18))}
.v2-stage-shield{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:4;pointer-events:none}
.v2-stage-flash{position:absolute;inset:0;z-index:3;background:radial-gradient(circle,rgba(255,231,168,.9),transparent 60%);opacity:0;pointer-events:none}
.v2-found-title{margin-top:clamp(40px,6vh,64px);background:var(--v2-mat-gold);-webkit-background-clip:text;background-clip:text;color:transparent!important;text-shadow:none!important;filter:drop-shadow(0 3px 0 #3b2306) drop-shadow(0 10px 24px rgba(0,0,0,.6))}
.v2-found-desc{max-width:52ch;color:var(--v2-text-2)}
.v2-versus{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:clamp(10px,3vw,40px);width:min(100%,980px);margin-block:clamp(6px,2vh,20px)}
.v2-versus-side{display:grid;justify-items:center;gap:6px;min-width:0;padding:clamp(14px,2.4vw,26px);border-radius:28px;background:rgba(0,0,0,.35)}
.v2-versus-side.is-ally{border:2px solid rgba(91,184,255,.55);box-shadow:0 0 40px rgba(91,184,255,.18) inset}
.v2-versus-side.is-foe{border:2px solid rgba(255,90,74,.55);box-shadow:0 0 40px rgba(255,90,74,.18) inset}
.v2-versus-side .v2-crest{--size:clamp(76px,14vw,128px)!important}
.v2-versus-name{max-width:100%;font:700 clamp(1.05rem,2.4vw,1.6rem)/1.1 var(--v2-display);overflow-wrap:anywhere}
.v2-versus-side small{color:var(--v2-text-3);font-weight:700}
.v2-versus-elo{font-weight:800;color:var(--v2-text-2)}
.v2-versus-elo b{font:700 1.3rem/1 var(--v2-display);color:var(--v2-gold-hi)}
.v2-versus-score{display:flex;gap:10px;align-items:baseline;font:700 1.4rem/1 var(--v2-display);color:var(--v2-gold-hi)}
.v2-versus-score:empty{display:none}
.v2-versus-mark{font-size:clamp(2.4rem,7vw,5rem);color:var(--v2-ember);text-shadow:0 0 30px rgba(255,122,46,.8),0 4px 0 #000}
.v2-found-duel{flex-basis:100%;font-weight:800;color:var(--v2-gold-hi)}
.v2-found-rules{display:grid;gap:12px;width:min(100%,760px);text-align:left}
.v2-found-rules:empty{display:none}
.v2-found-live{width:min(100%,900px)}
.v2-found-attacks{display:grid;grid-template-columns:1fr 1fr;gap:12px;text-align:left}
.v2-found-attacks ol{margin:0;padding-left:1.2em;font-size:.94rem;color:var(--v2-text-2)}
.v2-found-delivery:empty{display:none}
.v2-found-actions [aria-disabled=true]{pointer-events:none;filter:grayscale(.8) brightness(.7)}
@media (max-width:640px){
  .v2-versus{grid-template-columns:minmax(0,1fr);gap:6px}
  .v2-versus-side{grid-template-columns:auto minmax(0,1fr);justify-items:start;text-align:left;column-gap:14px;padding:12px}
  .v2-versus-side .v2-crest{grid-row:span 4;--size:72px!important}
  .v2-found-attacks{grid-template-columns:minmax(0,1fr)}
}
/* Reveal choreography */
.v2-stage-found.is-revealing .v2-versus-side.is-ally{animation:v2-slam-left .7s var(--v2-ease) both .15s}
.v2-stage-found.is-revealing .v2-versus-side.is-foe{animation:v2-slam-right .7s var(--v2-ease) both .15s}
.v2-stage-found.is-revealing .v2-versus-mark{animation:v2-vs .6s var(--v2-ease-pop) both .55s}
.v2-stage-found.is-revealing .v2-found-title{animation:v2-rise .6s var(--v2-ease) both}
.v2-stage-found.is-revealing .v2-stage-flash{animation:v2-flash .9s ease-out .55s both}

/* Shared rule widgets rendered by the existing display helpers (castle vote, filler rule) */
.v2-stage .arena-castle-vote{padding:18px;border-radius:22px;background:rgba(0,0,0,.35);border:1px solid var(--v2-stone-edge)}
.v2-stage .arena-castle-vote h3{font:700 1.2rem/1.1 var(--v2-display);margin-bottom:8px}
.v2-stage .arena-castle-vote ul{display:grid;gap:6px;margin:10px 0;padding:0;list-style:none}
.v2-stage .arena-castle-vote li{display:flex;justify-content:space-between;gap:10px;padding:8px 12px;border-radius:12px;background:rgba(255,236,190,.05)}
.v2-stage .arena-castle-team small{display:block;color:var(--v2-text-3)}
.v2-stage .arena-castle-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}
.v2-stage .arena-castle-choices button{display:grid;justify-items:center;gap:6px;padding:12px;border-radius:18px;border:2px solid #0e0a07;background:linear-gradient(180deg,#2b221a,#1b1511);color:var(--v2-text);box-shadow:0 4px 0 #0b0806;text-align:center}
.v2-stage .arena-castle-choices button img{width:84px;height:84px}
.v2-stage .arena-castle-choices button[aria-pressed=true]{border-color:var(--v2-gold);background:linear-gradient(180deg,#4a3519,#2a1e10)}
.v2-stage .arena-castle-choices button:disabled{opacity:.55}
.v2-stage .arena-castle-choice-help{font-size:.88rem;color:var(--v2-text-2)}
.v2-stage .arena-castle-selected{color:var(--v2-go-hi);font-weight:800}
.v2-stage .arena-duel-filler-rule{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:rgba(242,195,95,.08);border:1px solid rgba(242,195,95,.35)}
.v2-stage .arena-duel-filler-rule.is-violation{background:rgba(224,72,62,.1);border-color:rgba(224,72,62,.5)}
.v2-stage .arena-duel-filler-rule img{width:32px;height:32px}
@media (max-width:420px){.v2-stage .arena-castle-choices{grid-template-columns:minmax(0,1fr)}}

/* Sound master switch (original CSS take on the game's music slider; only rendered when sounds exist) */
.v2-stage-tools{display:flex;align-items:center;gap:10px}
.v2-sound-toggle{position:relative;width:76px;height:36px;padding:0;border:2px solid #0d0906;border-radius:99px;background:var(--v2-mat-go);box-shadow:inset 0 3px 6px rgba(0,0,0,.35);transition:background var(--v2-mid)}
.v2-sound-knob{position:absolute;top:-6px;right:-6px;width:44px;height:44px;border-radius:50%;border:2px solid #111;background:radial-gradient(circle at 50% 35%,#fff,#d9d6d0 70%);box-shadow:0 2px 0 rgba(0,0,0,.45);transition:right var(--v2-mid) var(--v2-ease-pop)}
.v2-sound-knob::before{content:"";position:absolute;inset:9px;background:#1b1612;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 18V6l11-2v12' fill='none' stroke='%23000' stroke-width='2.6' stroke-linejoin='round'/%3E%3Ccircle cx='6.5' cy='18' r='3' /%3E%3Ccircle cx='17.5' cy='16' r='3'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 18V6l11-2v12' fill='none' stroke='%23000' stroke-width='2.6' stroke-linejoin='round'/%3E%3Ccircle cx='6.5' cy='18' r='3' /%3E%3Ccircle cx='17.5' cy='16' r='3'/%3E%3C/svg%3E") center/contain no-repeat}
.v2-sound-toggle.is-muted{background:#6b655d}
.v2-sound-toggle.is-muted .v2-sound-knob{right:calc(100% - 38px)}
.v2-sound-toggle.is-muted .v2-sound-knob::after{content:"";position:absolute;left:4px;right:4px;top:50%;height:5px;margin-top:-2px;border-radius:3px;background:var(--v2-danger);transform:rotate(-40deg);box-shadow:0 0 0 1.5px #1b1612}
.v2-search-music{display:grid;justify-items:center;gap:8px;width:min(100%,420px)}
/* Like the classic Arena: the music plays, but the embedded player and track title stay out of sight (only the sound toggle shows). */
.v2-search-music-player,.v2-search-music [data-search-music-status]{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);opacity:0;pointer-events:none}
/* Match found: two blades cross behind "VS" (only on reveal; still image with reduced motion). */
.v2-versus-mark{position:relative;display:grid;place-items:center;isolation:isolate}
.v2-versus-mark>span{position:relative;z-index:1}
.v2-vs-blade{position:absolute;z-index:0;width:1.7em;height:auto;top:50%;left:50%;filter:drop-shadow(0 6px 10px rgba(0,0,0,.6));pointer-events:none}
.v2-vs-blade.is-left{transform:translate(-50%,-50%)}
.v2-vs-blade.is-right{transform:translate(-50%,-50%)}
.v2-stage-found.is-revealing .v2-vs-blade.is-left{animation:v2-blade-left .55s var(--v2-ease-pop) both .45s}
.v2-stage-found.is-revealing .v2-vs-blade.is-right{animation:v2-blade-right .55s var(--v2-ease-pop) both .45s}
@keyframes v2-blade-left{from{opacity:0;transform:translate(-160%,-50%) rotate(-25deg)}to{opacity:1;transform:translate(-50%,-50%)}}
@keyframes v2-blade-right{from{opacity:0;transform:translate(60%,-50%) rotate(25deg)}to{opacity:1;transform:translate(-50%,-50%)}}
@media (prefers-reduced-motion:reduce){.v2-stage-found.is-revealing .v2-vs-blade{animation:none}}
/* Reserved players (live reservation rule): visible but not selectable; the reason is in the title. */
.v2-player-pick.is-unavailable{opacity:.55;filter:grayscale(.6);cursor:not-allowed}
.v2-help.is-warning{color:var(--v2-ember)}

/* Readiness: one next step, centred, with the step counter above it. */
.v2-next-step{gap:14px;max-width:560px;margin-inline:auto}
.v2-next-step>div{display:grid;justify-items:center;gap:10px}
.v2-next-step p{max-width:46ch}
