/*
  Challenge Center Overlay V2 experimental skin.
  V2 is intentionally isolated from the production Challenge Center overlay.
  Production files remain public/shared/hardcore.js and /stream-tools/hardcore.
*/
:root{
  --challenge-v2-gold:#d7b46a;
  --challenge-v2-gold-bright:#ffd987;
  --challenge-v2-red:#ef4444;
  --challenge-v2-green:#84cc16;
  --challenge-v2-blue:#38bdf8;
  --challenge-v2-ink:#05070a;
  --challenge-v2-panel:rgba(5,8,12,.70);
  --challenge-v2-panel-strong:rgba(3,5,8,.86);
  --challenge-v2-border:rgba(215,180,106,.30);
}

body.challenge-overlay-v2{
  background:
    linear-gradient(180deg, rgba(3,7,12,.78), rgba(4,7,11,.92)),
    url('/assets/backgrounds/challenge/bg-01.png') center/cover fixed no-repeat!important;
}

body.challenge-overlay-v2::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  pointer-events:none;
  background:url('/assets/backgrounds/challenge/bg-02.png') center/cover fixed no-repeat;
  opacity:0;
  animation:challengeV2BackgroundCycle 32s ease-in-out infinite;
}

body.challenge-overlay-v2::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    radial-gradient(circle at 18% 16%, rgba(255,216,135,.12), transparent 24%),
    radial-gradient(circle at 82% 18%, rgba(56,189,248,.10), transparent 24%),
    radial-gradient(circle at 50% 100%, rgba(0,0,0,.76), transparent 46%),
    linear-gradient(90deg, rgba(0,0,0,.48), transparent 28%, transparent 72%, rgba(0,0,0,.48));
}

@keyframes challengeV2BackgroundCycle{
  0%,42%{opacity:0;}
  50%,92%{opacity:.82;}
  100%{opacity:0;}
}

body.challenge-overlay-v2 .page-wrap.hardcore-page{
  max-width:1720px;
  display:grid;
  grid-template-columns:minmax(310px,380px) minmax(0,1fr);
  gap:18px;
  align-items:start;
}

body.challenge-overlay-v2 .hardcore-v2-experimental-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:8px;
  padding:5px 10px;
  border:1px solid rgba(251,191,36,.45);
  border-radius:999px;
  background:rgba(0,0,0,.38);
  color:#facc15;
  font:700 .72rem/1 Barlow,system-ui,sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
}

body.challenge-overlay-v2 .hardcore-hero,
body.challenge-overlay-v2 .hardcore-wall-section,
body.challenge-overlay-v2 .hardcore-blood-money-panel{
  position:relative;
  overflow:hidden;
  border:1px solid var(--challenge-v2-border)!important;
  background:
    linear-gradient(180deg, rgba(0,0,0,.54), rgba(0,0,0,.76)),
    url('/assets/backgrounds/challenge/bg-01.png') center/cover no-repeat!important;
  box-shadow:0 28px 80px rgba(0,0,0,.46), inset 0 0 70px rgba(255,216,135,.035)!important;
  backdrop-filter:blur(10px);
}

body.challenge-overlay-v2 .hardcore-hero::before,
body.challenge-overlay-v2 .hardcore-wall-section::before,
body.challenge-overlay-v2 .hardcore-blood-money-panel::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(110deg, rgba(255,255,255,.08), transparent 16%, transparent 72%, rgba(255,255,255,.04)),
    radial-gradient(circle at 50% 0%, rgba(215,180,106,.13), transparent 32%);
  opacity:.72;
}

body.challenge-overlay-v2 .hardcore-hero > *,
body.challenge-overlay-v2 .hardcore-wall-section > *,
body.challenge-overlay-v2 .hardcore-blood-money-panel > *{
  position:relative;
  z-index:1;
}

body.challenge-overlay-v2 .hardcore-wall-section{
  padding:18px!important;
  border-radius:24px!important;
}

body.challenge-overlay-v2 .hardcore-wall-header{
  margin-bottom:14px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(215,180,106,.22);
}

body.challenge-overlay-v2 .hardcore-wall-header h3,
body.challenge-overlay-v2 .hardcore-title-block h2{
  font-family:'Barlow Condensed', system-ui, sans-serif;
  letter-spacing:.04em;
  text-transform:uppercase;
  text-shadow:0 3px 16px rgba(0,0,0,.9);
}

body.challenge-overlay-v2 .hardcore-grid{
  grid-template-columns:repeat(auto-fill,minmax(118px,1fr));
  gap:12px;
}

body.challenge-overlay-v2 .hardcore-character-card{
  min-height:174px;
  padding:7px 7px 9px!important;
  border-radius:15px!important;
  background:linear-gradient(180deg, rgba(13,18,25,.84), rgba(3,5,8,.84))!important;
  border:1px solid rgba(255,255,255,.14)!important;
  box-shadow:0 18px 34px rgba(0,0,0,.42), inset 0 0 24px rgba(255,255,255,.025)!important;
  display:grid;
  grid-template-rows:minmax(0,1fr) auto auto;
  gap:6px;
  isolation:isolate;
  overflow:hidden;
  transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}

body.challenge-overlay-v2 .hardcore-character-card:hover,
body.challenge-overlay-v2 .hardcore-character-card.current{
  transform:translateY(-2px);
  border-color:rgba(255,217,135,.72)!important;
  box-shadow:0 20px 42px rgba(0,0,0,.52), 0 0 24px rgba(255,217,135,.18), inset 0 0 28px rgba(255,217,135,.055)!important;
}

body.challenge-overlay-v2 .hardcore-character-card.current::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  border:1px solid rgba(255,217,135,.78);
  box-shadow:inset 0 0 22px rgba(255,217,135,.22);
  z-index:6;
}

body.challenge-overlay-v2 .hardcore-character-image{
  width:100%!important;
  height:100%!important;
  min-height:112px!important;
  border-radius:12px!important;
  overflow:hidden;
  background:rgba(0,0,0,.45)!important;
}

body.challenge-overlay-v2 .hardcore-character-image .catalog-layered-image,
body.challenge-overlay-v2 .hardcore-character-image img,
body.challenge-overlay-v2 .hardcore-character-placeholder{
  width:100%!important;
  height:100%!important;
  object-fit:cover;
}

body.challenge-overlay-v2 .hardcore-character-info{
  display:block;
  min-width:0;
  text-align:left;
  padding:0 2px;
}

body.challenge-overlay-v2 .hardcore-character-info strong{
  display:block!important;
  color:#fff!important;
  font:900 1rem/1 'Barlow Condensed', system-ui, sans-serif!important;
  letter-spacing:.055em;
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  text-shadow:0 2px 8px rgba(0,0,0,.95);
}

body.challenge-overlay-v2 .hardcore-character-info small{
  display:block!important;
  margin-top:1px;
  color:rgba(226,232,240,.68)!important;
  font:800 .58rem/1 Barlow, system-ui, sans-serif!important;
  letter-spacing:.11em;
  text-transform:uppercase;
}

body.challenge-overlay-v2 .hardcore-streak-panel{
  padding:4px 6px!important;
  border-radius:999px!important;
  background:rgba(0,0,0,.42)!important;
  border:1px solid rgba(255,255,255,.12)!important;
}

body.challenge-overlay-v2 .hardcore-character-card.defeated,
body.challenge-overlay-v2 .blood-money-roster-card.blood-money-dead{
  border-color:rgba(239,68,68,.44)!important;
}

body.challenge-overlay-v2 .hardcore-character-card.defeated .hardcore-character-image img,
body.challenge-overlay-v2 .hardcore-character-card.defeated .hardcore-character-placeholder{
  filter:grayscale(.96) brightness(.45) contrast(1.05)!important;
}

body.challenge-overlay-v2 .hardcore-defeat-x{
  color:rgba(239,68,68,.98)!important;
  text-shadow:0 6px 22px rgba(0,0,0,.92), 0 0 22px rgba(239,68,68,.64)!important;
}

body.challenge-overlay-v2 .blood-money-roster-card.blood-money-sold{
  border-color:rgba(245,158,11,.58)!important;
}

body.challenge-overlay-v2 .blood-money-roster-card.blood-money-cooldown{
  border-color:rgba(56,189,248,.56)!important;
  box-shadow:0 18px 34px rgba(0,0,0,.42), 0 0 20px rgba(56,189,248,.14)!important;
}

body.challenge-overlay-v2 .blood-money-status-chip,
body.challenge-overlay-v2 .blood-money-price-badge{
  border:1px solid rgba(215,180,106,.40)!important;
  background:rgba(0,0,0,.58)!important;
  color:#ffe7aa!important;
  box-shadow:0 8px 18px rgba(0,0,0,.35);
}

body.challenge-overlay-v2 .hardcore-control-panel,
body.challenge-overlay-v2 .hardcore-summary > div{
  background:rgba(0,0,0,.36)!important;
  border-color:rgba(215,180,106,.22)!important;
  backdrop-filter:blur(8px);
}

body.challenge-overlay-v2 .hardcore-panel-label,
body.challenge-overlay-v2 .eyebrow{
  color:var(--challenge-v2-gold-bright)!important;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-v2-experimental-badge,
body.stream-overlay-mode.challenge-overlay-v2 .hardcore-challenge-select-panel,
body.stream-overlay-mode.challenge-overlay-v2 .hardcore-viewer-room-panel,
body.stream-overlay-mode.challenge-overlay-v2 .hardcore-rules-panel,
body.stream-overlay-mode.challenge-overlay-v2 .hardcore-gauntlet-panel,
body.stream-overlay-mode.challenge-overlay-v2 .hardcore-streak-controls-panel,
body.stream-overlay-mode.challenge-overlay-v2 .hardcore-overlay-settings-panel,
body.stream-overlay-mode.challenge-overlay-v2 .hardcore-header-actions,
body.stream-overlay-mode.challenge-overlay-v2 .hardcore-progress-shell,
body.stream-overlay-mode.challenge-overlay-v2 .hardcore-blood-money-panel{
  display:none!important;
}

body.stream-overlay-mode.challenge-overlay-v2{
  background:transparent!important;
}

body.stream-overlay-mode.challenge-overlay-v2::before,
body.stream-overlay-mode.challenge-overlay-v2::after{
  display:none!important;
}

body.stream-overlay-mode.challenge-overlay-v2 .page-wrap.hardcore-page{
  width:1920px!important;
  max-width:1920px!important;
  height:1080px!important;
  max-height:1080px!important;
  padding:26px!important;
  margin:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 330px;
  grid-template-rows:1fr;
  gap:16px;
  transform:translateX(0);
  opacity:1;
  transition:transform .52s cubic-bezier(.18,.88,.28,1), opacity .32s ease;
}

body.stream-overlay-mode.challenge-overlay-v2 .page-wrap.hardcore-page[data-overlay-visible="0"]{
  opacity:0;
  pointer-events:none;
}

body.stream-overlay-mode.challenge-overlay-v2 .page-wrap.hardcore-page[data-overlay-visible="0"][data-slide-direction="right"]{transform:translateX(110%);}
body.stream-overlay-mode.challenge-overlay-v2 .page-wrap.hardcore-page[data-overlay-visible="0"][data-slide-direction="left"]{transform:translateX(-110%);}
body.stream-overlay-mode.challenge-overlay-v2 .page-wrap.hardcore-page[data-overlay-visible="0"][data-slide-direction="top"]{transform:translateY(-110%);}
body.stream-overlay-mode.challenge-overlay-v2 .page-wrap.hardcore-page[data-overlay-visible="0"][data-slide-direction="bottom"]{transform:translateY(110%);}
body.stream-overlay-mode.challenge-overlay-v2 .page-wrap.hardcore-page[data-overlay-visible="0"][data-slide-direction="none"]{transform:none;}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-hero{
  grid-column:2;
  grid-row:1;
  align-self:stretch;
  width:auto!important;
  height:100%;
  margin:0!important;
  padding:18px!important;
  border-radius:28px!important;
  display:flex;
  flex-direction:column;
  gap:14px;
  background:
    linear-gradient(180deg, rgba(0,0,0,.48), rgba(0,0,0,.82)),
    url('/assets/backgrounds/challenge/bg-02.png') center/cover no-repeat!important;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-wall-section{
  grid-column:1;
  grid-row:1;
  height:100%;
  margin:0!important;
  padding:18px!important;
  border-radius:28px!important;
  background:
    linear-gradient(180deg, rgba(0,0,0,.52), rgba(0,0,0,.78)),
    url('/assets/backgrounds/challenge/bg-01.png') center/cover no-repeat!important;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-wall-header{
  display:flex!important;
  align-items:end;
  justify-content:space-between;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-wall-header p{
  display:none;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-grid{
  height:calc(100% - 58px)!important;
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(116px,1fr))!important;
  grid-auto-rows:minmax(154px,1fr);
  gap:10px!important;
  overflow:hidden;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-character-card{
  min-height:0!important;
  height:100%;
  border-radius:14px!important;
  padding:7px!important;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-character-image{
  min-height:0!important;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-character-info strong{
  font-size:.9rem!important;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-character-info small{
  font-size:.54rem!important;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-title-block h2{
  font-size:2rem;
}

body.stream-overlay-mode.challenge-overlay-v2 #hardcoreStatus{
  display:none;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-run-stats-panel{
  order:1;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-summary{
  display:grid!important;
  grid-template-columns:1fr 1fr;
  gap:10px!important;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-summary > div{
  min-width:0!important;
  padding:11px 10px!important;
  border-radius:14px!important;
  text-align:center;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-summary strong{
  font:900 2rem/1 'Barlow Condensed', system-ui, sans-serif!important;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-summary span{
  font-size:.62rem!important;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-overlay-gauntlet-focus{
  display:block!important;
  order:2;
  margin-top:auto;
  padding:14px;
  border-radius:18px;
  background:rgba(0,0,0,.42);
  border:1px solid rgba(215,180,106,.26);
}

body.stream-overlay-mode.challenge-overlay-v2[data-hardcore-side-panel="0"] .hardcore-hero{
  display:none!important;
}

body.stream-overlay-mode.challenge-overlay-v2[data-hardcore-side-panel="0"] .page-wrap.hardcore-page{
  grid-template-columns:1fr;
}

@media (prefers-reduced-motion:reduce){
  body.challenge-overlay-v2::before{animation:none;}
  body.challenge-overlay-v2 .hardcore-character-card,
  body.stream-overlay-mode.challenge-overlay-v2 .page-wrap.hardcore-page{transition:none!important;}
}

/* V2 Broadcast layout pass: current-focus module and recent event strip. */
body.challenge-overlay-v2 .hardcore-v2-spotlight-panel{
  padding:14px!important;
  border-radius:18px!important;
}

body.challenge-overlay-v2 .hardcore-v2-spotlight{
  display:grid;
  grid-template-columns:86px minmax(0,1fr);
  gap:12px;
  align-items:center;
  min-height:118px;
}

body.challenge-overlay-v2 .hardcore-v2-spotlight-image{
  width:86px;
  height:108px;
  border-radius:14px;
  overflow:hidden;
  background:rgba(0,0,0,.48);
  border:1px solid rgba(255,217,135,.34);
  box-shadow:0 14px 30px rgba(0,0,0,.42), 0 0 22px rgba(255,217,135,.10);
}

body.challenge-overlay-v2 .hardcore-v2-spotlight-image .catalog-layered-image,
body.challenge-overlay-v2 .hardcore-v2-spotlight-image img,
body.challenge-overlay-v2 .hardcore-v2-spotlight-image .hardcore-character-placeholder{
  width:100%!important;
  height:100%!important;
  object-fit:cover;
}

body.challenge-overlay-v2 .hardcore-v2-spotlight-copy{
  min-width:0;
}

body.challenge-overlay-v2 .hardcore-v2-spotlight-copy strong,
body.challenge-overlay-v2 .hardcore-v2-spotlight-stat strong{
  display:block;
  color:#fff;
  font:900 2rem/1 'Barlow Condensed',system-ui,sans-serif;
  letter-spacing:.045em;
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  text-shadow:0 4px 18px rgba(0,0,0,.86);
}

body.challenge-overlay-v2 .hardcore-v2-spotlight-copy span{
  display:inline-flex;
  margin-top:5px;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(215,180,106,.14);
  border:1px solid rgba(215,180,106,.26);
  color:#ffe7aa;
  font:900 .68rem/1 Barlow,system-ui,sans-serif;
  letter-spacing:.11em;
  text-transform:uppercase;
}

body.challenge-overlay-v2 .hardcore-v2-spotlight-copy small,
body.challenge-overlay-v2 .hardcore-v2-spotlight-stat span{
  display:block;
  margin-top:8px;
  color:rgba(226,232,240,.72);
  font:700 .76rem/1.25 Barlow,system-ui,sans-serif;
}

body.challenge-overlay-v2 .hardcore-v2-spotlight-empty{
  grid-column:1 / -1;
  color:rgba(226,232,240,.62);
  font:800 .78rem/1 Barlow,system-ui,sans-serif;
  text-transform:uppercase;
  letter-spacing:.12em;
}

body.challenge-overlay-v2 .hardcore-v2-event-strip{
  margin-top:14px;
  padding:12px 14px;
  border-radius:18px;
  background:linear-gradient(90deg, rgba(0,0,0,.58), rgba(0,0,0,.32));
  border:1px solid rgba(215,180,106,.22);
  box-shadow:inset 0 0 30px rgba(255,217,135,.035), 0 16px 30px rgba(0,0,0,.28);
}

body.challenge-overlay-v2 .hardcore-v2-event-strip-title{
  display:block;
  margin-bottom:8px;
  color:var(--challenge-v2-gold-bright);
  font:900 .68rem/1 Barlow,system-ui,sans-serif;
  letter-spacing:.16em;
  text-transform:uppercase;
}

body.challenge-overlay-v2 .hardcore-v2-event-list{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
  min-height:32px;
}

body.challenge-overlay-v2 .hardcore-v2-event-chip{
  display:inline-flex;
  align-items:center;
  gap:7px;
  max-width:240px;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(0,0,0,.42);
  border:1px solid rgba(255,255,255,.12);
  color:#f8fafc;
  box-shadow:0 8px 18px rgba(0,0,0,.24);
}

body.challenge-overlay-v2 .hardcore-v2-event-chip b{
  color:#ffe7aa;
  font-size:.8rem;
  line-height:1;
}

body.challenge-overlay-v2 .hardcore-v2-event-chip span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font:900 .76rem/1 Barlow,system-ui,sans-serif;
  letter-spacing:.035em;
  text-transform:uppercase;
}

body.challenge-overlay-v2 .hardcore-v2-event-chip small{
  color:rgba(226,232,240,.66);
  font:800 .62rem/1 Barlow,system-ui,sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}

body.challenge-overlay-v2 .hardcore-v2-event-chip.event-dead{border-color:rgba(239,68,68,.36);}
body.challenge-overlay-v2 .hardcore-v2-event-chip.event-sold{border-color:rgba(245,158,11,.42);}
body.challenge-overlay-v2 .hardcore-v2-event-chip.event-cooldown{border-color:rgba(56,189,248,.42);}
body.challenge-overlay-v2 .hardcore-v2-event-chip.event-win{border-color:rgba(132,204,22,.36);}
body.challenge-overlay-v2 .hardcore-v2-event-empty{
  color:rgba(226,232,240,.56);
  font:800 .72rem/1 Barlow,system-ui,sans-serif;
  letter-spacing:.10em;
  text-transform:uppercase;
}

body.stream-overlay-mode.challenge-overlay-v2 .page-wrap.hardcore-page{
  grid-template-columns:minmax(0,1fr) 360px;
  grid-template-rows:1fr;
  gap:18px;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-hero{
  min-height:0;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-wall-section{
  min-height:0;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-grid{
  height:auto!important;
  min-height:0;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-v2-spotlight-panel{
  order:2;
  background:linear-gradient(180deg, rgba(0,0,0,.50), rgba(0,0,0,.34))!important;
  border-color:rgba(255,217,135,.30)!important;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-overlay-gauntlet-focus{
  order:3;
  margin-top:0;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-v2-spotlight{
  grid-template-columns:104px minmax(0,1fr);
  min-height:136px;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-v2-spotlight-image{
  width:104px;
  height:132px;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-v2-spotlight-copy strong,
body.stream-overlay-mode.challenge-overlay-v2 .hardcore-v2-spotlight-stat strong{
  font-size:2.25rem;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-v2-event-strip{
  margin-top:12px;
  min-height:78px;
  overflow:hidden;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-v2-event-list{
  flex-wrap:nowrap;
  overflow:hidden;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-v2-event-chip{
  flex:0 0 auto;
  max-width:215px;
}

body.stream-overlay-mode.challenge-overlay-v2 .hardcore-v2-event-chip:nth-child(n+7){
  display:none;
}


/* V2 safety fix: public /challenge-v2 viewer rooms are read-only, but may not include ?overlay=1.
   Mirror the broadcast shell so the roster does not collapse into the narrow first grid column. */
body.challenge-viewer-mode.challenge-overlay-v2:not(.stream-overlay-mode) .page-wrap.hardcore-page{
  width:100%;
  max-width:1920px;
  min-height:100vh;
  padding:18px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 360px;
  grid-template-rows:minmax(0,1fr);
  gap:18px;
  align-items:stretch;
}

body.challenge-viewer-mode.challenge-overlay-v2:not(.stream-overlay-mode) .hardcore-wall-section{
  grid-column:1;
  grid-row:1;
  min-height:0;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
}

body.challenge-viewer-mode.challenge-overlay-v2:not(.stream-overlay-mode) .hardcore-hero{
  grid-column:2;
  grid-row:1;
  min-height:0;
  align-self:stretch;
  width:auto!important;
  margin:0!important;
  display:flex;
  flex-direction:column;
}

body.challenge-viewer-mode.challenge-overlay-v2:not(.stream-overlay-mode) .hardcore-grid{
  height:auto!important;
  min-height:0;
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(116px,1fr))!important;
  grid-auto-rows:minmax(154px,1fr);
  gap:10px!important;
  overflow:hidden;
}

body.challenge-viewer-mode.challenge-overlay-v2:not(.stream-overlay-mode) .hardcore-character-card{
  min-height:0!important;
  height:100%;
}

body.challenge-viewer-mode.challenge-overlay-v2:not(.stream-overlay-mode) .hardcore-v2-event-strip{
  margin-top:12px;
  min-height:78px;
  overflow:hidden;
}

/* V2 hard lock: the experimental OBS/viewer shell must render as one shared broadcast canvas.
   This intentionally overrides legacy production overlay/viewer rules that also attach to V2 bodies. */
body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-page.stream-tools-facelift,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-page.stream-tools-facelift{
  position:fixed!important;
  inset:24px!important;
  width:auto!important;
  height:auto!important;
  min-width:0!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(360px,430px)!important;
  grid-template-rows:minmax(0,1fr)!important;
  gap:18px!important;
  align-items:stretch!important;
  justify-items:stretch!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-wall-section,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-wall-section{
  grid-column:1!important;
  grid-row:1!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  margin:0!important;
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr) auto!important;
  align-self:stretch!important;
  justify-self:stretch!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-hero,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-hero{
  grid-column:2!important;
  grid-row:1!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  margin:0!important;
  box-sizing:border-box!important;
  align-self:stretch!important;
  justify-self:stretch!important;
  display:flex!important;
  flex-direction:column!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-grid,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-grid{
  width:100%!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  display:grid!important;
  grid-template-columns:repeat(auto-fill,minmax(104px,1fr))!important;
  grid-auto-rows:minmax(132px,1fr)!important;
  gap:10px!important;
  overflow:hidden!important;
  align-content:start!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-character-card,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-character-card{
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode[data-hardcore-side-panel="0"] .hardcore-page.stream-tools-facelift,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode[data-hardcore-side-panel="0"] .hardcore-page.stream-tools-facelift{
  grid-template-columns:minmax(0,1fr)!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode[data-hardcore-side-panel="0"] .hardcore-hero,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode[data-hardcore-side-panel="0"] .hardcore-hero{
  display:none!important;
}

/* V2 broadcast tuning pass: preserve portrait ratio and keep command panel usable. */
body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-page.stream-tools-facelift,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-page.stream-tools-facelift{
  grid-template-columns:minmax(0,1fr) minmax(430px,460px)!important;
  gap:18px!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-wall-section,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-wall-section{
  padding:18px!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-grid,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-grid{
  grid-template-columns:repeat(auto-fill, minmax(86px, 96px))!important;
  grid-auto-rows:auto!important;
  justify-content:start!important;
  align-content:start!important;
  gap:12px!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-character-card,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-character-card{
  aspect-ratio:2 / 3!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  padding:6px!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-character-image,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-character-image{
  flex:1 1 auto!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:2 / 3!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-character-info,
body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-streak-panel,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-character-info,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-streak-panel{
  display:none!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-hero,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-hero{
  padding:16px!important;
  gap:12px!important;
  overflow:hidden!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-title-block,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-title-block{
  flex:0 0 auto!important;
  min-width:0!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-title-block .eyebrow,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-title-block .eyebrow{
  font-size:.62rem!important;
  letter-spacing:.12em!important;
  line-height:1!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-title-block h2,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-title-block h2{
  margin:5px 0 6px!important;
  font-size:2.05rem!important;
  line-height:.95!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-run-stats-panel,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-run-stats-panel{
  flex:0 0 auto!important;
  min-width:0!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-summary,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-summary{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:9px!important;
  margin:0!important;
  overflow:visible!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-summary > div,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-summary > div{
  min-width:0!important;
  padding:11px 8px!important;
  border-radius:13px!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-summary strong,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-summary strong{
  font-size:1.85rem!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-v2-spotlight-panel,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-v2-spotlight-panel{
  flex:0 0 auto!important;
  margin-top:0!important;
  padding:12px!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-v2-spotlight,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-v2-spotlight{
  grid-template-columns:92px minmax(0,1fr)!important;
  min-height:116px!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-v2-spotlight-image,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-v2-spotlight-image{
  width:92px!important;
  height:116px!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-v2-spotlight-copy strong,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-v2-spotlight-copy strong{
  font-size:1.9rem!important;
}

/* V2 card focus animation pass: changed characters briefly lift, scale, and stamp their new state. */
body.challenge-overlay-v2 .hardcore-character-card.v2-status-focus{
  position:relative!important;
  z-index:999!important;
  overflow:visible!important;
  transform:translateY(-10px) scale(1.42)!important;
  transform-origin:center center!important;
  border-color:rgba(255,217,135,.92)!important;
  box-shadow:0 34px 88px rgba(0,0,0,.72), 0 0 44px rgba(255,217,135,.28), inset 0 0 34px rgba(255,217,135,.10)!important;
  animation:challengeV2CardFocus 1.85s cubic-bezier(.16,.9,.24,1) both;
}

body.challenge-overlay-v2 .hardcore-character-card.v2-status-focus::before{
  content:"";
  position:absolute;
  inset:-8px;
  z-index:8;
  pointer-events:none;
  border-radius:18px;
  background:radial-gradient(circle at 50% 42%, rgba(255,217,135,.28), transparent 58%);
  border:1px solid rgba(255,217,135,.48);
  box-shadow:0 0 34px rgba(255,217,135,.28), inset 0 0 24px rgba(255,255,255,.08);
  opacity:0;
  animation:challengeV2FocusGlow 1.85s ease both;
}

body.challenge-overlay-v2 .hardcore-character-card.v2-status-focus::after{
  content:attr(data-v2-focus-stamp);
  position:absolute;
  left:50%;
  top:50%;
  z-index:12;
  transform:translate(-50%,-50%) rotate(-9deg) scale(.76);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:96px;
  max-width:150px;
  padding:8px 12px;
  border-radius:12px;
  border:2px solid rgba(255,255,255,.82);
  background:rgba(5,8,12,.86);
  color:#fff;
  font:1000 1rem/.9 'Barlow Condensed', system-ui, sans-serif;
  letter-spacing:.105em;
  text-align:center;
  text-transform:uppercase;
  text-shadow:0 2px 10px rgba(0,0,0,.95);
  box-shadow:0 16px 32px rgba(0,0,0,.62), inset 0 0 20px rgba(255,255,255,.08);
  opacity:0;
  animation:challengeV2StatusStamp 1.85s cubic-bezier(.18,.88,.28,1) both;
}

body.challenge-overlay-v2 .hardcore-character-card.v2-focus-dead::after{
  border-color:rgba(248,113,113,.95);
  background:linear-gradient(180deg, rgba(127,29,29,.92), rgba(20,6,8,.92));
  color:#fee2e2;
  box-shadow:0 16px 36px rgba(0,0,0,.66), 0 0 28px rgba(239,68,68,.38), inset 0 0 20px rgba(248,113,113,.10);
}

body.challenge-overlay-v2 .hardcore-character-card.v2-focus-sold::after{
  border-color:rgba(251,191,36,.95);
  background:linear-gradient(180deg, rgba(120,53,15,.94), rgba(24,16,6,.94));
  color:#fef3c7;
  box-shadow:0 16px 36px rgba(0,0,0,.66), 0 0 30px rgba(245,158,11,.38), inset 0 0 20px rgba(251,191,36,.12);
}

body.challenge-overlay-v2 .hardcore-character-card.v2-focus-cooldown::after{
  border-color:rgba(125,211,252,.95);
  background:linear-gradient(180deg, rgba(12,74,110,.94), rgba(4,12,20,.94));
  color:#e0f2fe;
  box-shadow:0 16px 36px rgba(0,0,0,.66), 0 0 30px rgba(56,189,248,.34), inset 0 0 20px rgba(125,211,252,.12);
}

body.challenge-overlay-v2 .hardcore-character-card.v2-focus-win::after,
body.challenge-overlay-v2 .hardcore-character-card.v2-focus-available::after{
  border-color:rgba(190,242,100,.92);
  background:linear-gradient(180deg, rgba(54,83,20,.94), rgba(8,18,10,.94));
  color:#ecfccb;
  box-shadow:0 16px 36px rgba(0,0,0,.66), 0 0 28px rgba(132,204,22,.28), inset 0 0 20px rgba(190,242,100,.10);
}

body.challenge-overlay-v2 .hardcore-character-card.v2-focus-current::after{
  border-color:rgba(255,217,135,.98);
  background:linear-gradient(180deg, rgba(92,64,20,.94), rgba(12,9,4,.94));
  color:#fff7d6;
}

body.challenge-overlay-v2 .hardcore-grid:has(.v2-status-focus),
body.challenge-overlay-v2 .hardcore-wall-section:has(.v2-status-focus){
  overflow:visible!important;
}

@keyframes challengeV2CardFocus{
  0%{transform:translateY(0) scale(1);}
  16%{transform:translateY(-12px) scale(1.48);}
  72%{transform:translateY(-12px) scale(1.48);}
  100%{transform:translateY(0) scale(1);}
}

@keyframes challengeV2FocusGlow{
  0%,100%{opacity:0;}
  16%,74%{opacity:1;}
}

@keyframes challengeV2StatusStamp{
  0%{opacity:0; transform:translate(-50%,-50%) rotate(-9deg) scale(.68);}
  24%{opacity:0; transform:translate(-50%,-50%) rotate(-9deg) scale(.68);}
  34%{opacity:1; transform:translate(-50%,-50%) rotate(-9deg) scale(1.16);}
  44%,76%{opacity:1; transform:translate(-50%,-50%) rotate(-9deg) scale(1);}
  100%{opacity:0; transform:translate(-50%,-50%) rotate(-9deg) scale(.92);}
}

@media (prefers-reduced-motion:reduce){
  body.challenge-overlay-v2 .hardcore-character-card.v2-status-focus,
  body.challenge-overlay-v2 .hardcore-character-card.v2-status-focus::before,
  body.challenge-overlay-v2 .hardcore-character-card.v2-status-focus::after{
    animation:none!important;
    transform:none!important;
  }
}

/* V2 card focus animation fix: animate a centered stage clone instead of scaling the in-grid card off-screen. */
body.challenge-overlay-v2 .hardcore-character-card.v2-focus-source{
  position:relative!important;
  z-index:20!important;
  filter:brightness(1.18) saturate(1.08)!important;
  box-shadow:0 0 26px rgba(255,217,135,.36), inset 0 0 18px rgba(255,217,135,.10)!important;
}

body.challenge-overlay-v2 .v2-focus-stage{
  --v2-focus-center-x:50vw;
  --v2-focus-center-y:50vh;
  --v2-focus-final-w:clamp(210px, 18vw, 330px);
  --v2-focus-final-h:calc(var(--v2-focus-final-w) * 1.42);
  position:fixed;
  left:0;
  top:0;
  width:var(--v2-focus-start-w);
  height:var(--v2-focus-start-h);
  z-index:99999;
  pointer-events:none;
  transform-origin:center center;
  transform:translate(calc(var(--v2-focus-start-x) - 50%), calc(var(--v2-focus-start-y) - 50%));
  animation:challengeV2StageTravel 3.6s cubic-bezier(.18,.86,.24,1) both;
  filter:drop-shadow(0 38px 54px rgba(0,0,0,.72));
}

body.challenge-overlay-v2 .v2-focus-stage::before{
  content:"";
  position:absolute;
  inset:-22px;
  z-index:-1;
  border-radius:24px;
  background:
    radial-gradient(circle at 50% 42%, rgba(255,217,135,.24), transparent 54%),
    radial-gradient(circle at 50% 50%, rgba(0,0,0,.34), transparent 70%);
  border:1px solid rgba(255,217,135,.44);
  box-shadow:0 0 52px rgba(255,217,135,.24), inset 0 0 30px rgba(255,255,255,.07);
  opacity:0;
  animation:challengeV2StageGlow 3.6s ease both;
}

body.challenge-overlay-v2 .v2-focus-stage::after{
  content:attr(data-v2-focus-stamp);
  position:absolute;
  left:50%;
  top:50%;
  z-index:30;
  transform:translate(-50%,-50%) rotate(-8deg) scale(.76);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:150px;
  max-width:260px;
  padding:12px 18px;
  border-radius:15px;
  border:3px solid rgba(255,255,255,.84);
  background:rgba(5,8,12,.90);
  color:#fff;
  font:1000 clamp(1.25rem, 2.1vw, 2.2rem)/.9 'Barlow Condensed', system-ui, sans-serif;
  letter-spacing:.105em;
  text-align:center;
  text-transform:uppercase;
  text-shadow:0 3px 14px rgba(0,0,0,.98);
  box-shadow:0 20px 42px rgba(0,0,0,.68), inset 0 0 22px rgba(255,255,255,.08);
  opacity:0;
  animation:challengeV2StageStamp 3.6s cubic-bezier(.18,.88,.28,1) both;
}

body.challenge-overlay-v2 .v2-focus-stage-card{
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  max-width:none!important;
  transform:none!important;
  animation:none!important;
  position:relative!important;
  z-index:10!important;
  overflow:hidden!important;
  border-color:rgba(255,217,135,.96)!important;
  box-shadow:0 28px 70px rgba(0,0,0,.72), 0 0 46px rgba(255,217,135,.30), inset 0 0 36px rgba(255,217,135,.10)!important;
}


body.challenge-overlay-v2 .v2-focus-stage-card .blood-money-status-chip,
body.challenge-overlay-v2 .v2-focus-stage-card .hardcore-state-overlay,
body.challenge-overlay-v2 .v2-focus-stage-card .hardcore-defeat-x{
  display:none!important;
}

body.challenge-overlay-v2 .v2-focus-stage-card::before,
body.challenge-overlay-v2 .v2-focus-stage-card::after{
  content:none!important;
  animation:none!important;
}

body.challenge-overlay-v2 .v2-focus-stage.v2-focus-dead::after{
  border-color:rgba(248,113,113,.95);
  background:linear-gradient(180deg, rgba(127,29,29,.94), rgba(20,6,8,.94));
  color:#fee2e2;
  box-shadow:0 20px 44px rgba(0,0,0,.70), 0 0 36px rgba(239,68,68,.42), inset 0 0 22px rgba(248,113,113,.12);
}
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-sold::after{
  border-color:rgba(251,191,36,.96);
  background:linear-gradient(180deg, rgba(120,53,15,.95), rgba(24,16,6,.95));
  color:#fef3c7;
  box-shadow:0 20px 44px rgba(0,0,0,.70), 0 0 38px rgba(245,158,11,.42), inset 0 0 22px rgba(251,191,36,.13);
}
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-cooldown::after{
  border-color:rgba(125,211,252,.96);
  background:linear-gradient(180deg, rgba(12,74,110,.95), rgba(4,12,20,.95));
  color:#e0f2fe;
  box-shadow:0 20px 44px rgba(0,0,0,.70), 0 0 38px rgba(56,189,248,.38), inset 0 0 22px rgba(125,211,252,.13);
}
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-win::after,
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-available::after{
  border-color:rgba(190,242,100,.94);
  background:linear-gradient(180deg, rgba(54,83,20,.95), rgba(8,18,10,.95));
  color:#ecfccb;
}
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-current::after{
  border-color:rgba(255,217,135,.98);
  background:linear-gradient(180deg, rgba(92,64,20,.95), rgba(12,9,4,.95));
  color:#fff7d6;
}

@keyframes challengeV2StageTravel{
  0%{
    width:var(--v2-focus-start-w);
    height:var(--v2-focus-start-h);
    transform:translate(calc(var(--v2-focus-start-x) - 50%), calc(var(--v2-focus-start-y) - 50%)) scale(1);
    opacity:.98;
  }
  24%,78%{
    width:var(--v2-focus-final-w);
    height:var(--v2-focus-final-h);
    transform:translate(calc(var(--v2-focus-center-x) - 50%), calc(var(--v2-focus-center-y) - 50%)) scale(1);
    opacity:1;
  }
  100%{
    width:var(--v2-focus-start-w);
    height:var(--v2-focus-start-h);
    transform:translate(calc(var(--v2-focus-start-x) - 50%), calc(var(--v2-focus-start-y) - 50%)) scale(1);
    opacity:0;
  }
}
@keyframes challengeV2StageGlow{
  0%,100%{opacity:0; transform:scale(.92);}
  24%,78%{opacity:1; transform:scale(1);}
}
@keyframes challengeV2StageStamp{
  0%{opacity:0; transform:translate(-50%,-50%) rotate(-8deg) scale(.68);}
  30%{opacity:0; transform:translate(-50%,-50%) rotate(-8deg) scale(.68);}
  40%{opacity:1; transform:translate(-50%,-50%) rotate(-8deg) scale(1.16);}
  50%,82%{opacity:1; transform:translate(-50%,-50%) rotate(-8deg) scale(1);}
  100%{opacity:0; transform:translate(-50%,-50%) rotate(-8deg) scale(.92);}
}

@media (prefers-reduced-motion:reduce){
  body.challenge-overlay-v2 .v2-focus-stage,
  body.challenge-overlay-v2 .v2-focus-stage::before,
  body.challenge-overlay-v2 .v2-focus-stage::after{
    animation:none!important;
  }
}

/* V2 status-specific focus polish: each broadcast card event now has its own visual language. */
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-dead{
  filter:drop-shadow(0 42px 58px rgba(0,0,0,.78)) drop-shadow(0 0 34px rgba(239,68,68,.32));
}
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-dead::before{
  background:
    radial-gradient(circle at 50% 42%, rgba(239,68,68,.38), transparent 56%),
    radial-gradient(circle at 50% 50%, rgba(0,0,0,.42), transparent 72%);
  border-color:rgba(248,113,113,.55);
  box-shadow:0 0 62px rgba(239,68,68,.28), inset 0 0 34px rgba(248,113,113,.09);
}
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-dead::after{
  content:"☠ " attr(data-v2-focus-stamp) " ☠";
}
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-dead .v2-focus-stage-card{
  border-color:rgba(248,113,113,.98)!important;
  box-shadow:0 30px 76px rgba(0,0,0,.78), 0 0 48px rgba(239,68,68,.36), inset 0 0 38px rgba(248,113,113,.10)!important;
}
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-dead .v2-focus-stage-card .hardcore-character-image img,
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-dead .v2-focus-stage-card .catalog-layered-image,
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-dead .v2-focus-stage-card .hardcore-character-placeholder{
  animation:challengeV2FocusDeadVisualState 3.6s ease both!important;
}
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-dead .v2-focus-stage-card::after{
  content:"☠"!important;
  position:absolute!important;
  inset:auto 10px 10px auto!important;
  z-index:22!important;
  width:54px!important;
  height:54px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:999px!important;
  border:2px solid rgba(248,113,113,.88)!important;
  background:rgba(24,6,8,.86)!important;
  color:#fee2e2!important;
  font:1000 2rem/1 system-ui, sans-serif!important;
  box-shadow:0 10px 28px rgba(0,0,0,.62), 0 0 28px rgba(239,68,68,.32)!important;
  transform:rotate(-8deg)!important;
}

body.challenge-overlay-v2 .v2-focus-stage.v2-focus-sold{
  filter:drop-shadow(0 42px 58px rgba(0,0,0,.76)) drop-shadow(0 0 36px rgba(245,158,11,.35));
}
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-sold::before{
  background:
    radial-gradient(circle at 50% 42%, rgba(251,191,36,.36), transparent 56%),
    radial-gradient(circle at 50% 50%, rgba(0,0,0,.34), transparent 72%);
  border-color:rgba(251,191,36,.62);
  box-shadow:0 0 68px rgba(245,158,11,.30), inset 0 0 34px rgba(251,191,36,.12);
}
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-sold::after{
  content:"$ " attr(data-v2-focus-stamp) " $";
}
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-sold .v2-focus-stage-card{
  border-color:rgba(251,191,36,.98)!important;
  box-shadow:0 30px 76px rgba(0,0,0,.76), 0 0 52px rgba(245,158,11,.38), inset 0 0 40px rgba(251,191,36,.14)!important;
}

body.challenge-overlay-v2 .v2-focus-stage.v2-focus-sold .v2-focus-stage-card .hardcore-character-image img,
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-sold .v2-focus-stage-card .catalog-layered-image,
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-sold .v2-focus-stage-card .hardcore-character-placeholder{
  animation:challengeV2FocusSoldVisualState 3.6s ease both!important;
}

body.challenge-overlay-v2 .v2-focus-stage.v2-focus-sold .v2-focus-stage-card::after{
  content:"SOLD"!important;
  position:absolute!important;
  left:50%!important;
  top:18%!important;
  z-index:22!important;
  transform:translateX(-50%) rotate(-12deg)!important;
  padding:7px 16px!important;
  border:2px solid rgba(251,191,36,.9)!important;
  border-radius:9px!important;
  background:rgba(24,16,6,.82)!important;
  color:#fef3c7!important;
  font:1000 1.1rem/.9 'Barlow Condensed', system-ui, sans-serif!important;
  letter-spacing:.15em!important;
  box-shadow:0 12px 30px rgba(0,0,0,.62), 0 0 26px rgba(245,158,11,.32)!important;
}

body.challenge-overlay-v2 .v2-focus-stage.v2-focus-cooldown{
  filter:drop-shadow(0 42px 58px rgba(0,0,0,.76)) drop-shadow(0 0 36px rgba(56,189,248,.30));
}
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-cooldown::before{
  background:
    radial-gradient(circle at 50% 42%, rgba(56,189,248,.31), transparent 56%),
    linear-gradient(135deg, rgba(125,211,252,.10), transparent 34%, rgba(255,255,255,.06) 52%, transparent 72%),
    radial-gradient(circle at 50% 50%, rgba(0,0,0,.36), transparent 72%);
  border-color:rgba(125,211,252,.56);
  box-shadow:0 0 64px rgba(56,189,248,.27), inset 0 0 34px rgba(125,211,252,.10);
}
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-cooldown::after{
  content:"❄ " attr(data-v2-focus-stamp) " ❄";
}
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-cooldown .v2-focus-stage-card{
  border-color:rgba(125,211,252,.98)!important;
  box-shadow:0 30px 76px rgba(0,0,0,.76), 0 0 52px rgba(56,189,248,.32), inset 0 0 40px rgba(125,211,252,.12)!important;
}
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-cooldown .v2-focus-stage-card .hardcore-character-image img,
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-cooldown .v2-focus-stage-card .catalog-layered-image,
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-cooldown .v2-focus-stage-card .hardcore-character-placeholder{
  animation:challengeV2FocusCooldownVisualState 3.6s ease both!important;
}
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-cooldown .v2-focus-stage-card::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:21!important;
  border-radius:inherit!important;
  pointer-events:none!important;
  background:
    linear-gradient(115deg, transparent 0 18%, rgba(224,242,254,.16) 38%, transparent 56%),
    radial-gradient(circle at 30% 18%, rgba(224,242,254,.20), transparent 34%);
  opacity:.9!important;
  animation:challengeV2CooldownSheen 3.6s ease both!important;
}

body.challenge-overlay-v2 .v2-focus-stage.v2-focus-win::after,
body.challenge-overlay-v2 .v2-focus-stage.v2-focus-available::after{
  content:"✦ " attr(data-v2-focus-stamp) " ✦";
}

body.challenge-overlay-v2 .hardcore-character-card.current,
body.challenge-overlay-v2 .hardcore-character-card.v2-focus-source.v2-focus-current{
  border-color:rgba(255,217,135,.98)!important;
  box-shadow:0 0 30px rgba(255,217,135,.34), inset 0 0 24px rgba(255,217,135,.11)!important;
}


@keyframes challengeV2FocusDeadVisualState{
  0%,30%{filter:grayscale(0) brightness(1) contrast(1) saturate(1);}
  38%,82%{filter:grayscale(1) brightness(.56) contrast(1.18) saturate(.65);}
  100%{filter:grayscale(1) brightness(.50) contrast(1.15) saturate(.6);}
}
@keyframes challengeV2FocusSoldVisualState{
  0%,30%{filter:brightness(1) contrast(1) saturate(1);}
  38%,82%{filter:brightness(1.12) contrast(1.08) saturate(1.16);}
  100%{filter:brightness(1.03) contrast(1.04) saturate(1.08);}
}
@keyframes challengeV2FocusCooldownVisualState{
  0%,30%{filter:brightness(1) saturate(1) contrast(1) hue-rotate(0deg);}
  38%,82%{filter:brightness(.82) saturate(.82) contrast(1.08) hue-rotate(8deg);}
  100%{filter:brightness(.76) saturate(.76) contrast(1.05) hue-rotate(8deg);}
}

@keyframes challengeV2CooldownSheen{
  0%,100%{opacity:0; transform:translateX(-18%);}
  28%,78%{opacity:.9; transform:translateX(0);}
}

/* V2 Blood Money selected-state refinement: selection is a frame, not a cover. */
body.challenge-overlay-v2 .blood-money-roster-card.blood-money-selected{
  border-color:rgba(255,217,135,.95)!important;
  box-shadow:0 18px 34px rgba(0,0,0,.42), 0 0 22px rgba(255,217,135,.28), inset 0 0 18px rgba(255,217,135,.08)!important;
  transform:translateY(-1px);
}
body.challenge-overlay-v2 .blood-money-roster-card.blood-money-selected::before{
  content:""!important;
  position:absolute!important;
  inset:3px!important;
  z-index:7!important;
  pointer-events:none!important;
  border-radius:12px!important;
  border:1px solid rgba(255,217,135,.72)!important;
  background:transparent!important;
  box-shadow:inset 0 0 16px rgba(255,217,135,.12), 0 0 18px rgba(255,217,135,.12)!important;
  padding:0!important;
}
body.challenge-overlay-v2 .blood-money-roster-card.blood-money-selected::after{
  content:""!important;
  position:absolute!important;
  right:7px!important;
  top:7px!important;
  z-index:10!important;
  width:9px!important;
  height:9px!important;
  border-radius:999px!important;
  border:1px solid rgba(255,245,200,.82)!important;
  background:radial-gradient(circle, rgba(255,245,200,.98), rgba(245,158,11,.88) 56%, rgba(120,53,15,.78))!important;
  box-shadow:0 0 13px rgba(245,158,11,.72)!important;
  pointer-events:none!important;
}
body.challenge-overlay-v2 .blood-money-roster-card.blood-money-selected .blood-money-status-chip{
  border-color:rgba(255,217,135,.72)!important;
  background:linear-gradient(180deg, rgba(92,64,20,.90), rgba(20,13,4,.88))!important;
  color:#fff3c4!important;
  box-shadow:0 8px 18px rgba(0,0,0,.35), 0 0 14px rgba(255,217,135,.16)!important;
}


/* V2 Gauntlet selected-state refinement: match Blood Money selection treatment and never cover the portrait. */
body.challenge-overlay-v2 .hardcore-character-card.gauntlet-current,
body.challenge-overlay-v2 .hardcore-character-card.current.gauntlet-current{
  border-color:rgba(255,217,135,.95)!important;
  box-shadow:0 18px 34px rgba(0,0,0,.42), 0 0 22px rgba(255,217,135,.28), inset 0 0 18px rgba(255,217,135,.08)!important;
  transform:translateY(-1px);
}
body.challenge-overlay-v2 .hardcore-character-card.gauntlet-current::before,
body.challenge-overlay-v2 .hardcore-character-card.current.gauntlet-current::before{
  content:""!important;
  position:absolute!important;
  inset:3px!important;
  z-index:7!important;
  pointer-events:none!important;
  border-radius:12px!important;
  border:1px solid rgba(255,217,135,.72)!important;
  background:transparent!important;
  box-shadow:inset 0 0 16px rgba(255,217,135,.12), 0 0 18px rgba(255,217,135,.12)!important;
  padding:0!important;
}
body.challenge-overlay-v2 .hardcore-character-card.gauntlet-current::after,
body.challenge-overlay-v2 .hardcore-character-card.current.gauntlet-current::after{
  content:""!important;
  position:absolute!important;
  right:7px!important;
  top:7px!important;
  z-index:10!important;
  width:9px!important;
  height:9px!important;
  border-radius:999px!important;
  border:1px solid rgba(255,245,200,.82)!important;
  background:radial-gradient(circle, rgba(255,245,200,.98), rgba(245,158,11,.88) 56%, rgba(120,53,15,.78))!important;
  box-shadow:0 0 13px rgba(245,158,11,.72)!important;
  pointer-events:none!important;
}
body.challenge-overlay-v2 .hardcore-character-card.gauntlet-current .hardcore-character-image::after,
body.challenge-overlay-v2 .hardcore-character-card.current.gauntlet-current .hardcore-character-image::after{
  content:none!important;
  display:none!important;
  background:none!important;
  box-shadow:none!important;
}
body.challenge-overlay-v2 .hardcore-character-card.gauntlet-current .hardcore-character-info small{
  color:#fff3c4!important;
}

/* V2 Spotlight Component Upgrade: one command-panel spotlight becomes the primary current-focus display. */
body.challenge-overlay-v2 .hardcore-v2-spotlight-panel,
body.challenge-overlay-v2 .hardcore-overlay-gauntlet-focus{
  display:none!important;
}

body.challenge-overlay-v2 .hardcore-v2-command-panel{
  display:flex!important;
  flex-direction:column!important;
  gap:12px!important;
  min-height:0!important;
}

body.challenge-overlay-v2 .hardcore-v2-command-body{
  display:flex!important;
  flex-direction:column!important;
  gap:12px!important;
  min-height:0!important;
  flex:1 1 auto!important;
}

body.challenge-overlay-v2 .hardcore-v2-command-focus{
  position:relative;
  flex:0 0 auto;
}

body.challenge-overlay-v2 .hardcore-v2-command-focus-frame{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  padding:13px 13px 14px;
  border-radius:20px;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(circle at 50% 5%, rgba(255,217,135,.15), transparent 42%),
    linear-gradient(180deg, rgba(15,20,28,.82), rgba(2,5,9,.88));
  border:1px solid rgba(255,217,135,.32);
  box-shadow:0 20px 40px rgba(0,0,0,.38), inset 0 0 34px rgba(255,217,135,.045);
}

body.challenge-overlay-v2 .hardcore-v2-command-focus-frame::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    linear-gradient(90deg, transparent, rgba(255,217,135,.12), transparent),
    radial-gradient(circle at 50% 100%, rgba(127,29,29,.18), transparent 48%);
  opacity:.72;
}

body.challenge-overlay-v2 .hardcore-v2-command-focus-label{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  gap:8px;
  color:#ffe7aa;
  font:900 .72rem/1 Barlow,system-ui,sans-serif;
  letter-spacing:.18em;
  text-transform:uppercase;
  text-align:center;
  text-shadow:0 2px 12px rgba(0,0,0,.85);
}

body.challenge-overlay-v2 .hardcore-v2-command-focus-label::before,
body.challenge-overlay-v2 .hardcore-v2-command-focus-label::after{
  content:"";
  height:1px;
  flex:1 1 auto;
  max-width:70px;
  background:linear-gradient(90deg, transparent, rgba(255,217,135,.48));
}

body.challenge-overlay-v2 .hardcore-v2-command-focus-label::after{
  background:linear-gradient(90deg, rgba(255,217,135,.48), transparent);
}

body.challenge-overlay-v2 .hardcore-v2-command-focus-image{
  width:clamp(132px, 12.5vw, 190px);
  aspect-ratio:2 / 3;
  border-radius:18px;
  overflow:hidden;
  background:rgba(0,0,0,.55);
  border:1px solid rgba(255,217,135,.46);
  box-shadow:0 18px 42px rgba(0,0,0,.55), 0 0 28px rgba(255,217,135,.12), inset 0 0 20px rgba(255,255,255,.035);
}

body.challenge-overlay-v2 .hardcore-v2-command-focus-image .catalog-layered-image,
body.challenge-overlay-v2 .hardcore-v2-command-focus-image img,
body.challenge-overlay-v2 .hardcore-v2-command-focus-image .hardcore-character-placeholder{
  width:100%!important;
  height:100%!important;
  object-fit:cover;
}

body.challenge-overlay-v2 .hardcore-v2-command-focus-copy{
  width:100%;
  min-width:0;
  text-align:center;
}

body.challenge-overlay-v2 .hardcore-v2-command-focus-copy strong,
body.challenge-overlay-v2 .hardcore-v2-command-focus-empty-state strong{
  display:block;
  color:#fff;
  font:900 clamp(1.65rem, 2.2vw, 2.55rem)/.9 'Barlow Condensed',system-ui,sans-serif;
  letter-spacing:.045em;
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  text-shadow:0 4px 20px rgba(0,0,0,.92), 0 0 18px rgba(255,217,135,.12);
}

body.challenge-overlay-v2 .hardcore-v2-command-focus-copy span{
  display:inline-flex;
  max-width:100%;
  margin-top:9px;
  padding:7px 12px;
  border-radius:999px;
  background:linear-gradient(180deg, rgba(92,64,20,.74), rgba(18,13,7,.80));
  border:1px solid rgba(255,217,135,.34);
  color:#ffe7aa;
  font:900 .72rem/1 Barlow,system-ui,sans-serif;
  letter-spacing:.13em;
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  box-shadow:0 10px 22px rgba(0,0,0,.28), inset 0 0 14px rgba(255,217,135,.045);
}

body.challenge-overlay-v2 .hardcore-v2-command-focus-copy small,
body.challenge-overlay-v2 .hardcore-v2-command-focus-empty-state small{
  display:block;
  margin:9px auto 0;
  max-width:100%;
  color:rgba(226,232,240,.78);
  font:800 .78rem/1.25 Barlow,system-ui,sans-serif;
  letter-spacing:.04em;
}

body.challenge-overlay-v2 .hardcore-v2-command-focus-empty-state{
  min-height:210px;
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}

body.challenge-overlay-v2 .hardcore-v2-command-metrics{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:9px!important;
  flex:0 0 auto!important;
}

body.challenge-overlay-v2 .hardcore-v2-command-metric{
  min-width:0;
  padding:10px 9px;
  border-radius:14px;
  background:linear-gradient(180deg, rgba(15,23,42,.58), rgba(2,6,12,.66));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:inset 0 0 18px rgba(255,255,255,.025);
}

body.challenge-overlay-v2 .hardcore-v2-command-metric strong{
  display:block;
  color:#fff;
  font:900 1.55rem/.9 'Barlow Condensed',system-ui,sans-serif;
  letter-spacing:.045em;
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

body.challenge-overlay-v2 .hardcore-v2-command-metric span{
  display:block;
  margin-top:5px;
  color:rgba(226,232,240,.70);
  font:900 .61rem/1 Barlow,system-ui,sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

body.challenge-overlay-v2 .hardcore-v2-command-note,
body.challenge-overlay-v2 .hardcore-v2-command-tier{
  flex:0 0 auto;
  padding:9px 10px;
  border-radius:14px;
  background:rgba(0,0,0,.28);
  border:1px solid rgba(255,255,255,.08);
  color:rgba(226,232,240,.72);
  font:800 .74rem/1.25 Barlow,system-ui,sans-serif;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-v2-command-focus-image,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-v2-command-focus-image{
  width:clamp(145px, 9.5vw, 178px);
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-v2-command-focus-frame,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-v2-command-focus-frame{
  padding:12px 12px 13px;
  gap:8px;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-overlay-mode .hardcore-v2-command-focus-copy strong,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode .hardcore-v2-command-focus-copy strong{
  font-size:clamp(1.8rem, 2vw, 2.35rem);
}


/* V2 Compact Broadcast Overlay: small OBS-friendly panel using the command spotlight + metrics + headline ticker. */
body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay{
  background:transparent!important;
  overflow:hidden!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay::before,
body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay::after,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay::before,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay::after{
  display:none!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-page.stream-tools-facelift,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-page.stream-tools-facelift{
  position:fixed!important;
  inset:22px auto auto 22px!important;
  width:520px!important;
  max-width:520px!important;
  height:auto!important;
  max-height:calc(100vh - 44px)!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  flex-direction:column!important;
  gap:10px!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  transform:translateX(0)!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-page.stream-tools-facelift[data-overlay-visible="0"],
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-page.stream-tools-facelift[data-overlay-visible="0"]{
  opacity:0!important;
  pointer-events:none!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-hero,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-hero{
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  padding:14px!important;
  display:flex!important;
  flex-direction:column!important;
  gap:10px!important;
  border-radius:24px!important;
  overflow:hidden!important;
  background:
    linear-gradient(180deg, rgba(0,0,0,.42), rgba(0,0,0,.82)),
    url('/assets/backgrounds/challenge/bg-02.png') center/cover no-repeat!important;
  border:1px solid rgba(255,217,135,.26)!important;
  box-shadow:0 24px 60px rgba(0,0,0,.55), inset 0 0 44px rgba(255,217,135,.045)!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-wall-section,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-wall-section{
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  display:block!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-wall-header,
body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-grid,
body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-progress-shell,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-wall-header,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-grid,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-progress-shell{
  display:none!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-title-block,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-title-block{
  display:block!important;
  margin:0!important;
}
body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-title-block .eyebrow,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-title-block .eyebrow{
  font-size:.58rem!important;
  letter-spacing:.16em!important;
  opacity:.82!important;
}
body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-title-block h2,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-title-block h2{
  margin:5px 0 0!important;
  font-size:1.72rem!important;
  line-height:.95!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-run-stats-panel,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-run-stats-panel{
  display:none!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-v2-command-panel,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-v2-command-panel{
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  gap:9px!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-v2-command-head,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-v2-command-head{
  display:none!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-v2-command-body,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-v2-command-body{
  gap:10px!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-v2-command-focus-frame,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-v2-command-focus-frame{
  display:grid!important;
  grid-template-columns:122px minmax(0,1fr)!important;
  grid-template-areas:
    "label label"
    "image copy"!important;
  align-items:center!important;
  gap:10px 12px!important;
  padding:12px!important;
  border-radius:20px!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-v2-command-focus-label,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-v2-command-focus-label{
  grid-area:label!important;
  font-size:.64rem!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-v2-command-focus-image,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-v2-command-focus-image{
  grid-area:image!important;
  width:122px!important;
  height:183px!important;
  border-radius:16px!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-v2-command-focus-copy,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-v2-command-focus-copy{
  grid-area:copy!important;
  text-align:left!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-v2-command-focus-copy strong,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-v2-command-focus-copy strong,
body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-v2-command-focus-empty-state strong,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-v2-command-focus-empty-state strong{
  font-size:2rem!important;
  white-space:normal!important;
  line-height:.9!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-v2-command-focus-copy span,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-v2-command-focus-copy span{
  margin-top:8px!important;
  font-size:.68rem!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-v2-command-metrics,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-v2-command-metrics{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:7px!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-v2-command-metric,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-v2-command-metric{
  padding:8px 6px!important;
  border-radius:12px!important;
  text-align:center!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-v2-command-metric strong,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-v2-command-metric strong{
  font-size:1.3rem!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-v2-command-metric span,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-v2-command-metric span{
  font-size:.52rem!important;
  letter-spacing:.08em!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-v2-command-metric:nth-child(n+5),
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-v2-command-metric:nth-child(n+5){
  display:none!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-v2-command-note,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-v2-command-note{
  display:none!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-v2-event-strip,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-v2-event-strip{
  width:100%!important;
  min-height:44px!important;
  max-height:44px!important;
  margin:0!important;
  padding:9px 12px!important;
  border-radius:18px!important;
  overflow:hidden!important;
  background:linear-gradient(90deg, rgba(0,0,0,.74), rgba(0,0,0,.42))!important;
  border:1px solid rgba(255,217,135,.24)!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-v2-event-strip-title,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-v2-event-strip-title{
  display:none!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-v2-event-list,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-v2-event-list{
  min-height:24px!important;
  flex-wrap:nowrap!important;
  overflow:hidden!important;
  gap:8px!important;
}

body.stream-overlay-mode.challenge-overlay-v2.hardcore-v2-compact-overlay .hardcore-v2-event-chip,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode.hardcore-v2-compact-overlay .hardcore-v2-event-chip{
  flex:0 0 auto!important;
  max-width:240px!important;
  padding:5px 8px!important;
}

/* V2 canvas safety pass: OBS overlays use an exact 1920x1080 broadcast canvas;
   public viewer pages stay in normal site flow below the NavBar. */
html:has(body.stream-overlay-mode.challenge-overlay-v2),
body.stream-overlay-mode.challenge-overlay-v2{
  width:1920px!important;
  height:1080px!important;
  min-width:1920px!important;
  min-height:1080px!important;
  max-width:1920px!important;
  max-height:1080px!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
}

body.stream-overlay-mode.challenge-overlay-v2:not(.hardcore-v2-compact-overlay) .hardcore-page.stream-tools-facelift{
  position:fixed!important;
  inset:0!important;
  width:1920px!important;
  height:1080px!important;
  min-width:1920px!important;
  min-height:1080px!important;
  max-width:1920px!important;
  max-height:1080px!important;
  box-sizing:border-box!important;
  margin:0!important;
  padding:24px!important;
  overflow:hidden!important;
}

body.stream-overlay-mode.challenge-overlay-v2:not(.hardcore-v2-compact-overlay) .hardcore-wall-section,
body.stream-overlay-mode.challenge-overlay-v2:not(.hardcore-v2-compact-overlay) .hardcore-hero{
  max-height:calc(1080px - 48px)!important;
  overflow:hidden!important;
}

body.stream-overlay-mode.challenge-overlay-v2:not(.hardcore-v2-compact-overlay) .v2-focus-stage{
  --v2-focus-center-x:960px;
  --v2-focus-center-y:540px;
}

body.challenge-viewer-mode.challenge-overlay-v2:not(.stream-overlay-mode) .hardcore-page.stream-tools-facelift,
body.challenge-viewer-mode.challenge-overlay-v2.hardcore-viewer-overlay-mode:not(.stream-overlay-mode) .hardcore-page.stream-tools-facelift{
  position:relative!important;
  inset:auto!important;
  width:min(1920px, calc(100% - 32px))!important;
  max-width:1920px!important;
  min-width:0!important;
  height:auto!important;
  min-height:calc(100vh - 140px)!important;
  max-height:none!important;
  margin:24px auto 40px!important;
  padding:18px!important;
  box-sizing:border-box!important;
  overflow:visible!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(360px,430px)!important;
  grid-template-rows:minmax(0,1fr)!important;
  gap:18px!important;
  align-items:stretch!important;
  justify-items:stretch!important;
}

body.challenge-viewer-mode.challenge-overlay-v2:not(.stream-overlay-mode) .hardcore-wall-section,
body.challenge-viewer-mode.challenge-overlay-v2:not(.stream-overlay-mode) .hardcore-hero{
  height:auto!important;
  max-height:none!important;
  overflow:hidden!important;
}

body.challenge-viewer-mode.challenge-overlay-v2:not(.stream-overlay-mode) .v2-focus-stage{
  --v2-focus-center-x:50vw;
  --v2-focus-center-y:50vh;
}

body.challenge-viewer-mode.challenge-overlay-v2:not(.stream-overlay-mode).hardcore-v2-compact-overlay .hardcore-page.stream-tools-facelift{
  width:min(560px, calc(100% - 32px))!important;
  min-height:0!important;
  display:block!important;
}

@media (max-width: 980px){
  body.challenge-viewer-mode.challenge-overlay-v2:not(.stream-overlay-mode) .hardcore-page.stream-tools-facelift{
    grid-template-columns:1fr!important;
  }
  body.challenge-viewer-mode.challenge-overlay-v2:not(.stream-overlay-mode) .hardcore-hero{
    grid-column:1!important;
    grid-row:auto!important;
  }
  body.challenge-viewer-mode.challenge-overlay-v2:not(.stream-overlay-mode) .hardcore-wall-section{
    grid-column:1!important;
    grid-row:auto!important;
  }
}

/* V2 Major Event Takeovers: rare run-level moments briefly take over the broadcast canvas. */
body.challenge-overlay-v2 .v2-major-takeover{
  position:fixed;
  inset:0;
  z-index:1000000;
  display:grid;
  place-items:center;
  pointer-events:none;
  opacity:0;
  animation:challengeV2MajorIn .55s cubic-bezier(.16,.9,.24,1) forwards;
}
body.challenge-overlay-v2 .v2-major-takeover::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at center, rgba(214,169,92,.24), transparent 34%),
    linear-gradient(90deg, transparent, rgba(0,0,0,.48), transparent);
  opacity:.92;
}
body.challenge-overlay-v2 .v2-major-takeover-card{
  position:relative;
  min-width:min(760px, 72vw);
  max-width:min(980px, 82vw);
  padding:34px 48px 38px;
  border:1px solid rgba(214,169,92,.82);
  border-radius:28px;
  background:linear-gradient(145deg, rgba(11,10,12,.94), rgba(30,24,20,.9));
  box-shadow:0 34px 90px rgba(0,0,0,.72), 0 0 64px rgba(214,169,92,.28), inset 0 1px 0 rgba(255,255,255,.08);
  text-align:center;
  text-transform:uppercase;
  overflow:hidden;
  transform:scale(.92) translateY(18px);
  animation:challengeV2MajorCard .95s cubic-bezier(.16,.9,.24,1) forwards;
}
body.challenge-overlay-v2 .v2-major-takeover-card::before,
body.challenge-overlay-v2 .v2-major-takeover-card::after{
  content:"";
  position:absolute;
  left:9%;
  right:9%;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(214,169,92,.95), transparent);
}
body.challenge-overlay-v2 .v2-major-takeover-card::before{ top:18px; }
body.challenge-overlay-v2 .v2-major-takeover-card::after{ bottom:18px; }
body.challenge-overlay-v2 .v2-major-takeover-card span{
  display:block;
  color:rgba(245,224,184,.76);
  font-size:clamp(13px, 1vw, 18px);
  letter-spacing:.28em;
  font-weight:800;
  margin-bottom:10px;
}
body.challenge-overlay-v2 .v2-major-takeover-card strong{
  display:block;
  color:#fff3ce;
  font-size:clamp(46px, 5.6vw, 96px);
  line-height:.9;
  letter-spacing:.08em;
  text-shadow:0 0 24px rgba(214,169,92,.4), 0 5px 0 rgba(0,0,0,.42);
}
body.challenge-overlay-v2 .v2-major-takeover-card small{
  display:block;
  color:rgba(255,255,255,.82);
  font-size:clamp(14px, 1.15vw, 22px);
  letter-spacing:.16em;
  font-weight:800;
  margin-top:16px;
}
body.challenge-overlay-v2 .v2-major-takeover.is-leaving{
  animation:challengeV2MajorOut .52s ease forwards;
}
body.challenge-overlay-v2 .v2-major-checkpoint .v2-major-takeover-card{ border-color:rgba(214,169,92,.94); }
body.challenge-overlay-v2 .v2-major-complete .v2-major-takeover-card{ border-color:rgba(128,220,156,.88); box-shadow:0 34px 90px rgba(0,0,0,.72), 0 0 70px rgba(128,220,156,.26); }
body.challenge-overlay-v2 .v2-major-failed .v2-major-takeover-card,
body.challenge-overlay-v2 .v2-major-bankrupt .v2-major-takeover-card{ border-color:rgba(216,64,64,.9); box-shadow:0 34px 90px rgba(0,0,0,.72), 0 0 70px rgba(216,64,64,.26); }
body.challenge-overlay-v2 .v2-major-last .v2-major-takeover-card{ border-color:rgba(255,210,116,.94); }
body.challenge-overlay-v2.hardcore-v2-compact-overlay .v2-major-takeover{
  inset:0 auto auto 0;
  width:min(720px, 100vw);
  height:min(320px, 100vh);
  place-items:stretch;
  padding:0;
}
body.challenge-overlay-v2.hardcore-v2-compact-overlay .v2-major-takeover::before{ border-radius:24px; }
body.challenge-overlay-v2.hardcore-v2-compact-overlay .v2-major-takeover-card{
  min-width:0;
  max-width:none;
  width:100%;
  min-height:100%;
  border-radius:24px;
  display:grid;
  align-content:center;
  padding:24px 30px;
}
body.challenge-overlay-v2.hardcore-v2-compact-overlay .v2-major-takeover-card strong{ font-size:clamp(32px, 6vw, 54px); }
@keyframes challengeV2MajorIn{ to{ opacity:1; } }
@keyframes challengeV2MajorOut{ to{ opacity:0; transform:scale(.985); } }
@keyframes challengeV2MajorCard{ to{ transform:scale(1) translateY(0); } }
@media (prefers-reduced-motion: reduce){
  body.challenge-overlay-v2 .v2-major-takeover,
  body.challenge-overlay-v2 .v2-major-takeover-card,
  body.challenge-overlay-v2 .v2-major-takeover.is-leaving{ animation:none!important; opacity:1; transform:none; }
}
