@font-face { font-family: "Besley"; font-style: normal; font-weight: 400 900; font-display: swap; src: url(/assets/fonts/besley-latin-wght-normal.woff2) format("woff2"); }
@font-face { font-family: "Besley"; font-style: italic; font-weight: 400 900; font-display: swap; src: url(/assets/fonts/besley-latin-wght-italic.woff2) format("woff2"); }
@font-face { font-family: "Public Sans"; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/assets/fonts/public-sans-latin-wght-normal.woff2) format("woff2"); }
@font-face { font-family: "Public Sans"; font-style: italic; font-weight: 100 900; font-display: swap; src: url(/assets/fonts/public-sans-latin-wght-italic.woff2) format("woff2"); }
/* Layout: a statewide front page. A navy nameplate band, one lead story with an Ohio locator map,
   then two-column rows (stories left, calendar and regions right) that stack to one column on phones. */
:root {
  --paper: #f5f7f8;        /* cool limestone page */
  --sheet: #ffffff;        /* raised surfaces: lead, tables, maps */
  --ink: #0e1722;          /* nameplate navy, also the text ink */
  --ink-2: #384452;        /* secondary text */
  --muted: #66727f;        /* dates, meta */
  --rule: #d9dfe5;         /* hairlines */
  --accent: #0a6a80;       /* Ohio River current */
  --accent-soft: #dcedf1;  /* lit state on maps, flashes */
  --band: #0e1722;         /* masthead and footer band */
  --band-ink: #f2f5f7;
  --band-muted: #9eafbf;
  --band-accent: #74c9d8;
  --map: #e3e8ec;
  --map-edge: #a9b6c1;
  --win: #1d6b45;
  --loss: #9a2f2f;
  --tag-rec: #1d5f86;      /* claim labels */
  --tag-math: #5b4a99;
  --tag-open: #8a5a00;
  --tag-conflict: #a3302b;
  --font-display: "Besley", "Rockwell", Georgia, "Times New Roman", serif;
  --font-body: "Public Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --fs-0: 0.8rem; --fs-1: 0.9rem; --fs-2: 1rem; --fs-3: 1.14rem; --fs-4: 1.32rem;
  --fs-5: clamp(1.6rem, 4.2vw, 2.35rem); --fs-6: clamp(1.75rem, 4.6vw, 2.7rem);
  --measure: 42rem;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --paper: #0b1118; --sheet: #111a24; --ink: #e7edf2; --ink-2: #bcc7d1; --muted: #8b98a6; --rule: #223142;
    --accent: #5ec2d4; --accent-soft: #12303a; --band: #070c12; --band-ink: #eef3f6; --band-muted: #8ea0b1; --band-accent: #74c9d8;
    --map: #1b2734; --map-edge: #3a4d60; --win: #6cc797; --loss: #e98a8a; color-scheme: dark;
    --tag-rec: #7cc0e8; --tag-math: #b9aaf2; --tag-open: #f0c060; --tag-conflict: #f2908a;
  }
}
:root[data-theme="dark"] {
  --paper: #0b1118; --sheet: #111a24; --ink: #e7edf2; --ink-2: #bcc7d1; --muted: #8b98a6; --rule: #223142;
  --accent: #5ec2d4; --accent-soft: #12303a; --band: #070c12; --band-ink: #eef3f6; --band-muted: #8ea0b1; --band-accent: #74c9d8;
  --map: #1b2734; --map-edge: #3a4d60; --win: #6cc797; --loss: #e98a8a; color-scheme: dark;
  --tag-rec: #7cc0e8; --tag-math: #b9aaf2; --tag-open: #f0c060; --tag-conflict: #f2908a;
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font-body); font-size: var(--fs-2); line-height: 1.55; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration-color: color-mix(in srgb, currentColor 35%, transparent); text-underline-offset: 0.18em; }
a:hover { color: var(--accent); text-decoration-color: currentColor; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 2px; }
h1, h2, h3 { text-wrap: balance; margin: 0; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; }
ul { list-style: none; }

.wrap { max-width: 72rem; margin: 0 auto; padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }

.skip { position: absolute; left: 12px; top: -48px; z-index: 5; background: var(--sheet); color: var(--ink); padding: 8px 12px; border: 2px solid var(--accent); }
.skip:focus { top: 8px; }

/* ---------- Masthead ---------- */
.masthead { background: var(--band); color: var(--band-ink); border-bottom: 1px solid var(--rule); }
.masthead .wrap { padding-block: 14px 0; display: grid; gap: 6px; }
.mast-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.dateline { font-size: var(--fs-0); color: var(--band-muted); letter-spacing: 0.02em; font-variant-numeric: tabular-nums; }
.search-link { display: inline-flex; align-items: center; gap: 6px; flex: none; font-size: var(--fs-0); font-weight: 700; color: var(--band-ink); text-decoration: none; padding: 3px 11px 3px 9px; border: 1px solid color-mix(in srgb, var(--band-ink) 30%, transparent); border-radius: 999px; }
.search-link svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }
.search-link:hover, .search-link[aria-current="page"] { color: var(--band-accent); border-color: var(--band-accent); }
/* The nameplate: THE in a tilted accent stamp, then the name. */
.brand { display: inline-flex; align-items: center; gap: 0.26em; color: var(--band-ink); text-decoration: none; font-family: var(--font-display); font-weight: 800; font-size: clamp(1.7rem, 7vw, 3.4rem); line-height: 1.02; letter-spacing: -0.012em; padding-block: 6px 12px; }
.brand:hover { color: var(--band-ink); }
.brand-the { display: inline-block; flex: none; font-family: var(--font-display); font-weight: 900; font-size: 0.8em; line-height: 1; letter-spacing: 0.015em; text-transform: uppercase; color: var(--band); background: var(--band-accent); padding: 0.13em 0.2em 0.09em; border-radius: 0.07em; transform: rotate(-4deg); box-shadow: 0.07em 0.07em 0 color-mix(in srgb, var(--band-accent) 40%, transparent); }
.brand:hover .brand-the { transform: rotate(-6deg); }
.brand-name { text-wrap: balance; }
.brand-h { margin: 0; font: inherit; }
.primary { min-width: 0; }
.primary ul { display: flex; flex-wrap: wrap; gap: 2px 18px; padding-block: 8px 10px; border-top: 1px solid color-mix(in srgb, var(--band-ink) 18%, transparent); }
.primary li { flex: none; }
.primary a { display: inline-block; padding-block: 4px; font-size: var(--fs-1); font-weight: 600; color: var(--band-ink); text-decoration: none; border-bottom: 2px solid transparent; white-space: nowrap; }
/* On phones the section links scroll sideways instead of stacking four lines deep. */
@media (max-width: 560px) {
  .primary { margin-left: calc(-1 * max(16px, env(safe-area-inset-left, 0px))); margin-right: calc(-1 * max(16px, env(safe-area-inset-right, 0px))); }
  .primary ul { flex-wrap: nowrap; overflow-x: auto; gap: 0 16px; padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .primary ul::-webkit-scrollbar { display: none; }
  .primary li:last-child { padding-right: max(16px, env(safe-area-inset-right, 0px)); }
  .primary a { font-size: 0.88rem; }
}
.primary a:hover { color: var(--band-accent); }
.primary a[aria-current="page"] { border-bottom-color: var(--band-accent); }

/* ---------- Filters ---------- */
.filters { background: var(--sheet); border-bottom: 1px solid var(--rule); display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; padding-block: 10px; padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); justify-content: center; }
.filters.inline { background: transparent; border: 0; justify-content: flex-start; padding-left: 0; padding-right: 0; margin-bottom: 8px; }
.filters .field { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
@media (max-width: 560px) { .filters { justify-content: flex-start; } .filters .field { flex: 1 1 100%; } .filters .field select { flex: 1; } }
.filters label { font-size: var(--fs-0); font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em; color: var(--muted); }
.filters select { font: inherit; font-size: var(--fs-1); color: var(--ink); background: var(--paper); border: 1px solid var(--rule); border-radius: 4px; padding: 6px 8px; max-width: 100%; }
.filters button, .btn { font: inherit; font-size: var(--fs-1); font-weight: 700; color: #fff; background: var(--accent); border: 0; border-radius: 4px; padding: 7px 14px; cursor: pointer; }
:root[data-theme="dark"] .filters button, :root[data-theme="dark"] .btn { color: #071116; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .filters button, :root:not([data-theme="light"]) .btn { color: #071116; } }

/* ---------- Main grid ---------- */
main { display: block; padding-block: 22px 40px; }
main:focus { outline: none; }
main .wrap > * + * { margin-top: 30px; }
.row-2, .row-3 { display: grid; gap: 30px; }
.row-2 > *, .row-3 > * { min-width: 0; }
.row-2 > * > section + section, .row-2 > div > section + section { margin-top: 30px; }
@media (min-width: 880px) {
  .row-2 { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 44px; }
  .row-2.rev { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
  .row-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; }
}

.sec-h { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-4); line-height: 1.2; border-top: 3px solid var(--ink); padding-top: 9px; margin-bottom: 4px; }
.sec-h a { text-decoration: none; }
.sec-h .arr { color: var(--accent); }

.kicker, .eyebrow, .label { display: inline-block; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.09em; color: var(--accent); text-decoration: none; }
.eyebrow a { text-decoration: none; }
.meta, .stories time { font-size: var(--fs-0); color: var(--muted); font-variant-numeric: tabular-nums; }
.empty { color: var(--muted); font-style: italic; padding-block: 10px; }
.muted { color: var(--muted); }

/* ---------- Lead ---------- */
.lead { display: grid; gap: 18px; background: var(--sheet); border: 1px solid var(--rule); padding: 18px; }
.lead-text { display: grid; gap: 10px; align-content: start; min-width: 0; }
.lead h2 { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-6); line-height: 1.1; letter-spacing: -0.01em; }
.lead h2 a { text-decoration: none; }
.lead-dek { font-size: 1.12rem; color: var(--ink-2); max-width: var(--measure); }
.lead-map { margin: 0; display: grid; gap: 6px; justify-items: center; align-content: center; }
.lead-map .ohmap { width: 100%; max-width: 240px; height: auto; }
figcaption { font-size: var(--fs-0); color: var(--muted); text-align: center; }
@media (max-width: 879px) {
  .lead-map { grid-template-columns: 104px minmax(0, 1fr); justify-items: start; align-items: center; gap: 12px; border-top: 1px solid var(--rule); padding-top: 14px; }
  .lead-map .ohmap { width: 104px; }
  .lead-map figcaption { text-align: left; }
}
@media (min-width: 880px) { .lead { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); padding: 26px 28px; gap: 28px; } }

/* ---------- Story lists ---------- */
.stories > li { padding-block: 13px; border-bottom: 1px solid var(--rule); display: grid; gap: 4px; }
.stories > li:last-child { border-bottom: 0; }
.stories h3 { font-family: var(--font-display); font-weight: 600; font-size: var(--fs-3); line-height: 1.28; }
.stories h3 a { text-decoration: none; }
.dek { color: var(--ink-2); font-size: 0.96rem; max-width: var(--measure); }

.compact > li { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding-block: 9px; border-bottom: 1px solid var(--rule); }
.compact > li:last-child { border-bottom: 0; }
.compact a { text-decoration: none; font-weight: 500; line-height: 1.35; min-width: 0; }
.compact time { flex: none; font-size: var(--fs-0); color: var(--muted); font-variant-numeric: tabular-nums; }

/* ---------- Events ---------- */
.events > li { display: grid; grid-template-columns: 7.6rem minmax(0, 1fr); gap: 12px; padding-block: 11px; border-bottom: 1px solid var(--rule); }
.events > li:last-child { border-bottom: 0; }
.ev-date { font-size: var(--fs-0); font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.4; padding-top: 2px; }
.ev-title { font-weight: 650; line-height: 1.35; }
.ev-title a { text-decoration: none; }
.ev-meta { font-size: 0.86rem; color: var(--muted); margin-top: 2px; }
.ev-cat { color: var(--ink-2); font-weight: 600; }
.tag { display: inline-block; margin-left: 8px; font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--accent); border: 1px solid currentColor; border-radius: 3px; padding: 0 5px; vertical-align: 2px; }
@media (max-width: 420px) { .events > li { grid-template-columns: minmax(0, 1fr); gap: 2px; } }

/* ---------- Regions ---------- */
.regions > li { display: grid; gap: 2px; padding-block: 10px; border-bottom: 1px solid var(--rule); }
.regions > li:last-child { border-bottom: 0; }
.rg-name { font-family: var(--font-display); font-weight: 600; font-size: 1.06rem; text-decoration: none; }
.rg-cities, .rg-count { font-size: 0.86rem; color: var(--muted); }
.region-index > li { padding-block: 16px; border-bottom: 1px solid var(--rule); display: grid; gap: 6px; }
.region-index h3, .og-index h3 { font-family: var(--font-display); font-weight: 700; font-size: 1.25rem; }
.region-index h3 a, .og-index h3 a { text-decoration: none; }
.city-links { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 0.92rem; }
.city-links a { color: var(--accent); text-decoration: none; }
.city-links a:hover { text-decoration: underline; }
.city-links.big { font-size: 1rem; align-content: center; }
.region-top { display: grid; gap: 18px; align-items: center; }
@media (min-width: 700px) { .region-top { grid-template-columns: 220px minmax(0, 1fr); } }
.side-map { margin: 0; display: grid; gap: 6px; justify-items: center; background: var(--sheet); border: 1px solid var(--rule); padding: 14px; }
.side-map .ohmap { width: 100%; max-width: 260px; height: auto; }
.row-2 .side-map { margin-bottom: 18px; }

/* ---------- Ohio map ---------- */
.ohmap .state { fill: var(--map); stroke: var(--map-edge); stroke-width: 0.7; stroke-linejoin: round; }
.ohmap .state.lit { fill: var(--accent-soft); stroke: var(--accent); }
.ohmap .dot { fill: var(--accent); stroke: var(--sheet); stroke-width: 0.9; }
.ohmap .dot.minor { fill: var(--map-edge); stroke: none; }
.ohmap .lbl { font: 700 4.4px var(--font-body); fill: var(--ink); paint-order: stroke; stroke: var(--sheet); stroke-width: 1.4px; stroke-linejoin: round; }
.ohmap .lake { font: italic 600 4.1px var(--font-display); fill: var(--muted); letter-spacing: 0.04em; }

/* ---------- Cards ---------- */
.cards { display: grid; gap: 0 32px; }
@media (min-width: 720px) { .cards { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); } .cards.one { grid-template-columns: minmax(0, 1fr); } }
.cards > li { padding-block: 13px; border-bottom: 1px solid var(--rule); display: grid; gap: 4px; align-content: start; }
.cards h3 { font-family: var(--font-display); font-weight: 600; font-size: var(--fs-3); line-height: 1.28; }
.cards h3 a { text-decoration: none; }
.og-latest { font-size: 0.9rem; color: var(--ink-2); }
.og-index > li { padding-block: 16px; border-bottom: 1px solid var(--rule); display: grid; gap: 6px; }
.og-index p { max-width: var(--measure); }
.rec { font-size: 0.92rem; color: var(--ink-2); }

/* ---------- Page heads and helpers ---------- */
.page-head { display: grid; gap: 8px; padding-bottom: 4px; }
.page-head h1 { font-family: var(--font-display); font-weight: 800; font-size: var(--fs-6); line-height: 1.08; letter-spacing: -0.01em; }
.intro { font-size: 1.08rem; color: var(--ink-2); max-width: var(--measure); }
.intro.small { font-size: 0.92rem; margin-block: 2px 4px; }
.quick { display: flex; flex-wrap: wrap; gap: 8px; }
.quick a, .chips a { font-size: 0.86rem; font-weight: 600; text-decoration: none; border: 1px solid var(--rule); background: var(--sheet); border-radius: 999px; padding: 5px 12px; }
.quick a:hover, .chips a:hover { border-color: var(--accent); }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
main .wrap > .chips + .chips { margin-top: 10px; }
.chips a[aria-current="page"] { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.filter-note { font-size: var(--fs-1); color: var(--muted); }
.fineprint { font-size: 0.84rem; color: var(--muted); max-width: 52rem; }
.linklist > li { display: grid; gap: 1px; padding-block: 8px; border-bottom: 1px solid var(--rule); }
.linklist > li:last-child { border-bottom: 0; }
.linklist a { font-weight: 600; text-decoration: none; }
.linklist span { font-size: 0.86rem; color: var(--muted); }
.link-groups { display: grid; gap: 30px; }
@media (min-width: 760px) { .link-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 44px; } }
@media (min-width: 1100px) { .link-groups { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.biz > li { display: grid; gap: 1px; padding-block: 8px; border-bottom: 1px solid var(--rule); }
.biz a { font-weight: 600; text-decoration: none; }
.biz span { font-size: 0.86rem; color: var(--muted); }

/* ---------- Numbers ---------- */
.nums { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); padding: 0 1px 1px 0; }
.nums .num { background: var(--sheet); padding: 14px 16px; display: grid; gap: 3px; align-content: start; border: 1px solid var(--rule); margin: 0 -1px -1px 0; }
.nums.small { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.num-label { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); }
.num-value { font-family: var(--font-display); font-weight: 700; font-size: 1.7rem; line-height: 1.1; font-variant-numeric: tabular-nums; }
.num-sub, .num-cmp, .num-src { font-size: 0.84rem; color: var(--ink-2); }
.num-src a { color: var(--accent); }
.nums.small .num-value { font-size: 1.45rem; }

/* ---------- Tables ---------- */
.table-wrap { overflow-x: auto; background: var(--sheet); border: 1px solid var(--rule); }
table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
caption { text-align: left; font-size: var(--fs-0); color: var(--muted); padding: 10px 12px 2px; }
th[scope="row"] { border-bottom: 1px solid var(--rule) !important; white-space: normal !important; }
th { text-align: left; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); padding: 10px 12px; border-bottom: 2px solid var(--ink); white-space: nowrap; }
td { padding: 9px 12px; border-bottom: 1px solid var(--rule); vertical-align: top; }
tr:last-child td { border-bottom: 0; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
td.n { color: var(--muted); font-variant-numeric: tabular-nums; }
td.b { font-weight: 600; }
td.b a { font-weight: 600; text-decoration: none; }
td a { text-decoration: none; color: var(--accent); }
td.b a { color: var(--ink); }
table.dir { min-width: 760px; }
table.dir td:nth-child(4) { min-width: 18rem; color: var(--ink-2); }
table.banks { min-width: 720px; }
table.used { min-width: 560px; }
tr.me td { font-weight: 700; background: var(--accent-soft); }
.ticker { display: inline-block; font-size: 0.66rem; font-weight: 700; letter-spacing: 0.04em; color: var(--muted); border: 1px solid var(--rule); border-radius: 3px; padding: 0 5px; white-space: nowrap; vertical-align: 1px; }

/* ---------- Sports ---------- */
.scoreboard { display: grid; gap: 1px; background: var(--rule); border: 1px solid var(--rule); grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); margin: 0; }
.scoreboard div { background: var(--sheet); padding: 12px 16px; }
.scoreboard dt { font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); }
.scoreboard dd { margin: 2px 0 0; font-family: var(--font-display); font-weight: 700; font-size: 1.12rem; line-height: 1.3; }
.games > li { display: grid; grid-template-columns: 9.6rem minmax(0, 1fr) auto; gap: 10px; padding-block: 9px; border-bottom: 1px solid var(--rule); align-items: baseline; }
.games > li:last-child { border-bottom: 0; }
.g-date { font-size: 0.84rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.g-opp em { display: block; font-style: normal; font-size: 0.8rem; color: var(--muted); }
.g-res { font-weight: 800; font-variant-numeric: tabular-nums; }
.g-res.w { color: var(--win); } .g-res.l { color: var(--loss); } .g-res.d { color: var(--muted); }
@media (max-width: 420px) { .games > li { grid-template-columns: minmax(0, 1fr) auto; } .g-date { grid-column: 1 / -1; } }
.team-card .meta { color: var(--ink-2); }

/* ---------- Article ---------- */
.article { display: grid; gap: 34px; }
.art-main { min-width: 0; display: grid; gap: 14px; align-content: start; }
.art-main h1 { font-family: var(--font-display); font-weight: 800; font-size: var(--fs-6); line-height: 1.08; letter-spacing: -0.01em; max-width: 46rem; }
.art-dek { font-size: 1.16rem; color: var(--ink-2); max-width: var(--measure); }
.stamp { font-size: var(--fs-0); color: var(--muted); font-variant-numeric: tabular-nums; border-top: 1px solid var(--rule); padding-top: 10px; }
.places { display: flex; flex-wrap: wrap; gap: 6px; }
.place { font-size: 0.8rem; font-weight: 700; color: var(--accent); text-decoration: none; border: 1px solid var(--rule); border-radius: 999px; padding: 2px 10px; background: var(--sheet); }
.art-map { margin: 0; display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 12px; align-items: center; background: var(--sheet); border: 1px solid var(--rule); padding: 10px 14px; max-width: var(--measure); }
.art-map .ohmap { width: 92px; height: auto; }
.art-map figcaption { text-align: left; }
.art-body { max-width: var(--measure); display: grid; gap: 1em; font-size: 1.07rem; line-height: 1.7; }
.art-body h2 { font-family: var(--font-display); font-weight: 700; font-size: 1.36rem; line-height: 1.25; margin-top: 0.6em; }
.cite { font-size: 0.72em; font-weight: 700; color: var(--accent); text-decoration: none; margin-left: 1px; }
.sources { max-width: var(--measure); border-top: 3px solid var(--ink); padding-top: 10px; }
.sources h2 { font-family: var(--font-display); font-size: var(--fs-4); margin-bottom: 6px; }
.sources ol { padding-left: 1.4em; display: grid; gap: 6px; font-size: 0.92rem; color: var(--ink-2); }
.sources li { padding: 3px 6px; margin-left: -6px; border-radius: 3px; transition: background-color 0.6s; }
.sources li.flash { background: var(--accent-soft); }
.sources a { color: var(--ink); font-weight: 600; }
.notice { font-size: 0.9rem; color: var(--muted); font-style: italic; max-width: var(--measure); }
.art-side { min-width: 0; display: grid; gap: 22px; align-content: start; }
.side-box { border: 1px solid var(--rule); background: var(--sheet); padding: 14px 16px; display: grid; gap: 4px; }
.side-box h3 { font-family: var(--font-display); font-size: 1.12rem; }
.side-box h3 a { text-decoration: none; }
.side-box p:last-child { font-size: 0.9rem; color: var(--ink-2); }
@media (min-width: 960px) { .article { grid-template-columns: minmax(0, 1fr) 300px; gap: 56px; } }

.prose { max-width: var(--measure); display: grid; gap: 1em; font-size: 1.05rem; line-height: 1.68; }
.prose h2 { font-family: var(--font-display); font-size: 1.32rem; margin-top: 0.6em; }
.prose a { color: var(--accent); }
.code { margin: 0; padding: 14px 16px; font: 0.8rem/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: pre; color: var(--ink-2); }
.copy-status { font-size: var(--fs-1); color: var(--muted); }

/* ---------- Footer ---------- */
.site-foot { background: var(--band); color: var(--band-ink); }
.site-foot .wrap { padding-block: 28px 34px; display: grid; gap: 12px; }
.foot-brand { font-family: var(--font-display); font-weight: 800; font-size: 1.6rem; display: flex; align-items: center; gap: 0.28em; }
.foot-note { font-size: 0.8rem; color: var(--band-muted); max-width: 46rem; }
.foot-tag { color: var(--band-muted); font-size: 0.92rem; max-width: 40rem; }
.site-foot ul { display: flex; flex-wrap: wrap; gap: 4px 16px; padding-block: 8px; border-top: 1px solid color-mix(in srgb, var(--band-ink) 16%, transparent); }
.site-foot a { color: var(--band-ink); font-size: 0.88rem; text-decoration: none; }
.site-foot a:hover { color: var(--band-accent); }

/* ---------- Shared small pieces ---------- */
p.small { font-size: 0.86rem; color: var(--ink-2); }
.asof { font-size: var(--fs-0); color: var(--muted); margin: 2px 0 10px; font-variant-numeric: tabular-nums; }
.vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.nowrap { white-space: nowrap; }
.callout { background: var(--sheet); border: 1px solid var(--rule); border-left: 4px solid var(--accent); padding: 10px 14px; font-size: 0.95rem; max-width: 60rem; line-height: 1.9; }
.callout a { color: var(--accent); font-weight: 650; }
.callout .ev-tag { margin-right: 2px; }
.go a { font-weight: 700; color: var(--accent); text-decoration: none; }
.go a:hover { text-decoration: underline; }
.prose.small-prose { font-size: 0.95rem; line-height: 1.6; gap: 0.75em; }

/* Claim labels: how we know each statement */
.ev-tag { display: inline-block; font-size: 0.63rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.07em; line-height: 1.55; padding: 0 6px; border-radius: 3px; border: 1px solid currentColor; white-space: nowrap; vertical-align: 0.14em; font-family: var(--font-body); font-style: normal; }
.ev-rec { color: var(--tag-rec); }
.ev-math { color: var(--tag-math); }
.ev-open { color: var(--tag-open); }
.ev-conflict { color: var(--sheet); background: var(--tag-conflict); border-color: var(--tag-conflict); }
.art-body p.tagged .ev-tag { margin-right: 3px; }
.legend-wrap { max-width: var(--measure); border: 1px solid var(--rule); background: var(--sheet); padding: 8px 14px; font-size: 0.9rem; }
.legend-wrap summary { cursor: pointer; font-weight: 700; color: var(--accent); }
.legend { display: grid; gap: 6px; margin: 10px 0 4px; }
.legend div { display: grid; grid-template-columns: 8.6rem minmax(0, 1fr); gap: 10px; align-items: baseline; }
.legend dt, .legend dd { margin: 0; }
.legend dd { color: var(--ink-2); }

/* ---------- Home: election banner and spotlight ---------- */
.banner { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2px 14px; background: var(--accent-soft); border: 1px solid color-mix(in srgb, var(--accent) 35%, transparent); border-left: 4px solid var(--accent); padding: 10px 14px; text-decoration: none; color: var(--ink); font-size: 0.96rem; line-height: 1.45; }
.banner:hover { color: var(--ink); border-color: var(--accent); }
.banner-k { font-size: 0.7rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.09em; color: var(--accent); }
.banner strong { font-weight: 800; }
.banner .arr { grid-column: 2; grid-row: 1 / span 2; color: var(--accent); font-weight: 800; font-size: 1.1rem; }
.banner-k, .banner-t { grid-column: 1; }
@media (min-width: 760px) { .banner { grid-template-columns: auto minmax(0, 1fr) auto; } .banner-t { grid-column: 2; } .banner .arr { grid-column: 3; grid-row: 1; } }
.spotlight { background: var(--sheet); border: 1px solid var(--rule); border-top: 4px solid var(--accent); padding: 18px; display: grid; gap: 18px; }
.spot-head { display: grid; gap: 6px; }
.spot-head h2 { font-family: var(--font-display); font-weight: 800; font-size: var(--fs-5); line-height: 1.1; }
.spot-head h2 a { text-decoration: none; }
.spot-head > p:last-child { color: var(--ink-2); max-width: var(--measure); }
.spot-next { display: grid; gap: 2px; font-size: 0.92rem; margin-bottom: 12px; }
.row-2.tight { gap: 22px; }
@media (min-width: 880px) { .spotlight { padding: 24px 28px; } .row-2.tight { gap: 36px; } }
.figs { display: grid; gap: 1px; background: var(--rule); border: 1px solid var(--rule); grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 760px) { .figs { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.fig { background: var(--sheet); padding: 12px 14px; display: grid; gap: 4px; align-content: start; }
.spotlight .fig { background: var(--paper); }
.fig-v { font-family: var(--font-display); font-weight: 800; font-size: 1.55rem; line-height: 1.05; font-variant-numeric: tabular-nums; }
.fig-l { font-size: 0.86rem; color: var(--ink-2); line-height: 1.4; }
.fig-s { font-size: 0.78rem; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin-top: 2px; }
.fig-s a { color: var(--accent); font-weight: 650; }

/* ---------- Sports: team cards, form, week grid ---------- */
.team-cards { display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 560px) { .team-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 880px) { .team-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.team-card { background: var(--sheet); border: 1px solid var(--rule); padding: 12px 14px; display: grid; gap: 4px; align-content: start; }
.tc-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; min-height: 18px; }
.team-card h3 { font-family: var(--font-display); font-weight: 700; font-size: 1.12rem; line-height: 1.25; }
.team-card h3 a { text-decoration: none; }
.tc-line { font-size: 0.88rem; display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); gap: 8px; align-items: baseline; }
.tc-k { font-size: 0.64rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); }
.tc-note { color: var(--muted); }
.tc-note::before { content: "· "; }
.form { display: inline-flex; gap: 3px; vertical-align: middle; }
.form span { width: 18px; height: 18px; border-radius: 3px; display: inline-grid; place-items: center; font-family: var(--font-body); font-size: 0.62rem; font-weight: 800; line-height: 1; color: var(--sheet); }
.f-w { background: var(--win); } .f-l { background: var(--loss); } .f-d { background: var(--muted); }
.week { display: grid; gap: 14px; }
.wk-day h3 { font-size: 0.72rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.09em; color: var(--accent); padding-bottom: 4px; border-bottom: 1px solid var(--rule); }
.wk-day li { display: grid; grid-template-columns: 4.6rem minmax(0, 1fr); gap: 10px; padding-block: 7px; font-size: 0.92rem; border-bottom: 1px dotted var(--rule); }
.wk-day li:last-child { border-bottom: 0; }
.wk-time { font-variant-numeric: tabular-nums; font-weight: 700; font-size: 0.84rem; color: var(--ink-2); }
.wk-game a { font-weight: 700; text-decoration: none; }
.wk-game em { display: block; font-style: normal; font-size: 0.8rem; color: var(--muted); }

/* ---------- Auditing Dublin ---------- */
.tools { display: flex; flex-wrap: wrap; gap: 6px; }
.tools a { font-size: 0.84rem; font-weight: 700; text-decoration: none; padding: 6px 12px; border-radius: 4px; background: var(--sheet); border: 1px solid var(--rule); }
.tools a:hover { border-color: var(--accent); color: var(--accent); }
.tools a[aria-current="page"] { background: var(--accent); border-color: var(--accent); color: var(--sheet); }
.audit-box { border-top: 3px solid var(--accent); gap: 8px; }
.audit-box .tools a { font-size: 0.76rem; padding: 4px 8px; }
.quick-cards { display: grid; gap: 10px; }
@media (min-width: 760px) { .quick-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.quick-cards a { display: grid; gap: 3px; align-content: start; height: 100%; text-decoration: none; background: var(--sheet); border: 1px solid var(--rule); border-top: 3px solid var(--accent); padding: 12px 14px; }
.quick-cards strong { font-family: var(--font-display); font-size: 1.1rem; }
.quick-cards span { font-size: 0.88rem; color: var(--ink-2); }
.quick-cards a:hover { border-color: var(--accent); color: var(--ink); }
.quick-cards a:hover strong { color: var(--accent); }

.mtgs > li { display: grid; grid-template-columns: 8.2rem minmax(0, 1fr); gap: 14px; padding-block: 14px; border-bottom: 1px solid var(--rule); }
.mtgs > li:last-child { border-bottom: 0; }
.mtg-date { font-weight: 800; font-size: 0.9rem; font-variant-numeric: tabular-nums; display: grid; gap: 2px; align-content: start; }
.mtg-date span { font-weight: 700; font-size: 0.7rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.07em; }
.mtg-body { display: grid; gap: 5px; min-width: 0; }
.mtg-body h3 { font-family: var(--font-display); font-weight: 650; font-size: 1.08rem; line-height: 1.3; }
.mtg-body p { font-size: 0.94rem; color: var(--ink-2); }
.mtg-status { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.mtg-body p.mtg-status { font-size: 0.8rem; }
.mtg-votes { color: var(--muted); font-weight: 600; }
.mtg-links, .mtg-body p.mtg-links { font-size: 0.86rem; }
.mtg-links a { color: var(--accent); font-weight: 650; }
.mtg.has-conflict { box-shadow: inset 3px 0 0 var(--tag-conflict); padding-left: 12px; }
@media (max-width: 520px) { .mtgs > li { grid-template-columns: minmax(0, 1fr); gap: 4px; } .mtg-date { display: flex; flex-wrap: wrap; gap: 8px; align-items: baseline; } }
.st { display: inline-block; font-size: 0.64rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.07em; line-height: 1.6; padding: 0 8px; border-radius: 999px; border: 1px solid var(--rule); background: var(--paper); color: var(--ink-2); white-space: nowrap; }
.st-minutes, .st-approved { color: var(--win); border-color: color-mix(in srgb, var(--win) 40%, transparent); background: color-mix(in srgb, var(--win) 10%, var(--sheet)); }
.st-action, .st-in-review, .st-proposed, .st-in-progress { color: var(--tag-open); border-color: color-mix(in srgb, var(--tag-open) 40%, transparent); background: color-mix(in srgb, var(--tag-open) 9%, var(--sheet)); }
.st-upcoming, .st-under-contract { color: var(--accent); border-color: color-mix(in srgb, var(--accent) 40%, transparent); background: var(--accent-soft); }
.st-postponed { color: var(--muted); }

.timeline { list-style: none; }
.timeline > li { display: grid; grid-template-columns: 4.4rem minmax(0, 1fr); gap: 12px; padding-block: 12px; border-bottom: 1px solid var(--rule); }
.timeline > li:last-child { border-bottom: 0; }
.tl-year { font-family: var(--font-display); font-weight: 800; font-size: 1.1rem; line-height: 1.3; }
.tl-op { font-weight: 700; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.tl-op .ok { color: var(--win); }
.tl-meta { font-size: 0.86rem; color: var(--ink-2); }
.tl-missing .tl-year, .tl-missing .tl-op { color: var(--muted); font-weight: 600; }
.qlist > li { position: relative; padding: 9px 0 9px 28px; border-bottom: 1px solid var(--rule); font-size: 0.95rem; }
.qlist > li:last-child { border-bottom: 0; }
.qlist > li::before { content: "?"; position: absolute; left: 0; top: 11px; width: 19px; height: 19px; border-radius: 50%; background: var(--tag-open); color: var(--sheet); font-size: 0.72rem; font-weight: 800; display: grid; place-items: center; line-height: 1; }
.side-box .qlist > li { font-size: 0.88rem; }
@media (min-width: 760px) { .linklist.two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 36px; } .linklist.two > li:nth-last-child(2):nth-child(odd) { border-bottom: 0; } }

table.officials { min-width: 760px; }
table.contracts { min-width: 880px; }
td .sub { display: block; font-weight: 400; font-size: 0.82rem; color: var(--muted); margin-top: 1px; }
tr.flagged td { background: color-mix(in srgb, var(--tag-open) 7%, var(--sheet)); }
.flag { display: inline-block; margin-top: 3px; font-size: 0.62rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; line-height: 1.6; color: var(--tag-open); border: 1px solid currentColor; border-radius: 3px; padding: 0 5px; white-space: nowrap; }
.over, .under { font-weight: 700; color: var(--ink); }
.kv { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 6px 1px 8px 0; }
.kv div { background: var(--sheet); padding: 10px 12px; border: 1px solid var(--rule); margin: 0 -1px -1px 0; }
.kv dt { font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); }
.kv dd { margin: 2px 0 0; font-weight: 700; font-variant-numeric: tabular-nums; }
.dissents > li { padding-block: 12px; border-bottom: 1px solid var(--rule); display: grid; gap: 4px; }
.dissents > li:last-child { border-bottom: 0; }
.dis-head { font-size: 0.88rem; color: var(--ink-2); }
.dis-head strong { color: var(--ink); }

.trk { display: grid; gap: 12px; }
@media (min-width: 760px) { main .wrap > .trk { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.trk-item { background: var(--sheet); border: 1px solid var(--rule); padding: 14px 16px; display: grid; gap: 4px; align-content: start; }
.trk-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.trk-type { font-size: 0.68rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; color: var(--accent); }
.trk-item h3 { font-family: var(--font-display); font-weight: 700; font-size: 1.08rem; line-height: 1.3; }
.trk-item p { font-size: 0.93rem; color: var(--ink-2); }
.trk-item p.trk-where { font-size: 0.84rem; color: var(--muted); font-weight: 600; }
.trk-item p.trk-last { font-size: 0.82rem; color: var(--muted); border-top: 1px solid var(--rule); padding-top: 6px; margin-top: 4px; }
.trk-last a { color: var(--accent); font-weight: 650; }

/* ---------- Election guide ---------- */
.dates > li { display: grid; grid-template-columns: 7.2rem minmax(0, 1fr); gap: 12px; padding: 9px 8px; margin-inline: -8px; border-bottom: 1px solid var(--rule); font-size: 0.94rem; border-radius: 3px; }
.dates > li:last-child { border-bottom: 0; }
.dates time { font-weight: 800; font-variant-numeric: tabular-nums; font-size: 0.86rem; }
.dates a { text-decoration: none; }
.dates li.past, .dates li.past a { color: var(--muted); }
.dates li.next { background: var(--accent-soft); }
@media (max-width: 420px) { .dates > li { grid-template-columns: minmax(0, 1fr); gap: 0; } }
.howto { list-style: none; counter-reset: step; }
.howto > li { counter-increment: step; display: grid; grid-template-columns: 26px minmax(0, 1fr); column-gap: 10px; padding-block: 10px; border-bottom: 1px solid var(--rule); }
.howto > li:last-child { border-bottom: 0; }
.howto > li::before { content: counter(step); grid-row: 1 / span 2; width: 24px; height: 24px; border-radius: 50%; background: var(--ink); color: var(--paper); font-size: 0.76rem; font-weight: 800; display: grid; place-items: center; }
.howto span { font-size: 0.92rem; color: var(--ink-2); }
.howto a { color: var(--accent); font-weight: 650; }
.races { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.race { background: var(--sheet); border: 1px solid var(--rule); padding: 12px 14px; display: grid; gap: 6px; align-content: start; }
.race h3 { font-family: var(--font-display); font-weight: 700; font-size: 1.06rem; line-height: 1.3; }
.race li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1px 10px; padding-block: 7px; border-top: 1px solid var(--rule); align-items: baseline; }
.cand { font-weight: 650; }
.inc { display: inline-block; font-size: 0.6rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; line-height: 1.6; color: var(--accent); border: 1px solid currentColor; border-radius: 3px; padding: 0 4px; margin-left: 2px; vertical-align: 0.15em; white-space: nowrap; }
.party { font-size: 0.8rem; color: var(--muted); font-weight: 600; white-space: nowrap; }
.cand-note { grid-column: 1 / -1; font-size: 0.82rem; color: var(--muted); }
.race .mtg-links a { color: var(--accent); font-weight: 650; }

/* ---------- Search ---------- */
.search-form { display: flex; gap: 8px; max-width: 40rem; }
.search-form input { flex: 1; min-width: 0; font: inherit; font-size: 1.05rem; color: var(--ink); background: var(--sheet); border: 1px solid var(--rule); border-radius: 4px; padding: 10px 12px; }
.search-form input:focus { outline: 2px solid var(--accent); outline-offset: 1px; border-color: var(--accent); }
.search-form button { font: inherit; font-weight: 700; color: var(--sheet); background: var(--accent); border: 0; border-radius: 4px; padding: 0 16px; cursor: pointer; }
#search-results { display: grid; gap: 22px; }

@media (prefers-reduced-motion: reduce) { .sources li { transition: none; } .brand:hover .brand-the { transform: rotate(-4deg); } }
.feed-url { font-size: 1.1rem; font-weight: 700; overflow-wrap: anywhere; }
.feed-url a { color: var(--accent); }
