/* ============================================================
   DUELO — match screen
   ============================================================ */
.match{
  position:fixed;inset:0;z-index:50;
  display:flex;flex-direction:column;
  background:var(--bg-0);
  animation:fade-in 200ms var(--ease);
}

/* ---------------- HUD bar ---------------- */
.hud{
  height:60px;flex:none;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  gap:16px;padding:0 16px;
  background:rgba(9,11,17,.9);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(14px);
  z-index:3;
}
.hud-side{display:flex;align-items:center;gap:12px;min-width:0}
.hud-side.right{flex-direction:row-reverse}
.hud-tag{
  display:flex;align-items:center;gap:9px;min-width:0;
  padding:6px 13px;border-radius:var(--r-pill);
  background:rgba(255,255,255,.04);
  box-shadow:inset 0 0 0 1px var(--line);
}
.hud-tag i{width:9px;height:9px;border-radius:3px;flex:none}
.hud-tag .nm{font-size:13px;font-weight:580;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hud-tag .rl{font-family:var(--font-mono);font-size:10px;color:var(--ink-4);letter-spacing:.08em}

.hud-score{
  font-family:var(--font-display);
  font-size:30px;font-weight:700;letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;
  min-width:38px;text-align:center;
  transition:transform 160ms var(--ease-out), color 300ms;
}
.hud-score.bump{transform:scale(1.34)}

.hud-mid{display:flex;flex-direction:column;align-items:center;gap:2px}
.hud-mid .lbl{
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-4);
}
.hud-mid .val{font-family:var(--font-display);font-size:16px;font-weight:600;letter-spacing:-.01em}
.hud-tools{display:flex;gap:6px;align-items:center}

.net-pill{
  display:flex;align-items:center;gap:6px;
  height:26px;padding:0 10px;border-radius:var(--r-pill);
  background:rgba(255,255,255,.04);
  box-shadow:inset 0 0 0 1px var(--line);
  font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3);
}
.net-pill .bars{display:flex;align-items:flex-end;gap:2px;height:11px}
.net-pill .bars i{width:2.5px;border-radius:1px;background:var(--ink-4)}
.net-pill .bars i:nth-child(1){height:4px}
.net-pill .bars i:nth-child(2){height:7px}
.net-pill .bars i:nth-child(3){height:11px}
.net-pill.q3 .bars i{background:var(--good)}
.net-pill.q2 .bars i:nth-child(-n+2){background:var(--warm)}
.net-pill.q1 .bars i:nth-child(1){background:var(--hot)}

/* ---------------- stage ---------------- */
.stage{
  position:relative;flex:1;min-height:0;
  display:grid;place-items:center;
  overflow:hidden;
  background:
    radial-gradient(80% 70% at 50% 40%, rgba(255,255,255,.024), transparent 70%),
    var(--bg-0);
}
.stage canvas{
  display:block;
  max-width:100%;max-height:100%;
  border-radius:var(--r-md);
  box-shadow:0 30px 90px -30px rgba(0,0,0,.95);
  touch-action:none;
}
.stage.fill canvas{border-radius:0;max-width:none;max-height:none;width:100%;height:100%;box-shadow:none}

.hint-bar{
  position:absolute;bottom:12px;left:50%;transform:translateX(-50%);
  display:flex;align-items:center;gap:14px;
  padding:8px 16px;border-radius:var(--r-pill);
  background:rgba(8,10,16,.7);
  box-shadow:inset 0 0 0 1px var(--line);
  backdrop-filter:blur(10px);
  font-size:12px;color:var(--ink-3);
  pointer-events:none;
  transition:opacity var(--t-slow);
}
.hint-bar .k{display:inline-flex;gap:3px;margin-right:5px}
.hint-bar.fade{opacity:0}

/* ---------------- overlays ---------------- */
.ov{
  position:absolute;inset:0;z-index:5;
  display:grid;place-items:center;
  background:rgba(5,6,11,.7);
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
  animation:fade-in 180ms var(--ease);
}
.ov-card{
  width:min(100%,430px);padding:32px;
  text-align:center;
  background:linear-gradient(180deg,var(--bg-2),var(--bg-1));
  border-radius:var(--r-xl);
  box-shadow:inset 0 0 0 1px var(--line-2), var(--sh-3);
  animation:pop-in 260ms var(--ease-out);
}
.ov-card h3{font-size:26px;letter-spacing:-.03em;margin-bottom:8px}
.ov-card p{color:var(--ink-3);font-size:14px;margin-bottom:22px}
.ov-actions{display:flex;flex-direction:column;gap:9px}

/* countdown */
.count{
  font-family:var(--font-display);
  font-size:clamp(80px,17vw,168px);font-weight:700;
  letter-spacing:-.06em;line-height:1;
  color:#fff;
  text-shadow:0 0 70px rgba(91,140,255,.85);
  animation:count-pop 800ms var(--ease-out);
}
@keyframes count-pop{
  0%{opacity:0;transform:scale(1.7)}
  22%{opacity:1;transform:scale(1)}
  76%{opacity:1;transform:scale(1)}
  100%{opacity:0;transform:scale(.86)}
}
.count-sub{
  font-family:var(--font-mono);font-size:12px;letter-spacing:.3em;
  text-transform:uppercase;color:var(--ink-3);margin-top:6px;
}

/* result */
.result-crown{
  width:70px;height:70px;margin:0 auto 16px;
  border-radius:22px;display:grid;place-items:center;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35);
}
.result-crown svg{width:34px;height:34px;color:#05070d}
.result-score{
  display:flex;align-items:center;justify-content:center;gap:18px;
  margin:18px 0 24px;
}
.result-score .rs{
  font-family:var(--font-display);font-size:44px;font-weight:700;
  letter-spacing:-.04em;font-variant-numeric:tabular-nums;
}
.result-score .vs{font-family:var(--font-mono);font-size:12px;color:var(--ink-4);letter-spacing:.2em}
.stat-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:22px;
}
.stat-grid div{
  padding:11px 8px;border-radius:var(--r-sm);
  background:rgba(255,255,255,.035);
  box-shadow:inset 0 0 0 1px var(--line);
}
.stat-grid .sv{font-family:var(--font-display);font-size:17px;font-weight:640}
.stat-grid .sl{font-size:10.5px;color:var(--ink-4);margin-top:2px;
  text-transform:uppercase;letter-spacing:.08em;font-family:var(--font-mono)}

/* round flash (center announce) */
.flash{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  z-index:4;pointer-events:none;text-align:center;
  font-family:var(--font-display);font-weight:700;
  font-size:clamp(26px,5vw,48px);letter-spacing:-.03em;
  text-shadow:0 4px 40px rgba(0,0,0,.9);
  animation:flash-anim 1500ms var(--ease-out) forwards;
}
@keyframes flash-anim{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}
  14%{opacity:1;transform:translate(-50%,-50%) scale(1)}
  72%{opacity:1}
  100%{opacity:0;transform:translate(-50%,-56%) scale(1.04)}
}

/* split-screen: labels + the seam between the two viewports */
.split-tags{position:absolute;inset:0;pointer-events:none;z-index:2}
.split-tags::before{
  content:'';
  position:absolute;left:50%;top:0;bottom:0;width:2px;
  transform:translateX(-1px);
  background:linear-gradient(180deg,
    transparent, rgba(255,255,255,.25) 10%,
    rgba(255,255,255,.25) 90%, transparent);
}
.split-tags span{
  position:absolute;top:10px;
  padding:4px 11px;border-radius:var(--r-pill);
  background:rgba(6,8,13,.72);
  box-shadow:inset 0 0 0 1px var(--line-2);
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;
}
.split-tags span.a{left:10px}
.split-tags span.b{right:10px}

@media (max-width:620px){
  .hud{height:52px;padding:0 10px;gap:8px}
  .hud-score{font-size:24px;min-width:28px}
  .hud-tag{padding:5px 9px}
  .hud-tag .rl{display:none}
  .hint-bar{display:none}
}

.hint-bar.local-controls{position:static;transform:none;flex:none;align-self:center;max-width:100%;border-radius:0;width:100%;justify-content:center;padding:9px 16px;flex-wrap:wrap}
.local-control-side{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;font-size:11px}
.local-control-side strong{font-family:var(--font-mono)}
.match>.local-controls{background:var(--bg-1);border-top:1px solid var(--line)}
@media(max-width:620px){.hint-bar.local-controls{display:flex;padding:6px}.local-control-side{font-size:9px;gap:7px}}
.hud-mid{min-width:0}
.hud-mid .lbl{max-width:min(28vw,280px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hud-tag>div{min-width:0}
