
@import url('https://fonts.googleapis.com/css2?family=Zilla+Slab:wght@500;600;700&family=Public+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&family=Alfa+Slab+One&family=Big+Shoulders+Text:wght@500;600;700&family=Libre+Franklin:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap');

:root{
  --bg:#EEF1F3; --surface:#FFFFFF; --surface-2:#F5F6F8;
  --ink:#14202E; --ink-soft:#57677A; --ink-faint:#8B98A8;
  --line:#DCE1E7; --line-strong:#C2C9D2;
  --good:#2F8F5B; --good-soft:#E2F3E9;
  --caution:#C1443B; --caution-soft:#FBE6E4;
  --gold:#B8860B; --gold-soft:#FBF1D9;
  --accent:#0C2C56; --accent-soft:#E7EBF2; --accent-deep:#081D3B;
  --accent2:#FF6600; --accent2-soft:#FFE9DA;
  --font-display:'Zilla Slab', Georgia, serif;
  --font-body:'Public Sans', system-ui, sans-serif;
  --font-mono:'JetBrains Mono', monospace;
  --shadow: 0 1px 2px rgba(12,44,86,0.06), 0 10px 28px rgba(12,44,86,0.08);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0B1220; --surface:#131C2E; --surface-2:#182338;
    --ink:#E9EDF3; --ink-soft:#9AA8BC; --ink-faint:#66748A;
    --line:#263349; --line-strong:#34435D;
    --good:#55B786; --good-soft:#16302380;
    --caution:#E1685F; --caution-soft:#3A1E1C;
    --gold:#E0B84D; --gold-soft:#3A2E0F;
    --accent:#7EA6D8; --accent-soft:#16233A; --accent-deep:#0B1220;
    --accent2:#FF7A2E; --accent2-soft:#3A2413;
    --shadow: 0 1px 2px rgba(0,0,0,0.35), 0 10px 28px rgba(0,0,0,0.35);
  }
}

*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);line-height:1.55;-webkit-font-smoothing:antialiased;}
.wrap{max-width:960px;margin:0 auto;padding:36px 22px 90px;}
h1,h2,h3{font-family:var(--font-display);margin:0;text-wrap:balance;}
a{color:inherit;}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;}

/* site chrome */
.site-nav{max-width:960px;margin:0 auto;padding:18px 22px 0;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;}
.site-nav .brand{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);text-decoration:none;letter-spacing:.01em;}
.site-nav .brand b{color:var(--accent2);}
.site-nav .back{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-soft);text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:6px 13px;}
.site-nav .back:hover{color:var(--accent);border-color:var(--accent);}

header.masthead{
  background:linear-gradient(135deg,var(--accent),var(--accent-deep));
  color:#fff; border-radius:16px; margin:20px auto 0; max-width:960px; padding:28px 26px 24px;
  box-shadow:var(--shadow);
}
header.masthead .eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;font-size:11px;opacity:.8;margin:0 0 6px;}
header.masthead h1{font-size:clamp(26px,4vw,38px);color:#fff;}
header.masthead .meta{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:14px;font-family:var(--font-mono);font-size:12.5px;text-transform:uppercase;letter-spacing:.03em;opacity:.92;}
header.masthead .meta b{color:#fff;font-weight:700;}
header.masthead .status-chip{display:inline-block;margin-top:14px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.4);border-radius:999px;padding:5px 14px;font-family:var(--font-mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;}
header.masthead .status-chip.champ{background:var(--accent2);border-color:var(--accent2);color:#fff;font-weight:700;}

section{margin-top:34px;}
.section-head{display:flex;align-items:baseline;gap:12px;margin-bottom:14px;border-bottom:2px solid var(--accent);padding-bottom:8px;}
.section-head h2{font-size:19px;color:var(--accent);}
.section-num{font-family:var(--font-mono);font-size:11px;color:var(--accent2);background:var(--accent2-soft);padding:3px 9px;border-radius:999px;}

.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:18px 22px;}
p.lede{color:var(--ink-soft);font-size:13.5px;max-width:70ch;margin:0;}
.stat-row{display:flex;flex-wrap:wrap;gap:22px;}
.stat{min-width:110px;}
.stat .num{font-family:var(--font-display);font-weight:700;font-size:26px;color:var(--accent);}
.stat .lbl{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);}

.bracket{display:flex;flex-direction:column;gap:10px;}
.bracket-row{display:grid;grid-template-columns:110px 1fr auto;gap:14px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 18px;box-shadow:var(--shadow);}
@media (max-width:600px){.bracket-row{grid-template-columns:1fr;}}
.bracket-row .rd{font-family:var(--font-mono);font-size:11px;color:var(--accent2);text-transform:uppercase;letter-spacing:.05em;}
.bracket-row .result{font-weight:600;font-size:14px;}
.bracket-row .score{font-family:var(--font-mono);font-size:13px;color:var(--ink-soft);}

ul.notes{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px;}
ul.notes li{padding-left:14px;border-left:3px solid var(--accent2);font-size:13.5px;color:var(--ink-soft);}
ul.notes li b{color:var(--ink);}

.mvp-callout{background:var(--accent2-soft);border:1px solid var(--accent2);border-radius:14px;padding:16px 20px;}
.mvp-callout .tag{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--accent2);display:block;margin-bottom:6px;}
.mvp-callout p{margin:0;font-size:13.5px;color:var(--ink);}

.franchise-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:18px;}
.f-card{display:block;text-decoration:none;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden;transition:transform .15s ease;}
.f-card:hover{transform:translateY(-2px);}
.f-card .top{padding:16px 18px 12px;border-bottom:3px solid var(--card-accent,var(--accent));}
.f-card .league{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);}
.f-card h3{font-size:19px;margin-top:4px;color:var(--ink);}
.f-card .body{padding:12px 18px 18px;}
.f-card .rec{font-family:var(--font-mono);font-size:13px;color:var(--ink-soft);}
.f-card .status{margin-top:8px;font-size:12.5px;color:var(--card-accent,var(--accent));font-weight:600;}

footer.foot{margin-top:44px;padding-top:18px;border-top:1px solid var(--line);font-family:var(--font-mono);font-size:11.5px;color:var(--ink-faint);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;}

/* ---- Reds: vintage 1970s newspaper skin ---- */
body.team-reds{
  --bg:#efe4cd; --surface:#fbf5e8; --surface-2:#f7efdd;
  --ink:#2a2118; --ink-soft:#5a4d3d; --ink-faint:#8a7c67;
  --line:rgba(42,33,24,.18); --line-strong:rgba(42,33,24,.3);
  --accent:#c8102e; --accent-soft:#f3dcd9; --accent-deep:#6e0016;
  --accent2:#c8961e; --accent2-soft:#f3ead0;
  --font-display:'Alfa Slab One', serif;
  --font-body:'Libre Franklin', 'Segoe UI', sans-serif;
  --font-mono:'Big Shoulders Text', sans-serif;
}
@media (prefers-color-scheme: dark){
  body.team-reds:not([data-theme="light"]){
    --bg:#1d1712; --surface:#2a2119; --surface-2:#251d16;
    --ink:#efe4cd; --ink-soft:#c9bca3; --ink-faint:#8f8267;
    --line:rgba(239,228,205,.16);
    --accent:#e0344f; --accent-soft:#3a2320; --accent-deep:#97001f;
    --accent2:#dcab3c; --accent2-soft:#3a2e0f;
  }
}
body.team-reds header.masthead{background:linear-gradient(180deg,#97001f,var(--accent));border-bottom:6px solid var(--accent2);border-radius:0;}
body.team-reds .section-head{border-bottom-color:var(--accent);}
body.team-reds h1, body.team-reds h2{font-weight:400;}

/* per-team accent overrides (modern teams share the base look, swap tokens only) */
body.team-tigers{ --accent:#0C2C56; --accent-deep:#081D3B; --accent-soft:#E7EBF2; --accent2:#FF6600; --accent2-soft:#FFE9DA; }
body.team-mets{ --accent:#002D72; --accent-deep:#001B44; --accent-soft:#E3E9F5; --accent2:#FF5910; --accent2-soft:#FFE9DD; }
body.team-yankees{ --accent:#0C2340; --accent-deep:#071427; --accent-soft:#E5E9F0; --accent2:#C99A2E; --accent2-soft:#F7EEDA; }
body.team-pirates{ --accent:#1C1C1C; --accent-deep:#000000; --accent-soft:#E7E7E7; --accent2:#FDB827; --accent2-soft:#FFF3D6; }
body.team-rays{ --accent:#092C5C; --accent-deep:#041A38; --accent-soft:#E1E9F2; --accent2:#8FD400; --accent2-soft:#EEF9CE; }
body.team-expos{ --accent:#003DA5; --accent-deep:#00246B; --accent-soft:#E2EAF7; --accent2:#E4002B; --accent2-soft:#FDE2E7; }
body.team-athletics{ --accent:#0E5A38; --accent-deep:#083A24; --accent-soft:#E2F0E8; --accent2:#D9A400; --accent2-soft:#FBF1CF; }

/* homepage per-card accents (used since franchise-grid cards live outside a team body class) */
.f-card.c-tigers{ --card-accent:#0C2C56; }
.f-card.c-mets{ --card-accent:#002D72; }
.f-card.c-yankees{ --card-accent:#0C2340; }
.f-card.c-pirates{ --card-accent:#1C1C1C; }
.f-card.c-reds{ --card-accent:#c8102e; }
.f-card.c-rays{ --card-accent:#092C5C; }
.f-card.c-expos{ --card-accent:#003DA5; }
.f-card.c-athletics{ --card-accent:#0E5A38; }

/* ---- franchise articles (From the Press Box) ---- */
ul.articles{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px;}
ul.articles li.art{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent2);border-radius:12px;box-shadow:var(--shadow);padding:12px 16px;display:flex;flex-direction:column;gap:6px;}
.art-meta{display:flex;flex-wrap:wrap;gap:6px 12px;font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);}
.art-meta .art-type{color:var(--accent2);font-weight:600;}
.art-meta .art-team{color:var(--accent);}
a.art-title{font-family:var(--font-display);font-weight:600;font-size:15px;line-height:1.3;color:var(--ink);text-decoration:none;}
a.art-title:hover{color:var(--accent);text-decoration:underline;}
.art-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;font-size:12px;color:var(--ink-soft);}
.art-foot .art-outlet{font-style:italic;}
.art-foot a.art-dl{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:3px 10px;white-space:nowrap;}
.art-foot a.art-dl:hover{border-color:var(--accent);}

/* ---- article seasons / archive ---- */
h3.art-season{font-family:var(--font-mono);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);margin:4px 0 10px;}
h3.art-season ~ h3.art-season{margin-top:20px;}
details.art-archive{margin-top:14px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:0 16px;}
details.art-archive > summary{cursor:pointer;list-style:none;padding:12px 0;font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);display:flex;align-items:center;gap:10px;}
details.art-archive > summary::-webkit-details-marker{display:none;}
details.art-archive > summary::before{content:"\25B8";color:var(--accent2);transition:transform .15s ease;}
details.art-archive[open] > summary::before{transform:rotate(90deg);}
details.art-archive .art-arch-tag{background:var(--accent2-soft);color:var(--accent2);border-radius:999px;padding:2px 9px;font-size:10px;}
details.art-archive[open]{padding-bottom:16px;}
nav.art-filter{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;}
nav.art-filter a.art-jump{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em;text-decoration:none;color:var(--ink-soft);border:1px solid var(--line);border-radius:999px;padding:5px 12px;background:var(--surface);}
nav.art-filter a.art-jump:hover{color:var(--accent);border-color:var(--accent);}
.section-head h2 a{color:inherit;text-decoration:none;}
.section-head h2 a:hover{text-decoration:underline;}
