/* Sparta Homies: the gameday program. Shared by /fantasy, /fantasy/2025 and /fantasy/champions.
   Field-green frame on white stock, jersey numerals for every number, a collegiate slab for display.
   Design record: DESIGN.md in the redesign workspace; sparta.py emits the 2026 block's markup. */

@font-face{font-family:'Graduate';font-style:normal;font-weight:400;font-display:swap;src:url(/fantasy/fonts/graduate-400-latin.woff2) format('woff2')}
@font-face{font-family:'Jersey 15';font-style:normal;font-weight:400;font-display:swap;src:url(/fantasy/fonts/jersey-15-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Jersey 15';font-style:normal;font-weight:400;font-display:swap;src:url(/fantasy/fonts/jersey-15-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Libre Franklin';font-style:normal;font-weight:100 900;font-display:swap;src:url(/fantasy/fonts/libre-franklin-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Libre Franklin';font-style:normal;font-weight:100 900;font-display:swap;src:url(/fantasy/fonts/libre-franklin-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --field:#0b5d3b; --field-2:#08452c; --field-3:#0e7049;
  --paper:#ffffff; --white:#ffffff;
  --ink:#111512; --body:#2b322e; --muted:#5b655f;
  --rule:#cfd6d0; --rule-2:#e3e8e4;
  --marker:#ffd400; --red:#b3261e; --loss:#666e69;
  --display:'Graduate',Georgia,serif;
  --num:'Jersey 15','Libre Franklin',sans-serif;
  --text:'Libre Franklin',system-ui,sans-serif;
  --wrap:1240px; --gut:clamp(16px,4vw,48px);
  /* names the 2025 page's inline styles still use */
  --green:var(--field); --sand:var(--paper); --card:var(--white); --rust:var(--red);
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-padding-top:16px}
body{background:var(--paper);color:var(--body);font:16.5px/1.55 var(--text);font-variant-numeric:tabular-nums;min-height:100vh;display:flex;flex-direction:column}
::selection{background:var(--marker);color:var(--ink)}
a{color:var(--field);text-underline-offset:3px;text-decoration-thickness:1.5px}
a:hover{color:var(--ink)}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
mark{background:linear-gradient(transparent 56%,var(--marker) 56%);color:inherit;padding:0 .05em}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}

/* ── masthead ─────────────────────────────────────────────────────────── */
.mast{background:var(--field);color:var(--white);border-bottom:6px solid var(--marker)}
.mast .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px 32px;flex-wrap:wrap;min-height:96px;padding-top:14px;padding-bottom:14px}
.mark{font-family:var(--display);font-size:clamp(30px,4.4vw,54px);line-height:1;letter-spacing:.02em;color:var(--white);text-decoration:none;text-transform:uppercase}
.mark:hover{color:var(--white)}
.mast-nav{display:flex;flex-wrap:wrap;gap:4px 24px;font-weight:600;font-size:15px}
.mast-nav a{color:var(--white);text-decoration:none;padding:6px 0;border-bottom:3px solid transparent}
.mast-nav a:hover{border-bottom-color:rgba(255,255,255,.45)}
.mast-nav a[aria-current="page"]{border-bottom-color:var(--marker)}
.mast-nav a.home{color:rgba(255,255,255,.75);font-weight:400}
.mast :focus-visible,.rail :focus-visible,.foot :focus-visible{outline-color:var(--marker)}

/* ── issue line (generated) ───────────────────────────────────────────── */
.issue{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 18px;padding:18px 0 14px;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.issue .no{font-family:var(--num);font-size:30px;letter-spacing:.02em;color:var(--field);line-height:1}
.issue span+span::before{content:"·";margin-right:18px;color:var(--rule);font:700 13px/1 var(--text);vertical-align:middle}

/* ── week rail: the season as yard lines ──────────────────────────────── */
.rail{background:var(--field-2)}
.rail ol{list-style:none;display:flex;max-width:var(--wrap);margin:0 auto;padding:0 var(--gut);overflow-x:auto;scrollbar-width:none}
.rail ol::-webkit-scrollbar{display:none}
.rail li{flex:1 0 44px;border-left:2px solid rgba(255,255,255,.5);position:relative}
.rail li:last-child{border-right:2px solid rgba(255,255,255,.5)}
.rail li::before,.rail li::after{content:"";position:absolute;bottom:0;width:2px;height:8px;background:rgba(255,255,255,.35);pointer-events:none}
.rail li::before{left:33%}.rail li::after{left:66%}
.rail a,.rail span{display:flex;align-items:center;justify-content:center;height:54px;font-family:var(--num);font-size:30px;color:var(--white);text-decoration:none}
.rail span{color:rgba(255,255,255,.5)}
.rail a:hover{background:var(--field-3)}
.rail a[aria-current="true"]{background:var(--marker);color:var(--ink)}

/* ── page layout ──────────────────────────────────────────────────────── */
main{flex:1}
.front{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:40px 48px;padding:30px 0 8px}
.opener{font-family:var(--display);font-weight:400;font-size:22px;line-height:1.15;color:var(--ink);border-bottom:3px solid var(--ink);padding-bottom:6px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.opener small{font-family:var(--text);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.block{padding:28px 0 8px}

/* ── a week: cover line + numbered boxes (generated) ──────────────────── */
.week+.week{margin-top:40px;padding-top:28px;border-top:3px double var(--rule)}
.js .week{display:none}
.js .week.on{display:block}
.js .week+.week{margin-top:0;padding-top:0;border-top:0}
.week-h{font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--field)}
.cover-line{font-family:var(--display);font-size:clamp(26px,3vw,40px);line-height:1.3;color:var(--ink);margin:4px 0 12px;max-width:26ch;text-wrap:balance}
.cover-stand{font-size:clamp(17px,1.5vw,20px);line-height:1.5;color:var(--body);max-width:56ch;margin-bottom:30px}
.cover-line:last-child{margin-bottom:30px}
.js .week-h{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.boxes{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 22px;align-items:start}
.box{position:relative;background:var(--white);border:2px solid var(--ink);padding:18px 16px 14px}
.box-no{position:absolute;top:-12px;left:12px;background:var(--field);color:var(--white);font-family:var(--text);font-weight:800;font-variant-numeric:tabular-nums;font-size:13px;letter-spacing:.06em;line-height:1;padding:5px 8px 4px}
.side{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:4px 10px;padding:6px 0}
.side+.side{border-top:1px dashed var(--rule)}
.side-team{font-weight:600;font-size:15.5px;line-height:1.25;color:var(--ink)}
.side-owner{display:block;font-weight:400;font-size:12.5px;color:var(--muted)}
.side-score{font-family:var(--num);font-size:30px;line-height:1;color:var(--ink);white-space:nowrap}
.side.won .side-score::after{content:"";display:inline-block;width:15px;height:15px;margin-left:6px;vertical-align:5px;background:var(--field);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 8.6l4 4L14.2 3.6' fill='none' stroke='%23000' stroke-width='2.8' stroke-linecap='square'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 8.6l4 4L14.2 3.6' fill='none' stroke='%23000' stroke-width='2.8' stroke-linecap='square'/%3E%3C/svg%3E") center/contain no-repeat}
.side.lost .side-team{font-weight:500}
.side.lost .side-score{color:var(--loss);text-decoration:line-through 2px;text-decoration-color:var(--ink)}
.box-by{display:inline-block;margin-top:6px;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--field)}
.box-by.close{background:var(--marker);color:var(--ink);padding:1px 7px}
.box-note{margin-top:10px;padding-top:9px;border-top:1px solid var(--rule);font-size:14.5px;line-height:1.5;color:var(--body)}

/* ── season column: standings + leaders (generated) ───────────────────── */
.lead-line{font-size:15px;margin:2px 0 10px;color:var(--body)}
.lead-line strong{color:var(--ink)}
.std{width:100%;border-collapse:collapse;font-size:14.5px}
.std th{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:right;padding:4px 0 6px;border-bottom:1px solid var(--rule)}
.std th:nth-child(-n+2){text-align:left}
.std td{padding:6px 0;border-bottom:1px solid var(--rule);text-align:right;white-space:nowrap}
.std td+td,.std th+th{padding-left:10px}
.std .rk{font-family:var(--text);font-weight:800;font-variant-numeric:tabular-nums;font-size:15px;color:var(--field);width:24px;text-align:left}
.std .tm{text-align:left;white-space:normal;line-height:1.25}
.std .tm b{font-weight:600;color:var(--ink)}
.std .tm span{display:block;font-size:12px;color:var(--muted)}
.std .wl{font-weight:800;color:var(--ink)}
.std tr.top td{background:rgba(255,212,0,.38)}
.std .opt{display:table-cell}
.fineprint{font-size:12px;color:var(--muted);margin-top:8px}
.season>section+section{margin-top:30px}
.leaders{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px;margin-top:6px}
.leaders div{border-top:2px solid var(--ink);padding-top:6px}
.leaders dt{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.leaders dd{font-family:var(--num);font-size:30px;line-height:1.05;color:var(--ink)}
.leaders dd small{font-family:var(--text);font-size:12.5px;line-height:1.35;color:var(--body);display:block}

/* ── transactions (generated; same rows on the 2025 page) ─────────────── */
.moves{list-style:none}
.txn-row{display:grid;grid-template-columns:62px minmax(150px,240px) 96px minmax(0,1fr);gap:4px 14px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--rule);font-size:14.5px}
.txn-date{font-family:var(--text);font-weight:800;font-variant-numeric:tabular-nums;font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.txn-team{font-weight:600;color:var(--ink)}
.txn-type{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.txn-added{color:var(--field);font-weight:600}
.txn-dropped{color:var(--red);text-decoration:line-through 1.5px}
details.more{margin-top:14px}
details.more>summary,.toggle-btn{display:inline-block;cursor:pointer;list-style:none;font:800 12.5px var(--text);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:var(--white);border:2px solid var(--ink);padding:10px 16px;margin-bottom:12px}
details.more>summary::-webkit-details-marker{display:none}
details.more>summary:hover,.toggle-btn:hover{background:var(--marker)}
details.more[open]>summary{background:var(--ink);color:var(--white)}

/* ── draft board ──────────────────────────────────────────────────────── */
.recap-text{max-width:66ch;margin-bottom:14px}
.draft-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:22px 18px;margin-top:6px}
.draft-card{background:var(--white);border:2px solid var(--ink);padding:12px 14px}
.draft-slot{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--field)}
.draft-team{font-family:var(--display);font-size:18px;line-height:1.15;color:var(--ink);margin-top:2px}
.draft-owner{font-size:12.5px;color:var(--muted);margin-bottom:8px}
.dp{display:grid;grid-template-columns:38px minmax(0,1fr) 30px;gap:6px;align-items:baseline;font-size:13.5px;padding:3px 0;border-top:1px solid var(--rule-2)}
.dp-rd{font-family:var(--text);font-weight:800;font-variant-numeric:tabular-nums;font-size:12.5px;color:var(--field)}
.dp-name{color:var(--ink)}
.dp-pos{font-size:11px;font-weight:700;color:var(--muted);text-align:right}

/* ── footer ───────────────────────────────────────────────────────────── */
.foot,footer{background:var(--field);color:rgba(255,255,255,.85);margin-top:56px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.foot .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:18px;padding-bottom:18px}
.foot a{color:var(--white)}

/* ── page title for the 2025 page and the Hall ────────────────────────── */
.page-title{padding:30px 0 6px}
.page-title h1{font-family:var(--display);font-weight:400;font-size:clamp(34px,5vw,60px);line-height:1;color:var(--ink)}
.page-title p{margin-top:8px;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* ── Hall of Champions: plaques ───────────────────────────────────────── */
.plaques{list-style:none;display:grid;gap:30px;margin-top:8px}
.plaque{display:grid;grid-template-columns:auto minmax(0,1fr);background:var(--white);border:3px solid var(--ink)}
.plaque-yr{background:var(--field);color:var(--white);font-family:var(--num);font-size:clamp(60px,8.4vw,120px);line-height:.9;padding:22px 26px 18px;display:flex;flex-direction:column;justify-content:space-between;gap:10px;border-right:3px solid var(--ink)}
.plaque-yr small{font-family:var(--text);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--marker);line-height:1.3}
.plaque-body{padding:22px 26px 20px}
.plaque-champ{font-family:var(--display);font-size:clamp(28px,3.6vw,44px);line-height:1.05;color:var(--ink)}
.plaque-owner{font-size:14px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--field);margin-top:6px}
.plaque-line{font-size:17px;line-height:1.5;margin-top:14px;max-width:60ch}
.plaque-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px 20px;margin-top:18px;border-top:2px solid var(--ink);padding-top:12px}
.plaque-facts dt{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.plaque-facts dd{font-family:var(--num);font-size:30px;line-height:1.05;color:var(--ink)}
.plaque-facts dd small{display:block;font-family:var(--text);font-size:12.5px;color:var(--body);line-height:1.35}
.plaque-go{display:inline-block;margin-top:18px;font-weight:800;font-size:13px;letter-spacing:.1em;text-transform:uppercase}
.plaque.open{background:transparent;border-style:dashed;border-color:var(--loss)}
.plaque.open .plaque-yr{background:transparent;color:var(--loss);border-right:3px dashed var(--loss)}
.plaque.open .plaque-yr small{color:var(--muted)}
.plaque.open .plaque-champ{color:var(--muted)}

/* ── 2025 page: the original sections, in the program's dress ─────────── */
.section{padding:28px 0 8px}
.section-title{font-family:var(--display);font-weight:400;font-size:22px;line-height:1.15;color:var(--ink);border-bottom:3px solid var(--ink);padding-bottom:6px;margin-bottom:14px}
.section-title.sub{font-size:20px}
.recap-text strong{color:var(--ink)}
.stat-pills{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px 20px;margin:18px 0 6px}
.stat-pill{display:flex;flex-direction:column;border-top:2px solid var(--ink);padding-top:6px}
.stat-pill-label{order:1;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.stat-pill-value{order:2;font-family:var(--num);font-size:30px;line-height:1.05;color:var(--ink)}
.stat-pill-who{order:3;font-size:12.5px;line-height:1.35;color:var(--body)}
table{width:100%;border-collapse:collapse;font-size:14.5px}
th{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left;padding:4px 8px 6px;border-bottom:1px solid var(--rule)}
td{padding:7px 8px;border-bottom:1px solid var(--rule)}
th.num,td.num{text-align:right;white-space:nowrap}
.tscroll{overflow-x:auto}
.place-1>td{background:rgba(255,212,0,.38)}
.team-owner-label{display:block;font-size:12px;color:var(--muted)}
.playoff-badge{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:.12em;background:var(--marker);color:var(--ink);padding:1px 6px;margin-left:6px;vertical-align:2px}
tr.standings-row{cursor:pointer}
tr.standings-row td:nth-child(2){font-weight:600;color:var(--ink)}
tr.standings-row td:nth-child(2)::after{content:"+ roster";font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--field);margin-left:8px}
tr.standings-row.open td:nth-child(2)::after{content:"− roster"}
tr.standings-row:hover td{background:rgba(11,93,59,.06)}
tr.roster-row{display:none}
tr.roster-row.open{display:table-row}
tr.roster-row td{background:var(--white);padding:12px 12px 14px}
.roster-caption{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.roster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:2px 16px}
.roster-slot{display:grid;grid-template-columns:34px minmax(0,1fr);gap:6px;font-size:13.5px;padding:3px 0;border-top:1px solid var(--rule-2)}
.roster-pos{font-size:11px;font-weight:800;color:var(--field)}
.roster-name{color:var(--ink)}
.roster-nfl{font-size:11px;color:var(--muted)}
.bracket{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:16px;align-items:center;margin:8px 0 18px}
.bracket-col{display:grid;gap:22px}
.bracket-col-label{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--field)}
.bracket-connector{font-size:26px;font-weight:800;color:var(--ink)}
.matchup-card{background:var(--white);border:2px solid var(--ink);padding:6px 12px}
.matchup-row{display:flex;justify-content:space-between;gap:10px;padding:6px 0;color:var(--loss)}
.matchup-row+.matchup-row{border-top:1px dashed var(--rule)}
.matchup-row.winner{color:var(--ink);font-weight:600}
.matchup-score{font-family:var(--num);font-size:30px;line-height:1}
.champion-result{background:var(--marker);color:var(--ink);border:2px solid var(--ink);padding:12px 14px}
.champion-result .label{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.champion-result .team-name{font-family:var(--display);font-size:22px;line-height:1.1}
.teams-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.team-card{background:var(--white);border:2px solid var(--ink);padding:14px 16px}
.team-card-name{font-family:var(--display);font-size:19px;line-height:1.15;color:var(--ink)}
.team-card-record{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--field);margin-top:4px}
.team-card-pf{font-size:12.5px;color:var(--muted);margin-bottom:8px}
.team-card-story{font-size:14.5px;line-height:1.55}
.weeks-container{display:none}
.weeks-container.open{display:block}
.week-block{margin-bottom:18px}
.week-label{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--field);border-bottom:2px solid var(--ink);padding-bottom:4px;margin-bottom:4px}
.week-note{font-size:13.5px;color:var(--body);margin:4px 0}
.game-row{display:grid;grid-template-columns:minmax(0,1fr) 70px 28px minmax(0,1fr) 70px;gap:8px;align-items:baseline;padding:5px 0;border-bottom:1px solid var(--rule-2);font-size:14px;color:var(--loss)}
.game-team.win,.game-score.win{color:var(--ink);font-weight:600}
.game-score{font-family:var(--text);font-weight:800;font-variant-numeric:tabular-nums;font-size:14px;text-align:right}
.game-vs{font-size:11px;text-align:center;color:var(--muted)}
.ab{background:var(--field-2);color:#e4ece6;border:3px solid var(--ink);padding:28px clamp(18px,3vw,34px);margin-bottom:24px;--ab-ink:#ffffff;--ab-muted:#9fd3b5;--ab-rule:rgba(255,255,255,.18)}
.ab-kicker{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--marker)}
.ab h2{font-family:var(--display);font-weight:400;font-size:clamp(26px,3vw,36px);line-height:1.1;color:var(--ab-ink);margin:8px 0 12px}
.ab-lede{font-size:17px;line-height:1.55;max-width:60ch;margin-bottom:18px}
.ab-lede em{font-style:normal;color:var(--marker)}
.ab-figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;padding:14px 0;border-top:1px solid var(--ab-rule);border-bottom:1px solid var(--ab-rule);margin-bottom:18px}
.ab-fig b{display:block;font-family:var(--num);font-weight:400;font-size:45px;line-height:1;color:var(--ab-ink)}
.ab-fig i{display:block;font-style:normal;font-size:12.5px;color:var(--ab-muted);margin-top:4px;line-height:1.35}
.ab h3{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ab-muted);margin:22px 0 8px;padding-bottom:5px;border-bottom:1px solid var(--ab-rule)}
.ab p{font-size:15.5px;line-height:1.6;max-width:62ch;margin-bottom:10px}
.ab table{font-size:13.5px;margin:6px 0 12px}
.ab th{color:var(--ab-muted);border-bottom-color:var(--ab-rule)}
.ab td{border-bottom-color:var(--ab-rule);color:#e4ece6}
.ab td.n,.ab th.n{text-align:right}
.ab tr.hot td{background:rgba(255,212,0,.16);color:var(--ab-ink);font-weight:600}
.ab-bar{display:inline-block;height:8px;background:var(--marker);vertical-align:middle}
.ab-bar.neg{background:#ff8f7d}
.ab-quote{background:rgba(255,255,255,.07);border-top:2px solid var(--marker);border-bottom:2px solid var(--marker);color:var(--ab-ink);padding:14px 16px;margin:18px 0;font-size:15.5px;line-height:1.6;max-width:68ch}
.ab-quote b{color:var(--marker)}
.ab-two{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:10px}
.ab-colhead{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ab-muted);padding-bottom:5px;margin-bottom:6px;border-bottom:1px solid var(--ab-rule)}
.ab-val{display:flex;justify-content:space-between;gap:10px;font-size:13.5px;padding:5px 0;border-bottom:1px solid var(--ab-rule)}
.ab-val span:last-child{white-space:nowrap;font-weight:700}
.ab-good span:last-child{color:var(--marker)}
.ab-bad span:last-child{color:#ff8f7d}

/* ── narrow screens ───────────────────────────────────────────────────── */
@media (max-width:980px){
  .front{grid-template-columns:minmax(0,1fr);gap:34px}
}
@media (max-width:640px){
  body{font-size:16px}
  .mast .wrap{min-height:0;padding-top:16px;padding-bottom:12px}
  .mast-nav{gap:2px 16px;font-size:14px}
  .boxes{grid-template-columns:minmax(0,1fr);gap:24px}
  .std .opt{display:none}
  .txn-row{grid-template-columns:52px minmax(0,1fr);gap:2px 10px}
  .txn-row>:nth-child(3){grid-column:2}
  .txn-row>:nth-child(4){grid-column:2}
  .bracket{grid-template-columns:minmax(0,1fr)}
  .bracket-connector{transform:rotate(90deg);justify-self:center}
  .ab-two{grid-template-columns:minmax(0,1fr)}
  .game-row{grid-template-columns:minmax(0,1fr) 58px;grid-auto-flow:row}
  .game-row .game-vs{display:none}
  .plaque{grid-template-columns:minmax(0,1fr)}
  .plaque-yr{border-right:0;border-bottom:3px solid var(--ink);flex-direction:row;align-items:flex-end}
  .plaque.open .plaque-yr{border-right:0;border-bottom:3px dashed var(--loss)}
}
@media (prefers-reduced-motion:no-preference){
  .js .week.on{animation:issue-in .28s cubic-bezier(.2,.7,.2,1)}
  @keyframes issue-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
}
