/* 30PICK'EM Premium Shell V2 — Home + Picks rebuild */
:root{
  --p2-bg:#050914;
  --p2-panel:#0a111d;
  --p2-panel2:#0d1624;
  --p2-line:#18283d;
  --p2-line2:#223957;
  --p2-white:#f6f8fb;
  --p2-muted:#8493a7;
  --p2-blue:#36a3ff;
  --p2-blue2:#83c9ff;
  --p2-gold:#e1b94d;
}
body{background:linear-gradient(180deg,#03060c 0%,#07101d 100%)!important;color:var(--p2-white)}
.top{height:78px!important;min-height:78px!important;padding:0 18px!important;background:rgba(4,8,14,.96)!important;border-bottom:1px solid var(--p2-line)!important;backdrop-filter:blur(18px)}
.premiumMasthead{height:78px!important;min-height:78px!important}
.mastheadIcon{width:40px!important;height:40px!important;border-color:var(--p2-line2)!important;background:#09111c!important;color:var(--p2-white)!important;box-shadow:none!important}
.broadcastBrandLockup{gap:7px!important}
.brandShieldIcon{width:25px!important;filter:drop-shadow(0 0 8px rgba(54,163,255,.42))!important}
.brandShieldWord{font-family:Inter,ui-sans-serif,system-ui,sans-serif!important;font-size:17px!important;font-weight:850!important;letter-spacing:.02em!important}
.weekPill{display:none!important}
.footer{height:74px!important;min-height:74px!important;background:rgba(3,6,11,.97)!important;border-top:1px solid var(--p2-line)!important;box-shadow:0 -18px 36px rgba(0,0,0,.3)!important}
.nav{color:#768397!important;font-size:11px!important;font-weight:700!important;gap:4px!important}
.nav b{font-size:20px!important;color:inherit!important}
.nav.active{color:var(--p2-blue)!important;text-shadow:none!important}
.nav.active:before{background:var(--p2-blue)!important;box-shadow:0 0 18px rgba(54,163,255,.55)!important}
#home>.hero,#home>.content,#picks>.broadcastBoardNav,#picks>.content{display:none!important}
#home,#picks{padding-top:0!important}
.p2Shell{padding:18px 16px 104px;max-width:760px;margin:0 auto}
.p2Eyebrow{font-size:10px;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:var(--p2-blue2)}
.p2Title{font-size:28px;line-height:1.03;font-weight:900;letter-spacing:-.035em}
.p2Sub{font-size:13px;line-height:1.5;color:var(--p2-muted)}
.p2Card{background:linear-gradient(180deg,rgba(13,22,36,.98),rgba(7,13,22,.98));border:1px solid var(--p2-line);border-radius:20px;box-shadow:0 20px 48px rgba(0,0,0,.34);overflow:hidden}
.p2Hero{position:relative;min-height:360px;padding:20px;background:
radial-gradient(circle at 75% 15%,rgba(54,163,255,.18),transparent 35%),
linear-gradient(180deg,#0c1523 0%,#07101a 64%,#050a12 100%);border-color:#1d3f61}
.p2Hero:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 0 44%,rgba(255,255,255,.03) 45%,transparent 46% 100%);pointer-events:none}
.p2HeroTop{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;position:relative;z-index:1}
.p2HeroBadge{padding:6px 10px;border:1px solid rgba(54,163,255,.5);border-radius:999px;color:var(--p2-blue2);font-size:10px;font-weight:900;letter-spacing:.12em}
.p2HeroMatch{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin:26px 0 14px;position:relative;z-index:1}
.p2HeroTeam{text-align:center;min-width:0}
.p2HeroTeam img,.p2HelmetFallback{width:100px;height:100px;object-fit:contain;margin:auto;filter:drop-shadow(0 14px 22px rgba(0,0,0,.5))}
.p2HelmetFallback{display:grid;place-items:center;border-radius:50%;background:#101b2a;border:1px solid var(--p2-line2);font-size:22px;font-weight:900}
.p2HeroTeam b{display:block;margin-top:8px;font-size:17px;line-height:1.04}
.p2HeroTeam small{display:block;margin-top:4px;color:var(--p2-muted);font-size:11px}
.p2Vs{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#050b13;border:1px solid var(--p2-line2);font-size:10px;font-weight:900;color:var(--p2-muted)}
.p2Odds{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;position:relative;z-index:1}
.p2Odds>div{padding:11px 12px;border-radius:13px;background:#07101a;border:1px solid var(--p2-line);display:flex;justify-content:space-between;font-size:12px}
.p2Odds strong{color:var(--p2-white)}
.p2Primary{width:100%;min-height:48px;border:0;border-radius:14px;margin-top:14px;background:linear-gradient(180deg,#4db3ff,#218be8);color:#03111f;font-weight:900;font-size:14px;letter-spacing:.01em;box-shadow:0 10px 24px rgba(54,163,255,.2)}
.p2Secondary{min-height:42px;border:1px solid var(--p2-line2);background:#09111c;color:var(--p2-white);border-radius:12px;padding:0 14px;font-weight:800}
.p2Section{margin-top:18px}
.p2SectionHead{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:10px}
.p2SectionHead h2{margin:2px 0 0;font-size:18px}
.p2Progress{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.p2Metric{padding:14px;border-radius:15px;background:#09111c;border:1px solid var(--p2-line)}
.p2Metric b{font-size:19px}.p2Metric span{display:block;margin-top:3px;color:var(--p2-muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.p2Deck{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.p2DeckCard{padding:12px 10px;min-height:118px;border-radius:15px;background:#09111c;border:1px solid var(--p2-line);text-align:left;color:var(--p2-white)}
.p2DeckCard .p2MiniTeams{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:800;line-height:1.1}
.p2DeckCard img{width:32px;height:32px;object-fit:contain}
.p2DeckCard .p2MiniMeta{margin-top:9px;color:var(--p2-muted);font-size:10px}
.p2DeckCard.selected{border-color:rgba(54,163,255,.7);box-shadow:inset 0 0 0 1px rgba(54,163,255,.15)}
.p2LiveStrip{margin-top:18px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.p2LiveStrip b{font-size:14px}.p2LiveStrip span{font-size:11px;color:var(--p2-muted)}
.p2BoardHead{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:4px 2px 14px;border-bottom:1px solid var(--p2-line)}
.p2WeekBadge{padding:7px 11px;border-radius:999px;background:rgba(54,163,255,.10);border:1px solid rgba(54,163,255,.4);color:var(--p2-blue2);font-size:11px;font-weight:850}
.p2DayRail{display:flex;gap:8px;overflow-x:auto;padding:12px 0 6px;scrollbar-width:none}
.p2DayRail::-webkit-scrollbar{display:none}
.p2DayBtn{flex:0 0 auto;min-width:58px;height:34px;border-radius:10px;border:1px solid var(--p2-line);background:#09111c;color:var(--p2-muted);font-size:11px;font-weight:850}
.p2DayBtn.active{border-color:rgba(54,163,255,.65);color:var(--p2-blue2);background:rgba(54,163,255,.08)}
.p2DayGroup{margin-top:16px}
.p2DayTitle{display:flex;justify-content:space-between;gap:12px;padding:0 2px 8px;color:var(--p2-muted);font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:850}
.p2Game{margin-bottom:10px;border-radius:18px;background:linear-gradient(180deg,#0a111b,#07101a);border:1px solid var(--p2-line);overflow:hidden}
.p2GameMeta{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-bottom:1px solid var(--p2-line);font-size:10px;color:var(--p2-muted);font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.p2GameBody{display:grid;grid-template-columns:1fr 1fr}
.p2TeamPick{position:relative;min-height:110px;padding:14px 12px;border:0;background:transparent;color:var(--p2-white);text-align:left}
.p2TeamPick+ .p2TeamPick{border-left:1px solid var(--p2-line)}
.p2TeamPick.selected{background:linear-gradient(180deg,rgba(54,163,255,.14),rgba(54,163,255,.05));box-shadow:inset 0 0 0 1px rgba(54,163,255,.45)}
.p2TeamPick.locked{opacity:.62}
.p2TeamRow{display:flex;align-items:center;gap:8px}
.p2TeamPick img{width:42px;height:42px;object-fit:contain}
.p2TeamName{font-size:13px;line-height:1.24;padding-bottom:1px;font-weight:850}
.p2Price{display:block;margin-top:10px;color:var(--p2-muted);font-size:11px;font-weight:750}
.p2PickDot{position:absolute;right:10px;top:10px;width:22px;height:22px;border-radius:50%;border:2px solid #415166}
.p2TeamPick.selected .p2PickDot{background:var(--p2-blue);border-color:var(--p2-blue);box-shadow:0 0 12px rgba(54,163,255,.55)}
.p2TeamPick.selected .p2PickDot:after{content:"";position:absolute;left:6px;top:3px;width:5px;height:10px;border-right:2px solid #04111d;border-bottom:2px solid #04111d;transform:rotate(40deg)}
.p2GameActions{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-top:1px solid var(--p2-line)}
.p2DetailsBtn{border:0;background:transparent;color:var(--p2-blue2);font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.p2PickState{font-size:10px;color:var(--p2-muted)}
.p2GotwBoard{border-color:#31587f;box-shadow:0 16px 36px rgba(0,0,0,.36)}
.p2GotwBoard .p2GameMeta{background:rgba(54,163,255,.07)}
.p2GotwTag{color:var(--p2-blue2)}
@media(max-width:430px){
  .p2Shell{padding-left:12px;padding-right:12px}
  .p2Hero{min-height:338px;padding:16px}
  .p2HeroTeam img,.p2HelmetFallback{width:88px;height:88px}
  .p2Deck{grid-template-columns:1fr 1fr}
}


/* ===== Premium Shell V2.1 refinements ===== */
.p2HomeHead{margin-bottom:10px}
.p2HomeSpotlight{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto 18px;
  align-items:center;
  gap:12px;
  padding:14px 15px;
  border-radius:16px;
  background:
    radial-gradient(circle at 80% 30%,rgba(54,163,255,.13),transparent 38%),
    linear-gradient(180deg,#0c1522,#08101a);
  border-color:#1f3b59;
  cursor:pointer;
  min-height:92px;
}
.p2HomeSpotlightText{min-width:0}
.p2HomeSpotlightText b{display:block;margin-top:3px;font-size:15px;line-height:1.15}
.p2HomeSpotlightText b span{color:var(--p2-muted);font-weight:700}
.p2HomeSpotlightText small{display:block;margin-top:5px;color:var(--p2-muted);font-size:11px}
.p2HomeSpotlightHelmets{display:flex;align-items:center;gap:5px}
.p2HomeSpotlightHelmets i{font-style:normal;font-size:9px;color:var(--p2-muted);font-weight:900}
.p2HomeHelmet{width:40px;height:40px;display:block;object-fit:contain;filter:drop-shadow(0 6px 9px rgba(0,0,0,.45))}
.p2HomeSpotlightArrow{color:var(--p2-blue2);font-weight:900;font-size:18px}

/* Sprite based helmet library */
.p2HelmetSprite{
  display:inline-block;
  background-repeat:no-repeat;
  flex:0 0 auto;
}
.p2MiniHelmet{width:32px;height:32px;display:block;object-fit:contain;border-radius:4px;filter:drop-shadow(0 4px 6px rgba(0,0,0,.38))}
.p2CardHelmet{width:46px;height:46px;display:block;object-fit:contain;flex:0 0 46px;filter:drop-shadow(0 6px 10px rgba(0,0,0,.46))}
.p2GotwHelmet{width:52px;height:52px;display:block;object-fit:contain;flex:0 0 52px;filter:drop-shadow(0 8px 14px rgba(0,0,0,.52))}
.p2GotwFaceHelmet{width:72px;height:72px;display:block;object-fit:contain;margin:auto;filter:drop-shadow(0 10px 18px rgba(0,0,0,.52))}
.p2HomeHelmet.p2HelmetFallback,.p2MiniHelmet.p2HelmetFallback,.p2CardHelmet.p2HelmetFallback,.p2GotwHelmet.p2HelmetFallback,.p2GotwFaceHelmet.p2HelmetFallback{
  display:grid;place-items:center;border-radius:50%;background:#101b2a;border:1px solid var(--p2-line2);font-weight:900;color:var(--p2-white)
}

/* Slightly richer but still compact Game of the Week in Picks */
.p2GotwBoard{
  position:relative;
  border-color:#2c6a9d!important;
  background:
    radial-gradient(circle at 50% 5%,rgba(54,163,255,.13),transparent 40%),
    linear-gradient(180deg,#0c1725 0%,#07101a 100%)!important;
  box-shadow:0 16px 38px rgba(0,0,0,.36),inset 0 0 0 1px rgba(54,163,255,.06)!important;
}
.p2GotwBoard:before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(120deg,transparent 0 48%,rgba(255,255,255,.025) 49%,transparent 50% 100%);
  pointer-events:none;
}
.p2GotwRibbon{
  position:relative;z-index:1;
  display:grid;
  grid-template-columns:1fr auto;
  grid-template-areas:"eyebrow time" "title time";
  gap:2px 10px;
  padding:11px 13px;
  border-bottom:1px solid rgba(54,163,255,.22);
  background:linear-gradient(90deg,rgba(54,163,255,.12),rgba(54,163,255,.025));
}
.p2GotwRibbon span{grid-area:eyebrow;color:var(--p2-blue2);font-size:9px;font-weight:900;letter-spacing:.15em}
.p2GotwRibbon b{grid-area:title;font-size:14px;letter-spacing:.02em}
.p2GotwRibbon small{grid-area:time;align-self:center;color:var(--p2-muted);font-size:10px;white-space:nowrap}
.p2GotwFaceoff{
  position:relative;z-index:1;
  display:grid;
  grid-template-columns:1fr 36px 1fr;
  align-items:center;
  gap:6px;
  padding:12px 16px 10px;
}
.p2GotwFaceoff>div{text-align:center;min-width:0}
.p2GotwFaceoff b{display:block;margin-top:5px;font-size:13px;line-height:1.05}
.p2GotwFaceoff>span{
  width:32px;height:32px;border-radius:50%;
  display:grid;place-items:center;
  border:1px solid #2c4b69;background:#07101a;color:var(--p2-muted);
  font-size:9px;font-weight:900;
}
.p2GotwTeamPick{min-height:96px}
.p2GotwBoard .p2GameBody{border-top:1px solid rgba(54,163,255,.13)}
.p2GotwBoard .p2GameActions{background:rgba(54,163,255,.025)}
.p2GotwBoard .p2DetailsBtn{color:#9ad2ff}

/* Make normal cards use team art without bloating row height */
.p2TeamRow{align-items:center}
.p2TeamName{min-width:0}
.p2DeckCard .p2MiniTeams{min-height:32px}


/* ===== ESPN team mark system ===== */
.p2HomeLogo{width:38px;height:38px;object-fit:contain;display:block;filter:drop-shadow(0 5px 8px rgba(0,0,0,.34))}
.p2MiniLogo{width:28px;height:28px;object-fit:contain;display:block;flex:0 0 28px}
.p2CardLogo{width:42px;height:42px;object-fit:contain;display:block;flex:0 0 42px;filter:drop-shadow(0 5px 8px rgba(0,0,0,.28))}
.p2LogoFallback{display:grid;place-items:center;border-radius:10px;background:#101a28;border:1px solid var(--p2-line2);font-size:10px;font-weight:900;color:var(--p2-blue2)}
.p2TeamPick:not(.p2GotwTeamPick){min-height:92px;padding:12px}
.p2TeamPick:not(.p2GotwTeamPick) .p2TeamName{font-size:12px}
.p2TeamPick:not(.p2GotwTeamPick) .p2Price{margin-top:7px}
.p2TeamPick:not(.p2GotwTeamPick) .p2TeamRow{min-height:44px}


/* ===== GOTW broadcast rebuild ===== */
.p2GotwBoard{
  border-color:#2f7db8!important;
  overflow:hidden;
  background:#07101a!important;
  box-shadow:0 18px 44px rgba(0,0,0,.42),0 0 0 1px rgba(54,163,255,.05) inset!important;
}
.p2GotwStage{
  position:relative;
  padding:14px 14px 10px;
  background:
    radial-gradient(circle at 18% 4%,rgba(255,255,255,.16),transparent 3%),
    radial-gradient(circle at 82% 4%,rgba(255,255,255,.16),transparent 3%),
    radial-gradient(circle at 50% 28%,rgba(54,163,255,.15),transparent 38%),
    linear-gradient(180deg,#0d1b2b 0%,#0a1523 48%,#07101a 100%);
  border-bottom:1px solid rgba(54,163,255,.22);
}
.p2GotwStage:before,
.p2GotwStage:after{
  content:"";
  position:absolute;
  top:0;
  width:34%;
  height:5px;
  background:linear-gradient(90deg,transparent,rgba(120,201,255,.95),transparent);
  filter:blur(.3px);
  opacity:.85;
}
.p2GotwStage:before{left:2%}
.p2GotwStage:after{right:2%}
.p2GotwStageTop{
  display:flex;align-items:flex-start;justify-content:space-between;gap:10px;
  position:relative;z-index:1
}
.p2GotwStageTop span{
  display:block;color:var(--p2-blue2);font-size:8px;font-weight:900;letter-spacing:.17em
}
.p2GotwStageTop b{
  display:block;margin-top:2px;font-size:16px;letter-spacing:.02em
}
.p2GotwStageTop small{
  color:var(--p2-muted);font-size:10px;white-space:nowrap;padding-top:3px
}
.p2GotwMatch{
  position:relative;z-index:1;
  display:grid;grid-template-columns:1fr 42px 1fr;align-items:center;gap:8px;
  margin-top:10px
}
.p2GotwSide{text-align:center;min-width:0}
.p2GotwHeroHelmet{
  width:94px;height:94px;display:block;object-fit:contain;margin:0 auto;
  filter:drop-shadow(0 12px 18px rgba(0,0,0,.55))
}
.p2GotwSide strong{display:block;font-size:14px;line-height:1.05;margin-top:4px}
.p2GotwSide em{display:block;margin-top:3px;font-style:normal;color:var(--p2-muted);font-size:10px;font-weight:800}
.p2GotwVs{
  width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  border:1px solid #31597b;background:#050b12;box-shadow:0 0 18px rgba(54,163,255,.12)
}
.p2GotwVs span{font-size:9px;font-weight:900;color:#a8b8ca}
.p2GotwMicro{
  position:relative;z-index:1;
  display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px;
  color:#6f8195;font-size:7px;font-weight:900;letter-spacing:.1em;text-align:center
}
.p2GotwMicro span{
  padding-top:7px;border-top:1px solid rgba(255,255,255,.06)
}
.p2GotwPickPrompt{
  padding:10px 12px 8px;text-align:center;background:#08111c
}
.p2GotwPickPrompt span{
  display:block;font-size:10px;font-weight:900;letter-spacing:.13em;color:#eaf5ff
}
.p2GotwPickPrompt small{
  display:block;margin-top:2px;color:var(--p2-muted);font-size:9px
}
.p2GotwPickBody{background:#07101a}
.p2GotwTeamPick{
  min-height:88px!important;
  padding:11px 10px!important;
}
.p2GotwTeamPick .p2TeamRow{
  justify-content:flex-start;
  gap:8px
}
.p2GotwHelmet{
  width:48px!important;height:48px!important;flex:0 0 48px!important
}
.p2GotwTeamPick .p2TeamName{
  font-size:12px!important;line-height:1.24!important
}
.p2GotwTeamPick .p2Price{
  margin-top:5px!important;font-size:10px
}
.p2GotwBoard .p2GameActions{
  background:#060d15;
  border-top:1px solid rgba(54,163,255,.15)
}


/* ===== Locked GOTW visual direction — premium broadcast pick graphic ===== */
.p2GotwLockedStyle{
  position:relative;
  border:1px solid rgba(58,171,255,.75)!important;
  background:
    radial-gradient(circle at 50% 0%,rgba(0,173,255,.12),transparent 30%),
    linear-gradient(180deg,#07111f 0%,#081524 52%,#050b13 100%)!important;
  box-shadow:
    0 0 0 1px rgba(77,181,255,.10) inset,
    0 0 30px rgba(0,131,255,.10),
    0 20px 46px rgba(0,0,0,.48)!important;
}
.p2GotwBrand{
  position:relative;
  padding:12px 14px 8px;
  border-bottom:1px solid rgba(62,160,237,.14);
  background:linear-gradient(180deg,rgba(3,10,18,.86),rgba(5,15,27,.72));
}
.p2GotwBrandLock{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
}
.p2GotwBrandLock img{
  width:34px;
  height:38px;
  object-fit:contain;
  filter:drop-shadow(0 0 9px rgba(47,164,255,.72));
}
.p2GotwBrandLock b{
  font-size:19px;
  font-weight:950;
  letter-spacing:.01em;
  font-style:italic;
  color:#fff;
  text-shadow:0 0 16px rgba(72,173,255,.22);
}
.p2GotwBrandRail{
  width:78%;
  height:5px;
  margin:8px auto 0;
  border-radius:999px;
  overflow:hidden;
  background:#0d315b;
  box-shadow:inset 0 0 0 1px rgba(72,173,255,.24);
}
.p2GotwBrandRail span{
  display:block;
  width:56%;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#05d7ff,#48b7ff,#7cddff);
  box-shadow:0 0 16px rgba(0,198,255,.8);
}
.p2GotwHeadline{
  padding:10px 12px 4px;
  text-align:center;
}
.p2GotwHeadline b{
  display:block;
  font-family:var(--broadcast-font);
  font-size:21px;
  line-height:1;
  letter-spacing:.03em;
}
.p2GotwHeadline span{
  display:block;
  margin-top:4px;
  color:#a5b4c6;
  font-size:10px;
  font-weight:850;
  letter-spacing:.16em;
}
.p2GotwShowdown{
  text-align:center;
  padding:5px 0 6px;
  color:#3eb6ff;
  font-size:12px;
  font-weight:950;
  letter-spacing:.18em;
  text-shadow:0 0 14px rgba(62,182,255,.3);
}
.p2GotwArena{
  position:relative;
  display:grid;
  grid-template-columns:1fr 42px 1fr;
  align-items:end;
  gap:6px;
  min-height:206px;
  padding:8px 12px 6px;
  overflow:hidden;
  background:
    linear-gradient(180deg,rgba(7,19,34,.08),rgba(6,18,32,.30)),
    radial-gradient(ellipse at 50% 100%,rgba(17,86,132,.28),transparent 56%),
    repeating-linear-gradient(90deg,transparent 0 12%,rgba(255,255,255,.018) 12.2%,transparent 12.4% 24%);
}
.p2GotwArena:before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 8% 8%,rgba(255,255,255,.72) 0 1px,transparent 2px),
    radial-gradient(circle at 13% 8%,rgba(255,255,255,.58) 0 1px,transparent 2px),
    radial-gradient(circle at 87% 8%,rgba(255,255,255,.58) 0 1px,transparent 2px),
    radial-gradient(circle at 92% 8%,rgba(255,255,255,.72) 0 1px,transparent 2px);
  opacity:.7;
  pointer-events:none;
}
.p2GotwArena:after{
  content:"";
  position:absolute;
  left:7%;
  right:7%;
  bottom:0;
  height:44%;
  background:
    linear-gradient(90deg,transparent 49.7%,rgba(255,255,255,.07) 49.8% 50.2%,transparent 50.3%),
    linear-gradient(180deg,transparent 0 63%,rgba(255,255,255,.06) 64% 66%,transparent 67%);
  transform:perspective(260px) rotateX(63deg);
  transform-origin:bottom;
  opacity:.42;
}
.p2GotwArenaGlow{
  position:absolute;
  top:20px;
  width:40%;
  height:120px;
  filter:blur(18px);
  opacity:.2;
}
.p2GotwArenaGlow.left{left:-10%;background:#4ab7ff}
.p2GotwArenaGlow.right{right:-10%;background:#2e84d5}
.p2GotwHeroSide{
  position:relative;
  z-index:2;
  min-width:0;
  text-align:center;
}
.p2GotwHeroHelmet{
  position:relative;
  z-index:2;
  width:118px!important;
  height:118px!important;
  object-fit:contain;
  margin:0 auto -1px!important;
  filter:drop-shadow(0 14px 22px rgba(0,0,0,.64)) drop-shadow(0 0 12px rgba(57,157,240,.10))!important;
}
.p2GotwWatermark{
  position:absolute;
  z-index:1;
  width:92px;
  height:92px;
  object-fit:contain;
  left:50%;
  top:14px;
  transform:translateX(-50%) scale(1.2);
  opacity:.10;
  filter:blur(.2px);
}
.p2GotwHeroSide strong{
  display:block;
  margin-top:2px;
  font-size:14px;
  line-height:1.04;
  font-weight:950;
}
.p2GotwHeroSide em{
  display:block;
  margin-top:4px;
  font-size:11px;
  font-style:normal;
  color:#9caabd;
  font-weight:800;
}
.p2GotwCenter{
  position:relative;
  z-index:3;
  align-self:center;
  width:39px;
  height:39px;
  border-radius:50%;
  display:grid;
  place-items:center;
  margin-bottom:38px;
  background:#06101b;
  border:1px solid #2d5679;
  box-shadow:0 0 18px rgba(52,158,244,.12);
}
.p2GotwCenter span{font-size:10px;font-weight:950;color:#b7c4d3}
.p2GotwMeta{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:9px 10px;
  border-top:1px solid rgba(49,113,164,.16);
  border-bottom:1px solid rgba(49,113,164,.16);
  color:#b4c0ce;
  font-size:9px;
  font-weight:800;
  letter-spacing:.05em;
}
.p2GotwMeta i{
  width:1px;
  height:11px;
  background:#4b5b6d;
}
.p2GotwPickPrompt{
  padding:11px 12px 8px!important;
  text-align:center!important;
  background:linear-gradient(180deg,#07111d,#060d17)!important;
}
.p2GotwPickPrompt span{
  font-size:12px!important;
  letter-spacing:.14em!important;
  color:#f7fbff!important;
}
.p2GotwPickPrompt small{
  margin-top:3px!important;
  color:#91a0b2!important;
  font-size:10px!important;
}
.p2GotwPickBody{
  gap:8px;
  padding:0 10px 11px;
  background:#060d17!important;
}
.p2GotwPickBody .p2TeamPick{
  min-height:142px!important;
  border:1px solid #1d4d73!important;
  border-radius:14px!important;
  background:
    radial-gradient(circle at 50% 0%,rgba(58,163,255,.10),transparent 46%),
    linear-gradient(180deg,#0a1727,#07111d)!important;
  overflow:hidden;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.015);
}
.p2GotwPickBody .p2TeamPick + .p2TeamPick{
  border-left:1px solid #1d4d73!important;
}
.p2GotwPickBody .p2TeamPick.selected{
  border-color:#48b8ff!important;
  box-shadow:
    0 0 0 1px #48b8ff inset,
    0 0 18px rgba(25,160,255,.55),
    0 0 34px rgba(25,160,255,.18)!important;
  background:
    radial-gradient(circle at 50% 6%,rgba(45,154,255,.18),transparent 52%),
    linear-gradient(180deg,#0e2136,#081521)!important;
}
.p2GotwPickBody .p2TeamRow{
  min-height:88px;
  flex-direction:column;
  justify-content:center!important;
  gap:5px!important;
  text-align:center;
}
.p2GotwPickLogo{
  width:70px;
  height:70px;
  object-fit:contain;
  display:block;
  filter:drop-shadow(0 7px 12px rgba(0,0,0,.36));
}
.p2GotwPickLogo.p2LogoFallback{
  display:grid;
  place-items:center;
  border-radius:16px;
  font-size:16px;
}
.p2GotwPickBody .p2TeamName{
  display:block;
  font-size:12px!important;
  text-align:center;
  font-weight:950;
}
.p2GotwPickBody .p2Price{
  margin-top:4px!important;
  text-align:center;
  font-size:14px!important;
  font-weight:950;
  color:#f5f9ff!important;
}
.p2GotwPickBody .p2PickDot{
  width:24px;
  height:24px;
  top:10px;
  right:10px;
  border-color:#74859a;
}
.p2GotwPickBody .selected .p2PickDot{
  background:#fff!important;
  border-color:#fff!important;
  box-shadow:0 0 14px rgba(255,255,255,.5)!important;
}
.p2GotwPickBody .selected .p2PickDot:after{
  border-color:#1679d1!important;
}
.p2GotwActions{
  background:#050b12!important;
  border-top:1px solid rgba(56,143,212,.18)!important;
}
.p2GotwActions .p2DetailsBtn{
  color:#83c9ff!important;
}

@media(max-width:430px){
  .p2GotwHeroHelmet{width:105px!important;height:105px!important}
  .p2GotwArena{min-height:194px;padding-left:8px;padding-right:8px}
  .p2GotwPickBody .p2TeamPick{min-height:136px!important}
  .p2GotwPickLogo{width:64px;height:64px}
}


/* ===== Approved Picks target pass — 2026-09-21 ===== */
body{
  background:
    radial-gradient(circle at 50% 6%,rgba(0,115,220,.13),transparent 27%),
    linear-gradient(180deg,#020712 0%,#04101d 48%,#020710 100%)!important;
}
.top{
  height:88px!important;
  min-height:88px!important;
  padding:0 16px!important;
  border-bottom:1px solid rgba(31,148,238,.46)!important;
  /* Restrained broadcast-masthead atmosphere: two soft "floodlight" corner
     glows plus the original bottom-center lift, all CSS gradients over the
     same near-opaque base — no photo, no baked-in text/labels. This is
     shared chrome (identical on every screen), so the effect stays subtle
     enough not to compete with Picks-board content underneath it. */
  background:
    radial-gradient(ellipse 46% 120% at 4% -20%,rgba(54,163,255,.16),transparent 60%),
    radial-gradient(ellipse 46% 120% at 96% -20%,rgba(54,163,255,.16),transparent 60%),
    radial-gradient(circle at 50% 110%,rgba(23,151,255,.13),transparent 42%),
    rgba(2,8,16,.97)!important;
  box-shadow:0 8px 28px rgba(0,0,0,.32)!important;
}
.premiumMasthead{
  position:relative!important;
  height:88px!important;
  min-height:88px!important;
  justify-content:space-between!important;
}
.broadcastBrandLockup{
  position:absolute!important;
  left:50%!important;
  top:12px!important;
  transform:translateX(-50%)!important;
  width:max-content!important;
  max-width:62vw!important;
  gap:3px!important;
  text-align:center!important;
}
.broadcastBrandLockup .brandShieldLockup{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
}
.broadcastBrandLockup .brandShieldIcon{
  width:42px!important;
  height:48px!important;
  filter:drop-shadow(0 0 11px rgba(0,174,255,.6))!important;
}
.broadcastBrandLockup .brandShieldWord{
  font-family:'Oswald',Inter,ui-sans-serif,system-ui,sans-serif!important;
  font-size:25px!important;
  font-style:italic!important;
  font-weight:800!important;
  letter-spacing:.015em!important;
  color:#f8fbff!important;
}
#topSub{
  display:block!important;
  margin-top:-2px!important;
  color:#c9d6e4!important;
  font-size:7px!important;
  line-height:1!important;
  font-weight:700!important;
  letter-spacing:.02em!important;
  white-space:nowrap!important;
}
.mastheadIcon{
  position:relative!important;
  z-index:2!important;
  width:42px!important;
  height:42px!important;
  border-color:rgba(60,153,224,.42)!important;
  background:rgba(5,17,30,.88)!important;
  box-shadow:0 0 18px rgba(18,132,230,.08)!important;
}
.mastheadMenuButton{font-size:22px!important}
.footer{
  height:78px!important;
  min-height:78px!important;
  border-top-color:rgba(39,136,212,.34)!important;
  background:rgba(2,8,16,.98)!important;
}
.nav.active{
  color:#44b0ff!important;
  text-shadow:0 0 15px rgba(48,166,255,.7)!important;
}

.p2PicksShell{
  max-width:760px!important;
  padding:10px 12px 108px!important;
}
.p2PicksChrome{
  position:sticky;
  top:88px;
  z-index:12;
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 -12px 10px;
  padding:10px 12px 11px;
  border-bottom:1px solid rgba(28,138,224,.38);
  background:
    linear-gradient(180deg,rgba(3,11,21,.98),rgba(3,11,21,.94)),
    radial-gradient(circle at 50% 0%,rgba(24,155,255,.11),transparent 54%);
  backdrop-filter:blur(16px);
  box-shadow:0 8px 20px rgba(0,0,0,.22);
}
.p2PicksChrome .p2DayRail{
  flex:1 1 auto;
  min-width:0;
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(49px,1fr);
  gap:6px;
  overflow-x:auto;
  padding:0!important;
  scroll-snap-type:x proximity;
}
.p2PicksChrome .p2DayBtn{
  min-width:49px!important;
  height:38px!important;
  padding:0 8px!important;
  border-radius:9px!important;
  border:1px solid #164c78!important;
  background:#04111e!important;
  color:#9eb4cb!important;
  font-family:'Oswald',Inter,sans-serif!important;
  font-size:11px!important;
  font-weight:700!important;
  letter-spacing:.06em!important;
  scroll-snap-align:start;
}
.p2PicksChrome .p2DayBtn.active{
  color:#f8fbff!important;
  border-color:#42adff!important;
  background:linear-gradient(180deg,rgba(30,132,225,.34),rgba(9,48,82,.52))!important;
  box-shadow:
    0 0 0 1px rgba(87,193,255,.38) inset,
    0 0 15px rgba(36,160,255,.45)!important;
}
.p2BoardCount{
  flex:0 0 auto;
  min-width:70px;
  height:38px;
  padding:0 12px;
  border-radius:999px;
  display:grid;
  place-items:center;
  border:1px solid #42adff;
  background:linear-gradient(180deg,rgba(26,112,190,.34),rgba(6,37,65,.66));
  color:#f8fbff;
  font-family:'Oswald',Inter,sans-serif;
  font-size:14px;
  font-weight:800;
  letter-spacing:.05em;
  box-shadow:0 0 16px rgba(36,160,255,.36),inset 0 0 12px rgba(52,171,255,.10);
}

.p2GotwBoard{
  margin:8px 0 18px!important;
  border-radius:22px!important;
  border:1px solid #36a9ff!important;
  background:#020914!important;
  box-shadow:
    0 0 0 1px rgba(89,192,255,.24) inset,
    0 0 25px rgba(21,147,255,.22),
    0 24px 52px rgba(0,0,0,.5)!important;
  overflow:hidden!important;
}
.p2GotwCinematic{
  position:relative;
  overflow:hidden;
  background:#04101e;
}
.p2GotwHeroHeader{
  position:absolute;
  z-index:7;
  left:0;
  right:0;
  top:0;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  min-height:96px;
  padding:13px 16px 8px;
  text-align:center;
  background:linear-gradient(180deg,rgba(1,6,13,.94) 0%,rgba(1,7,14,.54) 68%,transparent 100%);
}
.p2GotwHeroHeader>div{display:flex;flex-direction:column;align-items:center}
.p2GotwHeroHeader b{
  font-family:'Oswald',Inter,sans-serif;
  color:#f9fbff;
  font-size:24px;
  line-height:.98;
  font-weight:800;
  letter-spacing:.045em;
  text-shadow:0 2px 16px rgba(0,0,0,.7);
}
.p2GotwHeroHeader span{
  margin-top:4px;
  color:#b7c6d8;
  font-family:'Oswald',Inter,sans-serif;
  font-size:14px;
  line-height:1;
  font-weight:700;
  letter-spacing:.095em;
}
.p2GotwHeroHeader em{
  margin-top:5px;
  color:#24c6ff;
  font-family:'Oswald',Inter,sans-serif;
  font-size:15px;
  line-height:1;
  font-style:normal;
  font-weight:800;
  letter-spacing:.08em;
  text-shadow:0 0 14px rgba(36,198,255,.42);
}
.p2EspnBadge{
  position:absolute;
  right:14px;
  top:15px;
  padding:6px 8px 5px;
  border-radius:2px;
  background:#ed1b2e;
  color:white;
  font-family:'Oswald',Arial,sans-serif;
  font-size:14px;
  line-height:1;
  font-style:italic;
  font-weight:800;
  letter-spacing:-.02em;
  box-shadow:0 8px 18px rgba(0,0,0,.4);
}
.p2GotwStadium{
  position:relative;
  min-height:322px;
  padding:91px 10px 12px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 38px minmax(0,1fr);
  align-items:end;
  gap:0;
  overflow:hidden;
  background:
    radial-gradient(ellipse at 50% 78%,rgba(11,113,177,.30) 0 15%,transparent 48%),
    radial-gradient(circle at 11% 27%,rgba(210,244,255,.95) 0 1px,rgba(92,191,255,.58) 2px,transparent 7px),
    radial-gradient(circle at 18% 25%,rgba(210,244,255,.92) 0 1px,rgba(92,191,255,.52) 2px,transparent 7px),
    radial-gradient(circle at 82% 25%,rgba(210,244,255,.92) 0 1px,rgba(92,191,255,.52) 2px,transparent 7px),
    radial-gradient(circle at 89% 27%,rgba(210,244,255,.95) 0 1px,rgba(92,191,255,.58) 2px,transparent 7px),
    linear-gradient(180deg,#06182c 0%,#0a2137 36%,#091a2b 62%,#04101b 100%);
}
.p2GotwStadium:before{
  content:"";
  position:absolute;
  z-index:1;
  left:-7%;
  right:-7%;
  top:58px;
  height:155px;
  border-radius:50% 50% 12% 12%;
  border-top:2px solid rgba(129,210,255,.42);
  border-bottom:1px solid rgba(35,132,190,.26);
  background:
    repeating-linear-gradient(90deg,rgba(255,255,255,.06) 0 2px,transparent 2px 20px),
    repeating-linear-gradient(0deg,rgba(73,149,201,.09) 0 1px,transparent 1px 15px);
  transform:perspective(430px) rotateX(57deg);
  transform-origin:center top;
  box-shadow:0 -8px 34px rgba(80,190,255,.14);
}
.p2GotwStadium:after{
  content:"";
  position:absolute;
  z-index:1;
  left:6%;
  right:6%;
  bottom:-33px;
  height:128px;
  background:
    linear-gradient(90deg,transparent 49.5%,rgba(214,240,255,.12) 49.7% 50.3%,transparent 50.5%),
    repeating-linear-gradient(0deg,transparent 0 20px,rgba(207,237,255,.07) 21px 22px),
    linear-gradient(180deg,rgba(5,74,111,.16),rgba(5,43,68,.48));
  clip-path:polygon(25% 0,75% 0,100% 100%,0 100%);
  transform:perspective(260px) rotateX(55deg);
  transform-origin:bottom;
}
.p2StadiumLights{
  position:absolute;
  z-index:2;
  top:98px;
  width:46%;
  height:92px;
  opacity:.48;
  filter:blur(12px);
  background:radial-gradient(ellipse,rgba(58,181,255,.52),transparent 66%);
  pointer-events:none;
}
.p2StadiumLightsLeft{left:-17%}
.p2StadiumLightsRight{right:-17%}
.p2GotwCineSide{
  position:relative;
  z-index:4;
  min-width:0;
  align-self:end;
  text-align:center;
}
.p2GotwCineHelmet{
  display:block;
  width:174px!important;
  height:174px!important;
  max-width:none!important;
  object-fit:contain;
  margin:0 auto -16px!important;
  filter:
    drop-shadow(0 16px 22px rgba(0,0,0,.72))
    drop-shadow(0 0 13px rgba(70,175,255,.16))!important;
}
.p2GotwCineAway .p2GotwCineHelmet{transform:translateX(13px) scale(1.03)}
.p2GotwCineHome .p2GotwCineHelmet{transform:translateX(-13px) scale(1.03)}
/* Custom matchup art already contains the photographic helmets. Keep the
   live helmet element in flow for layout stability, but hide the duplicate. */
.p2GotwCineHelmetGhost{opacity:0!important}
.p2GotwCineSide strong{
  position:relative;
  z-index:5;
  display:block;
  margin-top:1px;
  color:#fff;
  font-family:'Oswald',Inter,sans-serif;
  font-size:19px;
  line-height:1.05;
  font-weight:800;
  text-shadow:0 3px 12px rgba(0,0,0,.8);
}
.p2GotwCineSide small{
  position:relative;
  z-index:5;
  display:block;
  margin-top:4px;
  color:#edf6ff;
  font-family:'Oswald',Inter,sans-serif;
  font-size:15px;
  font-weight:700;
}
.p2GotwCineVs{
  position:relative;
  z-index:6;
  align-self:center;
  margin-top:68px;
  margin-bottom:58px;
  color:#f8fbff;
  font-family:'Oswald',Inter,sans-serif;
  font-size:23px;
  font-style:italic;
  font-weight:800;
  text-align:center;
  text-shadow:0 0 12px #0aaeff,0 3px 5px #000;
}
.p2GotwCineMeta{
  position:relative;
  z-index:8;
  min-height:43px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:8px 12px;
  border-top:1px solid rgba(58,174,255,.32);
  border-bottom:1px solid rgba(58,174,255,.38);
  background:linear-gradient(90deg,rgba(3,12,22,.97),rgba(6,31,52,.95),rgba(3,12,22,.97));
  color:#dce9f6;
  font-family:'Oswald',Inter,sans-serif;
  font-size:10px;
  font-weight:600;
  letter-spacing:.045em;
  text-align:center;
}
.p2GotwCineMeta i{width:1px;height:13px;background:#64809a}
/* Custom-art-only glass seam between the cinematic image and live metadata. */
.p2GotwCinematicCustom .p2GotwCineMeta{
  border-top-color:rgba(120,200,255,.30);
  background:linear-gradient(180deg,rgba(4,14,26,.35),rgba(4,12,22,.90) 40%,rgba(3,11,20,.94));
  backdrop-filter:blur(2px);
}

.p2GotwPickPrompt{
  padding:12px 12px 9px!important;
  border-bottom:0!important;
  background:
    radial-gradient(circle at 50% 0%,rgba(31,150,238,.10),transparent 65%),
    #04101b!important;
}
.p2GotwPickPrompt span{
  font-family:'Oswald',Inter,sans-serif!important;
  font-size:15px!important;
  line-height:1!important;
  font-weight:800!important;
  letter-spacing:.09em!important;
}
.p2GotwPickPrompt small{
  margin-top:6px!important;
  color:#b8c6d5!important;
  font-size:10px!important;
}
.p2GotwPickBody{
  gap:10px!important;
  padding:2px 10px 12px!important;
  background:#04101b!important;
}
.p2GotwPickBody .p2TeamPick{
  min-height:122px!important;
  padding:10px 10px 9px!important;
  border:1px solid #175c91!important;
  border-radius:13px!important;
  background:linear-gradient(180deg,#07192a,#04101c)!important;
}
.p2GotwPickBody .p2TeamPick+.p2TeamPick{border-left:1px solid #175c91!important}
.p2GotwPickBody .p2TeamPick.selected{
  border-color:#49baff!important;
  background:
    radial-gradient(circle at 50% 4%,rgba(62,170,255,.19),transparent 58%),
    linear-gradient(180deg,#0b2136,#061522)!important;
  box-shadow:
    0 0 0 1px rgba(85,196,255,.65) inset,
    0 0 14px rgba(30,163,255,.72),
    0 0 32px rgba(30,163,255,.24)!important;
}
.p2GotwPickBody .p2TeamRow{
  min-height:77px!important;
  gap:3px!important;
}
.p2GotwPickLogo{
  width:65px!important;
  height:65px!important;
}
.p2GotwPickBody .p2TeamName{
  font-family:'Oswald',Inter,sans-serif!important;
  font-size:12px!important;
  line-height:1.26!important;
  padding-bottom:1px;
}
.p2GotwPickBody .p2Price{
  margin-top:1px!important;
  color:#f4f8fd!important;
  font-family:'Oswald',Inter,sans-serif!important;
  font-size:15px!important;
}
.p2GotwPickBody .p2PickDot{
  width:24px!important;
  height:24px!important;
  top:10px!important;
  right:10px!important;
  border:2px solid #8094ab!important;
  background:rgba(3,10,18,.36)!important;
}
.p2GotwPickBody .selected .p2PickDot{
  background:#f8fbff!important;
  border-color:#f8fbff!important;
  box-shadow:0 0 15px rgba(255,255,255,.58),0 0 21px rgba(50,171,255,.5)!important;
}
.p2GotwActions{
  min-height:38px;
  padding:8px 12px!important;
  flex-direction:row!important;
  border-top:1px solid rgba(46,145,219,.22)!important;
  background:#020a12!important;
}
.p2GotwActions .p2DetailsBtn{
  order:0;
  color:#35c9ff!important;
  font-size:10px!important;
  text-transform:none!important;
  letter-spacing:.02em!important;
}
.p2GotwActions .p2PickState{
  order:1;
  color:#74879c!important;
  font-size:8px!important;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.p2DayGroup{margin-top:16px!important}
.p2DayTitle{
  padding:0 7px 8px!important;
  color:#b8c6df!important;
  font-family:'Oswald',Inter,sans-serif!important;
  font-size:11px!important;
  font-weight:700!important;
  letter-spacing:.16em!important;
}
/* ===== Normal matchup row — premium redesign (v3) =====
   Consolidated, single source of truth for the compact matchup row. This
   replaces the earlier stacked readability/polish passes (well v1, well v2,
   size bump, depth patch, side atmosphere, gutter glow) with one coherent
   ruleset built around the new markup from rowTeamButton(): each side is
   now [.p2RowLogoStage (logo + pick badge)] + [.p2RowTeamCopy (rank / name /
   AWAY-HOME label)], still inside the same <button class="p2RowTeam ...">
   with the same onclick/disabled attributes — no interaction or data-attribute
   change, presentation only. */
.p2CompactGame{
  position:relative;
  margin-bottom:10px!important;
  min-height:94px;
  border-radius:14px!important;
  border:1px solid #17557f!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.05) 0%,rgba(255,255,255,0) 16%),
    linear-gradient(180deg,#061523,#04101a)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    inset 0 -22px 26px -22px rgba(0,0,0,.42),
    inset 0 0 0 1px rgba(255,255,255,.012)!important;
  overflow:hidden;
}
.p2CompactGame.hasPick{border-color:#226f9f!important}
.p2CompactGame.isLocked{opacity:.76}
.p2MatchRow{
  min-height:94px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 82px minmax(0,1fr);
  align-items:stretch;
}

/* ---- Team identity zone ---- */
.p2RowTeam{
  position:relative;
  min-width:0;
  display:grid;
  grid-template-columns:56px minmax(0,1fr);
  align-items:center;
  gap:9px;
  padding:10px 12px 10px 8px;
  border:0;
  background:transparent;
  color:#f5f8fc;
  text-align:left;
}
.p2RowTeam-home{border-left:1px solid rgba(29,105,157,.38)}
.p2RowTeam-away{border-right:1px solid rgba(29,105,157,.38)}
/* Very low-opacity, non-team-specific "side" tint (away a hair cooler/blue,
   home a hair warmer) — generic on purpose, since there is no clean
   team-color data in the DOM/CSS/backend to key off safely. A restrained
   accent that works identically for every matchup beats a hardcoded
   team→color map. */
.p2RowTeam-away{background:radial-gradient(ellipse 150% 100% at 0% 50%,rgba(90,170,255,.06),transparent 72%)}
.p2RowTeam-home{background:radial-gradient(ellipse 150% 100% at 100% 50%,rgba(255,196,120,.05),transparent 72%)}
.p2RowTeam.locked{opacity:.66}

/* Selected side reads as an illuminated zone, not just a lit dot: a soft
   fill lift plus a bright inner edge on the side's OUTER border (left edge
   for away, right edge for home) — like a lit rail rather than a form
   control. */
.p2RowTeam.selected{background:linear-gradient(180deg,rgba(37,148,233,.20),rgba(11,73,116,.12))}
.p2RowTeam-away.selected{box-shadow:inset 0 0 18px rgba(34,160,255,.10),inset 3px 0 0 rgba(57,170,255,.55)}
.p2RowTeam-home.selected{box-shadow:inset 0 0 18px rgba(34,160,255,.10),inset -3px 0 0 rgba(57,170,255,.55)}

/* ---- Logo stage: a rounded-square identity panel, not a circular badge.
   Softer/off-center falloff (light from above) so nothing draws a hard
   edge; the pick-state control now lives here too, as a small corner badge
   on the crest rather than a floating radio circle out on the row edge. */
.p2RowLogoStage{
  position:relative;
  width:56px;
  height:56px;
  border-radius:15px;
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 50% 30%,rgba(148,209,255,.24) 0%,rgba(131,201,255,.11) 40%,rgba(131,201,255,0) 78%),
    linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,0) 55%),
    rgba(10,22,36,.55);
  box-shadow:
    inset 0 0 0 1px rgba(148,209,255,.14),
    inset 0 10px 14px -10px rgba(255,255,255,.10),
    0 2px 5px rgba(0,0,0,.30);
}
.p2RowLogo{
  width:44px;
  height:44px;
  object-fit:contain;
  display:block;
  /* A soft light rim traced along the artwork's own alpha shape (not a
     recolor — it follows the PNG/SVG's transparency, so it does nothing to
     a logo's actual pixel colors) plus the original grounding drop-shadow.
     This is what actually helps a fully-opaque, internally dark badge (e.g.
     Padres' brown-on-brown monogram) — the well behind the image only lights
     what shows through transparent pixels, which is very little on a mark
     that has almost no transparent margin; the rim instead outlines the
     whole crest against the tile regardless of its internal fill. */
  filter:
    drop-shadow(0 0 3px rgba(226,240,255,.40))
    drop-shadow(0 4px 6px rgba(0,0,0,.35));
}
/* ===== Enhanced-contrast identity stage =====
   A second, stronger presentation mode for the handful of source logos
   that remain low-contrast even on the standard stage above (initial
   regression cases: LA Rams, NY Jets, LA Dodgers — internally dark/muted
   marks with little transparent margin for the standard well to catch).
   This is applied ONLY via the single generic .p2LogoContrastHigh class,
   added in JS by logoContrastClass() — there is no per-team selector here
   and none should ever be added here; new low-contrast logos are handled
   by extending that one function/registry, not by adding CSS. Brighter
   neutral glass panel, a stronger inset ring, and a stronger dual-layer
   rim light — still only background/box-shadow/drop-shadow on the stage
   and the existing <img>, never a filter that touches the logo's own
   pixel colors (no hue/saturation/brightness filter on the image itself). */
.p2RowLogoStage.p2LogoContrastHigh{
  background:
    radial-gradient(circle at 50% 28%,rgba(198,226,255,.34) 0%,rgba(178,216,255,.20) 42%,rgba(178,216,255,.06) 70%,rgba(178,216,255,0) 88%),
    linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,0) 60%),
    rgba(32,52,74,.68);
  box-shadow:
    inset 0 0 0 1px rgba(198,226,255,.26),
    inset 0 10px 16px -9px rgba(255,255,255,.16),
    0 2px 6px rgba(0,0,0,.32);
}
.p2RowLogoStage.p2LogoContrastHigh .p2RowLogo{
  filter:
    drop-shadow(0 0 5px rgba(226,240,255,.62))
    drop-shadow(0 0 2px rgba(226,240,255,.55))
    drop-shadow(0 4px 6px rgba(0,0,0,.35));
}

.p2RowLogo.p2LogoFallback{
  display:grid;
  place-items:center;
  border-radius:9px;
  font-size:9px;
  width:38px;
  height:38px;
}

/* Pick-state badge: hidden entirely until selected, so unpicked rows show a
   clean crest with no radio-button clutter. On selection it appears as a
   small illuminated checkmark badge on the stage's corner. */
.p2RowPickDot{
  position:absolute;
  right:-4px;
  top:-4px;
  width:18px;
  height:18px;
  border-radius:50%;
  background:#0b1826;
  border:2px solid rgba(255,255,255,.16);
  opacity:0;
  transform:scale(.6);
  transition:opacity .15s ease,transform .15s ease;
}
.p2RowTeam.selected .p2RowPickDot{
  opacity:1;
  transform:scale(1);
  border-color:#f7fbff;
  background:#39aaff;
  box-shadow:0 0 12px rgba(48,171,255,.68);
}
.p2RowTeam.selected .p2RowPickDot:after{
  content:"";
  position:absolute;
  left:5px;
  top:3px;
  width:4px;
  height:8px;
  border-right:2px solid #fff;
  border-bottom:2px solid #fff;
  transform:rotate(40deg);
}

/* ---- Team copy: name primary, rank secondary (only rendered when the
   team is actually ranked), AWAY/HOME as a compact broadcast label. Team
   names keep wrapping to two lines exactly as before — no white-space:
   nowrap is introduced. ---- */
.p2RowTeamCopy{display:block;min-width:0}
.p2RowRank{
  display:block;
  color:#8fb4d6;
  font-family:'Oswald',Inter,sans-serif;
  font-size:9px;
  font-weight:700;
  letter-spacing:.03em;
  margin-bottom:1px;
}
.p2RowTeamName{
  display:block;
  overflow:visible;
  padding-bottom:1px;
  color:#f2f6fb;
  font-family:'Oswald',Inter,sans-serif;
  font-size:12px;
  line-height:1.28;
  font-weight:700;
  text-overflow:ellipsis;
}
.p2RowSideLabel{
  display:block;
  margin-top:5px;
  color:#eef6ff;
  font-family:'Oswald',Inter,sans-serif;
  font-size:12px;
  letter-spacing:.02em;
  line-height:1;
  font-weight:700;
}

/* ---- Center gutter: an intentional broadcast spine rather than a plain
   divider — kickoff time dominant, sport secondary, pick#/status tertiary
   (unchanged hierarchy, sizes retained), tied together with a soft glow and
   a literal vertical spine line between the two sides. ---- */
.p2MatchCenter{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  padding:8px 4px;
  border-left:1px solid rgba(54,163,255,.30);
  border-right:1px solid rgba(54,163,255,.30);
  background:
    radial-gradient(ellipse 70% 85% at 50% 50%,rgba(54,163,255,.10),transparent 74%),
    rgba(2,10,18,.36);
  text-align:center;
  overflow:hidden;
}
.p2MatchCenter:before{
  content:"";
  position:absolute;
  left:50%;
  top:6px;
  bottom:6px;
  width:1px;
  transform:translateX(-50%);
  background:linear-gradient(180deg,transparent,rgba(148,209,255,.35) 30%,rgba(148,209,255,.35) 70%,transparent);
}
.p2MatchCenter strong{
  position:relative;
  color:#eaf2fb;
  font-family:'Oswald',Inter,sans-serif;
  font-size:12px;
  line-height:1.1;
  font-weight:700;
}
.p2MatchCenter span{
  position:relative;
  color:#aebfd2;
  font-family:'Oswald',Inter,sans-serif;
  font-size:9px;
  font-weight:600;
}
.p2MatchCenter small{
  position:relative;
  margin-top:2px;
  color:#55708b;
  font-size:7px;
  line-height:1.15;
  text-transform:uppercase;
}

@media(max-width:430px){
  .p2GotwCinematicCustom{background-size:96% auto!important;background-position:center 54%!important}
  .top,.premiumMasthead{height:82px!important;min-height:82px!important}
  .broadcastBrandLockup{top:10px!important}
  .broadcastBrandLockup .brandShieldIcon{width:38px!important;height:43px!important}
  .broadcastBrandLockup .brandShieldWord{font-size:23px!important}
  .p2PicksChrome{top:82px}
  .p2BoardCount{min-width:64px;padding:0 9px;font-size:13px}
  .p2GotwStadium{min-height:292px;padding-top:86px}
  .p2GotwCineHelmet{width:154px!important;height:154px!important}
  .p2GotwCineAway .p2GotwCineHelmet{transform:translateX(16px) scale(1.02)}
  .p2GotwCineHome .p2GotwCineHelmet{transform:translateX(-16px) scale(1.02)}
  .p2GotwHeroHeader b{font-size:22px}
  .p2GotwHeroHeader span{font-size:13px}
  .p2GotwHeroHeader em{font-size:14px}
  .p2EspnBadge{right:10px;top:13px;font-size:12px}
  .p2MatchRow{grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr)}
  .p2RowTeam{grid-template-columns:48px minmax(0,1fr);gap:7px;padding:9px 8px 9px 6px}
  .p2RowLogoStage{width:48px;height:48px;border-radius:13px}
  .p2RowLogo{width:38px;height:38px}
  .p2RowLogo.p2LogoFallback{width:33px;height:33px}
  .p2RowPickDot{right:-3px;top:-3px;width:16px;height:16px}
  .p2RowRank{font-size:8px}
  .p2RowTeamName{font-size:10px}
  .p2RowSideLabel{font-size:11px}
  .p2MatchCenter strong{font-size:10px}
}


.p2BellIcon{
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}


/* ===== Matchup-specific GOTW cinematic art (graceful custom/fallback split) =====
   When premiumGotwArt(g) finds a matchup in GOTW_ART_LIBRARY, the JS sets an
   inline background-image on .p2GotwCinematic and adds .p2GotwCinematicCustom /
   .p2GotwStadiumCustom. Those variants suppress the CSS-generated field lines,
   crowd-dot texture and stadium-light glows (they're built for the plain
   gradient fallback and would fight a real photo), while keeping every live
   element — helmets, names, odds, VS, meta row — exactly as-is on top. */
.p2GotwCinematicCustom{
  background-repeat:no-repeat;
  background-size:96% auto!important;
  background-position:center 54%!important;
}
.p2GotwStadiumCustom{background:none!important}
.p2GotwStadiumCustom:before{display:none!important}
.p2GotwStadiumCustom:after{
  content:"";
  display:block!important;
  position:absolute;
  z-index:3;
  left:0;
  right:0;
  bottom:0;
  height:96px;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 0%,rgba(2,8,16,.18) 28%,rgba(2,8,16,.78) 100%)!important;
  clip-path:none!important;
  transform:none!important;
}
.p2GotwCinematicCustom:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 51%,rgba(37,169,255,.055),transparent 40%),
    linear-gradient(180deg,rgba(1,6,13,.04) 0%,transparent 38%,rgba(2,8,16,.08) 68%,rgba(2,8,16,.22) 100%);
  box-shadow:inset 0 0 24px rgba(0,0,0,.10);
}
.p2GotwCinematicCustom .p2GotwCineHelmet{
  opacity:0!important;
}
.p2GotwCinematicCustom .p2GotwCineSide strong,
.p2GotwCinematicCustom .p2GotwCineVs{
  text-shadow:0 2px 8px rgba(0,0,0,.92),0 0 5px rgba(0,120,220,.20)!important;
}

/* Full-resolution custom-art broadcast polish */
.p2GotwCinematicCustom .p2GotwHeroHeader{
  background:linear-gradient(180deg,rgba(1,6,13,.74) 0%,rgba(1,7,14,.29) 66%,transparent 100%);
}
.p2GotwCinematicCustom .p2GotwCineVs{
  font-size:20px;
  text-shadow:0 2px 8px rgba(0,0,0,.92),0 0 7px rgba(38,170,255,.22)!important;
}
.p2GotwCinematicCustom .p2GotwCineMeta{
  border-top-color:rgba(99,184,244,.22);
  background:linear-gradient(180deg,rgba(3,12,22,.76),rgba(2,9,17,.97));
  -webkit-backdrop-filter:blur(4px);
  backdrop-filter:blur(4px);
}

@media(min-width:431px){
  .p2GotwCinematicCustom{background-size:100% auto!important;background-position:center 52%!important}
}


/* ===== Commissioner GOTW publish/generation flow ===== */
.gotwPublishNotice{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:12px 0 14px;
  padding:12px 13px;
  border:1px solid rgba(53,190,255,.34);
  border-radius:13px;
  background:
    radial-gradient(circle at 8% 12%,rgba(47,177,255,.14),transparent 38%),
    linear-gradient(180deg,rgba(6,29,48,.94),rgba(3,15,27,.97));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.018),0 10px 28px rgba(0,0,0,.18);
}
.gotwPublishNoticeIcon{
  flex:0 0 27px;
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid rgba(84,204,255,.52);
  background:rgba(15,118,180,.20);
  color:#58d2ff;
  font-size:15px;
  text-shadow:0 0 12px rgba(57,196,255,.72);
}
.gotwPublishNotice>div:last-child{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.gotwPublishNotice b{
  color:#eef8ff;
  font-size:12px;
  line-height:1.2;
}
.gotwPublishNotice span{
  color:#a9bfd1;
  font-size:10px;
  line-height:1.42;
}
.reviewGotwNotice{margin:12px 0 10px}
.gotwLockWarning{
  margin:12px 0 10px;
  padding:13px 14px;
  border:1px solid rgba(255,202,73,.45);
  border-radius:13px;
  background:
    radial-gradient(circle at 0 0,rgba(255,197,48,.12),transparent 42%),
    linear-gradient(180deg,rgba(38,29,9,.92),rgba(20,16,7,.96));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
}
.gotwLockWarning b{
  display:block;
  margin-bottom:5px;
  color:#ffd86b;
  font-family:'Oswald',Inter,sans-serif;
  font-size:14px;
  font-weight:800;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.gotwLockWarning span{
  display:block;
  color:#d8ccb1;
  font-size:11px;
  line-height:1.45;
}


/* ===== Safe GOTW fallback while premium art is queued/generating ===== */
.p2GotwCinematicFallback{
  background:
    radial-gradient(circle at 50% 43%,rgba(47,168,255,.13),transparent 38%),
    linear-gradient(180deg,#04101e 0%,#06182a 48%,#03111f 100%);
}
.p2GotwFallbackLogo{
  width:124px;
  height:124px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 50% 42%,rgba(255,255,255,.06),rgba(8,22,38,.94) 64%),
    linear-gradient(180deg,rgba(13,41,67,.94),rgba(4,16,29,.98));
  border:1px solid rgba(95,194,255,.28);
  box-shadow:
    inset 0 0 28px rgba(53,174,255,.08),
    0 16px 34px rgba(0,0,0,.34);
}
.p2GotwFallbackLogoImg{
  width:78px!important;
  height:78px!important;
  max-width:78px!important;
  max-height:78px!important;
  object-fit:contain!important;
  filter:drop-shadow(0 8px 10px rgba(0,0,0,.28));
}
.p2GotwFallbackLogo .p2LogoFallback{
  width:78px;
  height:78px;
  display:grid;
  place-items:center;
  border-radius:20px;
  font-size:26px;
  font-weight:900;
  color:#e9f7ff;
}
.p2GotwArtPending{
  position:absolute;
  z-index:8;
  top:78px;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  gap:7px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(72,195,255,.30);
  background:rgba(3,15,27,.76);
  color:#8edcff;
  font-size:8.5px;
  font-weight:800;
  letter-spacing:.14em;
  white-space:nowrap;
  -webkit-backdrop-filter:blur(6px);
  backdrop-filter:blur(6px);
}
.p2GotwArtPending span{
  width:6px;
  height:6px;
  border-radius:50%;
  background:currentColor;
  box-shadow:0 0 10px currentColor;
  animation:p2GotwPulse 1.35s ease-in-out infinite;
}
@keyframes p2GotwPulse{
  0%,100%{opacity:.42;transform:scale(.82)}
  50%{opacity:1;transform:scale(1.16)}
}
@media(max-width:430px){
  .p2GotwFallbackLogo{width:112px;height:112px}
  .p2GotwFallbackLogoImg{width:70px!important;height:70px!important;max-width:70px!important;max-height:70px!important}
  .p2GotwArtPending{top:76px;font-size:8px}
}


/* ===== GOTW generated-art text safe zones =====
   Generated artwork can pair with long ranked team names. Keep each live
   label inside its half of the hero so names never collide or clip. */
.p2GotwCinematicCustom .p2GotwCineSide{
  overflow:hidden;
  padding-left:5px;
  padding-right:5px;
}
/* Canonical generated-art team label rule. Keep all base behavior here so
   later polish passes do not depend on competing !important declarations. */
.p2GotwCinematicCustom .p2GotwCineSide strong{
  width:100%;
  max-width:100%;
  margin-left:auto;
  margin-right:auto;
  padding:0 2px 2px;
  font-size:17px;
  line-height:1.04;
  letter-spacing:0;
  white-space:normal;
  overflow-wrap:normal;
  word-break:normal;
  text-wrap:balance;
}
@media(max-width:430px){
  .p2GotwCinematicCustom .p2GotwStadium{
    grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr);
    padding-left:8px;
    padding-right:8px;
  }
  .p2GotwCinematicCustom .p2GotwCineSide strong{
    font-size:15px;
    min-height:31px;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
  }
}


/* ===== GOTW pick-tile team-mark local contrast well =====
   Untouched carry-over from the frozen GOTW hero's own prior polish pass.
   Scoped to .p2GotwPickLogo only now — the row-logo half of this rule has
   moved into the "Normal matchup row — premium redesign (v3)" block above,
   which is this round's own, more substantial row-logo treatment. This
   block still governs the GOTW pick tiles only, which this round does not
   touch. */
.p2GotwPickLogo:not(.p2LogoFallback){
  box-sizing:border-box;
  background:
    radial-gradient(circle at 50% 32%,rgba(148,209,255,.32) 0%,rgba(131,201,255,.16) 36%,rgba(131,201,255,.05) 60%,rgba(131,201,255,0) 88%),
    radial-gradient(circle at 50% 48%,rgba(255,255,255,.08) 0%,rgba(255,255,255,0) 52%);
  padding:7px;
}


/* ===== Premium Home V3 command center =====
   Home-only selectors. Picks/GOTW board selectors remain untouched. */
.p2HomeV3{
  position:relative;
  padding-top:14px;
  background:
    radial-gradient(circle at 50% -90px,rgba(36,153,232,.08),transparent 280px);
}
.p2HomeV3LeagueLine{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 2px 10px;
  color:#6f8297;
  font-family:'Oswald',Inter,sans-serif;
  font-size:9px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.p2HomeV3LeagueLine span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.p2HomeV3LeagueLine b{
  flex:0 0 auto;
  padding:5px 8px;
  border:1px solid rgba(80,178,245,.26);
  border-radius:999px;
  color:#8dcdf7;
  background:rgba(25,119,184,.08);
  font-size:9px;
}
/* Small chevron cue (reference's "WEEK 6 ›") — a CSS glyph, not a markup
   change, since app-core.js only ever writes plain "WEEK N" text here. */
.p2HomeV3LeagueLine b:after{content:" \203A";color:#5fb8ef}

/* Your Week command card */
.p2HomeV3Command{
  position:relative;
  overflow:hidden;
  padding:17px 16px 15px;
  border:1px solid #1c6599;
  border-radius:19px;
  background:
    radial-gradient(circle at 91% 8%,rgba(52,169,255,.18),transparent 34%),
    linear-gradient(145deg,#091d31 0%,#061522 56%,#040d17 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    0 18px 42px rgba(0,0,0,.30),
    0 0 26px rgba(26,135,213,.08);
}
/* Thin gold top-edge accent — the "flagship panel" cue from the reference,
   kept to a hairline so gold still reads as a rare, deliberate accent
   rather than a border applied to every card. */
.p2HomeV3Command:before{
  content:"";
  position:absolute;
  left:14px;
  right:14px;
  top:0;
  height:2px;
  background:linear-gradient(90deg,transparent,rgba(230,190,90,.55) 30%,rgba(230,190,90,.55) 70%,transparent);
  pointer-events:none;
}
.p2HomeV3Command:after{
  content:"30";
  position:absolute;
  right:-5px;
  top:-30px;
  color:rgba(117,201,255,.045);
  font-family:'Oswald',Inter,sans-serif;
  font-size:118px;
  font-weight:900;
  line-height:1;
  pointer-events:none;
}
.p2HomeV3CommandTop{
  position:relative;
  z-index:1;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.p2HomeV3Command h1{
  margin:4px 0 0;
  background:linear-gradient(180deg,#ffffff 0%,#dcecfb 45%,#a9c9e6 100%);
  background-clip:text;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  color:#f5f9fd;
  font-family:'Oswald',Inter,sans-serif;
  font-size:24px;
  line-height:1;
  font-weight:800;
  letter-spacing:.005em;
  font-style:italic;
}
.p2HomeV3Count{
  display:flex;
  align-items:baseline;
  flex:0 0 auto;
  font-family:'Oswald',Inter,sans-serif;
}
.p2HomeV3Count b{
  color:#f7fbff;
  font-size:35px;
  line-height:.9;
}
.p2HomeV3Count span{
  margin-left:3px;
  color:#7690a9;
  font-size:13px;
  font-weight:700;
}
.p2HomeV3Progress{
  position:relative;
  z-index:1;
  height:6px;
  margin-top:16px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.075);
  box-shadow:inset 0 1px 2px rgba(0,0,0,.35);
}
.p2HomeV3Progress i{
  display:block;
  height:100%;
  min-width:2px;
  border-radius:999px;
  background:linear-gradient(90deg,#188fd9,#53c5ff);
  box-shadow:0 0 12px rgba(60,188,255,.55);
}
.p2HomeV3CommandMeta{
  position:relative;
  z-index:1;
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin-top:6px;
  color:#8399ad;
  font-size:9px;
  font-weight:700;
  letter-spacing:.04em;
}
.p2HomeV3CommandMeta b{color:#9ddcff}
.p2HomeV3Next{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:14px;
  padding:11px 12px;
  border:1px solid rgba(55,156,223,.28);
  border-radius:13px;
  background:rgba(2,10,18,.42);
}
.p2HomeV3Next>div{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.p2HomeV3Next span{
  color:#59c6ff;
  font-family:'Oswald',Inter,sans-serif;
  font-size:8px;
  font-weight:800;
  letter-spacing:.12em;
}
.p2HomeV3Next b{
  overflow:hidden;
  color:#f2f7fc;
  font-family:'Oswald',Inter,sans-serif;
  font-size:12px;
  line-height:1.14;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.p2HomeV3Next small{
  color:#71879b;
  font-size:8px;
  font-weight:650;
  letter-spacing:.02em;
}
.p2HomeV3Next>i{
  flex:0 0 auto;
  color:#53c3ff;
  font-style:normal;
  font-size:22px;
}
.p2HomeV3Primary{
  position:relative;
  z-index:1;
  width:100%;
  min-height:44px;
  margin-top:12px;
  border:0;
  border-radius:12px;
  /* Gold, not blue: the brief's "Gold Rule" reserves gold for the primary
     action / championship-grade CTA, matching the reference's "Finish
     Your 30" button — blue stays the panel's ambient lighting color. */
  background:linear-gradient(180deg,#ffd554 0%,#e1b94d 55%,#b9862a 100%);
  color:#1c1204;
  font-family:'Oswald',Inter,sans-serif;
  font-size:13px;
  font-weight:850;
  letter-spacing:.025em;
  text-transform:uppercase;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.4),
    0 10px 24px rgba(225,185,77,.24),
    0 0 22px rgba(225,185,77,.16);
}
.p2HomeV3Primary span{margin-left:6px}

/* Compact GOTW spotlight */
.p2HomeV3Gotw{
  position:relative;
  width:100%;
  min-height:154px;
  margin-top:12px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:13px;
  border:1px solid rgba(230,190,90,.55);
  border-radius:18px;
  background:
    radial-gradient(circle at 50% 20%,rgba(51,154,225,.18),transparent 48%),
    linear-gradient(145deg,#0a1828,#050d17);
  color:#f8fafc;
  text-align:left;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    0 16px 36px rgba(0,0,0,.27),
    0 0 26px rgba(225,185,77,.10);
}
.p2HomeV3GotwArt{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  opacity:.46;
  filter:saturate(.78) contrast(1.04);
}
.p2HomeV3GotwShade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(3,9,16,.82),rgba(3,9,16,.31) 50%,rgba(3,9,16,.82)),
    linear-gradient(180deg,rgba(3,8,14,.20),rgba(3,8,14,.78));
}
.p2HomeV3GotwTop,
.p2HomeV3GotwBottom{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.p2HomeV3GotwTop i{
  color:#f2cd64;
  font-family:'Oswald',Inter,sans-serif;
  font-style:normal;
  font-size:9px;
  font-weight:800;
  letter-spacing:.15em;
}
.p2HomeV3GotwTop em{
  padding:4px 7px;
  border:1px solid rgba(255,220,120,.25);
  border-radius:999px;
  background:rgba(3,8,14,.42);
  color:#d8c58c;
  font-style:normal;
  font-size:8px;
  font-weight:800;
}
.p2HomeV3GotwMatch{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr);
  align-items:center;
  gap:5px;
}
.p2HomeV3GotwMatch>span{
  min-width:0;
  display:flex;
  align-items:center;
  gap:7px;
}
.p2HomeV3GotwMatch>span:last-child{flex-direction:row-reverse;text-align:right}
.p2HomeV3GotwMatch>span>b{
  overflow:hidden;
  font-family:'Oswald',Inter,sans-serif;
  font-size:11px;
  line-height:1.05;
  font-weight:750;
  text-overflow:ellipsis;
}
.p2HomeV3GotwMatch>i{
  color:#7e91a6;
  font-family:'Oswald',Inter,sans-serif;
  font-style:normal;
  font-size:8px;
  font-weight:900;
  text-align:center;
}
.p2HomeV3Gotw .p2HomeV3LogoStage{
  width:38px;
  height:38px;
  flex:0 0 38px;
  border-radius:11px;
}
.p2HomeV3GotwLogo{width:29px;height:29px;object-fit:contain}
.p2HomeV3GotwBottom b{
  color:#dbe8f3;
  font-family:'Oswald',Inter,sans-serif;
  font-size:10px;
}
.p2HomeV3GotwBottom em{
  color:#f2d36f;
  font-style:normal;
  font-size:9px;
  font-weight:750;
}

/* Shared Home section rhythm */
.p2HomeV3Section{margin-top:19px}
.p2HomeV3SectionHead{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:10px;
  margin:0 2px 9px;
}
.p2HomeV3SectionHead h2{
  margin:2px 0 0;
  color:#eff5fb;
  font-family:'Oswald',Inter,sans-serif;
  font-size:17px;
  line-height:1;
  font-weight:760;
}
.p2HomeV3TextBtn{
  min-height:28px;
  padding:0;
  border:0;
  background:none;
  color:#52bfff;
  font-family:'Oswald',Inter,sans-serif;
  font-size:10px;
  font-weight:750;
}
.p2HomeV3Loading{
  min-height:68px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:13px;
  border:1px solid rgba(41,109,158,.28);
  border-radius:15px;
  background:rgba(6,18,30,.62);
  color:#8398ac;
  font-size:11px;
}
.p2HomeV3Loading span{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#45b8f8;
  box-shadow:0 0 10px rgba(69,184,248,.7);
}

/* Today scoreboard rail */
.p2HomeV3ScoreRail{
  display:flex;
  gap:9px;
  overflow-x:auto;
  padding:1px 2px 5px;
  scroll-snap-type:x proximity;
  scrollbar-width:none;
}
.p2HomeV3ScoreRail::-webkit-scrollbar{display:none}
.p2HomeV3ScoreCard{
  flex:0 0 216px;
  min-height:142px;
  scroll-snap-align:start;
  padding:11px;
  border:1px solid #173d5d;
  border-radius:15px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.028),transparent 22%),
    linear-gradient(145deg,#081725,#050f1a);
  color:#edf4fb;
  text-align:left;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
}
.p2HomeV3ScoreCard.favorite{border-color:#235f8b}
.p2HomeV3ScoreCard.live{
  border-color:#257fb2;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 0 16px rgba(27,151,218,.08);
}
.p2HomeV3ScoreMeta{
  display:flex;
  justify-content:space-between;
  gap:8px;
  margin-bottom:8px;
  color:#71889d;
  font-size:8px;
  font-weight:800;
  letter-spacing:.06em;
}
.p2HomeV3ScoreMeta b{color:#9ddcff}
.p2HomeV3ScoreTeam{
  display:grid;
  grid-template-columns:31px minmax(0,1fr) auto;
  align-items:center;
  gap:7px;
  min-height:39px;
}
.p2HomeV3ScoreTeam>span:nth-child(2){
  overflow:hidden;
  color:#ecf3f9;
  font-family:'Oswald',Inter,sans-serif;
  font-size:10px;
  line-height:1.04;
  font-weight:720;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.p2HomeV3LogoStage{
  width:31px;
  height:31px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:
    radial-gradient(circle at 50% 28%,rgba(148,209,255,.19),rgba(131,201,255,.06) 52%,transparent 80%),
    rgba(12,27,43,.60);
  box-shadow:inset 0 0 0 1px rgba(145,208,250,.11);
}
.p2HomeV3Logo{width:24px;height:24px;object-fit:contain}
.p2HomeV3LogoStage.p2LogoContrastHigh{
  background:
    radial-gradient(circle at 50% 25%,rgba(203,229,255,.33),rgba(184,219,255,.16) 50%,transparent 84%),
    rgba(38,58,78,.72);
  box-shadow:inset 0 0 0 1px rgba(202,228,255,.25);
}
.p2HomeV3LogoStage.p2LogoContrastHigh img{
  filter:drop-shadow(0 0 4px rgba(235,245,255,.62));
}
.p2HomeV3Score{
  color:#f6fbff;
  font-family:'Oswald',Inter,sans-serif;
  font-size:13px;
}
.p2HomeV3ScoreFooter{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:7px;
  padding-top:7px;
  border-top:1px solid rgba(66,132,180,.15);
  color:#668096;
  font-size:7px;
  font-weight:800;
  letter-spacing:.06em;
}
.p2HomeV3ScoreFooter span:first-child{color:#87c9ef}
.p2HomeV3ScoreFooter i{
  color:#4fbdf8;
  font-style:normal;
  font-size:15px;
}

/* Favorite-team onboarding only when no favorites exist */
.p2HomeV3Favorites{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:16px;
  padding:13px;
  border:1px dashed rgba(66,172,238,.32);
  border-radius:15px;
  background:rgba(7,21,34,.62);
}
.p2HomeV3Favorites>div{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.p2HomeV3Favorites b{
  color:#edf5fb;
  font-family:'Oswald',Inter,sans-serif;
  font-size:13px;
}
.p2HomeV3Favorites span{
  color:#7c90a3;
  font-size:9px;
  line-height:1.35;
}
.p2HomeV3Favorites button{
  flex:0 0 auto;
  min-height:34px;
  padding:0 10px;
  border:1px solid rgba(74,184,249,.42);
  border-radius:10px;
  background:rgba(27,128,193,.12);
  color:#7fd2ff;
  font-size:9px;
  font-weight:800;
}

/* Sports Wire */
.p2HomeV3Wire{
  overflow:hidden;
  border:1px solid #153b59;
  border-radius:16px;
  background:linear-gradient(180deg,#071624,#050f19);
}
.p2HomeV3Story{
  position:relative;
  width:100%;
  min-height:78px;
  display:block;
  padding:12px 34px 12px 13px;
  border:0;
  border-bottom:1px solid rgba(44,112,161,.20);
  background:transparent;
  color:#eef5fb;
  text-align:left;
}
.p2HomeV3Story:last-child{border-bottom:0}
.p2HomeV3Story.favorite{
  background:linear-gradient(90deg,rgba(29,126,188,.10),transparent 60%);
}
.p2HomeV3StoryMeta{
  display:flex;
  align-items:center;
  gap:6px;
  margin-bottom:5px;
  color:#6f8498;
  font-size:7px;
  font-weight:750;
  letter-spacing:.04em;
}
.p2HomeV3StoryMeta span{color:#58c5ff}
.p2HomeV3StoryMeta i{font-style:normal}
.p2HomeV3Story>b{
  display:-webkit-box;
  overflow:hidden;
  color:#f0f5fa;
  font-family:'Oswald',Inter,sans-serif;
  font-size:12px;
  line-height:1.18;
  font-weight:720;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.p2HomeV3Story>em{
  position:absolute;
  right:13px;
  top:50%;
  transform:translateY(-50%);
  color:#46b6f1;
  font-style:normal;
  font-size:21px;
}

/* 30 Hub preview — the card itself now reuses the shared .pcHeroCard
   family (see "Hub Player Card v4" section) so Home is visibly the same
   component family as the full Hub card, just condensed. Only the
   loading/no-data placeholder keeps its own small layout here. */
.p2HomeV3HubLoading{
  min-height:91px;
  display:flex;
  align-items:center;
  gap:12px;
}
.p2HomeV3HubLoadingAvatar{
  width:44px;
  height:44px;
  flex:0 0 auto;
  border-radius:50%;
  overflow:hidden;
  display:flex;
  box-shadow:0 0 0 1px rgba(9,25,38,.9),0 0 20px rgba(46,158,221,.22);
}
.p2HomeV3HubLoadingAvatar .playerAvatar,.p2HomeV3HubLoadingAvatar .photoAvatar{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
}
.p2HomeV3HubLoading>div{
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:0;
}
.p2HomeV3HubLoading b{
  font-family:'Oswald',Inter,sans-serif;
  font-size:12px;
}
.p2HomeV3HubLoading span{color:#71869a;font-size:8px}
.p2HomeV3HubLoading>i{
  color:rgba(89,190,246,.20);
  font-family:'Oswald',Inter,sans-serif;
  font-style:normal;
  font-size:44px;
  font-weight:900;
}

/* Commissioner controls remain intentionally secondary */
.p2HomeV3Comm{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:7px;
  margin-top:19px;
  padding:10px 11px;
  border-top:1px solid rgba(58,110,151,.22);
  color:#8293a4;
}
.p2HomeV3Comm>div{
  min-width:0;
  display:flex;
  flex-direction:column;
}
.p2HomeV3Comm span{
  color:#6d8295;
  font-size:7px;
  font-weight:800;
  letter-spacing:.10em;
}
.p2HomeV3Comm b{
  color:#aab8c5;
  font-family:'Oswald',Inter,sans-serif;
  font-size:11px;
}
.p2HomeV3Comm button{
  min-height:31px;
  padding:0 9px;
  border:1px solid rgba(65,129,177,.25);
  border-radius:9px;
  background:rgba(8,21,33,.52);
  color:#91a9bc;
  font-size:8px;
  font-weight:750;
}

@media(max-width:430px){
  .p2HomeV3{padding-left:12px;padding-right:12px}
  .p2HomeV3Command{padding:15px 14px 14px}
  .p2HomeV3Command h1{font-size:22px}
  .p2HomeV3Count b{font-size:32px}
  .p2HomeV3Gotw{min-height:146px}
  .p2HomeV3ScoreCard{flex-basis:202px}
  .pcStats{gap:5px}
}


/* ===== Coin brand identity v1 ===== */
.brandCoinHeader,
.brandCoinLockup{
  display:block;
  object-fit:contain;
  user-select:none;
  pointer-events:none;
}
.brandCoinHeader{
  width:min(224px,48vw);
  height:auto;
  max-height:58px;
  filter:drop-shadow(0 0 10px rgba(36,169,255,.22));
}
.broadcastBrandLockup{
  display:flex!important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1px;
}
.broadcastBrandLockup .sub{
  margin-top:-2px!important;
  color:#e8c96a!important;
  letter-spacing:.18em!important;
  font-size:7px!important;
}
.brandCoinLockupLg{
  width:min(390px,82vw);
  height:auto;
  margin:0 auto;
  filter:drop-shadow(0 0 18px rgba(37,170,255,.26));
}
.brandSplashContent .brandCoinLockupLg{
  width:min(420px,84vw);
}
.authBrand .brandCoinLockupLg{
  width:min(330px,78vw);
}
@media(max-width:430px){
  .brandCoinHeader{
    width:min(206px,52vw);
    max-height:54px;
  }
  .broadcastBrandLockup .sub{
    font-size:6.5px!important;
    letter-spacing:.16em!important;
  }
  .brandSplashContent .brandCoinLockupLg{width:min(360px,84vw)}
  .authBrand .brandCoinLockupLg{width:min(300px,80vw)}
}

/* =====================================================================
   PREMIUM LOGIN — 30 PICK'EM
   Scope discipline: .card / .input / .label / .btn / .small are shared,
   app-wide classes (league cards, standings, modals, etc. all use them),
   so every rule below is written as a `.authwrap <selector>` descendant
   override — nothing here redefines those classes globally, and nothing
   here can regress Picks, Standings, Hub, or any other screen.
   No HTML was changed to build this: the mail/lock glyphs are CSS
   background-images on the existing <input id="email">/<input
   id="password"> elements, and the button arrow is a CSS ::after glyph.
   Show/Hide password, Save login info, and auth submit are unchanged
   app-core.js behavior — only their existing elements are restyled.
   ===================================================================== */
.authwrap{
  position:relative;
  overflow:hidden;
  background-color:#030912;
  /* Real runtime asset: approved cinematic stadium plate (see
     03_implementation_docs/ASSET_SPECS.md). This is a plain atmosphere
     photo behind the UI — no labels, buttons or form fields are baked
     into it. The scrim on .authwrap:before (below) sits on top of it for
     legibility and mood/color control. */
  background-image:url("assets/premium/login-stadium-plate.svg");
  background-size:cover;
  background-position:center top;
  background-repeat:no-repeat;
}
.authwrap:before{
  /* Color-grading + legibility scrim layered over the real stadium photo
     above — purely decorative, no text/UI baked in here either. */
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(ellipse 62% 42% at 6% -8%,rgba(54,163,255,.30),transparent 60%),
    radial-gradient(ellipse 62% 42% at 94% -8%,rgba(54,163,255,.30),transparent 60%),
    radial-gradient(ellipse 85% 55% at 50% 0%,rgba(10,40,75,.34),transparent 70%),
    radial-gradient(ellipse 78% 42% at 50% 100%,rgba(3,10,20,.62),transparent 62%),
    radial-gradient(circle at 50% 112%,rgba(10,40,70,.30),transparent 55%),
    linear-gradient(180deg,rgba(2,8,14,.58) 0%,rgba(3,10,18,.30) 30%,rgba(3,10,18,.42) 70%,rgba(3,9,16,.72) 100%);
  pointer-events:none;
}
.authbox{position:relative;z-index:1}
.authwrap .authBrandTagline{
  /* The approved brand-horizontal-approved.png lockup now bakes this
     tagline into the artwork itself (see ASSET_SPECS.md), so the live
     duplicate text is hidden here to avoid a doubled tagline. The copy
     is preserved for screen readers via the image's alt text. */
  display:none;
}

/* Dark navy glass/metal login panel with layered blue + gold edge light */
.authwrap .card{
  position:relative;
  overflow:hidden;
  padding:22px 19px 20px;
  border:1px solid rgba(54,163,255,.30);
  border-radius:22px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.045),transparent 20%),
    radial-gradient(circle at 88% -12%,rgba(54,163,255,.16),transparent 46%),
    linear-gradient(160deg,#0a1729 0%,#071120 60%,#050c16 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    inset 0 0 0 1px rgba(54,163,255,.10),
    0 0 0 1px rgba(225,185,77,.16),
    0 22px 48px rgba(0,0,0,.45),
    0 0 38px rgba(30,110,190,.12);
}
.authwrap .card .title{
  position:relative;
  display:inline-block;
  padding-bottom:11px;
  font-family:'Oswald',Inter,sans-serif;
  font-style:italic;
  font-size:27px;
  font-weight:800;
  letter-spacing:.005em;
  color:#f5f9fd;
}
.authwrap .card .title:after{
  content:"";
  position:absolute;
  left:1px;
  bottom:3px;
  width:36px;
  height:3px;
  border-radius:2px;
  background:linear-gradient(90deg,var(--p2-gold),rgba(225,185,77,0));
}
.authwrap .card>.small{color:var(--p2-muted);font-size:12.5px}
.authwrap .label{
  margin-top:14px;
  margin-bottom:7px;
  color:var(--p2-blue2);
  font-family:'Oswald',Inter,sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
}

/* Inputs: same fields, same ids/behavior — a darker glass field, a focus
   glow, and mail/lock glyphs drawn as background-images (no new markup). */
.authwrap .input{
  background:rgba(3,9,17,.62);
  border:1px solid var(--p2-line2);
  border-radius:12px;
  color:var(--p2-white);
  box-shadow:inset 0 1px 3px rgba(0,0,0,.35);
  transition:border-color .15s ease,box-shadow .15s ease;
}
.authwrap .input::placeholder{color:#5c7186}
.authwrap .input:focus{
  outline:none;
  border-color:rgba(54,163,255,.65);
  box-shadow:inset 0 1px 3px rgba(0,0,0,.35),0 0 0 3px rgba(54,163,255,.16);
}
.authwrap #email{
  padding-left:40px;
  background-repeat:no-repeat;
  background-position:12px center;
  background-size:18px 18px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237fb8e6' stroke-width='1.6'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M4 7l8 6 8-6'/%3E%3C/svg%3E");
}
.authwrap .passwordWrap .input{
  padding-left:40px;
  background-repeat:no-repeat;
  background-position:12px center;
  background-size:16px 16px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237fb8e6' stroke-width='1.6'%3E%3Crect x='5' y='11' width='14' height='9' rx='2'/%3E%3Cpath d='M8 11V8a4 4 0 018 0v3'/%3E%3C/svg%3E");
}
.authwrap .passwordReveal{
  color:var(--p2-gold);
  font-family:'Oswald',Inter,sans-serif;
  font-weight:800;
  letter-spacing:.02em;
}

/* Save login info — recolor the existing custom radio, no markup change */
.authwrap .saveLoginDot{border-color:rgba(54,163,255,.55)}
.authwrap .saveLoginDot:after{background:var(--p2-gold)}
.authwrap .saveLoginOption input:checked + .saveLoginDot{
  border-color:var(--p2-gold);
  box-shadow:0 0 10px rgba(225,185,77,.35);
}
.authwrap .saveLoginOption b{font-family:'Oswald',Inter,sans-serif;font-size:13px}
.authwrap .forgotPasswordBtn{color:var(--p2-blue2)}

/* Premium championship-gold Log In CTA (also covers Create Account in
   signup mode — the button's text is set by app-core.js, unchanged here) */
.authwrap .btn.primary{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:52px;
  border:0;
  border-radius:13px;
  background:linear-gradient(180deg,#ffd554 0%,#e1b94d 55%,#b9862a 100%);
  color:#1c1204;
  font-family:'Oswald',Inter,sans-serif;
  font-size:15px;
  font-weight:800;
  letter-spacing:.03em;
  text-transform:uppercase;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.4),
    0 0 0 1px rgba(255,222,140,.4),
    0 10px 26px rgba(225,185,77,.26),
    0 0 30px rgba(225,185,77,.14);
}
.authwrap .btn.primary:after{content:"\2192";font-weight:900}
.authwrap #authToggle{
  background:rgba(6,14,24,.5);
  border:1px solid var(--p2-line2);
  color:var(--p2-blue2);
}
.authwrap #demoNotice,.authwrap #demoEnter{opacity:.85}

@media(max-width:430px){
  .authwrap .card{padding:19px 16px 17px;border-radius:19px}
  .authwrap .card .title{font-size:24px}
}


/* ===== Home masthead spacing lock v1 / v2 — removed (Real Device Final Fixes v1) =====
   Home used its own 118px masthead (coin + wordmark on top, menu/bell on a
   lower row). On a real iPhone that plus the safe area was far too tall, so
   Home now uses the same compact masthead as every other screen (below). */


/* ===== Compact masthead true-center lock =====
   Every screen (Home included since Real Device Final Fixes v1):
   menu | centered brand | bell all live in the same equal-column grid.
   This removes the old absolute-position optical drift. */
@media(max-width:700px){
  .app .top>.premiumMasthead{
    display:grid!important;
    grid-template-columns:42px minmax(0,1fr) 42px!important;
    grid-template-rows:1fr!important;
    align-items:center!important;
    justify-items:stretch!important;
    gap:8px!important;
    padding:0 12px!important;
  }
  .app .broadcastBrandLockup{
    position:static!important;
    left:auto!important;
    top:auto!important;
    transform:none!important;
    grid-column:2!important;
    grid-row:1!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin:0!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
  }
  .app .brandCoinHeader{
    display:block!important;
    width:min(206px,100%)!important;
    max-height:54px!important;
    margin:0 auto!important;
    object-position:center!important;
  }
  .app .broadcastBrandLockup #topSub{
    width:100%!important;
    margin-top:-2px!important;
    padding:0!important;
    text-align:center!important;
    white-space:nowrap!important;
  }
  .app .mastheadMenuButton{
    position:static!important;
    grid-column:1!important;
    grid-row:1!important;
    justify-self:start!important;
  }
  .app .mastheadAccountButton{
    position:static!important;
    grid-column:3!important;
    grid-row:1!important;
    justify-self:end!important;
  }
}


/* =====================================================================
   CINEMATIC RUNTIME ASSETS — v3 pass
   Real approved background photography integrated as an atmosphere
   layer, additive on top of the masthead geometry locks above. Nothing
   here changes height/width/grid/position of any masthead element — only
   background-image/-size/-position on .top, plus a scrim for legibility.
   Since Real Device Final Fixes v1 this is the shared background for every
   masthead (the per-screen copies in picks-v3 / standings-v3 / profile-v3
   were removed).
   ===================================================================== */
@media(max-width:700px){
  /* Shared masthead atmosphere (Real Device Final Fixes v1): the approved
     Home stadium treatment is now the one masthead background for Home,
     Picks, Standings, Hub, Profile, League Management and Commissioner
     Tools. The Player Card tab keeps its own v5 stadium (more specific
     rule in player-card-v5.css). */
  .app .top{
    background-color:#020814!important;
    /* Approved home-stadium-plate.jpg (see ASSET_SPECS.md), cropped to
       its upper lights/crowd/haze band — at this masthead height the
       midfield "50" yard-line marker is not in frame, so there is no
       yard-line number visible here at all (confirmed by render check;
       see delivery notes). The gradient scrim layers keep the brand
       lockup, WEEK pill and icons legible over the photo. */
    background-image:
      radial-gradient(ellipse 60% 140% at 6% -30%,rgba(54,163,255,.20),transparent 62%),
      radial-gradient(ellipse 60% 140% at 94% -30%,rgba(54,163,255,.20),transparent 62%),
      linear-gradient(180deg,rgba(2,8,16,.62) 0%,rgba(2,8,16,.30) 45%,rgba(2,8,16,.86) 100%),
      url("assets/premium/home-stadium-plate.svg")!important;
    background-size:auto,auto,auto,cover!important;
    background-position:center,center,center,center top!important;
    background-repeat:no-repeat,no-repeat,no-repeat,no-repeat!important;
  }
}
/* The new approved brand-horizontal lockup bakes its tagline into the
   artwork itself (see ASSET_SPECS.md), so the separate live #topSub
   text is hidden everywhere it appears, to avoid a doubled tagline. The
   copy is preserved for screen readers via the image's alt text. This
   selector (class+id) is intentionally more specific than the existing
   bare #topSub rule above so it wins regardless of source order. */
.broadcastBrandLockup #topSub{display:none!important}


/* ===== Real-device cinematic polish v3.1 =====
   Login: keep the full-width stadium composition visible on narrow phones
   instead of letting background-size:cover crop away both floodlight banks.
   Home: optical correction only for the approved lockup; all masthead
   dimensions, utility-button positions, and layout geometry remain frozen. */
@media(max-width:700px){
  .authwrap{
    background-size:100% auto;
    background-position:center top;
    background-repeat:no-repeat;
  }
  .authwrap:before{
    background:
      radial-gradient(ellipse 72% 42% at 50% -4%,rgba(28,112,190,.12),transparent 68%),
      linear-gradient(180deg,rgba(2,8,14,.08) 0%,rgba(2,8,14,.16) 28%,rgba(3,10,18,.52) 48%,rgba(3,9,16,.92) 72%,rgba(3,9,16,.98) 100%);
  }
}


/* ===== Real-device cinematic polish v3.2 =====
   1) Auth stadium cascade fix: premium-v0700.css owns an older !important
      background shorthand, so the real photo must explicitly win each
      background sub-property here.
   2) Masthead controls: preserve their frozen positions/size while upgrading
      the material treatment and icon drawing. */
.authwrap{
  background-image:url("assets/premium/login-stadium-plate.svg")!important;
  background-size:cover!important;
  background-position:center top!important;
  background-repeat:no-repeat!important;
}
@media(max-width:700px){
  .authwrap{
    background-size:100% auto!important;
    background-position:center top!important;
    background-repeat:no-repeat!important;
  }
}

.mastheadIcon{
  overflow:hidden!important;
  isolation:isolate!important;
  border-radius:14px!important;
  border:1px solid rgba(91,174,232,.50)!important;
  background:
    linear-gradient(180deg,rgba(20,43,64,.92) 0%,rgba(7,19,32,.94) 48%,rgba(3,11,20,.98) 100%)!important;
  color:#f4f8fc!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.13),
    inset 0 -1px 0 rgba(0,0,0,.50),
    0 8px 22px rgba(0,0,0,.30),
    0 0 0 1px rgba(26,126,198,.08),
    0 0 18px rgba(40,153,234,.13)!important;
  backdrop-filter:blur(10px) saturate(125%)!important;
  -webkit-backdrop-filter:blur(10px) saturate(125%)!important;
  transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease!important;
}
.mastheadIcon:before{
  content:"";
  position:absolute;
  z-index:0;
  left:7px;
  right:7px;
  top:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(235,197,93,.78),transparent);
  opacity:.82;
  pointer-events:none;
}
.mastheadIcon:active{
  transform:scale(.96)!important;
  border-color:rgba(225,185,77,.58)!important;
}
.mastheadMenuButton{
  font-size:0!important;
}
.mastheadMenuButton:after{
  content:"";
  position:absolute;
  z-index:2;
  left:50%;
  top:50%;
  width:18px;
  height:2px;
  border-radius:2px;
  background:#f4f8fc;
  transform:translate(-50%,-50%);
  box-shadow:0 -6px 0 #f4f8fc,0 6px 0 #f4f8fc;
  filter:drop-shadow(0 0 5px rgba(80,180,255,.18));
}
.p2BellIcon{
  position:relative;
  z-index:2;
  width:21px!important;
  height:21px!important;
  stroke:#f4f8fc!important;
  stroke-width:1.9!important;
  filter:drop-shadow(0 0 5px rgba(80,180,255,.18));
}


/* ===== Home body cinematic hierarchy v3.3 =====
   Scope: premium Home body only. The frozen masthead, Your Week command
   panel, GOTW structure, Picks, Standings, Hub, Profile and app logic are
   intentionally untouched. This pass gives Today / Wire / 30 Hub distinct
   broadcast identities instead of another stack of similarly weighted cards. */

/* Stronger section rhythm below the flagship Your Week + GOTW panels. */
#home .p2HomeV3{
  padding-bottom:24px;
}
#home .p2HomeV3Section{
  margin-top:22px;
}
#home .p2HomeV3SectionHead{
  align-items:center;
  margin:0 2px 10px;
}
#home .p2HomeV3SectionHead>div{
  position:relative;
  min-width:0;
  padding-left:10px;
}
#home .p2HomeV3SectionHead>div:before{
  content:"";
  position:absolute;
  left:0;
  top:2px;
  bottom:1px;
  width:2px;
  border-radius:2px;
  background:linear-gradient(180deg,#65c8ff 0%,#238fcf 64%,rgba(225,185,77,.66) 100%);
  box-shadow:0 0 10px rgba(67,181,244,.24);
}
#home .p2HomeV3SectionHead h2{
  font-size:18px;
  letter-spacing:.005em;
}
#home .p2HomeV3TextBtn{
  flex:0 0 auto;
  min-height:30px;
  padding:0 10px;
  border:1px solid rgba(75,174,235,.27);
  border-radius:999px;
  background:linear-gradient(180deg,rgba(18,55,82,.54),rgba(5,22,35,.62));
  color:#77d0ff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}

/* TODAY IN SPORTS — live scoreboard glass, with live/favorite states that
   read immediately without changing the existing game ordering or data. */
#home .p2HomeV3ScoreRail{
  gap:10px;
  padding:2px 2px 7px;
}
#home .p2HomeV3ScoreCard{
  position:relative;
  overflow:hidden;
  flex-basis:224px;
  min-height:148px;
  padding:12px;
  border-color:rgba(42,111,159,.55);
  background:
    radial-gradient(circle at 86% -8%,rgba(69,181,248,.12),transparent 38%),
    linear-gradient(180deg,rgba(255,255,255,.035),transparent 24%),
    linear-gradient(145deg,#091a2a 0%,#06131f 62%,#040d16 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.04),
    0 10px 24px rgba(0,0,0,.18);
}
#home .p2HomeV3ScoreCard:before{
  content:"";
  position:absolute;
  left:12px;
  right:12px;
  top:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(107,201,255,.40),transparent);
}
#home .p2HomeV3ScoreCard.live{
  border-color:rgba(74,189,246,.78);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    0 0 0 1px rgba(45,164,224,.08),
    0 11px 28px rgba(0,0,0,.20),
    0 0 22px rgba(37,158,222,.10);
}
#home .p2HomeV3ScoreCard.live .p2HomeV3ScoreMeta b:before{
  content:"";
  display:inline-block;
  width:5px;
  height:5px;
  margin-right:5px;
  border-radius:50%;
  vertical-align:1px;
  background:#55d1ff;
  box-shadow:0 0 8px rgba(85,209,255,.78);
}
#home .p2HomeV3ScoreCard.favorite:not(.live){
  border-color:rgba(225,185,77,.42);
  background:
    radial-gradient(circle at 88% -6%,rgba(225,185,77,.09),transparent 40%),
    linear-gradient(180deg,rgba(255,255,255,.03),transparent 24%),
    linear-gradient(145deg,#0b1925,#06111b);
}
#home .p2HomeV3ScoreTeam>span:nth-child(2){
  font-size:11px;
}
#home .p2HomeV3Score{
  font-size:15px;
}
#home .p2HomeV3ScoreFooter{
  margin-top:8px;
  padding-top:8px;
}

/* YOUR TEAMS onboarding — still secondary, but now intentionally styled
   instead of looking like a placeholder/dashed setup state. */
#home .p2HomeV3Favorites{
  position:relative;
  overflow:hidden;
  margin-top:19px;
  border-style:solid;
  border-color:rgba(67,157,216,.32);
  background:
    radial-gradient(circle at 94% 0%,rgba(62,174,238,.11),transparent 38%),
    linear-gradient(145deg,rgba(8,26,41,.90),rgba(5,16,27,.86));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
}
#home .p2HomeV3Favorites:before{
  content:"";
  position:absolute;
  left:0;
  top:11px;
  bottom:11px;
  width:2px;
  border-radius:2px;
  background:linear-gradient(180deg,#55c5ff,rgba(225,185,77,.64));
}
#home .p2HomeV3Favorites button{
  border-color:rgba(87,190,247,.42);
  background:linear-gradient(180deg,rgba(28,105,154,.22),rgba(8,39,61,.28));
}

/* SPORTS WIRE — first story is the editorial lead; remaining rows stay
   compact. No content or click behavior changes. */
#home .p2HomeV3Wire{
  position:relative;
  isolation:isolate;
  border-color:rgba(37,104,151,.52);
  background:
    radial-gradient(circle at 88% 0%,rgba(42,143,206,.10),transparent 42%),
    linear-gradient(180deg,#071724,#050f19);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.035),
    0 12px 28px rgba(0,0,0,.16);
}
#home .p2HomeV3Wire:after{
  content:"WIRE";
  position:absolute;
  z-index:0;
  right:-3px;
  top:-15px;
  color:rgba(111,195,244,.035);
  font-family:'Oswald',Inter,sans-serif;
  font-size:82px;
  font-weight:900;
  line-height:1;
  letter-spacing:-.05em;
  pointer-events:none;
}
#home .p2HomeV3Story{
  z-index:1;
  min-height:72px;
  padding-top:11px;
  padding-bottom:11px;
}
#home .p2HomeV3Story:first-child{
  min-height:106px;
  padding:16px 40px 15px 14px;
  background:
    radial-gradient(circle at 5% 0%,rgba(62,176,240,.14),transparent 43%),
    linear-gradient(90deg,rgba(16,62,92,.26),rgba(5,16,27,.10) 70%);
  border-bottom-color:rgba(71,151,205,.28);
}
#home .p2HomeV3Story:first-child:before{
  content:"";
  position:absolute;
  left:14px;
  right:36px;
  top:0;
  height:1px;
  background:linear-gradient(90deg,rgba(225,185,77,.72),rgba(75,186,244,.32),transparent);
}
#home .p2HomeV3Story:first-child>b{
  max-width:92%;
  font-size:15px;
  line-height:1.16;
  font-weight:760;
}
#home .p2HomeV3Story:first-child .p2HomeV3StoryMeta{
  margin-bottom:7px;
}
#home .p2HomeV3Story:first-child .p2HomeV3StoryMeta span{
  padding:3px 6px;
  border:1px solid rgba(82,187,244,.25);
  border-radius:999px;
  background:rgba(32,134,194,.11);
}
#home .p2HomeV3Story.favorite:first-child{
  background:
    radial-gradient(circle at 5% 0%,rgba(225,185,77,.12),transparent 43%),
    linear-gradient(90deg,rgba(38,75,96,.28),rgba(5,16,27,.10) 70%);
}

/* 30 HUB — treat the résumé preview like a premium player credential,
   not a generic card. The live rank/accuracy/award/best-sport data is unchanged.
   The card itself is now the shared .pcHeroCard/.pcHero/.pcMedallion/.pcStats
   family (see "Hub Player Card v4" below) reused verbatim on Home, so the
   condensed preview is visibly the same component family as the full card —
   only Home-specific extras (divider, link row, CTA) get their own rules here. */
#home .pcHeroCard{
  padding:15px;
}
#home .pcHomeDivider{
  height:1px;
  margin:14px 0 12px;
  background:linear-gradient(90deg,transparent,rgba(86,190,247,.28) 24%,rgba(225,185,77,.24) 76%,transparent);
}
#home .pcHomeLinkRow{
  display:block;
  margin:0 0 12px;
  color:#8fb3cc;
  font-size:12px;
  text-align:center;
  text-decoration:none;
  cursor:pointer;
}
#home .pcHomeLinkRow:active{opacity:.7}

@media(max-width:430px){
  #home .p2HomeV3ScoreCard{flex-basis:210px}
  #home .p2HomeV3Story:first-child>b{font-size:14px}
  #home .pcHeroCard{padding:14px}
}


/* ===== Hub Player Card v4 (Round 3) =====
   Full premium composition for 30 HUB > Player Card only, reworked to
   sit visibly in the same family as the supplied north-star / target
   mockups: a deep-framed hero+stats card, then three separate bordered
   glass panels (Weekly Finishes; Trophies+Favorites split; Week Recaps
   CTA) instead of one continuous flat card. Scoped under #hubResumeBody;
   does not alter Home, Picks, GOTW, Standings, News, Today, masthead
   geometry, or app logic — every value below still comes from live data
   computed in app-core.js's render30HubResume(). */

/* ---- Hero + stats card. Unscoped (plain classes, not #hubResumeBody-only)
   so the Home Player Card preview can reuse this exact component — Home is
   meant to read as a condensed sibling of the full Hub card, not a
   different design. ---- */
.pcHeroCard{
  position:relative;isolation:isolate;overflow:hidden;padding:20px 16px 18px;
  border-radius:22px;
  border:1px solid rgba(107,197,255,.55);
  background:
    radial-gradient(circle at 14% 8%,rgba(69,181,248,.28),transparent 46%),
    radial-gradient(circle at 100% 100%,rgba(225,185,77,.12),transparent 50%),
    linear-gradient(165deg,#0d2138 0%,#081627 46%,#040b14 100%);
  box-shadow:
    0 0 0 1px rgba(6,16,26,.9),
    0 0 0 3px rgba(69,181,248,.10),
    inset 0 1px 0 rgba(255,255,255,.07),
    inset 0 0 40px rgba(46,158,221,.05),
    0 20px 44px rgba(0,0,0,.34),
    0 0 34px rgba(36,145,207,.14);
}
.pcHeroCardGlow{
  position:absolute;z-index:0;left:14px;right:14px;top:0;height:2px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(225,185,77,.75) 26%,rgba(120,210,255,.85) 55%,rgba(225,185,77,.75) 78%,transparent);
  box-shadow:0 0 12px rgba(120,210,255,.5);
}
.pcHeroCard>*{position:relative;z-index:1}
.pcSeasonTag{position:absolute;z-index:2;right:16px;top:15px;font-size:8px;font-weight:900;letter-spacing:.14em;color:rgba(160,199,226,.78)}
.pcWatermark{
  position:absolute;z-index:0;right:-10px;top:38px;color:rgba(108,198,249,.07);
  font-family:'Oswald',Inter,sans-serif;font-weight:900;font-size:150px;line-height:.8;
  pointer-events:none;user-select:none;
}
.pcHero{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.pcMedallion{
  position:relative;width:78px;height:78px;flex:0 0 auto;border-radius:50%;padding:3px;
  background:conic-gradient(from 210deg,#e8b94d,#fff0c2 8%,#e8b94d 22%,#59c2ff 52%,#bfeaff 60%,#59c2ff 68%,#e8b94d 88%,#fff0c2 96%,#e8b94d);
  box-shadow:0 0 0 1px rgba(9,25,38,.9),0 0 26px rgba(86,190,247,.38),0 0 46px rgba(225,185,77,.14);
}
.pcMedallionRing{
  position:absolute;inset:-6px;z-index:0;border-radius:50%;pointer-events:none;
  background:conic-gradient(from 0deg,transparent 0deg,rgba(255,255,255,.5) 8deg,transparent 20deg,transparent 180deg,rgba(255,255,255,.28) 190deg,transparent 205deg);
  opacity:.8;
}
.pcMedallion .playerAvatar,.pcMedallion .photoAvatar{
  position:relative;z-index:1;width:100%;height:100%;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:900;
  background:radial-gradient(circle at 35% 25%,rgba(170,225,255,.55),transparent 34%),linear-gradient(150deg,#1e8ed0 0%,#0c4b78 58%,#082b49 100%);
  color:#fff;border:2px solid rgba(4,15,24,.92);overflow:hidden;
}
.pcMedallion .photoAvatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.pcHeroIdentity{min-width:0}
.pcName{max-width:min(58vw,240px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:'Oswald',Inter,sans-serif;font-weight:700;font-size:21px;color:#f7fafd;line-height:1.16}
.pcLeague{margin-top:3px;display:flex;align-items:center;gap:5px;max-width:min(58vw,240px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;color:#a9c3da}
.pcVerified{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;border-radius:50%;background:rgba(225,185,77,.9);color:#241a04;font-size:8px;font-weight:900;flex:0 0 auto}
.pcMemberSince{margin-top:2px;font-size:10px;color:#6f8aa0}
.pcRankPill{
  display:inline-flex;align-items:center;gap:6px;margin-bottom:16px;padding:6px 14px 6px 10px;
  border-radius:999px;border:1px solid rgba(83,148,191,.3);background:rgba(8,26,41,.6);
}
.pcRankPill b{font-family:'Oswald',Inter,sans-serif;font-size:14px;color:#eaf3fa}
.pcRankPill span{font-size:9px;font-weight:900;letter-spacing:.08em;color:#7f97ab}
.pcRankPill.pcRankUnranked{opacity:.6}
.pcRankPill.gold{border-color:rgba(225,185,77,.7);background:linear-gradient(160deg,rgba(80,62,16,.62),rgba(12,24,36,.68));box-shadow:0 0 16px rgba(225,185,77,.18)}
.pcRankPill.gold b,.pcRankPill.gold span{color:#ffe9ad}
.pcRankCrown{display:flex;font-size:13px;line-height:1;color:#ffd88a}
.pcRankCrown .pcIco{width:13px;height:13px}
.pcStats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.pcStat{
  position:relative;overflow:hidden;padding:12px 4px 10px;text-align:center;min-width:0;
  border-radius:13px;border:1px solid rgba(83,158,214,.32);
  background:linear-gradient(180deg,rgba(20,52,78,.6),rgba(5,15,24,.66));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),inset 0 0 0 1px rgba(120,200,255,.05);
  clip-path:polygon(0 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%);
}
.pcStat:before{
  content:"";position:absolute;inset:0 0 auto 0;height:14px;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.10),transparent);
}
.pcStatGold{
  border-color:rgba(225,185,77,.55);
  background:linear-gradient(180deg,rgba(72,55,16,.62),rgba(10,15,10,.5));
  box-shadow:inset 0 1px 0 rgba(255,235,180,.10),0 0 14px rgba(225,185,77,.12);
}
.pcStatLabel{display:block;font-size:8px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#8fb1c9}
.pcStatGold .pcStatLabel{color:#e0c184}
.pcStat b{display:block;margin-top:4px;font-family:'Oswald',Inter,sans-serif;font-size:16px;color:#f4f9fd;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pcStat small{display:block;margin-top:1px;font-size:9px;color:#6fcdfb}
.pcStatIcon{
  display:flex!important;align-items:center;justify-content:center;margin:0 auto 6px;
  width:26px;height:26px;color:#6fcdfb;
}
.pcStatIcon .pcIco{width:15px;height:15px}
.pcStatGold .pcStatIcon{color:#ffd88a}

/* ---- Shared panel chrome for Weekly Finishes / Trophies+Favorites / CTA ---- */
#hubResumeBody .pcPanel,#hubResumeBody .pcSplitPanel{
  margin-top:14px;padding:14px;border-radius:18px;
  border:1px solid rgba(73,166,224,.38);
  background:radial-gradient(circle at 90% 0%,rgba(55,168,232,.10),transparent 46%),linear-gradient(160deg,#0a1c2c 0%,#071523 60%,#040c14 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 12px 26px rgba(0,0,0,.22);
}
#hubResumeBody .pcSectionHead{display:flex;align-items:center;gap:6px;margin-bottom:11px;font-family:'Oswald',Inter,sans-serif;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#a9c3d8}
#hubResumeBody .pcSectionHead span{flex:1 1 auto;min-width:0}
#hubResumeBody .pcViewAll{flex:0 0 auto;font-family:'Oswald',Inter,sans-serif;font-size:10px;font-weight:700;letter-spacing:.02em;text-transform:none;color:#69c4ff;cursor:pointer}
#hubResumeBody .pcEmpty{padding:13px 12px;border:1px dashed rgba(83,148,191,.28);border-radius:12px;color:#8fa5b8;font-size:11px;text-align:center}
#hubResumeBody .pcEmptyTeams{display:flex;flex-direction:column;align-items:center;gap:9px;padding:16px 12px;border:1px dashed rgba(83,148,191,.3);border-radius:12px;background:rgba(6,18,29,.4)}
#hubResumeBody .pcEmptyTeams span{font-size:11px;color:#8fa5b8;text-align:center}
#hubResumeBody .pcEmptyTeams .btn.smallbtn{width:auto}

/* ---- Weekly Finishes ---- */
#hubResumeBody .pcWeekGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
#hubResumeBody .pcWeekTile{display:flex;flex-direction:column;align-items:center;gap:3px;padding:11px 4px 9px;border-radius:12px;border:1px solid rgba(65,135,184,.22);background:linear-gradient(180deg,rgba(14,38,58,.65),rgba(3,12,20,.5));color:inherit;cursor:pointer;min-width:0}
#hubResumeBody .pcWeekTile:active{border-color:rgba(86,190,247,.5)}
#hubResumeBody .pcWeekLatest{
  border-color:rgba(225,185,77,.7);
  background:linear-gradient(180deg,rgba(96,74,20,.7),rgba(8,15,8,.55));
  box-shadow:0 0 14px rgba(225,185,77,.2),inset 0 1px 0 rgba(255,235,180,.12);
}
#hubResumeBody .pcWeekLatest .pcWeekNum{color:#ffe9ad}
#hubResumeBody .pcWeekNum{font-size:8px;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:#87a0b5}
#hubResumeBody .pcWeekFinish{font-family:'Oswald',Inter,sans-serif;font-size:16px;color:#f4f9fd}
#hubResumeBody .pcWeekAwards{font-size:11px;line-height:1;display:flex;gap:2px;margin-top:1px}

/* ---- Trophies + Favorite Teams split panel ---- */
#hubResumeBody .pcSplitPanel{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;padding:14px 12px}
#hubResumeBody .pcSplitCol{min-width:0}
#hubResumeBody .pcSplitDivider{width:1px;background:linear-gradient(180deg,transparent,rgba(83,148,191,.35) 20%,rgba(83,148,191,.35) 80%,transparent)}
#hubResumeBody .pcSplitCol .pcSectionHead{font-size:9.5px;gap:4px}
#hubResumeBody .pcSplitCol .pcSectionIco{width:10px;height:10px}
#hubResumeBody .pcTrophyGrid,#hubResumeBody .pcTeamGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
#hubResumeBody .pcBadge{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;min-width:0}
#hubResumeBody .pcBadgeShield{position:relative;width:100%;max-width:54px;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;margin:0 auto}
#hubResumeBody .pcBadgeShield:before{
  content:"";position:absolute;inset:-6px;z-index:0;border-radius:50%;
  background:radial-gradient(circle,rgba(225,185,77,.32),transparent 68%);
  filter:blur(1px);
}
#hubResumeBody .pcBadgeImg{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 3px 6px rgba(0,0,0,.45))}
#hubResumeBody .pcBadge b{font-family:'Oswald',Inter,sans-serif;font-size:12px;color:#ffe9ad}
#hubResumeBody .pcBadge small{font-size:7.5px;line-height:1.2;color:#93a9bc;max-width:76px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#hubResumeBody .pcBadge.empty .pcBadgeShield:before{display:none}
#hubResumeBody .pcBadge.empty .pcBadgeImg{filter:grayscale(.85) brightness(.62);opacity:.58}
#hubResumeBody .pcBadge.empty b{color:#7d94a8}
#hubResumeBody .pcTeamTile{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
#hubResumeBody .pcTeamTile small{font-size:8.5px;color:#93a9bc;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#hubResumeBody .pcTeamLogoWrap{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(65,135,184,.24);background:rgba(9,28,44,.56)}
#hubResumeBody .pcTeamLogoWrap.p2LogoContrastHigh{background:rgba(233,238,244,.92)}
#hubResumeBody img.pcTeamLogo{width:25px;height:25px;object-fit:contain}
#hubResumeBody span.pcTeamLogo.pcLogoFallback,#hubResumeBody span.p2LogoFallback.pcTeamLogo{width:25px;height:25px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:900;color:#dbe9f4;background:rgba(83,148,191,.22)}
#hubResumeBody button.pcTeamTile.pcTeamMore{border:1px dashed rgba(83,148,191,.32);border-radius:50%;background:transparent;color:#a9c3d8;font-family:'Oswald',Inter,sans-serif;font-size:12px;height:38px;width:38px;margin:0 auto;cursor:pointer}

/* ---- CTA (Week Recaps on Hub; Open Full Player Card on Home) — unscoped
   so both surfaces share the same premium gold CTA component. ---- */
.pcCtaCard{
  display:flex;align-items:center;gap:12px;width:100%;margin-top:14px;padding:14px 16px;
  border-radius:16px;border:1px solid rgba(225,185,77,.7);cursor:pointer;text-align:left;
  background:linear-gradient(160deg,rgba(90,68,16,.55),rgba(10,15,10,.6));
  box-shadow:inset 0 1px 0 rgba(255,235,180,.14),0 0 0 1px rgba(6,16,26,.8),0 0 22px rgba(225,185,77,.22);
}
.pcCtaIcon{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:rgba(8,15,8,.5);border:1px solid rgba(225,185,77,.4);color:#ffe9ad}
.pcCtaIcon .pcIco{width:17px;height:17px}
.pcCtaText{flex:1 1 auto;min-width:0}
.pcCtaText b{display:block;font-size:15px;font-weight:900;color:#ffe9ad;letter-spacing:.01em}
.pcCtaText small{display:block;margin-top:1px;font-size:10px;font-weight:700;color:rgba(255,233,173,.72)}
.pcCtaChevron{flex:0 0 auto;font-size:20px;color:#ffe9ad}

@media(max-width:390px){.pcHeroCard{padding:17px 13px 15px}}
@media(max-width:360px){
  .pcStats{grid-template-columns:repeat(2,minmax(0,1fr))}
  #hubResumeBody .pcSplitPanel{grid-template-columns:1fr;gap:14px}
  #hubResumeBody .pcSplitDivider{width:100%;height:1px;background:linear-gradient(90deg,transparent,rgba(83,148,191,.35) 20%,rgba(83,148,191,.35) 80%,transparent)}
  #hubResumeBody .pcTrophyGrid,#hubResumeBody .pcTeamGrid{grid-template-columns:repeat(4,minmax(0,1fr))}
}

/* ===== Premium UI Round 2 =====
   Icon system base sizing, compact Player Card page heading + Share
   action, restrained Picks selection control, low-contrast logo shell
   fix (Rams gold/yellow fidelity), and the premium loading treatment.
   Scoped narrowly; does not touch pick/scoring/award/nav logic. */

/* ---- Icon system: base sizing only; color/size context comes from the
   surrounding component (stat tile, section head, pick control, etc). ---- */
.pcIco{width:1em;height:1em;display:inline-block;vertical-align:-.125em;color:currentColor;flex:0 0 auto}
.pcIcoSpin{animation:pcIcoSpin 1.1s linear infinite}
@keyframes pcIcoSpin{to{transform:rotate(360deg)}}

/* ---- Compact Player Card page heading + Share action. Only rendered
   inside #hubResumeBody, above .pcCard; the generic oversized Hub hero
   is hidden for this tab via #hub.hubPlayerCardActive below so the two
   headings never double up. ---- */
#hub.hubPlayerCardActive .hubPageHero{display:none}
#hubResumeBody .pcPageHead{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:2px 2px 14px;padding-left:10px;position:relative}
#hubResumeBody .pcPageHead:before{content:"";position:absolute;left:0;top:2px;bottom:3px;width:2px;border-radius:2px;background:linear-gradient(180deg,#65c8ff 0%,#238fcf 64%,rgba(225,185,77,.66) 100%);box-shadow:0 0 10px rgba(67,181,244,.24)}
#hubResumeBody .pcPageEyebrow{font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:#6fb8e6}
#hubResumeBody .pcPageTitle{margin-top:2px;font-family:'Oswald',Inter,sans-serif;font-weight:700;font-size:22px;color:#f5f9fc}
#hubResumeBody .pcPageSub{margin-top:2px;font-size:12px;color:#8fa8bd}
#hubResumeBody .pcShareBtn{flex:0 0 auto;display:flex;align-items:center;gap:6px;min-height:34px;padding:0 14px;border-radius:999px;border:1px solid rgba(86,190,247,.38);background:linear-gradient(180deg,rgba(18,55,82,.6),rgba(5,22,35,.66));color:#8fdcff;font-family:'Oswald',Inter,sans-serif;font-size:12px;font-weight:700;letter-spacing:.02em}
#hubResumeBody .pcShareBtn .pcIco{width:13px;height:13px}
@media(max-width:360px){#hubResumeBody .pcShareBtn span{display:none}#hubResumeBody .pcShareBtn{padding:0 10px}}

/* ---- Section-head icons: small, muted, sit inline before the label. ---- */
#hubResumeBody .pcSectionHead{display:flex;align-items:center;gap:6px}
.pcSectionIco{width:12px;height:12px;color:#6fb8e6;flex:0 0 auto}
.pcWeekAwardIco{width:10px;height:10px;color:#e4c675;display:inline-block;vertical-align:-1px}
.pcWeekAwardIco+.pcWeekAwardIco{margin-left:2px}

/* ---- Home condensed card: stat icon color already sized in the Round 1
   base block above; nothing further needed here. ---- */

/* ===== Restrained Picks selection control =====
   Replaces the flat filled-circle + CSS-triangle checkmark with a real
   SVG check, a cyan ring, and dark inner depth — compact, not the large
   glowing hero medallion from the concept board. Locked-but-unselected
   tiles get a small lock badge in the same corner slot instead of being
   only dimmed. Pick/selection logic itself is untouched — this only
   changes what the existing "selected"/"locked" classes look like. */
.p2PickDot,.p2RowPickDot,.p2GotwPickBody .p2PickDot,
.p2TeamPick.selected .p2PickDot:after,.p2GotwPickBody .selected .p2PickDot:after,
.p2RowTeam.selected .p2RowPickDot:after{content:none!important}
.p2PickDot,.p2RowPickDot{
  display:flex!important;align-items:center;justify-content:center;
  background:radial-gradient(circle at 35% 28%,#132c42,#050f19 78%)!important;
  box-shadow:inset 0 2px 3px rgba(0,0,0,.55)!important;
}
.p2PickDot .pcIco,.p2RowPickDot .pcIco{width:52%;height:52%;color:#fff;opacity:0;transition:opacity .12s ease}
.p2TeamPick.selected .p2PickDot,.p2RowTeam.selected .p2RowPickDot{
  border-color:#57d2ff!important;
  box-shadow:inset 0 2px 3px rgba(0,0,0,.5),0 0 0 1px rgba(12,28,44,.9),0 0 9px rgba(60,190,255,.45)!important;
  background:radial-gradient(circle at 35% 26%,#153450,#04101a 76%)!important;
}
.p2TeamPick.selected .p2PickDot .pcIco,.p2RowTeam.selected .p2RowPickDot .pcIco{opacity:1;filter:drop-shadow(0 0 2px rgba(255,255,255,.55))}
.p2GotwPickBody .p2PickDot{
  background:radial-gradient(circle at 35% 28%,#132c42,#050f19 78%)!important;
  border-color:#5c7186!important;
}
.p2GotwPickBody .selected .p2PickDot{
  border-color:#57d2ff!important;
  background:radial-gradient(circle at 35% 26%,#153450,#04101a 76%)!important;
  box-shadow:inset 0 2px 4px rgba(0,0,0,.5),0 0 0 1px rgba(12,28,44,.9),0 0 12px rgba(60,190,255,.48)!important;
}
.p2GotwPickBody .selected .p2PickDot .pcIco{opacity:1;color:#fff;filter:drop-shadow(0 0 2px rgba(255,255,255,.55))}
.p2RowLockBadge,.p2PickLockBadge{
  position:absolute;right:-4px;top:-4px;width:18px;height:18px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(9,17,27,.92);border:2px solid rgba(255,255,255,.12);color:#8fa2b4;
}
.p2RowLockBadge .pcIco,.p2PickLockBadge .pcIco{width:9px;height:9px}
.p2PickLockBadge{right:10px;top:10px}
.p2GotwPickBody .p2PickLockBadge{width:22px;height:22px;right:10px;top:10px}
.p2GotwPickBody .p2PickLockBadge .pcIco{width:11px;height:11px}

/* ===== Low-contrast logo shell fix (Rams / Jets / Dodgers / Iowa /
   Yankees / Marlins) =====
   The prior "high contrast" shell was still a dark navy panel, which is
   the same hue family as several of these marks (Rams navy, Yankees
   navy, Marlins near-black), so the gold/trim never actually separated
   from the background. This makes the shell a genuinely light, neutral
   frosted panel instead — real luminance contrast, no change to the
   logo image's own pixels/colors. Matches the frosted treatment already
   used for this same override class on the Hub Player Card favorite
   teams module (#hubResumeBody .pcTeamLogoWrap.p2LogoContrastHigh). */
.p2RowLogoStage.p2LogoContrastHigh{
  background:
    radial-gradient(circle at 50% 24%,rgba(255,255,255,.9),rgba(226,236,245,.86) 60%,rgba(210,222,234,.82) 100%)!important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.6),
    inset 0 10px 16px -9px rgba(255,255,255,.5),
    0 2px 6px rgba(0,0,0,.32)!important;
}
.p2RowLogoStage.p2LogoContrastHigh .p2RowLogo{
  filter:drop-shadow(0 1px 2px rgba(20,30,42,.35)) drop-shadow(0 0 1px rgba(20,30,42,.25))!important;
}
.p2HomeV3LogoStage.p2LogoContrastHigh{
  background:radial-gradient(circle at 50% 22%,rgba(255,255,255,.88),rgba(224,234,244,.82) 65%)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)!important;
}
.p2HomeV3LogoStage.p2LogoContrastHigh img{
  filter:drop-shadow(0 1px 2px rgba(20,30,42,.32))!important;
}


/* ===== GOTW multi-sport live v1 (MLB / NBA / NHL only) =====
   gotwCard() adds .p2GotwSport + .p2GotwSport--{baseball|basketball|hockey}
   to the article ONLY for non-football GOTWs, so nothing below can reach an
   NFL/CFB card; football markup and styles are frozen.

   Generated art: the image already carries the batting helmets / team
   basketballs / hockey helmets. The hero keeps an empty aria-hidden spacer
   with the ghost helmet's exact footprint (same flow height, so the live
   names, VS and meta land in the same art-safe zones) and draws nothing. */
.p2GotwCineHeroSpace{
  display:block;
  width:100%;
  height:174px;
  margin:0 auto -16px;
  pointer-events:none;
}
@media(max-width:430px){
  .p2GotwCineHeroSpace{height:154px}
}

/* Pending / fallback (queued, generating, or no art yet): same card, same
   hero height, same logo shells, VS, names and "GENERATING PREMIUM MATCHUP
   ART" pill. Only the two CSS-drawn football field layers are swapped for a
   restrained navy/cyan hint of the sport's venue. No new image assets. */
.p2GotwSport .p2GotwCinematicFallback .p2GotwStadium:before,
.p2GotwSport .p2GotwCinematicFallback .p2GotwStadium:after{
  top:auto;
  right:auto;
  border:0;
  border-radius:0;
  box-shadow:none;
  clip-path:none;
  transform:none;
  pointer-events:none;
}

/* MLB — dark ballpark, soft infield-diamond light */
.p2GotwSport--baseball .p2GotwCinematicFallback .p2GotwStadium:before{
  left:50%;
  bottom:-58px;
  width:176px;
  height:176px;
  border:1.5px solid rgba(150,215,255,.30);
  border-radius:3px;
  background:
    radial-gradient(circle at 50% 50%,rgba(150,215,255,.20) 0 3px,transparent 4px),
    radial-gradient(circle at 50% 50%,rgba(46,160,235,.16),rgba(12,58,96,.08) 58%,transparent 72%);
  box-shadow:0 0 34px rgba(58,181,255,.12),inset 0 0 26px rgba(58,181,255,.08);
  transform:translateX(-50%) perspective(420px) rotateX(58deg) rotate(45deg);
  transform-origin:center;
}
.p2GotwSport--baseball .p2GotwCinematicFallback .p2GotwStadium:after{
  left:-12%;
  right:-12%;
  bottom:-150px;
  height:280px;
  border-top:1px solid rgba(129,210,255,.20);
  border-radius:50%;
  background:radial-gradient(ellipse at 50% 0%,rgba(58,181,255,.10),transparent 58%);
}

/* NBA — dark arena, cool hardwood-light floor with a center circle */
.p2GotwSport--basketball .p2GotwCinematicFallback .p2GotwStadium:before{
  left:-8%;
  right:-8%;
  bottom:0;
  width:auto;
  height:116px;
  border-top:1px solid rgba(129,210,255,.26);
  background:
    repeating-linear-gradient(90deg,rgba(170,212,245,.055) 0 1px,transparent 1px 24px),
    linear-gradient(180deg,rgba(32,98,150,.22),rgba(10,40,66,.34) 55%,rgba(4,16,29,.70));
  box-shadow:0 -12px 32px rgba(80,190,255,.10);
  transform:perspective(300px) rotateX(46deg);
  transform-origin:bottom;
}
.p2GotwSport--basketball .p2GotwCinematicFallback .p2GotwStadium:after{
  left:50%;
  bottom:8px;
  width:168px;
  height:50px;
  border:1.5px solid rgba(150,215,255,.26);
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(58,181,255,.12),transparent 70%);
  transform:translateX(-50%);
}

/* NHL — dark rink, cool ice sheen, center line and faceoff circle */
.p2GotwSport--hockey .p2GotwCinematicFallback .p2GotwStadium:before{
  left:-8%;
  right:-8%;
  bottom:0;
  width:auto;
  height:122px;
  border-top:1px solid rgba(196,232,255,.30);
  border-radius:46% 46% 0 0/26% 26% 0 0;
  background:
    linear-gradient(90deg,transparent 49.5%,rgba(120,200,255,.30) 49.7% 50.3%,transparent 50.5%),
    linear-gradient(180deg,rgba(196,232,255,.13),rgba(120,190,240,.06) 42%,rgba(4,16,29,.62));
  box-shadow:0 -12px 34px rgba(150,215,255,.12);
  transform:perspective(300px) rotateX(46deg);
  transform-origin:bottom;
}
.p2GotwSport--hockey .p2GotwCinematicFallback .p2GotwStadium:after{
  left:50%;
  bottom:8px;
  width:160px;
  height:48px;
  border:1.5px solid rgba(196,232,255,.26);
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(150,215,255,.11),transparent 70%);
  transform:translateX(-50%);
}


/* v0.9.38 — rotating GOTW partner branding */
.p2GotwPartnerBadge{
  position:absolute;
  right:12px;
  top:12px;
  min-width:86px;
  padding:6px 8px 7px;
  border-radius:8px;
  background:linear-gradient(180deg,rgba(10,19,31,.94),rgba(5,11,19,.94));
  border:1px solid rgba(248,203,76,.42);
  color:#f7fbff;
  font-family:'Oswald',Inter,sans-serif;
  line-height:1;
  box-shadow:0 8px 18px rgba(0,0,0,.38),inset 0 0 0 1px rgba(255,255,255,.03);
  text-align:center;
}
.p2GotwPartnerBadge small{
  display:block;
  color:#9eb2c7;
  font-size:8px;
  font-weight:700;
  letter-spacing:.12em;
}
.p2GotwPartnerBadge b{
  display:block;
  margin-top:4px;
  color:#f7c94d;
  font-size:11px!important;
  font-weight:900!important;
  letter-spacing:.045em!important;
  text-shadow:none!important;
  white-space:nowrap;
}
@media(max-width:430px){
  .p2GotwPartnerBadge{right:8px;top:10px;min-width:74px;padding:5px 6px 6px}
  .p2GotwPartnerBadge small{font-size:7px}
  .p2GotwPartnerBadge b{font-size:9px!important}
}

/* v0.9.40 — GOTW header polish (presentation only).
   One centered column in normal flow: 30PICK’EM PRESENTS → GAME OF THE WEEK →
   smaller partner pill. The "Featured / SEC Showdown" line is gone, and the
   pill is no longer absolutely positioned, so it cannot collide with the title
   at any width. The art-pending pill hangs from the header's own bottom edge
   (top:100%) instead of a fixed offset. Titles are single-line and scale down
   with the viewport, so the header height is stable; the stadium clearance
   below is test-gated (qa/gotw-header-polish-v1) at 320–1280px. */
.p2GotwHeroHeader{
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  min-height:0;
  padding:11px 14px 12px;
}
.p2GotwHeroHeader .p2GotwHeroTitles{display:flex;flex-direction:column;align-items:center;max-width:100%}
.p2GotwHeroHeader .p2GotwHeroPresents{
  font-size:24px;
  white-space:nowrap;
}
.p2GotwHeroHeader .p2GotwHeroTitle{
  margin-top:3px;
  font-size:14px;
  white-space:nowrap;
}
.p2GotwHeroHeader .p2GotwPartnerBadge{
  position:static;
  display:inline-flex;
  align-items:baseline;
  justify-content:center;
  gap:6px;
  min-width:0;
  margin-top:7px;
  padding:4px 11px 4px;
  border-radius:999px;
  border-color:rgba(248,203,76,.34);
  box-shadow:0 4px 12px rgba(0,0,0,.32),inset 0 0 0 1px rgba(255,255,255,.03);
}
.p2GotwHeroHeader .p2GotwPartnerBadge small{font-size:8px;letter-spacing:.13em}
.p2GotwHeroHeader .p2GotwPartnerBadge b{margin-top:0;font-size:10.5px!important;line-height:1}
.p2GotwHeroHeader>.p2GotwArtPending{flex-direction:row;align-items:center;top:100%;margin-top:-4px}
.p2GotwHeroHeader .p2GotwArtPending span{margin:0}
.p2GotwStadium{min-height:315px;padding-top:84px}
@media(max-width:430px){
  .p2GotwHeroHeader{padding:10px 12px 11px}
  .p2GotwHeroHeader .p2GotwHeroPresents{font-size:clamp(19px,6.2vw,22px)}
  .p2GotwHeroHeader .p2GotwHeroTitle{margin-top:2px;font-size:12.5px}
  .p2GotwHeroHeader .p2GotwPartnerBadge{margin-top:6px;padding:3px 10px 4px;gap:5px}
  .p2GotwHeroHeader .p2GotwPartnerBadge small{font-size:7.5px}
  .p2GotwHeroHeader .p2GotwPartnerBadge b{font-size:9.5px!important}
  .p2GotwHeroHeader>.p2GotwArtPending{top:100%}
  .p2GotwStadium{min-height:286px;padding-top:80px}
}

/* v0.9.41 — GOTW header final polish (presentation only, CSS only).
   Hierarchy: 30PICK’EM PRESENTS → GAME OF THE WEEK (now ~20–25% larger and
   brighter, the event title) → a plain centered "POWERED BY  PARTNER" text
   line. The partner pill container is gone: no border, bubble, background or
   shadow. Markup, gotwPartnerForWeek() and the even/odd rotation are
   unchanged. The header is shorter, so the stadium below starts higher by
   the same amount (see the stadium block that follows). */
.p2GotwHeroHeader{padding:10px 14px 9px}
.p2GotwHeroHeader .p2GotwHeroPresents{font-size:23px;line-height:.98}
.p2GotwHeroHeader .p2GotwHeroTitle{
  margin-top:3px;
  color:#d7e3f0;
  font-size:17px;
  font-weight:700;
  letter-spacing:.085em;
  line-height:1;
  text-shadow:0 2px 12px rgba(0,0,0,.72);
}
.p2GotwHeroHeader .p2GotwPartnerBadge{
  position:static;
  display:inline-flex;
  align-items:baseline;
  justify-content:center;
  gap:7px;
  min-width:0;
  margin-top:6px;
  padding:0;
  border:0;
  border-radius:0;
  background:none;
  box-shadow:none;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}
.p2GotwHeroHeader .p2GotwPartnerBadge small{
  color:#8ea2b8;
  font-size:8px;
  font-weight:700;
  letter-spacing:.16em;
  line-height:1;
  text-shadow:0 1px 6px rgba(0,0,0,.8);
}
.p2GotwHeroHeader .p2GotwPartnerBadge b{
  margin-top:0;
  color:#f7c94d;
  font-size:12px!important;
  font-weight:800!important;
  letter-spacing:.07em!important;
  line-height:1;
  text-shadow:0 1px 8px rgba(0,0,0,.85)!important;
}
@media(max-width:430px){
  .p2GotwHeroHeader{padding:9px 12px 8px}
  .p2GotwHeroHeader .p2GotwHeroPresents{font-size:clamp(18px,5.6vw,21px)}
  .p2GotwHeroHeader .p2GotwHeroTitle{margin-top:3px;font-size:clamp(14.5px,4.3vw,15.5px)}
  .p2GotwHeroHeader .p2GotwPartnerBadge{margin-top:5px;gap:6px}
  .p2GotwHeroHeader .p2GotwPartnerBadge small{font-size:7.5px}
  .p2GotwHeroHeader .p2GotwPartnerBadge b{font-size:11px!important}
}
/* v0.9.41 — stadium starts higher by what the shorter header saved
   (9px ≤430, 11px above). The whole hero loses that height from the top
   only: helmets/logos, names, VS and meta keep their spacing, and the
   generated art moves up by the same amount so it stays registered with the
   names. Art top = p·(hero − art) − k, so shrinking the hero by d and
   subtracting k = (1 − p)·d moves the art up by exactly d. */
.p2GotwStadium{min-height:304px;padding-top:73px}
.p2GotwCinematicCustom{background-position:center calc(52% - 5.3px)!important}
@media(max-width:430px){
  .p2GotwStadium{min-height:277px;padding-top:71px}
  .p2GotwCinematicCustom{background-position:center calc(54% - 4.1px)!important}
}

/* v0.9.42 — GOTW premium hierarchy (presentation only, CSS only).
   GAME OF THE WEEK becomes the hero title (≈20px at 390, 24px desktop),
   30PICK’EM PRESENTS drops ~10% to a tracked broadcast kicker, and the title
   gets short thin gold hairlines either side (— GAME OF THE WEEK —) drawn as
   ::before/::after on the existing span: no markup change, no container.
   Header padding/gaps are tightened so the header is no taller than 0.9.41;
   the stadium, artwork, helmets and names are not touched. */
.p2GotwHeroHeader{padding:8px 14px 7px}
.p2GotwHeroHeader .p2GotwHeroPresents{
  font-size:20.5px;
  line-height:1;
  font-weight:600;
  letter-spacing:.08em;
  color:#ccd8e6;
}
.p2GotwHeroHeader .p2GotwHeroTitle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin-top:2px;
  color:#fff;
  font-size:24px;
  font-weight:700;
  letter-spacing:.06em;
  line-height:1;
  text-shadow:0 2px 12px rgba(0,0,0,.75),0 0 18px rgba(64,170,255,.22);
}
.p2GotwHeroHeader .p2GotwHeroTitle::before,
.p2GotwHeroHeader .p2GotwHeroTitle::after{
  content:"";
  flex:0 0 auto;
  width:22px;
  height:1px;
  border-radius:1px;
  opacity:.85;
}
.p2GotwHeroHeader .p2GotwHeroTitle::before{background:linear-gradient(90deg,rgba(247,201,77,0),rgba(247,201,77,.8))}
.p2GotwHeroHeader .p2GotwHeroTitle::after{background:linear-gradient(90deg,rgba(247,201,77,.8),rgba(247,201,77,0))}
.p2GotwHeroHeader .p2GotwPartnerBadge{margin-top:5px}
@media(max-width:430px){
  .p2GotwHeroHeader{padding:7px 12px 7px}
  .p2GotwHeroHeader .p2GotwHeroPresents{font-size:clamp(16.5px,5vw,19px);letter-spacing:.08em}
  .p2GotwHeroHeader .p2GotwHeroTitle{margin-top:2px;gap:8px;font-size:clamp(18px,5.2vw,21px)}
  .p2GotwHeroHeader .p2GotwHeroTitle::before,
  .p2GotwHeroHeader .p2GotwHeroTitle::after{width:16px}
  .p2GotwHeroHeader .p2GotwPartnerBadge{margin-top:4px}
}

/* GOTW live / final scoreboard (gotwScoreStrip): only rendered once the
   featured game is live or final, between the hero and the pick prompt. */
.p2GotwScore{
  position:relative;
  z-index:8;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:10px;
  padding:10px 18px;
  border-bottom:1px solid rgba(58,174,255,.30);
  background:linear-gradient(90deg,rgba(3,12,22,.98),rgba(7,28,48,.96),rgba(3,12,22,.98));
}
.p2GotwScoreNum{
  font-family:'Oswald',Inter,sans-serif;
  font-size:34px;
  line-height:1;
  font-weight:800;
  color:#f8fbff;
  font-variant-numeric:tabular-nums;
  text-shadow:0 0 10px rgba(10,174,255,.35);
}
.p2GotwScoreNum--away{text-align:left}
.p2GotwScoreNum--home{text-align:right}
.p2GotwScoreNum.is-trailing{color:#7f93a8;text-shadow:none}
.p2GotwScoreState{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;text-align:center}
.p2GotwScoreState em{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:3px 9px;
  border-radius:999px;
  font-family:'Oswald',Inter,sans-serif;
  font-size:11px;
  font-style:normal;
  font-weight:700;
  letter-spacing:.09em;
}
.p2GotwScore--live .p2GotwScoreState em{border:1px solid rgba(255,93,93,.5);background:rgba(60,8,12,.6);color:#ffb0b0}
.p2GotwScore--live .p2GotwScoreState em i{width:7px;height:7px;border-radius:50%;background:#ff4545;box-shadow:0 0 7px rgba(255,69,69,.7)}
.p2GotwScore--final .p2GotwScoreState em{border:1px solid rgba(148,170,194,.4);background:rgba(20,32,46,.7);color:#dce9f6}
.p2GotwScoreState small{color:#b8c6d5;font-size:10.5px;font-weight:600;letter-spacing:.04em;white-space:nowrap}
/* After kickoff the pick prompt is dropped, so the tiles get their own top gap. */
.p2GotwCinematic + .p2GotwPickBody,
.p2GotwScore + .p2GotwPickBody{padding-top:12px!important}
