/* Puckline Press (navy, red, ice; Barlow Condensed). */
:root{
  --navy:#0E1B2C;--navy-2:#182A42;--red:#C8102E;--ice:#F4F7FA;--gold:#E0B04F;
  --bg:#EEF2F6;--card:#FFFFFF;--soft:#F5F8FB;--ink:#0E1B2C;--muted:#5B6B7F;
  --line:#DDE4EC;--accent:#C8102E;--link:#1F4FA3;--win:#0F7B45;--trip-next:#E9F0F7;
  --chip-top:#FFFFFF;--chip-bot:#E4EBF3;--chip-line:#C3CFDD;
  --shadow:0 1px 2px rgba(14,27,44,.06),0 8px 24px rgba(14,27,44,.06);
  --display:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --text:Inter,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  /* chart series, fixed order (validated palette) */
  --s1:#2a78d6;--s2:#eb6834;--s3:#1baf7a;--s4:#eda100;--s5:#e87ba4;--s6:#008300;
  --s7:#4a3aa7;--s8:#e34948;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#08111D;--card:#101B2A;--soft:#0C1624;--ink:#E6EDF5;--muted:#8C9BB0;
  --line:#22324A;--accent:#F0506B;--link:#8DB2F5;--win:#4CC38A;--trip-next:#18293F;
  --chip-top:#243852;--chip-bot:#172739;--chip-line:#39527A;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.25);
  --s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s5:#d55181;--s6:#008300;--s7:#9085e9;--s8:#e66767;}}
:root[data-theme="dark"]{
  --bg:#08111D;--card:#101B2A;--soft:#0C1624;--ink:#E6EDF5;--muted:#8C9BB0;
  --line:#22324A;--accent:#F0506B;--link:#8DB2F5;--win:#4CC38A;--trip-next:#18293F;
  --chip-top:#243852;--chip-bot:#172739;--chip-line:#39527A;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.25);
  --s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s5:#d55181;--s6:#008300;--s7:#9085e9;--s8:#e66767;}

*{box-sizing:border-box}
html{scroll-padding-top:150px}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 var(--text);
  -webkit-font-smoothing:antialiased}
a{color:var(--link)}
.wrap{max-width:1240px;margin:0 auto;padding:0 20px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---- header, hero -------------------------------------------------- */
/* scoreboard strip */
/* masthead */
.site-header{background:var(--navy);color:#fff;border-bottom:3px solid var(--red)}
.bar{display:flex;align-items:center;gap:24px;height:74px}
.brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;
  margin-right:auto}
.brand-text{display:flex;flex-direction:column;gap:3px}
.tagline{font:600 11px var(--text);letter-spacing:.14em;text-transform:uppercase;
  color:#8FA3BC}
.mark{width:40px;height:40px;flex:none;object-fit:contain}
.site-header .mark{width:48px;height:48px}
.toplinks{display:flex;gap:4px}
.tl-link{font:700 16px var(--display);letter-spacing:.08em;text-transform:uppercase;
  color:#C9D4E2;background:none;border:0;border-radius:8px;padding:8px 12px;cursor:pointer}
.tl-link:hover{color:#fff;background:rgba(255,255,255,.07)}
.tl-link.tl-picks{color:var(--gold)}
.tl-x{display:flex;align-items:center;justify-content:center;width:38px;height:38px;
  margin-left:6px;border-radius:8px;color:#C9D4E2}
.tl-x:hover{color:#fff;background:rgba(255,255,255,.07)}
.foot-mark{width:64px;height:64px}
.wordmark{font:700 24px/1 var(--display);text-transform:uppercase;letter-spacing:.05em}
.site-header .wordmark{font-size:30px}
.wordmark b{color:var(--gold);font-weight:700}
.bar-date{padding:6px 12px;border:1px solid rgba(255,255,255,.18);border-radius:8px;
  font:600 15px var(--display);text-transform:uppercase;letter-spacing:.08em;
  color:#B9C6D6}
.hero{color:#fff;padding:34px 0 40px;
  background:
    radial-gradient(ellipse at 50% 38%,rgba(224,176,79,.14),transparent 45%),
    radial-gradient(circle at 50% 120%,rgba(90,130,190,.28),transparent 55%),
    linear-gradient(160deg,var(--navy-2),var(--navy) 70%)}
.hero-front{display:flex;justify-content:center}
.hero-front[hidden]{display:none}
/* featured games: their own navy band under the section buttons, on the
   landing view only (a page's content takes their place) */
.featured{color:#fff;padding:30px 0 40px;
  background:radial-gradient(ellipse at 50% 0%,rgba(224,176,79,.10),transparent 55%),
    linear-gradient(170deg,var(--navy-2),var(--navy) 75%)}
.featured:empty,.js body.has-tab .featured{display:none}
/* featured games: the headliner in the middle, the next two either side */
.features{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(0,1fr);
  gap:22px;align-items:center;width:100%}
.features.n1{grid-template-columns:minmax(0,560px);justify-content:center}
.features.n2{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);max-width:900px;
  margin:0 auto}
.hl-main{border-color:rgba(224,176,79,.55);box-shadow:0 24px 60px rgba(0,0,0,.45),
  0 0 0 1px rgba(224,176,79,.25)}
.hl-side{background:rgba(8,17,29,.4)}
.hl-side .hl-label{color:#B9C6D6}
.hl-side .hl-label .dot{background:#8FA3BC;box-shadow:0 0 0 4px rgba(143,163,188,.2)}
.hl-side .hl-go{background:rgba(255,255,255,.1)}
.hl-side .hl-go:hover{background:rgba(255,255,255,.16);filter:none}
.hl-more.hl-flanked{display:none}
.hl-list.flanked-only{display:none}
@media (max-width:1000px){
  .features,.features.n2{grid-template-columns:minmax(0,560px);justify-content:center}
  .hl-side{display:none}
  .hl-more.hl-flanked{display:flex}
  .hl-list.flanked-only{display:block}
}
/* the nameplate: the title owns the top of the page, newspaper style */
.nameplate{container-type:inline-size;text-align:center}
.np-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:8px 2px;border-top:1px solid rgba(255,255,255,.35);
  border-bottom:4px double rgba(255,255,255,.55);font:700 14px var(--display);
  letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.np-meta span:nth-child(2){color:#fff}
@media (max-width:640px){.np-meta{justify-content:center;gap:4px 14px;font-size:12px}}
.np-title{margin:0;padding:0 0 .1em;font:800 clamp(40px,10cqi,132px)/.92 var(--display);
  text-transform:uppercase;white-space:nowrap;letter-spacing:.005em;
  text-shadow:0 10px 40px rgba(0,0,0,.45)}
.np-title span{color:var(--gold)}
.np-dek{margin:0;padding:10px 0 0;border-top:4px double rgba(255,255,255,.55);
  font:600 clamp(15px,2.2cqi,22px) var(--text);letter-spacing:.14em;text-transform:uppercase;
  color:#C9D4E2}
/* tonight's headliner */
.headliner{background:rgba(8,17,29,.55);border:1px solid rgba(255,255,255,.14);
  border-radius:18px;padding:18px 20px;backdrop-filter:blur(6px);
  box-shadow:0 20px 50px rgba(0,0,0,.35)}
.hl-label{display:flex;align-items:center;gap:8px;font:700 13px var(--display);
  letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
.hl-label .dot{width:8px;height:8px;border-radius:50%;background:var(--red);
  box-shadow:0 0 0 4px rgba(200,16,46,.25)}
.hl-team{display:grid;grid-template-columns:64px 1fr auto;gap:12px;align-items:center}
.hl-team .tl img{width:56px;height:56px;display:block;
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.4))}
.hl-name{display:block;font:700 22px/1.05 var(--display);text-transform:uppercase}
.hl-rec{display:block;margin-top:3px;font-size:12.5px;color:#B9C6D6}
.hl-ml{font:700 20px var(--display);padding:4px 10px;border-radius:8px;
  background:rgba(255,255,255,.08)}
.hl-at{margin:4px 0 4px 76px;font:700 13px var(--display);color:#FF6B82;
  letter-spacing:.1em;text-transform:uppercase}
.hl-meta{margin-top:12px;font-size:12.5px;color:#B9C6D6;letter-spacing:.04em}
.hl-go{margin-top:12px;width:100%;font:700 16px var(--display);letter-spacing:.08em;
  text-transform:uppercase;color:#fff;background:var(--red);border:0;border-radius:10px;
  padding:10px;cursor:pointer}
.hl-go:hover{filter:brightness(1.1)}
.hl-list{margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.12)}
.hl-list>span{display:block;font:700 12px var(--display);letter-spacing:.14em;
  text-transform:uppercase;color:#8FA3BC;margin-bottom:4px}
.hl-more{display:flex;align-items:center;gap:6px;width:100%;background:none;border:0;
  color:#E6EDF5;font:600 13.5px var(--text);padding:6px 0;cursor:pointer;text-align:left}
.hl-more .tl img{width:22px;height:22px;display:block}
.hl-more span{margin-left:auto;color:#8FA3BC}
.hl-more:hover{color:#fff}
.hl-score{min-width:44px;text-align:center}
.hl-live .hl-score{background:rgba(200,16,46,.22)}
.hl-team.lost{opacity:.55}
.hl-team.won .hl-score{background:rgba(255,255,255,.18)}
.hl-livetag{display:inline-block;font:700 11px var(--display);letter-spacing:.12em;
  text-transform:uppercase;color:#fff;background:var(--red);padding:2px 7px;border-radius:5px;
  margin-right:4px;animation:hlpulse 2s ease-in-out infinite}
@keyframes hlpulse{50%{opacity:.6}}
@media (prefers-reduced-motion:reduce){.hl-livetag{animation:none}}
.hl-more span.hl-row-live{color:#FF6B82;font-weight:700}
.hl-extra{display:block;font-size:12.5px;color:#8FA3BC;padding-top:4px}
.hero-logo{width:260px;height:auto;filter:drop-shadow(0 12px 30px rgba(0,0,0,.45))}

/* ---- navigation ---------------------------------------------------- */
.site-nav{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--card) 92%,transparent);
  backdrop-filter:saturate(160%) blur(10px);border-bottom:1px solid var(--line);
  box-shadow:0 4px 18px rgba(14,27,44,.06)}
.site-nav .wrap{padding-top:10px;padding-bottom:10px}
.segs{display:flex;gap:8px;width:100%}  /* one row; longer names get more room */
.seg{font:700 21px/1 var(--display);text-transform:uppercase;letter-spacing:.06em;
  color:var(--ink);background:var(--card);border:2px solid var(--line);border-radius:12px;
  padding:12px 10px;cursor:pointer;display:flex;align-items:center;gap:8px;
  justify-content:center;min-width:0;text-align:center;line-height:1.05;
  flex:1 1 auto;white-space:nowrap;font-size:19px;letter-spacing:.04em;
  transition:transform .12s,border-color .12s,background .12s}
.seg:hover{border-color:var(--accent);transform:translateY(-1px)}
.seg .count{font:700 11px var(--text);background:var(--soft);color:var(--muted);
  border:1px solid var(--line);border-radius:999px;padding:2px 7px;letter-spacing:0}
.seg.active{background:var(--accent);border-color:var(--accent);color:#fff;
  box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 35%,transparent)}
.seg.active .count{background:rgba(255,255,255,.22);border-color:transparent;color:#fff}
.seg-picks{color:var(--ink)}
.seg-picks .crown{color:var(--gold);font-size:20px;line-height:1}
.seg-picks.active{background:linear-gradient(135deg,#E9BE5E,#C8952F);border-color:#C8952F;
  color:#1B1405;box-shadow:0 6px 18px rgba(200,149,47,.35)}
.seg-picks.active .crown{color:#1B1405}
.seg-picks.active .count{background:rgba(27,20,5,.18);color:#1B1405}
/* Sub buttons fill the row in equal shares; each keeps room for its text and
   they wrap to more rows on big nights. */
.chips{display:none;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;
  margin-top:12px}
.chips.active{display:grid}
.chips.solo{display:none!important}
.chip{display:flex;align-items:center;justify-content:safe center;gap:8px;min-width:0;
  font:700 17px var(--display);text-transform:uppercase;letter-spacing:.05em;
  color:var(--ink);background:var(--soft);border:1.5px solid var(--line);border-radius:10px;
  padding:11px 16px 11px 12px;cursor:pointer;white-space:nowrap;transition:.12s}
/* Sub buttons: their own raised surface, distinct from the bar behind them */
.chip{background:linear-gradient(180deg,var(--chip-top),var(--chip-bot));
  border-color:var(--chip-line);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 2px 6px rgba(0,0,0,.12)}
.chip:hover{border-color:var(--ink);background:linear-gradient(180deg,var(--chip-top),var(--chip-top))}
.chip[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:var(--card)}
.chip-logo img{width:32px;height:32px;display:block}
.chip{min-height:52px;border-radius:12px}
.chip:not(:has(.chip-logo)){padding-left:14px}
.chip[aria-selected="true"] .chip-logo img{filter:drop-shadow(0 0 1.5px rgba(127,127,127,.9))}

/* ---- page content -------------------------------------------------- */
main.wrap{padding-top:26px;padding-bottom:56px}
.js section.tab{display:none}
.js section.tab.active{display:block;animation:fade .2s ease}
@keyframes fade{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}
:is(section.tab,.live-pane)>h2{margin:4px 0 18px;font:700 38px/1 var(--display);text-transform:uppercase;
  letter-spacing:.02em}
:is(section.tab,.live-pane)>h2::after{content:"";display:block;width:56px;height:4px;margin-top:10px;
  background:var(--accent);border-radius:2px}
h3{margin:34px 0 12px;padding-left:12px;border-left:4px solid var(--accent);
  font:700 22px/1.1 var(--display);text-transform:uppercase;letter-spacing:.04em}
.cols h3,.grid h3{margin-top:0}
p{margin:8px 0}
em{color:var(--muted)}
:is(section.tab,.live-pane)>p>em,:is(section.tab,.live-pane)>p:last-child em{font-size:13px}
strong{font-weight:700}

.cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start;
  margin:0 0 18px}
.cols.one{grid-template-columns:minmax(0,1fr)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:18px;
  align-items:start;margin-bottom:18px}
.cols>div,.grid>div,.team-lines,details,:is(section.tab,.live-pane)>.tscroll,:is(section.tab,.live-pane)>ul{
  background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px;
  box-shadow:var(--shadow);min-width:0}
.cols>div>p:first-child>strong:only-child,.grid>div>p:first-child>strong:only-child{
  display:block;font:700 18px var(--display);text-transform:uppercase;letter-spacing:.05em}
.notice{margin:0 0 18px;padding:12px 16px;border-radius:12px;background:var(--card);
  border:1px solid var(--line);border-left:4px solid var(--accent);box-shadow:var(--shadow);
  font-size:14px}
.notice p{margin:0}

/* lists: flags, injuries, scoring */
.cols ul,.grid ul,:is(section.tab,.live-pane)>ul{list-style:none;margin:6px 0;padding:0}
.cols li,.grid li,:is(section.tab,.live-pane)>ul>li{position:relative;padding:7px 0 7px 18px;
  border-bottom:1px dashed var(--line)}
.cols li:last-child,.grid li:last-child,:is(section.tab,.live-pane)>ul>li:last-child{border-bottom:0}
.cols li::before,.grid li::before,:is(section.tab,.live-pane)>ul>li::before{content:"";position:absolute;
  left:2px;top:15px;width:7px;height:7px;border-radius:50%;background:var(--accent)}

/* tables */
.tscroll{overflow-x:auto;margin:6px 0 4px}
:is(section.tab,.live-pane)>.tscroll{padding:6px 10px}
table{border-collapse:collapse;width:100%;font-size:13.5px;font-variant-numeric:tabular-nums}
th{font:600 11px var(--text);text-transform:uppercase;letter-spacing:.06em;
  color:var(--muted);text-align:left;padding:9px 10px;border-bottom:2px solid var(--line);
  white-space:nowrap;vertical-align:bottom}
td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle;
  white-space:nowrap}
td.wrap{white-space:normal;min-width:220px}
td.team{font-weight:600}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:var(--soft)}
th.num,td.num{text-align:right}
th.sortable{cursor:pointer;user-select:none}
th.sortable:hover{color:var(--ink)}
th.asc::after{content:" \25B2"}th.desc::after{content:" \25BC"}
td .tl{display:inline-block;vertical-align:middle;margin-right:7px}
td .tl img{width:28px;height:28px;display:block}
.cols table{font-size:12.5px}
.cols th,.cols td{padding:6px 6px}
.cols th{letter-spacing:.03em}
.cols td:first-child{white-space:normal;min-width:90px}
.cols td .tl{margin-right:5px}
.cols td .tl img{width:22px;height:22px}
.grid table{font-size:12.5px}
.grid th,.grid td{padding:6px 4px}
.grid>div{padding:14px 10px}
.grid td .tl{margin-right:3px}
.grid td .tl img{width:21px;height:21px}
.grid th{white-space:normal;line-height:1.25;letter-spacing:.02em;font-size:10.5px}
.grid th:nth-last-child(2){white-space:nowrap}
.grid td:nth-child(2){white-space:nowrap}  /* a full name on one line */
.grid>div{overflow-x:auto}
.tscroll{scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.tscroll::-webkit-scrollbar{height:6px}
.tscroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}

/* ---- matchup + score heroes ---------------------------------------- */
.matchup-hero,.score-hero{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;
  align-items:center;margin:0 0 22px;padding:24px 28px;border-radius:18px;color:#fff;
  background:radial-gradient(circle at 50% -40%,rgba(200,16,46,.35),transparent 60%),
    linear-gradient(160deg,var(--navy-2),var(--navy));box-shadow:var(--shadow)}
.mh-team,.sh-team{display:flex;align-items:center;gap:16px;min-width:0}
.mh-team.home,.sh-team.home{flex-direction:row-reverse;text-align:right}
.tl.big img{width:84px;height:84px;display:block;
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.35))}
.mh-name,.sh-name{display:flex;flex-direction:column;min-width:0}
.mh-city{font:700 28px/1.05 var(--display);text-transform:uppercase;letter-spacing:.02em}
.mh-abbr{display:none}
.mh-ml{display:none}
.mh-rec,.sh-shots{margin-top:4px;color:#B9C6D6;font-size:13px;letter-spacing:.04em}
.mh-mid,.sh-mid{display:flex;flex-direction:column;align-items:center;gap:4px;
  text-align:center}
.mh-at{font:700 18px var(--display);color:#FF6B82}
.mh-time{font:700 34px/1 var(--display)}
.mh-venue{font-size:12px;color:#B9C6D6;text-transform:uppercase;letter-spacing:.08em}
.mh-odds{display:flex;gap:8px;align-items:center;margin-top:8px;padding:5px 12px;
  border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);
  font:600 13px var(--text)}
.mh-sep{font:700 12px var(--display);color:#FF6B82;letter-spacing:.1em}
.sh-score{margin-left:auto;font:700 72px/1 var(--display)}
.sh-team.home .sh-score{margin-left:0;margin-right:auto}
.sh-team.loss .sh-score{color:#6F8098}
.score-hero.sh5{grid-template-columns:minmax(0,1.5fr) minmax(64px,1fr) auto minmax(64px,1fr)
  minmax(0,1.5fr);gap:22px 16px}
.sh5 .sh-score{margin:0;justify-self:center}
.sh-rec{margin-top:6px;font:600 15px var(--display);letter-spacing:.06em;color:#E6EDF5}
.sh-periods{grid-column:1/-1;justify-self:center;display:grid;
  grid-template-columns:auto repeat(calc(var(--n) + 1),minmax(44px,auto));
  align-items:center;margin-top:4px;padding:8px 14px;border-radius:12px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
  font:600 15px var(--display);text-align:center;font-variant-numeric:tabular-nums}
.sh-periods>span{padding:5px 8px}
.sh-periods .sh-h{color:#B9C6D6;font-size:13px;letter-spacing:.08em;
  text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.12)}
.sh-pt{display:flex;align-items:center;gap:8px;justify-content:flex-start;
  letter-spacing:.06em;padding-right:16px!important}
.sh-pt .tl img{width:22px;height:22px;display:block}
.sh-periods .sh-t{font-weight:700;color:#fff;border-left:1px solid rgba(255,255,255,.14)}
.sh5 .sh-score.loss{color:#6F8098}
/* Goals by period under Final, beside the teams and scores: one band, no empty row */
@media (min-width:861px){
  .score-hero.sh5{row-gap:12px;padding-top:20px;padding-bottom:20px}
  .sh5>.sh-team,.sh5>.sh-score{grid-row:1/3}
  .sh5>.sh-mid{grid-column:3;grid-row:1;align-self:end}
  .sh5>.sh-periods{grid-column:3;grid-row:2;align-self:start;margin-top:0}}
.sh-final{font:700 20px var(--display);text-transform:uppercase;letter-spacing:.12em;
  padding:4px 12px;border-radius:999px;background:var(--red)}

/* ---- line cards ---------------------------------------------------- */
.team-lines h4{margin:0 0 8px;font:700 22px var(--display);text-transform:uppercase}
.team-lines h4 small{font:500 12px var(--text);color:var(--muted);text-transform:none;
  margin-left:6px}
.lgrid{margin:4px 0 12px}
.lrow{display:grid;grid-template-columns:40px repeat(3,minmax(0,1fr));gap:6px;margin:6px 0}
.f2 .lrow{grid-template-columns:40px repeat(2,minmax(0,1fr))}
.f1 .lrow{grid-template-columns:40px minmax(0,1fr)}
.f5 .lrow{grid-template-columns:40px repeat(5,minmax(0,1fr))}
.lrow.head span{font:600 11px var(--text);color:var(--muted);text-align:center;
  letter-spacing:.08em}
.lab{font:700 13px var(--display);color:var(--muted);align-self:center;line-height:1.2;
  letter-spacing:.06em}
.lab small{display:block;font:500 10px var(--text)}
.card{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:7px 6px;
  text-align:center;line-height:1.2;min-width:0}
.card .f{display:block;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis}
.card .l{display:block;font:700 16px var(--display);text-transform:uppercase;
  letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card .x{display:block;font-size:10px;color:var(--muted);text-transform:uppercase}
.card.chg{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);
  background:color-mix(in srgb,var(--accent) 7%,var(--soft))}
.card.out{opacity:.45;text-decoration:line-through}
details{margin:12px 0}
summary{cursor:pointer;font:700 16px var(--display);text-transform:uppercase;
  letter-spacing:.05em;color:var(--link)}
details[open] summary{margin-bottom:10px}
details .cols{margin:0}
details .team-lines{box-shadow:none}

/* ---- Puckline's picks ------------------------------------------------- */
:is(section.tab,.live-pane)>h2 .badge,.badge{display:inline-block;vertical-align:middle;margin-left:10px;
  font:700 13px var(--text);letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;
  border-radius:999px;background:var(--gold);color:#1B1405}
.pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}
.pick-card{position:relative;background:var(--card);border:1px solid var(--line);
  border-radius:16px;padding:16px 18px;box-shadow:var(--shadow);overflow:hidden}
.pick-card::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;
  background:linear-gradient(90deg,var(--gold),var(--accent))}
.pc-top{display:flex;align-items:center;gap:8px;font:600 13px var(--text);color:var(--muted)}
.pc-tag{font:700 12px var(--display);letter-spacing:.12em;text-transform:uppercase;
  padding:3px 9px;border-radius:6px;background:var(--ink);color:var(--card)}
.pc-tag.gold,.pc-tag.live{background:var(--gold);color:#1B1405}
.pc-live{margin:8px 0 0;font:600 13px var(--text);color:var(--muted)}
.rec-list .pc-tag{font-size:10px;padding:2px 6px;margin-left:4px}
.pc-n{font:700 15px var(--display);color:var(--muted)}
.pc-time{margin-left:auto}
.pc-main{display:flex;align-items:center;gap:14px;margin-top:14px}
.pc-logo img{width:56px;height:56px;display:block}
.pc-pick{margin:0;font:700 30px/1.05 var(--display);text-transform:uppercase}
.pc-game{margin:6px 0 0;display:flex;align-items:center;gap:6px;font:600 13px var(--text);
  color:var(--muted)}
.pc-game .tl img{width:25px;height:25px;display:block}
.pc-meta{margin:14px 0 0;display:flex;gap:12px;align-items:center}
.pc-odds{font:700 28px var(--display)}
.pc-units{font:700 16px var(--text);padding:4px 12px;border-radius:999px;
  background:var(--soft);border:1px solid var(--line)}
.pc-note{margin:12px 0 0;padding-top:10px;border-top:1px dashed var(--line);font-size:15px}
.pc-by{margin:10px 0 0;font:600 13px var(--text);color:var(--muted)}
/* odds: green plus money, red minus money */
.odds.pos{color:var(--win)}
.odds.neg{color:var(--accent)}
h3.pk-section{margin:28px 0 12px;display:flex;align-items:center;gap:10px}
.pk-count{font:700 13px var(--text);padding:2px 9px;border-radius:999px;background:var(--soft);
  border:1px solid var(--line);color:var(--muted)}
.parlay-list{display:grid;gap:16px}
.parlay-card::before{background:linear-gradient(90deg,var(--gold),#F3D48A)}
.pl-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pl-name{font:700 22px var(--display);text-transform:uppercase;letter-spacing:.02em}
.pl-price{margin-left:auto;display:flex;align-items:center;gap:10px}
.pl-odds{font:700 34px/1 var(--display)}
.parlay-card .legs{list-style:none;margin:14px 0 0;padding:0;counter-reset:leg}
.parlay-card .legs li{display:grid;grid-template-columns:44px 1fr auto;gap:14px;
  align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.parlay-card .legs li .tl img{width:40px;height:40px;display:block}
.leg-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.leg-pick{font:700 24px/1.05 var(--display);text-transform:uppercase}
.leg-game{font-size:14px;color:var(--muted)}
.leg-odds{font:700 24px var(--display)}
.pc-hint{margin:10px 0 0;font-size:13px;color:var(--muted)}
@media (max-width:640px){
  .pl-odds{font-size:28px}
  .leg-pick{font-size:20px}
  .leg-odds{font-size:20px}
  .parlay-card .legs li{grid-template-columns:34px 1fr auto;gap:10px}
  .parlay-card .legs li .tl img{width:32px;height:32px}
}
.empty{text-align:center;padding:48px 20px;background:var(--card);border:1px dashed var(--line);
  border-radius:16px}
.empty-title{font:700 28px var(--display);text-transform:uppercase;margin:0 0 6px}
.withdrawn{list-style:none;padding:0}
.withdrawn li{padding:6px 0;color:var(--muted)}
.fine-print{margin-top:22px;font-size:13px;color:var(--muted)}

/* ---- footer -------------------------------------------------------- */
.site-footer{background:var(--navy);color:#B9C6D6;padding:32px 0 40px;font-size:14px}
.foot-brand{display:flex;align-items:center;gap:10px;color:#fff;margin-bottom:10px}
a.quiet{display:flex;color:inherit;text-decoration:none;cursor:default}
.site-footer .rg{color:#fff;font-weight:600}
.site-footer .feedback{font-size:13px}
.fb-open{background:none;border:0;padding:0;font:inherit;color:#fff;cursor:pointer;
  text-decoration:underline;text-underline-offset:3px}
.fb-open:hover,.fb-open[aria-expanded="true"]{color:var(--gold)}
.fb-form{max-width:760px;margin:4px 0 18px;padding:16px;border-radius:12px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12)}
.fb-form[hidden]{display:none}
.fb-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.fb-form label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600;
  color:#DCE5EF}
.fb-form small{font-weight:400;color:#8193AA}
.fb-form input,.fb-form select,.fb-form textarea{font:14px var(--text);color:#fff;
  background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.18);border-radius:8px;
  padding:9px 10px}
.fb-form input:focus,.fb-form select:focus,.fb-form textarea:focus{outline:2px solid var(--gold);
  outline-offset:1px}
.fb-form select option{color:#0E1B2C}
.fb-msg{margin-top:12px}
.fb-form textarea{resize:vertical;min-height:90px}
.fb-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.fb-actions{display:flex;align-items:center;gap:14px;margin-top:12px}
.fb-send{font:700 15px var(--display);letter-spacing:.06em;text-transform:uppercase;
  color:#0E1B2C;background:var(--gold);border:0;border-radius:8px;padding:9px 22px;cursor:pointer}
.fb-send:disabled{opacity:.6;cursor:default}
.fb-status{font-size:13px}
.fb-status.ok{color:#7FE0A8}
.fb-status.err{color:#FF9AA8}
.site-footer .fine{font-size:12px;color:#8193AA}

/* ---- small screens ------------------------------------------------- */
@media (max-width:1100px){.cols{grid-template-columns:1fr}}
@media (max-width:1100px){.toplinks{display:none}
  .segs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
  .seg{font-size:17px;padding:11px 10px;gap:7px}}
@media (max-width:860px){
  .hero-logo{display:none}
  .matchup-hero,.score-hero{grid-template-columns:1fr;text-align:center;padding:20px}
  .mh-team,.sh-team,.mh-team.home,.sh-team.home{flex-direction:column;text-align:center}
  .sh-score,.sh-team.home .sh-score{margin:0}
  .tl.big img{width:64px;height:64px}
}
@media (max-width:600px){
  .hero{background:linear-gradient(160deg,var(--navy-2),var(--navy) 70%)}
  .wrap{padding:0 16px}
  .chips{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
  .chip{font-size:15px;min-height:48px;padding:8px 10px}
  .site-nav{position:static}  /* stacked buttons would cover a phone screen */
  .chip-logo img{width:30px;height:30px}
  .bar-date{display:none}
  .site-header .wordmark{font-size:24px}
  .tagline{display:none}
    .segs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .seg{padding:10px 8px;font-size:17px}
  :is(section.tab,.live-pane)>h2{font-size:30px}
  .f5 .lrow{grid-template-columns:40px repeat(3,minmax(0,1fr))}
}

/* ---- standings: side by side, bigger and easier to read ----------- */
#standings table{font-size:15px}
#standings th{font-size:11.5px;padding:10px 6px;letter-spacing:.02em}
#standings td{padding:11px 6px}
#standings td .tl img{width:30px;height:30px}
#standings td .tl{margin-right:6px}
#standings td.team{font-size:15.5px}
#standings .cols>div{padding:16px 14px}
#standings .cols>div>p:first-child>strong:only-child{font-size:20px}
#standings td:first-child{min-width:0;width:26px;white-space:nowrap}
/* Narrower screens: stack the standings rather than make them scroll. */
@media (max-width:1300px){#standings .cols{grid-template-columns:1fr}}
.good-bet{color:var(--win);font-weight:700}
.bad-bet{color:var(--accent);font-weight:700}

/* ---- strength of schedule ------------------------------------------- */
.sos-intro{color:var(--muted)}
.sos-card{background:var(--card);border:1px solid var(--line);border-radius:16px;
  padding:16px 18px;box-shadow:var(--shadow);margin-top:10px}
.sos-tools{display:flex;justify-content:space-between;align-items:center;gap:10px;
  flex-wrap:wrap;margin-bottom:10px}
.sos-mode{display:inline-flex;padding:3px;border-radius:10px;background:var(--soft);
  border:1px solid var(--line)}
.sos-mode{flex-wrap:wrap;gap:4px}
.sos-mode button{font:700 15px var(--text);border:0;background:none;color:var(--muted);
  padding:10px 18px;border-radius:9px;cursor:pointer}
.sos-mode button:hover{color:var(--ink)}
.sos-mode button.on{background:var(--accent);color:#fff;box-shadow:none}
.sos-clear{font:600 13px var(--text);border:0;background:none;
  color:var(--muted);padding:6px 12px;border-radius:8px;cursor:pointer}
.sos-clear:hover{color:var(--ink)}
.sos-chart{position:relative;min-height:280px;border-radius:12px;background:var(--soft);
  border:1px solid var(--line);overflow:hidden}
.sos-empty{margin:0;position:absolute;inset:0;display:grid;place-items:center;
  color:var(--muted);font:600 15px var(--text)}
.sos-svg{display:block;width:100%;height:auto;touch-action:pan-y}
.sos-grid{stroke:var(--line);stroke-width:1}
.sos-zero{stroke:var(--muted);stroke-width:1;opacity:.6}
.sos-axis{fill:var(--muted);font:500 11px var(--text)}
.sos-band{fill:var(--muted);font:700 11px var(--display);letter-spacing:.14em;opacity:.7}
.sos-cross{stroke:var(--muted);stroke-width:1}
.sos-dot{stroke:var(--card);stroke-width:2}
.sos-tip{position:absolute;z-index:2;pointer-events:none;min-width:220px;max-width:420px;
  background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 10px;
  box-shadow:var(--shadow);font-size:12.5px;color:var(--ink)}
.sos-tip-h{font:700 12px var(--display);letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);margin-bottom:4px}
.sos-tip-row{display:flex;align-items:baseline;gap:6px;padding:2px 0}
.sos-tip-row b{white-space:nowrap}
.sos-tip-row span:last-child{color:var(--muted)}
.sos-tip-sw{flex:none;width:18px;border-top:3px solid;transform:translateY(-3px)}
.sos-legend{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 2px;min-height:4px}
.sos-chip{display:flex;align-items:center;gap:6px;font:700 13px var(--text);color:var(--ink);
  background:var(--soft);border:1px solid var(--line);border-radius:999px;padding:4px 10px;
  cursor:pointer}
.sos-chip .x{color:var(--muted);font-weight:400}
.sos-teams{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px;
  margin-top:14px}
.sos-div-name{display:block;font:700 13px var(--display);letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);margin:2px 0 6px}
.sos-div{display:flex;flex-wrap:wrap;gap:6px;align-content:flex-start}
.sos-div-name{flex-basis:100%}
.sos-team,.sched-team,.news-team,.trip-team,.tm-team,.ij-team{--pick:transparent;flex:1 1 calc(25% - 6px);min-width:70px;display:flex;
  align-items:center;justify-content:center;gap:5px;font:700 13px var(--text);
  color:var(--ink);background:var(--soft);border:1.5px solid var(--line);border-radius:9px;
  padding:7px 6px;min-height:46px;gap:6px;cursor:pointer;position:relative}
.sos-team .tl img,.sched-team .tl img,.news-team .tl img,.trip-team .tl img,.tm-team .tl img,.ij-team .tl img{width:36px;height:36px;display:block}
.sos-team:hover,.sched-team:hover,.news-team:hover,.trip-team:hover,.tm-team:hover,.ij-team:hover{border-color:var(--ink)}
.sos-team[aria-pressed="true"],.sched-team[aria-pressed="true"],.news-team[aria-pressed="true"],.trip-team[aria-pressed="true"],.tm-team[aria-pressed="true"],.ij-team[aria-pressed="true"]{border-color:var(--pick);box-shadow:inset 0 0 0 1px var(--pick);
  background:var(--card)}
.sos-swatch{position:absolute;left:0;right:0;bottom:-1.5px;height:3px;border-radius:0 0 9px 9px;
  background:var(--pick)}
.sos-table{margin-top:6px}

/* Landing: until a page is picked, only the header and section buttons. */
.js body:not(.has-tab) main .notice{display:none}
.js body:not(.has-tab) main.wrap{padding-top:0;padding-bottom:0}

/* ---- schedules --------------------------------------------------------- */
.sched-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:16px;margin-top:16px;align-items:start}
.sched-empty{color:var(--muted);text-align:center;padding:24px}
.sched-card{background:var(--card);border:1px solid var(--line);border-radius:16px;
  box-shadow:var(--shadow);overflow:hidden}
.sched-head{display:flex;align-items:center;gap:10px;margin:0;padding:12px 16px;
  font:700 24px var(--display);text-transform:uppercase;border-bottom:1px solid var(--line)}
.sched-head .tl img{width:36px;height:36px;display:block}
.sched-x{margin-left:auto;border:0;background:none;color:var(--muted);font-size:22px;
  cursor:pointer}
/* No inner scroll: the page scrolls, so 2-3 schedules move together row by row. */
.sched-scroll{overflow:visible}
.sched-card table{font-size:14px}
.sched-card th{background:var(--card)}
.sched-opp{display:inline-flex;align-items:center;gap:6px;font-weight:600}
.sched-opp .tl img{width:25px;height:25px;display:block}
.sched-at{color:var(--muted);font-weight:500;width:18px}
.sched-card tr.played td{color:var(--muted)}
.sched-final{font:700 16px var(--display);color:var(--ink)!important}
.sched-time{color:var(--muted)}

/* ---- power rankings: one card per team ------------------------------ */
.pr-list{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:12px}
.pr-card{display:grid;grid-template-columns:64px 56px 1fr;align-items:start;gap:18px;
  background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 22px}
.pr-card.pr-top{border-left:4px solid var(--gold)}
.pr-rank{font:800 44px/1 var(--display);color:var(--ink);text-align:center;padding-top:4px}
.pr-top .pr-rank{color:var(--gold)}
.pr-move{display:block;margin-top:6px;font:700 14px/1 var(--display);letter-spacing:.02em}
.pr-move.up{color:var(--win)}.pr-move.down{color:var(--accent)}
.pr-move.same{color:var(--muted)}
.pr-logo img{width:56px;height:56px;display:block}
.pr-body{min-width:0}
.pr-head{display:flex;align-items:center;justify-content:space-between;gap:12px 24px;flex-wrap:wrap}
.pr-name{margin:0;padding:0;border:0;font:700 26px/1.1 var(--display);text-transform:uppercase;letter-spacing:.02em}
.pr-stats{display:flex;gap:6px 22px;flex-wrap:wrap}
.pr-stat{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}
.pr-stat b{font:700 18px var(--display);font-variant-numeric:tabular-nums}
.pr-stat small{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.pr-take{margin:10px 0 0;font-size:16px;line-height:1.65;max-width:70ch;color:var(--ink)}
.pr-empty{color:var(--muted);font-style:italic}
@media (max-width:640px){
  .pr-card{grid-template-columns:40px 40px 1fr;gap:12px;padding:14px 16px}
  .pr-rank{font-size:30px}
  .pr-logo img{width:40px;height:40px}
  .pr-name{font-size:21px}
  .pr-stat{align-items:flex-start}
  .pr-take{font-size:15px}
}

/* ---- news ----------------------------------------------------------- */
h3.nw-day{margin:28px 0 12px}
.nw-list{display:grid;gap:10px}
.nw-card{display:grid;grid-template-columns:96px 1fr;gap:18px;align-items:start;
  background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 20px}
.nw-side{display:flex;flex-direction:column;align-items:center;gap:4px;padding-top:2px}
.nw-logo img{width:64px;height:64px;display:block}
.nw-team{font:700 20px var(--display);letter-spacing:.08em;color:var(--ink)}
.nw-league{font-size:26px;padding-top:14px}
.nw-body{min-width:0}
.nw-tags{display:flex;gap:8px;flex-wrap:wrap}
.nw-kind,.nw-reported{font:700 12px var(--display);text-transform:uppercase;letter-spacing:.08em;
  padding:2px 8px;border-radius:6px;background:var(--soft);color:var(--muted);border:1px solid var(--line)}
.nw-reported{color:#9A6A00;background:color-mix(in srgb,var(--gold) 16%,var(--card));
  border-color:color-mix(in srgb,var(--gold) 50%,var(--line))}
:root[data-theme="dark"] .nw-reported{color:var(--gold)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .nw-reported{color:var(--gold)}}
h3.nw-head{margin:8px 0 0;padding:0;border:0;font:700 22px/1.15 var(--display);
  text-transform:uppercase;letter-spacing:.01em}
.nw-detail{margin:6px 0 0;font-size:16px;line-height:1.6;max-width:70ch}
.nw-src{display:inline-block;margin-top:8px;font-size:13px;font-weight:600;color:var(--link);
  text-decoration:none}
.nw-src:hover{text-decoration:underline}
@media (max-width:640px){
  .nw-card{grid-template-columns:56px 1fr;gap:12px;padding:14px}
  .nw-logo img{width:44px;height:44px}
  .nw-team{font-size:16px}
  h3.nw-head{font-size:19px}
  .nw-detail{font-size:15px}
}
/* news: team filter */
.news-filter{background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:14px 16px;margin:14px 0 6px}
.nf-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;
  font:700 14px var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.nf-clear{font:600 13px var(--text);color:var(--link);background:none;border:0;cursor:pointer}
.news-team.nf-league{margin-bottom:10px;width:auto;flex:none;padding:6px 14px}
.news-team[aria-pressed="true"]{--pick:var(--accent)}
.nf-none{margin:12px 0 0;color:var(--muted)}
.nw-card[hidden],.nw-group[hidden]{display:none}
.nf-kinds{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.nf-kind{font:700 15px var(--display);letter-spacing:.06em;text-transform:uppercase;
  padding:9px 16px;border-radius:10px;border:2px solid var(--line);background:var(--soft);
  color:var(--ink);cursor:pointer}
.nf-kind:hover{border-color:var(--ink)}
.nf-kind.on{background:var(--accent);border-color:var(--accent);color:#fff}
.ar-kind{background:color-mix(in srgb,var(--gold) 22%,var(--card));color:var(--ink);
  border-color:color-mix(in srgb,var(--gold) 55%,var(--line))}
.ar-card{border-left:4px solid var(--gold)}
.ar-card .nw-side{gap:6px}
h3.ar-head{font-size:26px}
.ar-by{margin:6px 0 0;font-size:13px;color:var(--muted)}
.col-card{margin:0 0 22px;padding:20px 26px;background:var(--card);
  border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:14px;
  box-shadow:var(--shadow)}
.col-card p{margin:0 0 12px;font-size:16.5px;line-height:1.7}
.col-card>p:first-child{font-size:18px;line-height:1.65}
.col-card>p:last-child{margin-bottom:0}
.pv-by{margin:14px 0 0;font:700 14px var(--display);letter-spacing:.1em;
  text-transform:uppercase;color:var(--gold)}
@media (max-width:600px){.col-card{padding:16px 18px}
  .col-card>p:first-child{font-size:17px}}
.ar-more{margin-top:10px}
.ar-more summary{cursor:pointer;font:700 15px var(--display);letter-spacing:.06em;
  text-transform:uppercase;color:var(--link)}
.ar-body{margin-top:10px;font-size:16px;line-height:1.7;max-width:72ch}
.ar-body h2{font-size:22px;margin:22px 0 8px}
.ar-src-h{margin:16px 0 4px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted)}
.ar-src{margin:0;padding-left:18px;font-size:13px}
.ar-group[hidden]{display:none}
/* road trips: one team's trips */
.trip-team[aria-pressed="true"]{--pick:var(--accent)}
.trips-out{margin-top:16px;position:relative}
.trips-empty{margin:0;padding:18px 0;color:var(--muted)}
.trips-head{display:flex;align-items:center;gap:12px;margin:0 0 12px}
.trips-head .tl img{width:44px;height:44px;display:block}
.trips-head h3{margin:0;padding:0;border:0;font:700 26px var(--display);text-transform:uppercase}
.trips-head small{color:var(--muted);font-size:14px}
.trip{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 18px;
  margin-bottom:10px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 18px;
  align-items:center}
.trip.next{background:var(--trip-next)}
.trip.next .trip-tag{background:none;color:var(--ink);border:1px solid var(--line)}
.trip.done{opacity:.85}
.trip-when{font:700 20px var(--display);text-transform:uppercase}
.trip-when small{font:600 13px var(--text);text-transform:none;color:var(--muted);margin-left:8px}
.trip-tag{font:700 11px var(--display);letter-spacing:.1em;text-transform:uppercase;padding:2px 8px;
  border-radius:6px;background:var(--accent);color:#fff;margin-left:8px;vertical-align:middle}
.trip-side{display:flex;align-items:center;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.trip-sos{font:700 15px var(--display);padding:4px 10px;border-radius:8px;border:1px solid var(--line)}
.trip-sos.easy{color:var(--win);border-color:color-mix(in srgb,var(--win) 50%,var(--line))}
.trip-sos.hard{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}
.trip-rec{font:700 15px var(--display);padding:4px 10px;border-radius:8px;background:var(--soft)}
.trip-stops{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}
.stop{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:10px;
  background:var(--soft);border:1px solid var(--line);font:600 14px var(--text)}
.stop .tl img{width:28px;height:28px;display:block}
.stop small{color:var(--muted);font-weight:500}
.stop .res{font:700 13px var(--display);padding:1px 6px;border-radius:5px;color:#fff}
.res.w{background:var(--win)}.res.l{background:var(--accent)}.res.otl{background:#B7791F}
@media (max-width:640px){.trip{grid-template-columns:1fr}.trip-side{justify-content:flex-start}}
/* an article on its own page */
.art-page{max-width:820px;padding-top:28px;padding-bottom:56px}
.art-back a{font:700 14px var(--display);letter-spacing:.08em;text-transform:uppercase;
  color:var(--link);text-decoration:none}
.art-logos{display:flex;gap:10px;margin:18px 0 8px}
.art-logos .tl img{width:48px;height:48px;display:block}
h1.art-title{margin:10px 0 0;font:700 clamp(32px,5vw,52px)/1.05 var(--display);
  text-transform:uppercase}
.art-dek{font-size:19px;line-height:1.5;color:var(--muted);margin:12px 0 0}
.art-body{font-size:17px;max-width:none}
/* Puckline's record */
.rec-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;
  margin:14px 0 6px}
.rec-tile{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.rec-tile b{display:block;font:700 34px/1 var(--display)}
.rec-tile b.pos{color:var(--win)}.rec-tile b.neg{color:var(--accent)}
.rec-tile span{display:block;margin-top:6px;font-size:12px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--muted)}
.rec-list small{color:var(--muted)}
.res-win,.res-loss,.res-void,.res-ungraded{font:700 12px var(--display);padding:2px 8px;
  border-radius:5px;letter-spacing:.06em}
.res-win{background:var(--win);color:#fff}.res-loss{background:var(--accent);color:#fff}
.res-void,.res-ungraded{background:var(--soft);border:1px solid var(--line)}
/* injury report */
.ij-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.ij-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.ij-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.ij-head .tl img{width:34px;height:34px;display:block}
.ij-head span{margin-left:auto;font:700 13px var(--text);color:var(--muted)}
.ij-card ul{list-style:none;margin:0;padding:0}
.ij-card li{padding:7px 0;border-top:1px solid var(--line);display:grid;gap:2px}
.ij-card li b{font-size:15px}
.ij-card li small{color:var(--muted);font-size:13px}
.ij-card li a,.ij-card li em{font-size:12px;color:var(--link);text-decoration:none;font-style:normal}
.ij-none{color:var(--muted);font-size:14px}
.ij-st{justify-self:start;font:700 11px var(--display);letter-spacing:.08em;text-transform:uppercase;
  padding:2px 7px;border-radius:5px;background:var(--accent);color:#fff}
.ij-day-to-day,.ij-questionable,.ij-game-time-decision{background:color-mix(in srgb,var(--gold) 30%,var(--card));
  color:var(--ink);border:1px solid var(--gold)}
/* team pages */
.tm-team[aria-pressed="true"]{--pick:var(--accent)}
.tm-panel[hidden]{display:none}
.tm-panel{margin-top:16px}
.tm-head{display:flex;align-items:center;gap:16px;background:var(--card);border:1px solid var(--line);
  border-radius:14px;padding:14px 18px}
.tm-head .tl img{width:72px;height:72px;display:block}
.tm-head h3{margin:0;padding:0;border:0;font:700 30px var(--display);text-transform:uppercase}
.tm-head p{margin:4px 0 0;color:var(--muted)}
.tm-cup{margin-left:auto;font:700 16px var(--display)}
.tm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;margin-top:12px}
.tm-box{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 16px}
.tm-box h4{margin:0 0 8px;font:700 15px var(--display);letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted)}
.tm-wide{grid-column:1/-1}
.tm-games,.tm-list{list-style:none;margin:0;padding:0}
.tm-games li,.tm-list li{display:flex;align-items:center;gap:8px;padding:7px 0;border-top:1px solid var(--line);
  flex-wrap:wrap}
.tm-games li:first-child,.tm-list li:first-child{border-top:0}
.tm-games .tl img{width:25px;height:25px;display:block}
.tm-d{min-width:92px;color:var(--muted);font-size:13px}
.tm-list small,.tm-games small{color:var(--muted)}
.tm-list.ij-card{background:none;border:0;padding:0}
.tm-list.ij-card li{display:grid}
.tm-links{margin:12px 0 0;font-size:14px}
/* archive */
.arc-days{display:flex;flex-wrap:wrap;gap:8px}
.arc-days a{padding:8px 12px;border-radius:10px;background:var(--card);border:1px solid var(--line);
  color:var(--ink);text-decoration:none;font:600 14px var(--text)}
.arc-days a:hover{border-color:var(--ink)}
.arc-arts{padding-left:18px}.arc-arts small{color:var(--muted)}
.foot-links{margin:6px 0}.foot-links a{color:#fff}
.foot-x{margin:8px 0}.foot-x a{display:inline-flex;align-items:center;gap:8px;
  color:#fff;font-weight:600;text-decoration:none}
.foot-x a:hover span{text-decoration:underline}
/* email signup (footer) */
.signup{max-width:560px;margin:10px 0 14px;display:grid;gap:8px}
.signup label{color:#DCE5EF;font-size:14px}
.signup-row{display:flex;gap:8px}
.signup input{flex:1;font:15px var(--text);padding:10px 12px;border-radius:8px;
  border:1px solid rgba(255,255,255,.2);background:rgba(0,0,0,.25);color:#fff}
.signup button{font:700 15px var(--display);letter-spacing:.06em;text-transform:uppercase;
  background:var(--gold);color:#1B1405;border:0;border-radius:8px;padding:10px 18px;cursor:pointer}
.ij-team[aria-pressed="true"]{--pick:var(--accent)}
.ij-card[hidden],.ij-div[hidden]{display:none}

/* ---- live game pages (live.js) -------------------------------------- */
.live [hidden]{display:none!important}
.live-head{margin:0 0 14px}
.lv-board{margin-bottom:14px}
.lv-status{display:inline-flex;align-items:center;gap:8px;font:700 20px var(--display);
  text-transform:uppercase;letter-spacing:.1em;padding:4px 14px;border-radius:999px;
  background:rgba(255,255,255,.1)}
.lv-status.live{background:var(--red)}
.lv-status.final{background:var(--red)}
.lv-status.int{background:rgba(224,176,79,.22);color:var(--gold)}
.lv-dot{width:8px;height:8px;border-radius:50%;background:#fff;animation:lvpulse 1.6s infinite}
@keyframes lvpulse{50%{opacity:.25}}
@media (prefers-reduced-motion:reduce){.lv-dot{animation:none}}
.lv-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.sh-team.home .lv-badges{justify-content:flex-end}
.lv-badge{font:700 12px var(--display);letter-spacing:.08em;text-transform:uppercase;
  padding:2px 8px;border-radius:6px;background:var(--gold);color:var(--navy)}
table.ls{width:auto;margin:10px auto 2px;border-collapse:collapse;font:600 12px var(--text);
  color:#D5DEEA;background:none;box-shadow:none;border:0}
table.ls th,table.ls td{padding:2px 7px;text-align:center;border:0;background:none;
  color:inherit;white-space:nowrap}
table.ls th{color:#8FA3BC;font-weight:600}
table.ls td:first-child{text-align:left;color:#B9C6D6}
table.ls tr:nth-child(2) td{border-bottom:1px solid rgba(255,255,255,.14)}
.lv-tv,.lv-odds{font-size:12px;color:#B9C6D6;margin-top:4px}
.lv-tv span,.lv-odds>span:first-child{font:700 11px var(--display);letter-spacing:.1em;
  text-transform:uppercase;color:#FF6B82;margin-right:6px}
.lv-odds .odds.pos{color:#5FD69B}.lv-odds .odds.neg{color:#FF8FA1}
.lv-tracker{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--gold);
  border-radius:14px;padding:12px 16px;box-shadow:var(--shadow)}
.lv-tracker h4{margin:0 0 6px;font:700 15px var(--display);letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted)}
.lv-tracker ul{list-style:none;margin:0;padding:0}
.lv-pick{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 0;
  border-bottom:1px solid var(--line)}
.lv-pick:last-child{border-bottom:0}
.lv-pn{font:700 14px var(--display);color:var(--muted)}
.lv-pick small{color:var(--muted)}
.lv-ps{margin-left:auto;font:700 14px var(--display);letter-spacing:.06em;text-transform:uppercase;
  padding:2px 10px;border-radius:999px;background:var(--soft);border:1px solid var(--line)}
.lv-pick.good .lv-ps{color:var(--win);border-color:var(--win)}
.lv-pick.bad .lv-ps{color:var(--accent);border-color:var(--accent)}
.lv-note{margin:6px 0 0;font-size:12px;color:var(--muted)}
.lv-stale{margin:6px 0 0;font-size:12px;color:var(--muted);text-align:center}
.live-btns{display:flex;gap:8px;margin:0 0 18px;flex-wrap:wrap}
.live-btn{flex:1 1 0;min-width:120px;font:700 17px var(--display);letter-spacing:.06em;
  text-transform:uppercase;padding:11px 14px;border-radius:12px;cursor:pointer;color:var(--ink);
  background:linear-gradient(var(--chip-top),var(--chip-bot));border:1px solid var(--chip-line)}
.live-btn.on{background:var(--navy);color:#fff;border-color:var(--navy);
  box-shadow:inset 0 -3px 0 var(--gold)}
.lv-h{margin:4px 0 2px;font:700 30px/1 var(--display);text-transform:uppercase}
.lv-sub{margin:4px 0 14px;font-size:13px;color:var(--muted)}
.live-pane h3{font:700 22px var(--display);text-transform:uppercase;margin:18px 0 8px}
.live-pane h4{font:700 16px var(--display);text-transform:uppercase;letter-spacing:.06em;
  margin:12px 0 6px;color:var(--muted);display:flex;align-items:center;gap:6px}
ol.lv-feed{list-style:none;margin:0 0 8px;padding:0;background:var(--card);
  border:1px solid var(--line);border-radius:12px;overflow:hidden}
ol.lv-feed li{display:grid;grid-template-columns:48px 22px 1fr;gap:10px;align-items:center;
  padding:7px 12px;border-bottom:1px solid var(--line);font-size:14px}
ol.lv-feed li:last-child{border-bottom:0}
ol.lv-feed li::before{display:none}
.lv-t{font:600 13px var(--text);color:var(--muted);font-variant-numeric:tabular-nums}
.lv-nologo{width:20px}
ol.lv-feed li.lv-goal{background:rgba(224,176,79,.16);font-weight:500}
ol.lv-feed li.lv-pen{background:rgba(200,16,46,.07)}
ol.lv-feed li.lv-mark{background:var(--soft);font:700 13px var(--display);letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted)}
ol.lv-feed li.lv-quiet{color:var(--muted)}
.lv-tag{font:700 11px var(--display);letter-spacing:.08em;padding:1px 6px;border-radius:5px;
  background:var(--navy);color:#fff}
.lv-run{font-weight:600;color:var(--muted);white-space:nowrap}
.lv-none{color:var(--muted);font-size:14px}
.lv-sum ol.lv-feed li{grid-template-columns:44px 22px 1fr}
table.lv-cmp{max-width:520px}
@media (max-width:860px){
  .lv-board{grid-template-columns:1fr 1fr;gap:10px 12px;padding:16px}
  .lv-board .sh-mid{grid-column:1/-1;order:3}
  .lv-board .sh-team{gap:6px}
  .lv-board .sh-score{font-size:56px}
  .lv-board .mh-city{font-size:18px}
  .lv-board .sh-team.home .lv-badges{justify-content:center}
  .lv-board .lv-badges{justify-content:center}
}
@media (max-width:600px){
  .live-btn{min-width:0;font-size:15px;padding:10px 6px}
  ol.lv-feed li{grid-template-columns:40px 20px 1fr;gap:8px;padding:7px 10px;font-size:13px}
  table.ls th,table.ls td{padding:2px 4px}
}
small.src{margin-left:6px;font-size:12px;color:var(--muted);white-space:nowrap}

/* ---- scoreboards (recap buttons, News recaps, front page) ------------ */
.sb{display:inline-flex;align-items:center;gap:12px;white-space:nowrap}
.sb-side{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-weight:600}
.sb-side.sb-win{color:inherit;font-weight:700}
.sb-logo img{width:28px;height:28px;display:block}
.sb-goals{font:700 1.2em/1 var(--display);min-width:1ch;text-align:center}
.sb-end{font:700 11px var(--text);letter-spacing:.06em;padding:2px 6px;border-radius:6px;
  background:var(--soft);border:1px solid var(--line);color:var(--muted)}
.chip[aria-selected="true"] .sb-side{color:inherit;opacity:.65}
.chip[aria-selected="true"] .sb-side.sb-win{opacity:1}
.chip[aria-selected="true"] .sb-end{background:transparent;color:inherit}
.rc-head .sb{font:700 22px var(--display);gap:20px}
.rc-head .sb-logo img{width:32px;height:32px}
.rc-head .sb-end{font-size:12px}

/* ---- front page: last night's scores and the latest news ------------- */
.front-more{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:22px;
  margin-top:30px;align-items:start}
.front-more:has(>.fm-block:only-child){grid-template-columns:minmax(0,1fr)}
.fm-block{background:rgba(8,17,29,.45);border:1px solid rgba(255,255,255,.12);
  border-radius:16px;padding:16px 18px}
.fm-h{margin:0 0 12px;font:700 13px var(--display);letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold)}
.fm-scores{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.fm-scores>.fm-score{flex:0 1 calc(50% - 4px);min-width:0}
@media (max-width:420px){.fm-scores>.fm-score{flex-basis:100%}}
.fm-score{display:flex;justify-content:center;padding:10px 8px;border-radius:10px;
  border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);cursor:pointer;
  font:15px var(--text);color:#fff}
.fm-score:hover{border-color:var(--gold)}
.fm-score{container-type:inline-size;padding:10px 6px;font-size:14px}
/* every tile the same layout: logo, team, score twice, then a fixed OT/SO slot */
.fm-score .sb{display:grid;grid-template-columns:auto auto 22px;column-gap:8px}
.fm-score .sb-side{display:grid;grid-template-columns:20px 2.5em 1em;column-gap:4px}
.fm-score .sb-logo img{width:20px;height:20px}
.fm-score .sb-goals{text-align:right}
.fm-score .sb-end{justify-self:end;padding:2px 3px;font-size:9px}
@container (max-width:190px){
  .fm-score .sb-logo{display:none}
  .fm-score .sb-side{grid-template-columns:2.5em 1em}}
.featured .sb-side{color:#8FA3BC}
.featured .sb-side.sb-win{color:#fff}
.featured .sb-end{background:rgba(255,255,255,.1);border-color:transparent;color:#C9D4E2}
.fm-news{list-style:none;margin:0;padding:0}
.fm-item{display:flex;gap:10px;align-items:center;width:100%;text-align:left;background:none;
  border:0;border-bottom:1px solid rgba(255,255,255,.08);padding:9px 0;color:#E6EDF5;
  font:600 14px/1.35 var(--text);cursor:pointer}
.fm-news li:last-child .fm-item{border-bottom:0}
.fm-item:hover{color:var(--gold)}
.fm-item .tl img{width:28px;height:28px;display:block}
.fm-nhl{flex:none;font:700 11px var(--display);letter-spacing:.08em;padding:3px 5px;
  border-radius:5px;background:rgba(255,255,255,.1)}
.fm-all{margin-top:10px;padding:0;background:none;border:0;color:var(--gold);cursor:pointer;
  font:700 14px var(--display);letter-spacing:.08em;text-transform:uppercase}
.front-more:has(>.w2){grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,.85fr)}
.front-more>.snap{grid-column:1/-1}
.snap-tables{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px 64px}
.snap-tables .w2-t{max-width:250px}
@media (max-width:1100px){.snap-tables{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 48px}}
@media (max-width:520px){.snap-tables{grid-template-columns:minmax(0,1fr)}
  .snap-tables .w2-t{max-width:none}}
.w2-note{margin:0 0 10px;color:#B9C6D6;font-size:13px;line-height:1.45}
.w2-tables{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
.w2-t{width:100%;border-collapse:collapse;color:#E6EDF5;font:600 14px var(--text)}
.w2-t th{text-align:left;font:700 12px var(--display);letter-spacing:.1em;text-transform:uppercase;
  color:#B9C6D6;padding:0 0 6px;border-bottom:1px solid rgba(255,255,255,.12)}
.w2-t td{padding:6px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.w2-t tr:last-child td{border-bottom:0}
.w2-t td:first-child{display:flex;align-items:center;gap:8px}
.w2-t .tl img{width:28px;height:28px;display:block}
.w2-t .num{text-align:right;font-variant-numeric:tabular-nums;padding-left:8px}
.off-night{color:#fff;padding:8px 0 4px}
.off-night h2{margin:0 0 6px;font:700 40px/1.05 var(--display);text-transform:uppercase}
.off-night h3{margin:22px 0 10px;font:700 20px var(--display);text-transform:uppercase;color:var(--gold)}
.off-dek{margin:0;color:#B9C6D6}
.off-table{border-collapse:collapse;min-width:280px;font:600 15px var(--text)}
.off-table th{text-align:left;font:700 12px var(--display);letter-spacing:.1em;
  text-transform:uppercase;color:#B9C6D6;padding:0 18px 6px 0}
.off-table td{padding:7px 18px 7px 0;border-top:1px solid rgba(255,255,255,.1);
  font-variant-numeric:tabular-nums}
.off-game{display:inline-flex;align-items:center;gap:6px}
.off-game .tl img{width:28px;height:28px;display:block}
main .off-dek,main .off-table th{color:var(--muted)}
main .off-table td{border-top-color:var(--line)}
@media (max-width:1100px){.front-more:has(>.w2){grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .front-more>.w2{grid-column:1/-1}}
@media (max-width:860px){.front-more,.front-more:has(>.w2){grid-template-columns:minmax(0,1fr)}}
@media (max-width:860px){
  .score-hero.sh5{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px 12px;
    grid-template-areas:"at mid ht" "as mid hs"}
  .sh5>:nth-child(1){grid-area:at}.sh5>:nth-child(2){grid-area:as}
  .sh5>:nth-child(3){grid-area:mid}.sh5>:nth-child(4){grid-area:hs}
  .sh5>:nth-child(5){grid-area:ht}
  .sh5 .sh-score{font-size:56px;justify-self:center}
  .score-hero.sh5{grid-template-areas:"at mid ht" "as mid hs" "per per per"}
  .sh5>.sh-periods{grid-area:per}
  .sh5 .sh-team{min-width:0}.sh5 .mh-city{overflow-wrap:anywhere}
  .sh5 .mh-city{font-size:20px}}

/* ---- game page: odds beside the goalies ------------------------------ */
.odds-row{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.odds-row td,.odds-row th{padding:6px 8px}
.odds-row th .tl img{width:25px;height:25px}
.odds-row th .tl{display:inline-block;vertical-align:middle;margin-right:6px}
@media (max-width:1100px){.odds-row{grid-template-columns:minmax(0,1fr)}}
.rs-note{margin-top:10px}

/* ---- phones: wide tables keep the name column and scroll sideways ---- */
@media (max-width:700px){
  .tscroll td:first-child,.tscroll th:first-child{position:sticky;left:0;z-index:1;
    background:var(--card);white-space:nowrap}
  .cols td:first-child{white-space:nowrap}
  .tscroll{background:
    linear-gradient(to left,var(--card) 30%,transparent) right/40px 100% no-repeat local,
    radial-gradient(farthest-side at 100% 50%,rgba(0,0,0,.45),transparent) right/14px 100% no-repeat scroll}
}

/* Puckline's Picks: a pass, or no games tonight */
.pass-card{border-style:solid;border-color:var(--gold);border-width:1px 1px 1px 4px}
.pass-crown{margin:0;font-size:30px;line-height:1;color:var(--gold)}
.pass-note{max-width:60ch;margin:8px auto 0;font-size:17px;line-height:1.6}

/* ---- phones: last night's score buttons two to a row ------------------ */
@media (max-width:600px){
  .chips-scores .chip{font-size:14px;padding:6px 8px;min-height:44px}
  .chips-scores .sb{gap:8px}
  .chips-scores .sb-logo{display:none}
}

/* ---- team page: goals by period ------------------------------------- */
.tm-periods{width:100%;border-collapse:collapse;font-size:14px}
.tm-periods th{text-align:left;font:700 12px var(--display);letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted);padding:0 0 6px}
.tm-periods td{padding:6px 0;border-top:1px solid var(--line)}
.tm-periods .num{text-align:right;font-variant-numeric:tabular-nums}

/* ---- team logos: the same visible size for every team ----------------
   NHL's logo files share one 960x640 frame but the artwork inside varies
   (Rangers small, Kings wide), so each is scaled to the same visible size
   and centred. The box (and the layout) doesn't change. */
img[src*="/ANA_"]{transform:scale(1.095) translate(0.0%,0.1%)}
img[src*="/BOS_"]{transform:scale(1.083) translate(0.1%,0.1%)}
img[src*="/BUF_"]{transform:scale(1.079) translate(0.0%,0.0%)}
img[src*="/CAR_"]{transform:scale(1.015) translate(0.1%,0.0%)}
img[src*="/CBJ_"]{transform:scale(1.044) translate(0.0%,0.1%)}
img[src*="/CGY_"]{transform:scale(1.141) translate(0.0%,0.1%)}
img[src*="/CHI_"]{transform:scale(1.101) translate(0.0%,0.1%)}
img[src*="/COL_"]{transform:scale(1.115) translate(0.0%,0.1%)}
img[src*="/DAL_"]{transform:scale(0.950) translate(0.1%,0.1%)}
img[src*="/DET_"]{transform:scale(0.954) translate(0.0%,0.0%)}
img[src*="/EDM_"]{transform:scale(1.068) translate(0.1%,0.1%)}
img[src*="/FLA_"]{transform:scale(1.156) translate(0.0%,0.1%)}
img[src*="/LAK_"]{transform:scale(0.927) translate(0.0%,0.1%)}
img[src*="/MIN_"]{transform:scale(0.999) translate(0.1%,0.1%)}
img[src*="/MTL_"]{transform:scale(1.002) translate(0.0%,0.0%)}
img[src*="/NJD_"]{transform:scale(1.143) translate(0.0%,0.0%)}
img[src*="/NSH_"]{transform:scale(1.097) translate(0.1%,0.1%)}
img[src*="/NYI_"]{transform:scale(1.151) translate(0.1%,0.0%)}
img[src*="/NYR_"]{transform:scale(1.226) translate(0.1%,0.0%)}
img[src*="/OTT_"]{transform:scale(0.966) translate(0.0%,0.0%)}
img[src*="/PHI_"]{transform:scale(1.154) translate(0.1%,0.0%)}
img[src*="/PIT_"]{transform:scale(1.096) translate(0.1%,0.0%)}
img[src*="/SEA_"]{transform:scale(1.196) translate(0.1%,0.1%)}
img[src*="/SJS_"]{transform:scale(0.985) translate(0.0%,0.0%)}
img[src*="/STL_"]{transform:scale(1.155) translate(0.1%,0.1%)}
img[src*="/TBL_"]{transform:scale(1.075) translate(0.0%,0.1%)}
img[src*="/TOR_"]{transform:scale(1.078) translate(0.0%,0.0%)}
img[src*="/UTA_"]{transform:scale(0.939) translate(0.0%,0.1%)}
img[src*="/VAN_"]{transform:scale(1.063) translate(0.0%,0.1%)}
img[src*="/VGK_"]{transform:scale(1.174) translate(0.1%,0.1%)}
img[src*="/WPG_"]{transform:scale(1.049) translate(0.0%,0.0%)}
img[src*="/WSH_"]{transform:scale(0.937) translate(0.0%,0.1%)}

/* ---- game page: tale of the tape (away · stat · home, split bars) ----- */
.tt{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:6px 18px 10px}
.tt-head{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;
  gap:12px;padding:10px 0 12px;border-bottom:1px solid var(--line)}
.tt-team{display:flex;align-items:center;gap:10px}
.tt-team.b{flex-direction:row-reverse;text-align:right}
.tt-team .tl img{width:44px;height:44px;display:block}
.tt-team b{display:block;font:700 22px/1 var(--display);letter-spacing:.02em}
.tt-team small{display:block;margin-top:3px;font:600 11px var(--text);letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted)}
.tt-vs{font:700 13px var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.tt-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,auto) minmax(0,1fr);
  gap:4px 14px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);
  font-size:14px;font-variant-numeric:tabular-nums}
.tt-row:last-child{border-bottom:0}
.tt-a{text-align:left}.tt-b{text-align:right}
.tt-a b,.tt-b b{font-weight:700;color:var(--ink)}
.tt-k{text-align:center;font:700 12px var(--display);letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted)}
.tt-bar{grid-column:1/-1;display:flex;gap:3px;height:6px}
.tt-bar span{display:block;height:100%;border-radius:3px;background:var(--line)}
.tt-bar.lead-a span:first-child,.tt-bar.lead-b span:last-child{background:var(--gold)}
.tt-tag{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:5px;font:700 10px var(--text);
  letter-spacing:.06em;text-transform:uppercase;background:var(--soft);border:1px solid var(--line);
  color:var(--muted);vertical-align:1px}
.tt-wl{display:inline-block;min-width:22px;margin:0 2px;padding:1px 4px;border-radius:5px;
  text-align:center;font:700 12px var(--text);color:#fff}
.tt-wl.w{background:var(--win)}.tt-wl.l{background:var(--accent)}.tt-wl.otl{background:#B7791F}
@media (max-width:600px){
  .tt{padding:4px 12px 8px}
  .tt-row{grid-template-columns:minmax(0,1fr) 92px minmax(0,1fr);gap:4px 8px;font-size:13px}
  .tt-k{font-size:10.5px;letter-spacing:.04em;line-height:1.25}
  .tt-team .tl img{width:34px;height:34px}.tt-team b{font-size:18px}
}

/* game page: Last 5 Games results */
.res-w{color:var(--win);font-weight:700}
.res-l{color:var(--accent);font-weight:700}

/* ---- player pages (players/ID.html) ------------------------------------ */
.pp-page{padding-block:18px 40px}
.pp-page h2{margin:30px 0 12px;font:700 24px var(--display);text-transform:uppercase;
  letter-spacing:.02em}
.pp-head{display:flex;align-items:center;gap:18px;margin:8px 0 6px}
.pp-head .tl img{width:72px;height:72px;display:block}
.pp-head h1{margin:0;font:700 44px/1 var(--display);text-transform:uppercase;letter-spacing:.01em}
.pp-sub{margin:6px 0 0;color:var(--muted);font-size:15px}
.pp-sub a{color:var(--ink);font-weight:600}
.pp-bio{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 22px;
  margin:18px 0 0;padding:16px 18px;background:var(--card);border:1px solid var(--line);border-radius:14px}
.pp-bio dt{font:700 11px var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.pp-bio dd{margin:3px 0 0;font-weight:600}
.pp-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:10px}
.pp-tile{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;text-align:center}
.pp-tile b{display:block;font:700 30px/1 var(--display);font-variant-numeric:tabular-nums}
.pp-tile small{display:block;margin-top:5px;font:700 11px var(--display);letter-spacing:.12em;color:var(--muted)}
.pp-t{width:100%;border-collapse:collapse;background:var(--card);font-size:14px}
.pp-page .tscroll{border:1px solid var(--line);border-radius:14px;overflow-x:auto;background:var(--card)}
.pp-t th,.pp-t td{padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap;text-align:left}
.pp-t th{font:600 11px var(--text);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.pp-t .num{text-align:right;font-variant-numeric:tabular-nums}
.pp-t td .tl{display:inline-block;vertical-align:middle;margin:0 4px}
.pp-t td .tl img{width:22px;height:22px;display:block}
.pp-t tfoot td{font-weight:700;border-bottom:0}
.pp-other{margin-top:22px}
.pp-other summary{cursor:pointer;font:700 18px var(--display);text-transform:uppercase;margin-bottom:12px}
.pp-none{color:var(--muted)}
.pp-src{margin-top:22px;font-size:12px;color:var(--muted)}
a.tm-link{color:inherit;text-decoration:none}
a.tm-link:not(.mh-city){display:flex}
a.tm-link:hover{color:var(--link)}
a.pl{color:inherit;text-decoration:none;border-bottom:1px dotted color-mix(in srgb,currentColor 45%,transparent)}
a.pl:hover{color:var(--link);border-bottom-color:var(--link)}
@media (max-width:600px){.pp-head h1{font-size:32px}.pp-head .tl img{width:52px;height:52px}
  .pp-tile b{font-size:24px}}

a.card{color:inherit;text-decoration:none}
a.card:hover{border-color:var(--link)}

/* ---- phones, a page open: a slim top and swipe strips --------------- */
/* The nameplate and the stacked buttons filled the first screen. Once a
   page is open: no nameplate (the wordmark still goes home), the section
   and sub buttons each one swipeable row, and the bar sticks again. */
@media (max-width:600px){
  .js body.has-tab .hero{display:none}
  .js body.has-tab .site-nav{position:sticky}
  .js body.has-tab .site-nav .wrap{padding-top:8px;padding-bottom:8px}
  .js body.has-tab :is(.segs,.chips.active){display:flex;flex-wrap:nowrap;overflow-x:auto;
    gap:8px;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;
    margin-inline:-16px;padding-inline:16px;scroll-padding-inline:16px}
  .js body.has-tab :is(.segs,.chips.active)::-webkit-scrollbar{display:none}
  .js body.has-tab .seg{flex:0 0 auto;font-size:15px;padding:9px 13px;scroll-snap-align:start}
  .js body.has-tab .seg-picks .crown{font-size:16px}
  .js body.has-tab .chips.active{margin-top:8px}
  .js body.has-tab .chips.active .chip{flex:0 0 auto;width:auto;min-height:44px;
    font-size:14px;padding:6px 12px;scroll-snap-align:start}
  .js body.has-tab .chips.active .chip-logo img{width:24px;height:24px}
  .js body.has-tab .chips-scores .sb-logo{display:block}
  .js body.has-tab .chips-scores .sb-logo img{width:20px;height:20px}
}

/* ---- phones: last night's scores two to a row ----------------------- */
/* Each tile turns into a little two-line scoreboard (one team a line), so
   two fit side by side with their logos; OT/SO sits at the right. */
@media (max-width:600px){
  .fm-scores>.fm-score{flex-basis:calc(50% - 4px)}
  .fm-score{padding:9px 12px}
  .fm-score .sb{grid-template-columns:minmax(0,1fr) auto;row-gap:6px;column-gap:6px;width:100%}
  .fm-score .sb-side{grid-template-columns:26px minmax(0,1fr) auto;grid-column:1;column-gap:6px;
    text-align:left}
  .fm-score .sb-logo{display:block}
  .fm-score .sb-logo img{width:24px;height:24px}
  .fm-score .sb-goals{font-size:1.25em}
  .fm-score .sb-end{grid-column:2;grid-row:1 / span 2;align-self:center}
}
/* Logos on the navy front page: a light disc so the dark ones (TBL, PIT,
   VAN, DAL…) don't disappear. Only with light-mode logos (the <picture>
   switches to the light-on-dark set with the system's dark mode). */
@media (prefers-color-scheme:light){
  .featured .sb-logo img{background:rgba(255,255,255,.92);border-radius:50%;padding:2px;
    box-sizing:border-box}}

/* ---- News: older days fold to one button ---------------------------- */
.nw-group.folded .nw-list{display:none}
.nw-more{font:700 15px var(--display);letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink);background:var(--soft);border:2px solid var(--line);border-radius:10px;
  padding:10px 16px;cursor:pointer;width:100%;text-align:left}
.nw-more:hover{border-color:var(--ink)}
.nw-more[hidden]{display:none}
.nf-toggle,.tp-bar,.rc-more{display:none}

/* ---- phones: News cards full width, filters and pickers fold -------- */
@media (max-width:600px){
  /* the team logo moves into a slim row over the story */
  .nw-card{grid-template-columns:minmax(0,1fr);gap:8px;padding:14px 16px}
  .nw-side{flex-direction:row;justify-content:flex-start;gap:8px;padding-top:0}
  .nw-logo img{width:26px;height:26px}
  .nw-team{font-size:15px}
  .nw-league{font-size:15px;padding-top:0}
  .rc-card .nw-side{display:none}  /* the score line already has both logos */
  .rc-text{max-height:6.4em;overflow:hidden;
    -webkit-mask-image:linear-gradient(#000 60%,transparent);mask-image:linear-gradient(#000 60%,transparent)}
  .rc-text.open{max-height:none;-webkit-mask-image:none;mask-image:none}
  .rc-more{display:inline-block;margin-top:6px;padding:4px 0;background:none;border:0;
    font:600 14px var(--text);color:var(--link);cursor:pointer}
  /* filters: one button that says what's on */
  .news-filter{padding:0;overflow:hidden}
  .nf-toggle{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;
    background:none;border:0;cursor:pointer;text-align:left;color:var(--ink)}
  .nf-toggle span{font:700 16px var(--display);letter-spacing:.08em;text-transform:uppercase}
  .nf-toggle small{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font-size:14px;color:var(--muted)}
  .nf-toggle::after{content:"▾";color:var(--muted)}
  .news-filter.nf-open .nf-toggle::after{content:"▴"}
  .news-filter:not(.nf-open)>:not(.nf-toggle){display:none}
  .news-filter.nf-open{padding:0 16px 14px}
  .news-filter.nf-open .nf-toggle{margin-inline:-16px;width:calc(100% + 32px)}
  /* team pickers: a bar naming the pick, the grid folds once picked */
  .tp-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;
    margin-bottom:10px;font:700 16px var(--display);letter-spacing:.06em;text-transform:uppercase}
  .tp-picked{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tp-toggle{flex:none;font:700 14px var(--display);letter-spacing:.06em;text-transform:uppercase;
    color:var(--ink);background:var(--soft);border:2px solid var(--line);border-radius:10px;
    padding:7px 12px;cursor:pointer}
  .tp-toggle[hidden]{display:none}
  .sos-teams.tp-folded{display:none}
  .tp-bar:has(+.sos-teams.tp-folded){margin-bottom:0}
  .tp-bar:has(.tp-picked:empty):has(.tp-toggle[hidden]){display:none}
}

/* ---- phones: a compact game banner ---------------------------------- */
/* Both teams side by side (logo, abbreviation, record) with the time,
   date and moneyline between them, instead of a screen-tall stack. */
@media (max-width:860px){
  .matchup-hero{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;
    padding:16px 12px;text-align:center}
  .matchup-hero .mh-team,.matchup-hero .mh-team.home{flex-direction:column;gap:6px;text-align:center}
  .matchup-hero .tl.big img{width:52px;height:52px}
  .matchup-hero .mh-city{display:none}
  .matchup-hero .mh-abbr{display:block;font:700 26px/1 var(--display);letter-spacing:.04em}
  .matchup-hero .mh-rec{font-size:12px;letter-spacing:.02em}
  .matchup-hero .mh-time{font-size:24px}
  .matchup-hero .mh-at{font-size:14px}
  .matchup-hero .mh-venue{font-size:11px;letter-spacing:.04em;max-width:16ch}
  .matchup-hero .mh-odds{display:none}
  .matchup-hero .mh-ml{display:inline-block;align-self:center;margin-top:4px;padding:3px 10px;
    border:1px solid rgba(255,255,255,.18);border-radius:999px;font:700 13px var(--text)}
}

/* ---- phones: tonight's goalies as cards ----------------------------- */
/* The table cut off after Status; each goalie becomes a card: team, name
   and status on top, starts, record and SV% / GAA labelled under them. */
@media (max-width:600px){
  .gl-cards .tscroll{overflow:visible;background:none}
  .gl-cards table,.gl-cards tbody{display:block;width:100%}
  .gl-cards thead{display:none}
  .gl-cards tr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;
    grid-template-areas:"team name status" "starts rec sv";gap:8px 14px;align-items:center;
    padding:12px 0;border-bottom:1px solid var(--line)}
  .gl-cards tr:last-child{border-bottom:0}
  .gl-cards .tscroll td{display:block;padding:0;border:0;text-align:left;white-space:nowrap;
    position:static;background:none}
  .gl-cards td:nth-child(1){grid-area:team}
  .gl-cards td:nth-child(2){grid-area:name;white-space:normal;min-width:0}
  .gl-cards td:nth-child(3){grid-area:status;color:var(--muted);font-size:13px}
  .gl-cards td:nth-child(4){grid-area:starts}
  .gl-cards td:nth-child(5){grid-area:rec}
  .gl-cards td:nth-child(6){grid-area:sv;text-align:right}
  .gl-cards td:nth-child(n+4)::before{content:attr(data-label);display:block;
    font:700 11px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
}

/* ---- phones: the strength of schedule chart scrolls sideways -------- */
@media (max-width:600px){
  .sos-chart{overflow-x:auto;overflow-y:hidden}
  .sos-svg{width:auto;max-width:none;touch-action:pan-x pan-y}
}

/* ---- game page: small fixes ----------------------------------------- */
.nobr{white-space:nowrap}
.card .l.long{font-size:14px;letter-spacing:0}
.card .l.xlong{font-size:12.5px;letter-spacing:0}
.lc-key{margin:4px 0 10px;font-size:13px;color:var(--muted)}

/* ---- phones: a compact recap score banner --------------------------- */
/* Like the game banner: logo, abbreviation, record and shots over each
   score, Final between them, then the goals by period. */
@media (max-width:860px){
  .score-hero.sh5{padding:16px 12px;gap:8px 10px}
  .sh5 .sh-team,.sh5 .sh-team.home{gap:4px}
  .sh5 .tl.big img{width:48px;height:48px}
  .sh5 .mh-city{display:none}
  .sh5 .mh-abbr{display:block;font:700 24px/1 var(--display);letter-spacing:.04em}
  .sh5 .sh-rec,.sh5 .sh-shots{font-size:12px;margin-top:2px;white-space:nowrap}
  .sh5 .sh-score{font-size:48px}
  .sh5 .sh-final{font-size:15px;padding:4px 10px}
  .sh5 .mh-venue{font-size:11px;letter-spacing:.04em;max-width:14ch}
}

/* ---- News: notes added after a story was posted --------------------- */
.nw-upd{margin:10px 0 0;padding:8px 12px;border-radius:8px;font-size:14px;line-height:1.5;
  max-width:70ch;background:color-mix(in srgb,var(--win) 9%,var(--card));
  border-left:3px solid var(--win)}
.nw-upd.fix{background:color-mix(in srgb,var(--accent) 8%,var(--card));border-left-color:var(--accent)}
.nw-upd a{color:var(--link);font-weight:600;text-decoration:none;white-space:nowrap}
