:root {
  --paper:#F7F4EC; --surface:#FCFAF4; --raise:#EFEBDF;
  --ink:#161512; --ink-soft:#4C4A42; --ink-faint:#827F73;
  --rule:#D8D3C4; --rule-strong:#B8B2A0; --ink-rule:#161512; --desk:#E4DDCC;
  --accent:#7A1E1E; --accent-tint:#F0E4E0;
  --up:#1F6B44; --down:#9E2B22; --new:#8A6D1F;
  --serif: Georgia, "Iowan Old Style", "Times New Roman", serif;
  --sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --measure: 68ch;
}
/* Default is always light (even on an OS set to dark) — dark applies only when the user explicitly
   toggles it, persisted in the t25theme cookie. No prefers-color-scheme auto-dark on first visit. */
:root[data-theme="dark"] {
  --paper:#14130F; --surface:#1A1813; --raise:#211E18;
  --ink:#EDE8DA; --ink-soft:#B0AB9C; --ink-faint:#7E7A6D;
  --rule:#322E26; --rule-strong:#484336; --ink-rule:#C9C3B2; --desk:#0B0A08;
  --accent:#D98A6A; --accent-tint:#2A211C;
  --up:#5FB483; --down:#E0836F; --new:#D8B564;
}
:root[data-theme="light"] {
  --paper:#F7F4EC; --surface:#FCFAF4; --raise:#EFEBDF;
  --ink:#161512; --ink-soft:#4C4A42; --ink-faint:#827F73;
  --rule:#D8D3C4; --rule-strong:#B8B2A0; --ink-rule:#161512; --desk:#E4DDCC;
  --accent:#7A1E1E; --accent-tint:#F0E4E0;
  --up:#1F6B44; --down:#9E2B22; --new:#8A6D1F;
}

* { box-sizing:border-box; }
html, body { margin:0; }
body { background:var(--desk); color:var(--ink); font-family:var(--serif); font-size:16px; line-height:1.5; -webkit-font-smoothing:antialiased; }
.sheet { max-width:1140px; margin:26px auto 34px; background:var(--paper); border:1px solid var(--rule-strong);
  box-shadow:0 1px 0 rgba(0,0,0,.05), 0 22px 46px -30px rgba(0,0,0,.55); padding-bottom:8px; }
@media (max-width:640px){ .sheet { margin:0; border-left:0; border-right:0; } }
.wrap { max-width:1080px; margin:0 auto; padding:0 26px; }
h1,h2,h3 { font-family:var(--serif); font-weight:700; margin:0; text-wrap:balance; }
a { color:inherit; }
.tnum { font-variant-numeric:tabular-nums; }
.eyebrow { font-family:var(--sans); font-size:10.5px; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink-faint); font-weight:700; }
button { font-family:inherit; }
:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
h1:focus { outline:none; }

/* Masthead */
header.masthead { padding-top:8px; }
.editionline { display:flex; align-items:center; justify-content:space-between; gap:12px; font-family:var(--sans);
  font-size:10.5px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-soft); padding:4px 0; }
.editionline .te { display:flex; align-items:center; gap:10px; }
.rule-thickthin { border-top:3px solid var(--ink-rule); border-bottom:1px solid var(--ink-rule); height:5px; }
.rule-thinthick { border-top:1px solid var(--ink-rule); border-bottom:3px solid var(--ink-rule); height:5px; }
.nameplate { text-align:center; padding:16px 0 10px; }
.nameplate a { text-decoration:none; }
.nameplate h1 { font-size:clamp(46px, 9.5vw, 104px); line-height:0.92; letter-spacing:-0.02em; font-weight:700; }
.nameplate .flourish { font-family:var(--sans); font-size:10px; letter-spacing:0.42em; text-transform:uppercase; color:var(--accent); font-weight:700; margin-bottom:6px; }
.dateline-row { display:flex; align-items:center; justify-content:center; gap:14px; padding:8px 0; flex-wrap:wrap;
  font-family:var(--sans); font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); }
.dateline-row .dot { color:var(--ink-faint); }
.themetoggle { background:none; border:1px solid var(--rule-strong); color:var(--ink-soft); width:30px; height:22px; cursor:pointer; font-size:12px; line-height:1; }
.themetoggle:hover { color:var(--ink); border-color:var(--ink-faint); }

nav.mainnav { display:flex; gap:0; flex-wrap:wrap; justify-content:center; }
nav.mainnav a { background:none; border:0; padding:9px 20px; color:var(--ink-soft); font-family:var(--sans); font-size:12px;
  font-weight:700; letter-spacing:0.1em; cursor:pointer; text-transform:uppercase; text-decoration:none; }
nav.mainnav a + a { border-left:1px solid var(--rule); }
nav.mainnav a:hover { color:var(--ink); }
nav.mainnav a.active { color:var(--accent); }

main { padding:26px 0 70px; }

/* Section headers */
.rule-head { display:flex; align-items:center; gap:18px; margin:6px 0 16px; }
.rule-head .line { flex:1; height:0; border-top:1px solid var(--ink-rule); }
.rule-head h2 { font-size:15px; letter-spacing:0.16em; text-transform:uppercase; white-space:nowrap; font-family:var(--sans); font-weight:800; }
.rule-head .r { font-family:var(--sans); font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-faint); white-space:nowrap; }

.leadin { max-width:var(--measure); margin:0 auto 24px; text-align:center; }
.leadin .hed { font-size:clamp(26px,4vw,40px); line-height:1.08; margin-bottom:10px; }
.leadin p { font-size:16px; color:var(--ink-soft); }

.poll-meta { text-align:center; margin:2px 0 12px; }
.poll-meta.left { text-align:left; }
.poll-meta .title { font-size:26px; font-weight:700; }
.poll-meta .byline { font-family:var(--sans); font-size:10.5px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-faint); margin-top:4px; }

/* Ranking list */
ol.rank-list { list-style:none; margin:0; padding:0; border-top:2px solid var(--ink-rule); }
.rank-row { display:grid; grid-template-columns:58px 44px 1fr auto; align-items:center; gap:14px; padding:9px 4px; border-bottom:1px solid var(--rule); }
.rank-row:hover { background:var(--accent-tint); }
.rank-row .rk { font-family:var(--serif); font-size:30px; line-height:1; text-align:right; font-variant-numeric:tabular-nums; }
.rank-row.lead .rk { color:var(--accent); }
.mv { font-family:var(--sans); font-size:12px; font-weight:700; font-variant-numeric:tabular-nums; }
.mv.up { color:var(--up); } .mv.down { color:var(--down); } .mv.same { color:var(--ink-faint); }
.mv.new { color:var(--new); font-size:9.5px; letter-spacing:0.06em; }
.team .name { font-size:19px; font-weight:700; }
.team .name a { color:inherit; text-decoration:none; }
.team .name a:hover { color:var(--accent); text-decoration:underline; text-underline-offset:3px; }
.team .fpv { display:inline-block; margin-left:8px; font-family:var(--sans); font-size:10px; font-weight:700; color:var(--accent); border:1px solid var(--accent); padding:0 5px; letter-spacing:0.04em; vertical-align:2px; }
.team .conf { font-family:var(--sans); font-size:11.5px; letter-spacing:0.03em; color:var(--ink-soft); text-transform:uppercase; }
/* Team logos, shown next to team names across the site */
.team { display:flex; align-items:center; gap:11px; min-width:0; }
.team-logo { width:28px; height:28px; object-fit:contain; flex:0 0 auto; }
.team-text { min-width:0; }
.rv-logo { width:16px; height:16px; object-fit:contain; vertical-align:-3px; margin-right:5px; }
.m-logo { width:20px; height:20px; object-fit:contain; align-self:center; flex:0 0 auto; }
.team-name-head { display:flex; align-items:center; gap:14px; }
.team-head-logo { width:44px; height:44px; object-fit:contain; flex:0 0 auto; }
.teampill { display:inline-flex; align-items:center; gap:7px; }
.pill-logo { width:18px; height:18px; object-fit:contain; }
.sched-table .opp .opp-logo { width:18px; height:18px; object-fit:contain; vertical-align:-4px; margin-right:6px; }
.stat { text-align:right; }
.stat .rec { font-size:15px; font-variant-numeric:tabular-nums; }
.stat .pts { font-family:var(--sans); font-size:10.5px; color:var(--ink-faint); letter-spacing:0.02em; }
.receiving { font-size:14px; color:var(--ink-soft); padding:14px 4px 0; line-height:1.7; border-top:1px solid var(--rule); margin-top:2px; }
.receiving b { font-family:var(--sans); font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink); }

/* Home */
.home-grid { display:grid; grid-template-columns:1fr 290px; gap:0; align-items:start; }
.home-lead { padding-right:34px; }
.home-aside { padding-left:34px; border-left:1px solid var(--ink-rule); display:flex; flex-direction:column; gap:26px; }
.dropcap::first-letter { float:left; font-family:var(--serif); font-weight:700; font-size:62px; line-height:0.7; padding:6px 8px 0 0; color:var(--accent); }
.movers { display:flex; flex-direction:column; }
.mover { display:flex; align-items:baseline; gap:11px; padding:9px 0; border-bottom:1px solid var(--rule); }
.mover .big { font-family:var(--serif); font-size:19px; font-weight:700; font-variant-numeric:tabular-nums; min-width:38px; }
.mover .big.up { color:var(--up); } .mover .big.down { color:var(--down); } .mover .big.new{ color:var(--new); font-size:12px; }
.mover .m-team { font-size:16px; font-weight:700; }
.mover .m-note { font-family:var(--sans); font-size:11.5px; color:var(--ink-soft); }
.subscribe-box { border:1px solid var(--ink-rule); padding:16px; }
.subscribe-box h3 { font-size:18px; margin-bottom:6px; }
.subscribe-box p { font-size:13.5px; color:var(--ink-soft); margin:0 0 14px; }

.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; background:var(--accent); color:#F7F4EC; border:0; padding:11px 18px; font-family:var(--sans); font-size:13px; font-weight:700; letter-spacing:0.03em; cursor:pointer; text-decoration:none; text-transform:uppercase; }
.btn.block { width:100%; }
.btn:hover { filter:brightness(1.08); }

/* Controls */
.controls { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:6px 0 14px; }
.pills { display:flex; gap:0; flex-wrap:wrap; border:1px solid var(--rule-strong); }
.pill { background:var(--surface); border:0; color:var(--ink-soft); padding:7px 13px; font-family:var(--sans); font-size:11px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; cursor:pointer; text-decoration:none; }
.pill + .pill { border-left:1px solid var(--rule-strong); }
.pill:hover { color:var(--ink); }
.pill.active { background:var(--ink); color:var(--paper); }
.scrub { display:flex; align-items:center; gap:9px; font-family:var(--sans); font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-soft); }
.scrub select, .scrub input { font-family:var(--sans); font-size:12px; padding:6px 8px; background:var(--surface); color:var(--ink); border:1px solid var(--rule-strong); }

/* Team */
.team-head { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap; border-bottom:3px double var(--ink-rule); padding-bottom:14px; margin-bottom:20px; }
.team-head .now { text-align:right; }
.team-head .now .n { font-family:var(--serif); font-size:54px; line-height:0.9; color:var(--accent); }
.team-head h2 { font-size:36px; }
.chartcard { border:1px solid var(--ink-rule); padding:20px; }
.chartcard svg .grid { stroke:var(--rule); }
.chartcard svg text { fill:var(--ink-faint); font-family:var(--sans); }
.chart-caption { font-family:var(--sans); font-size:12px; color:var(--ink-soft); margin-top:10px; }
.facts { display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:1px solid var(--ink-rule); margin-top:22px; }
.fact { padding:16px 18px; }
.fact + .fact { border-left:1px solid var(--rule); }
.fact .k { font-family:var(--sans); font-size:10.5px; text-transform:uppercase; letter-spacing:0.1em; color:var(--ink-faint); }
.fact .v { font-family:var(--serif); font-size:26px; margin-top:3px; font-variant-numeric:tabular-nums; }

/* Notify */
.form-grid { display:grid; grid-template-columns:1.1fr 0.9fr; gap:46px; align-items:start; }
fieldset { border:0; margin:0 0 26px; padding:0; }
legend { font-family:var(--serif); font-size:20px; font-weight:700; margin-bottom:4px; padding:0; }
.field-note { font-family:var(--sans); font-size:12.5px; color:var(--ink-soft); margin:0 0 14px; }
label.inp { display:block; font-family:var(--sans); font-size:10.5px; text-transform:uppercase; letter-spacing:0.1em; color:var(--ink-faint); font-weight:700; margin-bottom:6px; }
input[type=email], input[type=text] { width:100%; font-family:var(--serif); font-size:17px; padding:11px 12px; background:var(--surface); color:var(--ink); border:1px solid var(--rule-strong); }
.choicelist { display:flex; flex-direction:column; gap:0; border:1px solid var(--rule-strong); }
.choice { display:flex; align-items:flex-start; gap:11px; padding:12px 14px; cursor:pointer; background:var(--surface); }
.choice + .choice { border-top:1px solid var(--rule); }
.choice input { margin-top:3px; accent-color:var(--accent); width:16px; height:16px; }
.choice .c-t { font-weight:700; font-size:15px; }
.choice .c-d { font-family:var(--sans); font-size:12px; color:var(--ink-soft); }
/* The "follow your schools" picker is hidden by default and revealed only when the "Only my schools"
   radio is checked — pure CSS via :has(), so it's right on first paint with no JS and can't flash. */
.teampick { display:none; margin-top:12px; padding:16px; border:1px solid var(--ink-rule); background:var(--raise); }
form:has(input[type="radio"][value="teams"]:checked) .teampick { display:block; }
.teamsearch { width:100%; font-family:var(--serif); font-size:15px; padding:9px 11px; background:var(--surface); color:var(--ink); border:1px solid var(--rule-strong); margin:8px 0 10px; }
.chips { display:flex; flex-wrap:wrap; gap:7px; max-height:220px; overflow-y:auto; }
.chip { font-family:var(--sans); font-size:12px; font-weight:600; padding:6px 11px; border:1px solid var(--rule-strong); background:var(--surface); color:var(--ink-soft); cursor:pointer; }
.chip:hover { color:var(--ink); border-color:var(--ink-faint); }
.chip[aria-pressed="true"] { background:var(--accent); border-color:var(--accent); color:#F7F4EC; }
.schools-hidden { display:none; }
.teamgrid { display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:10px; }
.teamgrid label { display:flex; align-items:center; gap:7px; font-family:var(--sans); font-size:13px; }
.summary-card { border:1px solid var(--ink-rule); padding:22px; background:var(--surface); }
.summary-card h3 { font-size:19px; margin-bottom:12px; }
.sumline { display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px solid var(--rule); font-size:14px; }
.sumline .l { font-family:var(--sans); font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-soft); }
.sumline .r { font-weight:700; text-align:right; }
.fineprint { font-family:var(--sans); font-size:11.5px; color:var(--ink-faint); margin-top:14px; line-height:1.6; }
.toast { margin-top:14px; padding:14px 16px; background:var(--accent-tint); color:var(--accent); font-family:var(--sans); font-size:14px; font-weight:600; border:1px solid var(--accent); }

.footer { border-top:3px double var(--ink-rule); margin-top:56px; padding:18px 0 40px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-family:var(--sans); font-size:11.5px; letter-spacing:0.04em; text-transform:uppercase; color:var(--ink-faint); }
/* Honeypot link — kept in the DOM (bots follow it) but removed from view and the a11y tree (people never do). */
.honeypot { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
/* Footer version pill — links to the release notes. */
.version-pill { display:inline-block; margin-left:6px; padding:1px 8px; border-radius:999px; font-family:var(--sans); font-size:10.5px; font-weight:700; letter-spacing:0.04em; text-transform:none; color:var(--accent); background:var(--accent-tint); border:1px solid var(--accent); text-decoration:none; vertical-align:middle; }
.version-pill:hover { background:var(--accent); color:var(--surface); }

/* Release-notes page */
.rn-list { display:flex; flex-direction:column; gap:16px; padding:4px 0 44px; }
.rn-card { background:var(--surface); border:1px solid var(--rule); border-left:3px solid var(--accent); padding:16px 18px; }
.rn-head { display:flex; align-items:baseline; gap:12px; border-bottom:1px solid var(--rule); padding-bottom:10px; margin-bottom:4px; }
.rn-ver { font-family:var(--serif); font-size:20px; font-weight:700; color:var(--accent); }
.rn-date { font-family:var(--sans); font-size:12px; font-weight:700; letter-spacing:0.04em; text-transform:uppercase; color:var(--ink-faint); }
.rn-sec { font-family:var(--sans); font-size:11.5px; font-weight:800; letter-spacing:0.04em; text-transform:uppercase; color:var(--ink-soft); margin:12px 0 6px; }
.rn-sec.fix { color:var(--accent); }
.rn-items { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:7px; }
.rn-items li { position:relative; padding-left:18px; font-size:14px; line-height:1.55; color:var(--ink-soft); }
.rn-items li::before { content:''; position:absolute; left:3px; top:8px; width:6px; height:6px; border-radius:50%; background:var(--accent); }

/* Cookie-consent banner (shown on first visit; the [hidden] rule is needed because display:flex would otherwise beat the UA hidden style) */
.cookie-consent { position:fixed; left:0; right:0; bottom:0; z-index:200; display:flex; align-items:center; justify-content:center; gap:18px; flex-wrap:wrap; padding:12px 20px; background:var(--surface); border-top:2px solid var(--accent); box-shadow:0 -6px 20px rgba(0,0,0,0.16); font-family:var(--sans); font-size:13px; color:var(--ink-soft); }
.cookie-consent[hidden] { display:none; }
.cookie-consent .cc-text { max-width:640px; line-height:1.5; }
.cookie-consent .cc-actions { display:flex; gap:10px; align-items:center; flex:0 0 auto; }
.emptynote { font-family:var(--sans); color:var(--ink-soft); font-size:14px; padding:24px 0; }

/* Others receiving votes */
.others { border-top:1px solid var(--rule); margin-top:16px; padding-top:14px; font-size:14px; line-height:1.7; }
.others-head { display:block; font-family:var(--sans); font-size:10.5px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-faint); font-weight:700; margin-bottom:6px; }
.others-list a { color:var(--ink-soft); text-decoration:none; border-bottom:1px solid var(--rule); }
.others-list a:hover { color:var(--accent); border-color:var(--accent); }
.others-list .rvpts { color:var(--ink-faint); font-size:12px; }

/* Developer API page */
.api-endpoint { border:1px solid var(--rule); border-left:3px solid var(--accent); background:var(--surface); padding:14px 16px; margin:12px 0; }
.api-verb { font-family:var(--sans); font-size:13px; font-weight:700; letter-spacing:0.04em; color:var(--ink); }
.api-verb code { font-family:var(--mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace); font-size:13px; color:var(--accent); background:none; }
.api-desc { font-size:14px; color:var(--ink-soft); margin:7px 0 0; }
.api-code { font-family:var(--mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace); font-size:12.5px; line-height:1.55; color:var(--ink); background:var(--raise); border:1px solid var(--rule); padding:11px 13px; margin:10px 0 0; white-space:pre-wrap; overflow-x:auto; }
.others code, .api-desc code, .api-verb code { font-family:var(--mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace); font-size:0.92em; }
.api-tag { display:inline-block; margin-left:8px; padding:1px 8px; border-radius:999px; font-family:var(--sans); font-size:10.5px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; vertical-align:middle; }
.api-tag-free { color:var(--ink-soft); background:var(--raise); border:1px solid var(--rule-strong); }
.api-tag-paid { color:var(--accent); background:var(--accent-tint); border:1px solid var(--accent); }
.chip-soon { display:inline-block; margin-left:10px; padding:2px 10px; border-radius:999px; font-family:var(--sans); font-size:10.5px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; vertical-align:middle; color:var(--accent); background:var(--accent-tint); border:1px solid var(--accent); }

/* Conference report */
.conf-group { margin-bottom:30px; }
.conf-head { display:flex; align-items:baseline; justify-content:space-between; gap:14px; border-bottom:2px solid var(--ink-rule); padding-bottom:6px; }
.conf-head h3 { font-size:23px; }
.conf-head .meta { font-family:var(--sans); font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); white-space:nowrap; }
ol.rank-list.flush { border-top:0; }
.conf-note { font-family:var(--sans); font-size:12.5px; color:var(--ink-soft); background:var(--raise); border:1px solid var(--rule); padding:10px 14px; margin:0 0 20px; }

/* Team schedule */
.sched { border:1px solid var(--ink-rule); }
.sched-table { width:100%; border-collapse:collapse; font-size:15px; }
.sched-table thead th { font-family:var(--sans); font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-faint); font-weight:700; text-align:left; padding:9px 14px; border-bottom:1px solid var(--ink-rule); background:var(--raise); }
.sched-table thead th.num { text-align:right; }
.sched-table td { padding:10px 14px; border-bottom:1px solid var(--rule); vertical-align:baseline; }
.sched-table tbody tr:last-child td, .sched-table tr:last-child td { border-bottom:0; }
.sched-table .wk { color:var(--ink-faint); font-size:12.5px; font-family:var(--sans); white-space:nowrap; width:52px; }
.sched-table .loc { color:var(--ink-faint); font-family:var(--sans); font-size:11px; text-transform:uppercase; letter-spacing:0.06em; width:30px; }
.sched-table .opp a { color:var(--ink); text-decoration:none; border-bottom:1px solid var(--rule-strong); }
.sched-table .opp a:hover { color:var(--accent); border-color:var(--accent); }
.sched-table .opp .oppseed { display:inline-block; min-width:20px; margin-right:6px; font-family:var(--sans); font-size:11px; font-weight:800; color:var(--accent); }
.sched-table .opp .oppseed::before { content:"No. "; font-weight:600; color:var(--ink-faint); }
.sched-table .neutral, .sched-table .opp .neutral { color:var(--ink-faint); font-family:var(--sans); font-size:11px; }
.sched-table .num { text-align:right; white-space:nowrap; }
.sched-table .res { display:inline-block; width:16px; font-weight:800; margin-right:8px; }
.sched-table .res.w { color:#2E7D32; } .sched-table .res.l { color:var(--accent); } .sched-table .res.t { color:var(--ink-faint); }
.sched-table .score { color:var(--ink-soft); font-variant-numeric:tabular-nums; }
.sched-table tr.rankedwin td { background:var(--accent-tint); }
@media (prefers-color-scheme: dark) { .sched-table .res.w { color:#7FBE84; } }
:root[data-theme="dark"] .sched-table .res.w { color:#7FBE84; }
:root[data-theme="light"] .sched-table .res.w { color:#2E7D32; }

@media (max-width:820px){
  .home-grid { grid-template-columns:1fr; }
  .home-lead { padding-right:0; }
  .home-aside { padding-left:0; border-left:0; border-top:2px solid var(--ink-rule); padding-top:22px; margin-top:26px; }
  .form-grid { grid-template-columns:1fr; gap:28px; }
  .rank-row { grid-template-columns:40px 38px 1fr auto; gap:10px; }
  .rank-row .rk { font-size:25px; }
  .facts { grid-template-columns:1fr; } .fact + .fact { border-left:0; border-top:1px solid var(--rule); }
}

/* ===== Team finder (directory of every ranked team) ===== */
.backlink { display:inline-flex; align-items:center; gap:6px; font-family:var(--sans); font-size:11px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-soft); text-decoration:none; margin-bottom:14px; }
.backlink:hover { color:var(--accent); }
.finder { border:1px solid var(--ink-rule); background:var(--surface); padding:18px 20px; margin-bottom:22px; }
.finder .lab { display:block; font-family:var(--sans); font-size:10.5px; text-transform:uppercase; letter-spacing:0.1em; color:var(--ink-faint); font-weight:700; margin-bottom:8px; }
.finder .teamsearch { margin:0; font-size:18px; }
.azjump { display:flex; flex-wrap:wrap; gap:2px; margin-top:14px; }
.azjump a { font-family:var(--sans); font-size:11px; font-weight:700; min-width:26px; text-align:center; padding:5px 6px; border:1px solid var(--rule); color:var(--ink-soft); text-decoration:none; }
.azjump a:hover { color:var(--accent); border-color:var(--accent); }
.dir-group { margin-bottom:20px; }
.dir-letter { font-family:var(--serif); font-size:22px; font-weight:700; color:var(--accent); border-bottom:2px solid var(--ink-rule); padding-bottom:4px; margin:0 0 12px; scroll-margin-top:16px; }
.dir-list { display:grid; grid-template-columns:repeat(auto-fill, minmax(190px, 1fr)); gap:6px 16px; }
.teamlink { display:inline-flex; align-items:center; gap:8px; font-size:15px; text-decoration:none; color:var(--ink); padding:5px 4px; border-bottom:1px solid transparent; min-width:0; }
.teamlink span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.teamlink:hover { color:var(--accent); border-bottom-color:var(--accent); }
.dir-empty { padding:20px 0; }

/* ===== Team profile: facts + years-in-the-rankings grid ===== */
.facts.facts-4 { grid-template-columns:repeat(4,1fr); }
.fact .v.small-v { font-size:16px; line-height:1.3; }
.fact .v small { font-size:13px; color:var(--ink-soft); font-family:var(--serif); }
.decade { margin-bottom:20px; }
.decade .dlabel { display:flex; align-items:baseline; justify-content:space-between; font-family:var(--serif); font-size:19px; font-weight:700; border-bottom:2px solid var(--ink-rule); padding-bottom:5px; margin-bottom:12px; }
.decade .dlabel .cnt { font-family:var(--sans); font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-faint); }
.yeargrid { display:grid; grid-template-columns:repeat(auto-fill, minmax(116px, 1fr)); gap:9px; }
.ycell { display:flex; flex-direction:column; gap:6px; justify-content:space-between; min-height:76px; border:1px solid var(--rule-strong); background:var(--surface); padding:10px 11px; text-decoration:none; color:var(--ink); }
.ycell:hover { border-color:var(--accent); background:var(--accent-tint); }
.ycell .yr { font-family:var(--serif); font-size:21px; font-weight:700; line-height:1; }
.ycell .best { font-family:var(--sans); font-size:10px; letter-spacing:0.03em; text-transform:uppercase; color:var(--accent); font-weight:700; }
.ycell .sports { display:flex; gap:4px; flex-wrap:wrap; }
.stag { font-family:var(--sans); font-size:9.5px; font-weight:800; letter-spacing:0.04em; padding:2px 6px; border:1px solid var(--rule-strong); color:var(--ink-soft); background:var(--paper); }
.stag.fb { border-color:var(--accent); color:var(--accent); }
.ycell.empty { background:transparent; border-style:dashed; border-color:var(--rule); justify-content:center; align-items:flex-start; gap:3px; }
.ycell.empty .yr { font-size:15px; color:var(--ink-faint); font-weight:400; }
.ycell.empty .un { font-family:var(--sans); font-size:9.5px; letter-spacing:0.04em; text-transform:uppercase; color:var(--ink-faint); }

/* ===== Board week scrubber + landed-team highlight ===== */
.weekbar { display:flex; align-items:center; gap:6px; border:1px solid var(--ink-rule); background:var(--surface); padding:6px; margin:4px 0 14px; }
.weekbar .weeks { display:flex; gap:2px; flex:1; flex-wrap:wrap; }
.weekbar .arw { display:inline-flex; align-items:center; justify-content:center; font-family:var(--sans); font-size:14px; font-weight:800; width:34px; height:32px; background:var(--paper); border:1px solid var(--rule-strong); color:var(--ink); text-decoration:none; flex:0 0 auto; }
.weekbar .arw:hover { background:var(--accent); color:var(--paper); border-color:var(--accent); }
.weekbar .arw.disabled { opacity:0.35; pointer-events:none; }
.weekbar .wk { font-family:var(--sans); font-size:11px; font-weight:700; letter-spacing:0.02em; text-transform:uppercase; padding:7px 10px; background:var(--paper); border:1px solid var(--rule); color:var(--ink-soft); text-decoration:none; white-space:nowrap; }
.weekbar .wk:hover { color:var(--ink); }
.weekbar .wk.active { background:var(--accent); color:var(--paper); border-color:var(--accent); }
.rank-row.you { background:var(--accent-tint); box-shadow:inset 3px 0 0 var(--accent); }

@media (max-width:820px){ .facts.facts-4 { grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .facts.facts-4 { grid-template-columns:1fr; } .dir-list { grid-template-columns:1fr; } }
