/* TSLA Fear & Greed Index: shared styles for every page.
   Layout: a steel instrument panel heads one 1080px column; each page follows with
   stat rows, charts on panels and notes on the page plane. */
:root {
  --page: #eef1f3;
  --panel: #fafbfc;
  --inset: #e7ebee;
  --ink: #10161b;
  --ink-2: #46515b;
  --muted: #5e6a75;
  --hair: #dfe4e8;
  --rule: #c6ced5;
  --accent: #1d62c6;
  --on-accent: #ffffff;
  --shadow: 0 8px 24px rgba(16, 22, 27, 0.10);
  /* Zone scale: diverging, fear (warm) to greed (cool), gray midpoint */
  --ef: #c22826;
  --fear: #e87822;
  --neutral: #c2c8cd;
  --greed: #2ab186;
  --eg: #00795f;
  /* Buy score scale: one hue, sequential, No (light) to Yes (dark) */
  --bz1: #6da7ec;
  --bz2: #3987e5;
  --bz3: #256abf;
  --bz4: #184f95;
  --bz5: #0d366b;
  --wash: 0.13;
  /* Data series: validated categorical slots 1-2 plus a de-emphasis gray */
  --s1: #2a78d6;
  --s2: #eb6834;
  --ref: #7f8b96;
  /* Rating scale (Safety page): fixed status steps for Good, Acceptable, Marginal and Poor,
     the same in both themes and always shown with a word or letter */
  --st-good: #0ca30c;
  --st-warn: #fab219;
  --st-serious: #ec835a;
  --st-crit: #d03b3b;
  --st-ink: #10161b;
  --f-display: "Saira Semi Condensed", "Arial Narrow", "Roboto Condensed", system-ui, sans-serif;
  --f-body: "Instrument Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --f-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --radius: 14px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --page: #0b0f12;
    --panel: #141a1e;
    --inset: #1d252b;
    --ink: #e6ebef;
    --ink-2: #aeb9c2;
    --muted: #8794a0;
    --hair: #222a31;
    --rule: #34404a;
    --accent: #6aa6f8;
    --on-accent: #0b0f12;
    --shadow: 0 10px 28px rgba(0, 0, 0, 0.45);
    --ef: #f25855;
    --fear: #a85800;
    --neutral: #43494d;
    --greed: #087a5f;
    --eg: #00ae87;
    --bz1: #1c5cab;
    --bz2: #3987e5;
    --bz3: #6da7ec;
    --bz4: #9ec5f4;
    --bz5: #cde2fb;
    --wash: 0.17;
    --s1: #3987e5;
    --s2: #d95926;
    --ref: #626e79;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --page: #0b0f12;
  --panel: #141a1e;
  --inset: #1d252b;
  --ink: #e6ebef;
  --ink-2: #aeb9c2;
  --muted: #8794a0;
  --hair: #222a31;
  --rule: #34404a;
  --accent: #6aa6f8;
  --on-accent: #0b0f12;
  --shadow: 0 10px 28px rgba(0, 0, 0, 0.45);
  --ef: #f25855;
  --fear: #a85800;
  --neutral: #43494d;
  --greed: #087a5f;
  --eg: #00ae87;
  --bz1: #1c5cab;
  --bz2: #3987e5;
  --bz3: #6da7ec;
  --bz4: #9ec5f4;
  --bz5: #cde2fb;
  --wash: 0.17;
  --s1: #3987e5;
  --s2: #d95926;
  --ref: #626e79;
  color-scheme: dark;
}

* { box-sizing: border-box; }
html { background: var(--page); }
body {
  margin: 0;
  background: var(--page);
  color: var(--ink);
  font: 400 16px/1.55 var(--f-body);
  -webkit-font-smoothing: antialiased;
}
a { color: var(--accent); text-underline-offset: 3px; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 4px; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.wrap {
  max-width: 1080px;
  margin: 0 auto;
  padding-inline: 28px;
  padding-block: 22px 56px;
  display: flex;
  flex-direction: column;
  gap: 52px;
}

/* ---------- Header and site menu ---------- */
.top { display: flex; flex-direction: column; gap: 14px; }
.top-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 28px; }
.brand { display: flex; align-items: center; gap: 12px; min-width: 0; color: var(--ink); text-decoration: none; }
.mark { width: 38px; height: 24px; flex: none; }
.mark .m-arc { fill: none; stroke: var(--ink); stroke-width: 3; stroke-linecap: round; }
.mark .m-needle { stroke: var(--ink); stroke-width: 2.5; stroke-linecap: round; }
.mark .m-hub { fill: var(--ink); }
.wordmark {
  margin: 0;
  font: 600 22px/1.1 var(--f-display);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.wordmark b { font-weight: 700; }
.asof { margin: 0; font: 400 12.5px/1.4 var(--f-mono); color: var(--muted); }
.site-nav { display: flex; flex-wrap: wrap; gap: 4px 6px; border-bottom: 1px solid var(--rule); }
.site-nav a {
  color: var(--ink-2); text-decoration: none; font-size: 15px; font-weight: 500;
  padding: 8px 10px 10px; margin-bottom: -1px; border-bottom: 2px solid transparent; border-radius: 6px 6px 0 0;
}
.site-nav a:hover { color: var(--ink); background: var(--inset); }
.site-nav a[aria-current="page"] { color: var(--ink); border-bottom-color: var(--ink); font-weight: 600; }
.lede { margin: 0; max-width: 64ch; font-size: 18px; line-height: 1.5; color: var(--ink-2); text-wrap: pretty; }
.page-title { margin: 0; font: 600 34px/1.1 var(--f-display); letter-spacing: 0.01em; text-wrap: balance; }
.page-head { display: flex; flex-direction: column; gap: 10px; }

h2 {
  margin: 0;
  font: 600 27px/1.15 var(--f-display);
  letter-spacing: 0.01em;
  text-wrap: balance;
}
h3.sub { margin: 0; font: 600 18px/1.3 var(--f-body); }
.sec-intro { margin: 8px 0 0; max-width: 64ch; color: var(--ink-2); text-wrap: pretty; }
.note { margin: 10px 4px 0; font-size: 13px; line-height: 1.5; color: var(--muted); max-width: 90ch; }
section > .note:first-child { margin-top: 0; }

/* ---------- Chips ---------- */
.chip { display: inline-flex; align-items: center; gap: 7px; font-weight: 500; font-size: 14px; color: var(--ink); white-space: nowrap; }
.chip .dot { width: 10px; height: 10px; border-radius: 50%; background: var(--b); flex: none; }
.status { display: inline-flex; align-items: center; font: 500 12px/1 var(--f-mono); letter-spacing: 0.02em; padding: 5px 8px; border-radius: 999px; white-space: nowrap; }
.status.confirmed { color: var(--ink); border: 1px solid var(--ink-2); }
.status.expected { color: var(--ink-2); border: 1px dashed var(--muted); }
.status.done { color: var(--muted); background: var(--inset); border: 1px solid transparent; }

/* ---------- Panels, stat tiles, link cards ---------- */
.panel { background: var(--panel); border: 1px solid var(--hair); border-radius: var(--radius); --ring: var(--panel); }
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0; margin-top: 20px; border-top: 1px solid var(--hair); }
.stat { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px 16px 0; border-bottom: 1px solid var(--hair); min-width: 0; }
.stat-label { font-size: 14px; font-weight: 500; color: var(--ink-2); }
.stat-value { font: 600 32px/1.05 var(--f-body); letter-spacing: -0.02em; }
.stat-value small { font-size: 18px; font-weight: 500; color: var(--ink-2); letter-spacing: 0; }
.stat-sub { font-size: 13px; color: var(--ink-2); }
.stat-sub .d { font: 400 12px var(--f-mono); color: var(--muted); }
.cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.card-link {
  display: flex; flex-direction: column; gap: 6px; padding: 16px 18px; color: var(--ink); text-decoration: none;
  background: var(--panel); border: 1px solid var(--hair); border-radius: 12px; min-width: 0;
}
.card-link:hover { border-color: var(--rule); box-shadow: var(--shadow); }
.card-kicker { font: 500 12px/1.2 var(--f-mono); color: var(--muted); letter-spacing: 0.04em; text-transform: uppercase; }
.card-main { font: 600 22px/1.2 var(--f-body); }
.card-sub { font-size: 14px; color: var(--ink-2); }
.card-go { margin-top: auto; font-size: 14px; font-weight: 500; color: var(--accent); }
.card-link.wide { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 6px 22px; }
.card-link.wide .card-head { display: flex; flex-direction: column; gap: 6px; flex: 1 1 260px; min-width: 0; }
.card-link.wide .card-score { display: flex; align-items: center; gap: 14px; }
.card-link.wide .card-num { font: 600 40px/1 var(--f-body); letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.card-link.wide .card-go { margin-top: 0; }

/* ---------- Generic charts ---------- */
.chart-panel { margin-top: 18px; padding: 16px 16px 14px; }
.chart-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; margin: 0 4px 10px; }
.chart-title { margin: 0; font: 600 16px/1.3 var(--f-body); }
.legend { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13px; color: var(--ink-2); }
.legend span { display: inline-flex; align-items: center; gap: 7px; }
.legend i { display: inline-block; flex: none; }
.legend i.k-line { width: 16px; height: 3px; border-radius: 2px; background: var(--k); }
.legend i.k-box { width: 11px; height: 11px; border-radius: 3px; background: var(--k); }
.legend i.k-tick { width: 14px; height: 0; border-top: 2px solid var(--k); }
.legend i.hatch-key { width: 11px; height: 11px; border-radius: 3px; background: repeating-linear-gradient(135deg, var(--ref) 0 2px, transparent 2px 4px); box-shadow: inset 0 0 0 1.5px var(--ref); }
.chart { position: relative; touch-action: pan-y; border-radius: 8px; }
.chart svg { display: block; overflow: visible; }
.c-grid { stroke: var(--hair); stroke-width: 1; }
.c-base, .c-tickmark { stroke: var(--rule); stroke-width: 1; }
.c-ytick, .c-xtick { fill: var(--muted); font: 400 11px var(--f-mono); }
.c-band { fill: var(--ink-2); font: 500 12px var(--f-body); }
.c-wash { fill-opacity: var(--wash); }
.c-line { fill: none; stroke-linejoin: round; stroke-linecap: round; }
.c-dot { stroke: var(--panel); stroke-width: 2; }
.c-event { fill: var(--ink); stroke: var(--panel); stroke-width: 2; }
.c-endlabel { fill: var(--ink); font: 600 12.5px var(--f-body); paint-order: stroke; stroke: var(--panel); stroke-width: 4px; stroke-linejoin: round; }
.c-endname { fill: var(--ink-2); font: 500 12px var(--f-body); paint-order: stroke; stroke: var(--panel); stroke-width: 4px; stroke-linejoin: round; }
.c-vline { stroke: var(--ink-2); stroke-width: 1; }
.c-fdot { stroke: var(--panel); stroke-width: 2; }
.c-hit { cursor: crosshair; }
.c-bar { transition: opacity 0.12s; }
.c-dim .c-bar { opacity: 0.45; }
.c-dim .c-bar.on { opacity: 1; }
.c-mark { stroke: var(--ink); stroke-width: 2; stroke-linecap: round; }
.c-mark-ring { stroke: var(--panel); stroke-width: 5; stroke-linecap: round; }
.tip {
  position: absolute; z-index: 2; pointer-events: none; min-width: 150px; max-width: 250px;
  background: var(--panel); border: 1px solid var(--hair); border-radius: 9px; box-shadow: var(--shadow);
  padding: 9px 11px; display: flex; flex-direction: column; gap: 3px;
}
.tip-date { font: 400 12px var(--f-mono); color: var(--muted); }
.tip-main { display: flex; align-items: center; gap: 10px; }
.tip-val { font: 600 22px/1.1 var(--f-body); }
.tip-row { display: grid; grid-template-columns: 14px auto 1fr; align-items: center; gap: 8px; font-size: 13px; color: var(--ink-2); }
.tip-row b { font: 600 15px/1.2 var(--f-body); color: var(--ink); font-variant-numeric: tabular-nums; }
.tip-row i { width: 12px; height: 3px; border-radius: 2px; background: var(--k); display: block; }
.tip-row i.box { height: 10px; border-radius: 2px; }
.tip-note { font-size: 13px; line-height: 1.35; color: var(--ink); }
.tip-cov { font-size: 12px; line-height: 1.35; color: var(--muted); }
.chart-note { margin: 12px 4px 0; font-size: 13px; color: var(--muted); }
.stats.c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.stats.c4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.chart-foot { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; margin: 10px 4px 0; }
.chart-foot .note { margin: 0; }
.text-btn {
  appearance: none; border: 0; background: none; padding: 6px 2px; cursor: pointer;
  font: 500 14px/1 var(--f-body); color: var(--accent); text-decoration: underline; text-underline-offset: 3px;
}
.table-wrap { margin-top: 12px; max-height: 360px; overflow: auto; border-top: 1px solid var(--hair); }
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.grid-2 > .chart-panel, .grid-3 > .chart-panel { margin-top: 0; min-width: 0; }
.mini-head { display: flex; flex-direction: column; gap: 2px; margin: 0 4px 8px; }
.mini-head .chart-title { font-size: 15px; }
.mini-head .mini-val { font: 600 22px/1.15 var(--f-body); }
.mini-head .mini-sub { font-size: 13px; color: var(--ink-2); }

table { width: 100%; border-collapse: collapse; font-size: 14px; }
caption { text-align: left; padding: 10px 4px 6px; font-size: 13px; color: var(--muted); }
th { text-align: left; font: 500 11.5px var(--f-mono); letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); padding: 8px 10px; border-bottom: 1px solid var(--rule); background: var(--panel); position: sticky; top: 0; }
td { padding: 9px 10px; border-bottom: 1px solid var(--hair); vertical-align: top; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
td.date { font: 400 13px var(--f-mono); color: var(--ink-2); white-space: nowrap; }
td.pos { color: var(--ink); }
.plain-table th { background: var(--page); }
.scroll-x { overflow-x: auto; }

/* ---------- Segmented range control ---------- */
.sec-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 14px 24px; }
.controls { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.seg-ctl { display: inline-flex; padding: 3px; gap: 2px; background: var(--inset); border-radius: 10px; }
.seg-ctl button {
  appearance: none; border: 0; background: transparent; color: var(--ink-2);
  font: 500 13px/1 var(--f-mono); padding: 8px 11px; border-radius: 7px; cursor: pointer;
}
.seg-ctl button:hover { color: var(--ink); }
.seg-ctl button[aria-pressed="true"] { background: var(--panel); color: var(--ink); box-shadow: 0 1px 2px rgba(0,0,0,.12); }

/* ---------- Fear & Greed home page ---------- */
.instrument {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
  gap: 24px 44px;
  padding: 28px 32px 30px;
  align-items: center;
}
.gauge-col { display: flex; flex-direction: column; align-items: center; min-width: 0; }
#gauge { width: 100%; max-width: 470px; height: auto; display: block; overflow: visible; }
.g-arc { fill: none; stroke-width: 26; }
.g-tick { stroke: var(--rule); stroke-width: 1; }
.g-tick.major { stroke: var(--muted); }
.g-num { fill: var(--muted); font: 500 12px var(--f-mono); }
.g-band { fill: var(--ink-2); font: 600 12.5px var(--f-display); letter-spacing: 0.09em; }
.g-needle path { fill: var(--ink); }
.g-hub { fill: var(--ink); }
.g-bolt { fill: var(--panel); }
.readout { display: flex; flex-direction: column; align-items: center; gap: 6px; margin-top: 4px; }
.hero-num { font: 600 88px/0.95 var(--f-body); letter-spacing: -0.035em; }
.hero-band { display: inline-flex; align-items: center; gap: 10px; font: 600 22px/1.2 var(--f-body); }
.hero-band .dot { width: 14px; height: 14px; border-radius: 50%; background: var(--b); }
.log-col { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.stamp { margin: 0; font: 500 12.5px/1.4 var(--f-mono); color: var(--muted); letter-spacing: 0.02em; }
.summary { margin: 6px 0 0; font-size: 18px; line-height: 1.45; text-wrap: pretty; }
.readings { margin: 0; display: flex; flex-direction: column; }
.readings > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  padding-block: 11px;
  border-top: 1px solid var(--hair);
}
.readings > div:last-child { border-bottom: 1px solid var(--hair); }
.readings dt { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; min-width: 0; }
.readings .r-name { font-weight: 500; }
.readings .r-date { font: 400 12.5px var(--f-mono); color: var(--muted); }
.readings dd { margin: 0; display: grid; grid-template-columns: 3ch 128px; align-items: center; gap: 16px; }
.readings .r-val { font: 600 20px/1 var(--f-body); font-variant-numeric: tabular-nums; text-align: right; }
.r52 { display: flex; flex-direction: column; gap: 8px; }
.r52-head { font-size: 14px; font-weight: 500; color: var(--ink-2); }
.r52-ends { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; color: var(--ink-2); }
.r52-ends b { color: var(--ink); font-weight: 600; font-variant-numeric: tabular-nums; }
.r52-ends span:last-child { text-align: right; }
.r52-ends .d { font: 400 12px var(--f-mono); color: var(--muted); }
.track { position: relative; height: 26px; }
.track .seg { position: absolute; top: 10px; height: 6px; padding-inline: 1px; background-clip: content-box; background-color: var(--b); }
.track .seg.first { border-radius: 4px 0 0 4px; }
.track .seg.last { border-radius: 0 4px 4px 0; }
.track .span52 { position: absolute; top: 21px; height: 2px; background: var(--ink-2); border-radius: 1px; }
.track .span52::before, .track .span52::after { content: ""; position: absolute; top: -3px; width: 2px; height: 8px; background: var(--ink-2); border-radius: 1px; }
.track .span52::before { left: 0; }
.track .span52::after { right: 0; }
.track .conn { position: absolute; top: 12px; height: 2px; background: var(--ink-2); }
.track .mk { position: absolute; top: 13px; border-radius: 50%; transform: translate(-50%, -50%); }
.track .mk.now { width: 14px; height: 14px; background: var(--ink); box-shadow: 0 0 0 2px var(--ring); }
.track .mk.ghost { width: 11px; height: 11px; background: var(--ring); border: 2px solid var(--ink-2); }
.drivers { --ring: var(--page); list-style: none; margin: 22px 0 0; padding: 0; }
.drivers-key { display: flex; flex-wrap: wrap; gap: 6px 20px; margin-top: 14px; font-size: 13px; color: var(--ink-2); }
.drivers-key span { display: inline-flex; align-items: center; gap: 8px; }
.key-now, .key-ghost { width: 12px; height: 12px; border-radius: 50%; display: inline-block; }
.key-now { background: var(--ink); }
.key-ghost { border: 2px solid var(--ink-2); }
.drv {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(200px, 1fr) 176px;
  gap: 10px 32px;
  align-items: center;
  padding-block: 18px;
  border-top: 1px solid var(--hair);
}
.drv:last-child { border-bottom: 1px solid var(--hair); }
.drv-info { min-width: 0; }
.drv-name { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font: 600 17px/1.3 var(--f-body); }
.drv-name a { color: inherit; }
.pill { font: 500 12px/1 var(--f-mono); color: var(--ink-2); background: var(--inset); padding: 4px 7px; border-radius: 999px; }
.drv-desc { margin: 5px 0 0; font-size: 14.5px; line-height: 1.5; color: var(--ink-2); max-width: 60ch; text-wrap: pretty; }
.drv-score { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 2px 12px; }
.drv-num { grid-row: span 2; font: 600 30px/1 var(--f-body); min-width: 2ch; text-align: right; }
.drv-delta { font-size: 13px; color: var(--ink-2); white-space: nowrap; }
.legend-row { display: none; flex-wrap: wrap; gap: 6px 14px; margin: 0 0 10px 4px; }
.legend-row .chip { font-size: 12.5px; }
.chart-panel.is-narrow .legend-row { display: flex; }
.split { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 52px 56px; align-items: start; }
.zone-bars { --ring: var(--page); margin-top: 20px; display: flex; flex-direction: column; gap: 4px; }
.zb { display: grid; grid-template-columns: 112px minmax(0, 1fr); align-items: center; gap: 14px; padding-block: 5px; border-radius: 6px; }
.zb-track { display: flex; align-items: center; gap: 10px; min-width: 0; }
.zb-bar { height: 16px; border-radius: 0 4px 4px 0; background: var(--b); flex: none; }
.zb-val { font: 600 15px/1 var(--f-body); font-variant-numeric: tabular-nums; white-space: nowrap; }
.zb-val span { font: 400 12px var(--f-mono); color: var(--muted); margin-left: 6px; }
.notable-wrap { margin-top: 14px; overflow-x: auto; }
.notable-wrap th { background: var(--page); }
.method-grid { margin-top: 22px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 48px; }
.method-grid h3 { margin: 0 0 6px; font: 600 17px/1.3 var(--f-body); }
.method-grid p { margin: 0; color: var(--ink-2); font-size: 15px; max-width: 62ch; text-wrap: pretty; }
.zone-list { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.zone-list li { display: grid; grid-template-columns: 64px 1fr; align-items: center; gap: 10px; font-size: 15px; color: var(--ink-2); }
.zone-list .rng { font: 500 13px var(--f-mono); color: var(--ink); font-variant-numeric: tabular-nums; }

/* ---------- Catalysts ---------- */
.next-up { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 18px 28px; padding: 24px 28px; align-items: center; }
.next-date { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 96px; padding: 12px 14px; border-radius: 12px; background: var(--inset); }
.next-date .m { font: 600 13px/1 var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-2); }
.next-date .d { font: 600 44px/1 var(--f-body); letter-spacing: -0.02em; }
.next-date .w { font: 400 12px/1 var(--f-mono); color: var(--muted); }
.next-body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.next-kicker { font: 500 12.5px/1.3 var(--f-mono); color: var(--muted); letter-spacing: 0.04em; text-transform: uppercase; }
.next-title { margin: 0; font: 600 26px/1.2 var(--f-body); text-wrap: balance; }
.next-detail { margin: 0; color: var(--ink-2); }
.events { list-style: none; margin: 16px 0 0; padding: 0; border-top: 1px solid var(--hair); }
.ev { display: grid; grid-template-columns: 116px minmax(0, 1fr) auto; gap: 4px 20px; align-items: baseline; padding-block: 14px; border-bottom: 1px solid var(--hair); }
.ev-date { font: 500 13px/1.4 var(--f-mono); color: var(--ink); white-space: nowrap; }
.ev-date span { display: block; font-weight: 400; color: var(--muted); }
.ev-main { min-width: 0; }
.ev-title { margin: 0; font: 600 16px/1.35 var(--f-body); }
.ev-detail { margin: 3px 0 0; font-size: 14px; color: var(--ink-2); }
.ev-detail a { font-size: 13px; }
.ev-side { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.ev-when { font: 400 12.5px var(--f-mono); color: var(--muted); white-space: nowrap; }

.ev-empty { padding: 16px 0; color: var(--ink-2); border-bottom: 1px solid var(--hair); }

/* ---------- FSD ---------- */
.eu-meter { margin-top: 20px; padding: 16px 18px 14px; }
.eu-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; }
.eu-title { font: 600 15px/1.3 var(--f-body); }
.eu-val { font: 600 22px/1.1 var(--f-body); font-variant-numeric: tabular-nums; }
.eu-bar { position: relative; display: flex; gap: 2px; margin: 14px 0 30px; }
.eu-seg { flex: 1 1 0; height: 14px; background: var(--inset); border-radius: 2px; }
.eu-seg:first-child { border-radius: 4px 2px 2px 4px; }
.eu-seg:nth-child(27) { border-radius: 2px 4px 4px 2px; }
.eu-seg.on { background: var(--s1); }
.eu-need { position: absolute; top: -5px; bottom: -5px; left: calc((100% - 52px) * 15 / 27 + 28px); width: 2px; background: var(--ink); border-radius: 1px; }
.eu-need span { position: absolute; top: calc(100% + 4px); left: 50%; transform: translateX(-50%); font: 500 12px/1 var(--f-mono); color: var(--ink-2); white-space: nowrap; }
.eu-note { margin: 0; font-size: 14px; color: var(--ink-2); max-width: 80ch; text-wrap: pretty; }
.mk-group { margin-top: 28px; }
.mk-head { margin: 0; display: flex; align-items: center; gap: 10px; font: 600 18px/1.3 var(--f-body); }
.mk-count { font: 500 12.5px/1 var(--f-mono); color: var(--ink-2); background: var(--inset); padding: 4px 8px; border-radius: 999px; }
.mk-sub { margin: 4px 0 0; font-size: 14px; color: var(--ink-2); }
.mk-list { list-style: none; margin: 12px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; }
.mk { display: flex; flex-direction: column; gap: 3px; min-width: 0; padding: 12px 14px; background: var(--panel); border: 1px solid var(--hair); border-radius: 12px; }
.mk-name { font: 600 15.5px/1.3 var(--f-body); }
.mk-meta { font: 400 12px/1.4 var(--f-mono); color: var(--muted); }
.mk-detail { margin: 3px 0 0; font-size: 13.5px; line-height: 1.45; color: var(--ink-2); text-wrap: pretty; }
.mk-detail a { font-size: 13px; }
.news { list-style: none; margin: 16px 0 0; padding: 0; border-top: 1px solid var(--hair); }
.news > li { display: grid; grid-template-columns: 116px minmax(0, 1fr); gap: 4px 20px; align-items: baseline; padding-block: 13px; border-bottom: 1px solid var(--hair); }
.n-date { font: 500 13px/1.4 var(--f-mono); color: var(--ink-2); white-space: nowrap; }
.n-body { min-width: 0; }
.n-text { margin: 0; font-size: 15.5px; line-height: 1.45; text-wrap: pretty; }
.n-src { display: block; margin-top: 3px; font-size: 13px; color: var(--muted); }

/* ---------- Energy page ---------- */
.mk-value { font: 600 21px/1.2 var(--f-body); letter-spacing: -0.01em; margin-top: 2px; }
.cap-panel, .mix-panel { padding: 16px 18px 16px; }
.cap-list { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.cap-row { display: grid; grid-template-columns: minmax(150px, 200px) minmax(0, 1fr) 70px; gap: 6px 14px; align-items: center; }
.cap-name { min-width: 0; font: 600 15px/1.3 var(--f-body); }
.cap-meta { display: block; font: 400 12px/1.4 var(--f-mono); color: var(--muted); }
.cap-track { height: 14px; background: var(--inset); border-radius: 4px; }
.cap-fill { height: 100%; min-width: 4px; background: var(--k); border-radius: 4px; }
.cap-fill.part { background: repeating-linear-gradient(135deg, var(--k) 0 5px, transparent 5px 8px); box-shadow: inset 0 0 0 1.5px var(--k); }
.cap-val { font: 600 15px/1.2 var(--f-body); font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.cap-detail { grid-column: 1 / -1; margin: -2px 0 0; font-size: 13px; line-height: 1.45; color: var(--ink-2); text-wrap: pretty; }
.cap-detail a { font-size: 12.5px; }
.cap-foot { margin: 14px 0 0; font-size: 13.5px; line-height: 1.5; color: var(--ink-2); max-width: 80ch; }
.mix-title { margin: 0; font: 600 16px/1.3 var(--f-body); }
.mix-val { margin: 10px 0 0; font: 600 26px/1.1 var(--f-body); letter-spacing: -0.01em; }
.mix-bar { display: flex; gap: 2px; height: 26px; margin: 14px 0 10px; }
.mix-seg { flex: none; min-width: 4px; background: var(--k); }
.mix-seg:first-child { border-radius: 4px 0 0 4px; }
.mix-seg:last-child { border-radius: 0 4px 4px 0; }
.mix-key { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0; padding: 0; list-style: none; font-size: 14px; color: var(--ink-2); }
.mix-key li { display: inline-flex; align-items: center; gap: 7px; }
.mix-key i { width: 11px; height: 11px; border-radius: 3px; background: var(--k); }
.mix-key b { color: var(--ink); font-weight: 600; font-variant-numeric: tabular-nums; }
.mix-note { margin: 12px 0 0; font-size: 13.5px; line-height: 1.5; color: var(--ink-2); text-wrap: pretty; }
.qnotes { list-style: none; margin: 16px 0 0; padding: 0; border-top: 1px solid var(--hair); }
.qnotes li { display: grid; grid-template-columns: 116px minmax(0, 1fr); gap: 4px 20px; align-items: baseline; padding-block: 11px; border-bottom: 1px solid var(--hair); font-size: 14.5px; color: var(--ink-2); }
.qn-q { font: 500 13px/1.4 var(--f-mono); color: var(--ink); white-space: nowrap; }
.qnotes a { font-size: 13px; }

/* ---------- Optimus page ---------- */
.status.reported, .status.delayed, .status.unconfirmed, .status.possible { color: var(--ink-2); border: 1px dashed var(--muted); }
.status.notyet, .status.pending { color: var(--muted); background: var(--inset); border: 1px solid transparent; }
.status.met { color: var(--ink); border: 1px solid var(--ink-2); }
.status.missed { color: var(--page); background: var(--ink); border: 1px solid var(--ink); }
.path-sum { margin: 14px 0 0; max-width: 70ch; font-size: 16.5px; line-height: 1.5; text-wrap: pretty; }
.step-key { display: flex; flex-wrap: wrap; gap: 6px 20px; margin-top: 12px; font-size: 13px; color: var(--ink-2); }
.step-key span { display: inline-flex; align-items: center; gap: 8px; }
.key-mark { width: 14px; height: 14px; border-radius: 50%; display: inline-block; flex: none; background: var(--page); border: 2px solid var(--ink-2); }
.key-mark.confirmed { background: var(--ink); border-color: var(--ink); }
.key-mark.reported { border-style: dashed; }
.key-mark.notyet { border-color: var(--rule); }
.steps { list-style: none; margin: 20px 0 0; padding: 0; }
.step { position: relative; display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 0 16px; padding-bottom: 22px; }
.step::before { content: ""; position: absolute; left: 14px; top: 32px; bottom: 2px; width: 2px; border-radius: 1px; background: var(--hair); }
.step.confirmed::before { background: var(--ink-2); }
.step:last-child { padding-bottom: 0; }
.step:last-child::before { display: none; }
.step-mark { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font: 600 13px/1 var(--f-mono); color: var(--ink); background: var(--page); border: 2px solid var(--ink-2); }
.step.confirmed .step-mark { background: var(--ink); border-color: var(--ink); color: var(--page); }
.step.reported .step-mark { border-style: dashed; }
.step.notyet .step-mark { border-color: var(--rule); color: var(--muted); }
.step-body { min-width: 0; padding-top: 3px; }
.step-head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.step-title { margin: 0; font: 600 17px/1.3 var(--f-body); }
.step-date { display: block; margin-top: 4px; font: 400 12.5px/1.3 var(--f-mono); color: var(--muted); }
.step-text { margin: 5px 0 0; max-width: 78ch; font-size: 14.5px; line-height: 1.5; color: var(--ink-2); text-wrap: pretty; }
.step-text a { font-size: 13px; }
.lad-panel { margin-top: 18px; padding: 16px 18px 16px; }
.lad-key { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13px; color: var(--ink-2); }
.lad-key span { display: inline-flex; align-items: center; gap: 8px; }
.lad-key .lad-mark { position: static; transform: none; }
.lad-list { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.lad-row { display: grid; grid-template-columns: minmax(150px, 220px) minmax(0, 1fr) 100px; gap: 6px 16px; align-items: center; }
.lad-name { min-width: 0; font: 600 15px/1.3 var(--f-body); }
.lad-meta { display: block; font: 400 12px/1.4 var(--f-mono); color: var(--muted); }
.lad-track { position: relative; height: 14px; margin-inline: 8px; }
.lad-track::before { content: ""; position: absolute; left: -8px; right: -8px; top: 6px; height: 2px; border-radius: 1px; background: var(--inset); }
.lad-tick { position: absolute; top: -3px; bottom: -3px; width: 1px; background: var(--hair); }
.lad-mark { position: absolute; top: 50%; width: 14px; height: 14px; transform: translate(-50%, -50%); display: inline-block; flex: none; }
.lad-mark.dot { border-radius: 50%; background: var(--s1); box-shadow: 0 0 0 2px var(--panel); }
.lad-mark.ring { border-radius: 50%; background: var(--panel); border: 3px solid var(--s1); box-shadow: 0 0 0 2px var(--panel); }
.lad-mark.dia { width: 12px; height: 12px; background: var(--ref); transform: translate(-50%, -50%) rotate(45deg); border-radius: 2px; box-shadow: 0 0 0 2px var(--panel); }
.lad-key .lad-mark.dia { transform: rotate(45deg); margin: 1px; }
.lad-cap { position: absolute; top: 0; height: 14px; border-radius: 7px; box-shadow: 0 0 0 2px var(--panel); }
.lad-cap.dot { background: var(--s1); }
.lad-cap.ring { background: var(--panel); border: 3px solid var(--s1); }
.lad-cap.dia { background: var(--ref); border-radius: 3px; }
.lad-val { font: 600 15px/1.2 var(--f-body); font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.lad-detail { grid-column: 1 / -1; margin: -2px 0 0; font-size: 13px; line-height: 1.45; color: var(--ink-2); text-wrap: pretty; }
.lad-detail a { font-size: 12.5px; }
.lad-axis { position: relative; height: 14px; margin-inline: 8px; }
.lad-axis span { position: absolute; top: 0; transform: translateX(-50%); font: 400 11px/1 var(--f-mono); color: var(--muted); white-space: nowrap; }
.tg-tally { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.tg-list { list-style: none; margin: 14px 0 0; padding: 0; border-top: 1px solid var(--hair); }
.tg { display: grid; grid-template-columns: 116px minmax(0, 1fr) auto; gap: 4px 20px; align-items: baseline; padding-block: 14px; border-bottom: 1px solid var(--hair); }
.tg-said { font: 500 13px/1.4 var(--f-mono); color: var(--ink); white-space: nowrap; }
.tg-said span { display: block; font-weight: 400; color: var(--muted); }
.tg-main { min-width: 0; }
.tg-target { margin: 0; font: 600 16px/1.35 var(--f-body); text-wrap: pretty; }
.tg-note { margin: 3px 0 0; font-size: 14px; color: var(--ink-2); text-wrap: pretty; }
.tg-note a { font-size: 13px; }
.tg-side { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.tg-due { font: 400 12.5px var(--f-mono); color: var(--muted); white-space: nowrap; }
.sp-list { margin-top: 18px; grid-template-columns: repeat(auto-fill, minmax(min(380px, 100%), 1fr)); }
.sp-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.sp-foot { margin: 6px 0 0; font: 400 12.5px/1.5 var(--f-mono); color: var(--muted); }
.sp-foot a { font-family: var(--f-body); font-size: 13px; }

/* ---------- Safety page ---------- */
.rate-panel { margin-top: 18px; padding: 14px 16px 12px; }
.rate-panel + .rate-panel { margin-top: 14px; }
.rate-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; margin: 0 4px 6px; }
.rate-key { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13px; color: var(--ink-2); }
.rate-key > span { display: inline-flex; align-items: center; gap: 7px; }
.rate-scroll { overflow-x: auto; }
.rate-table { table-layout: fixed; }
.rate-table th, .rate-table td { position: static; background: none; vertical-align: middle; }
.rate-table thead th { font: 600 14.5px/1.25 var(--f-body); letter-spacing: 0; text-transform: none; color: var(--ink); padding: 8px 10px 10px; }
.rate-table thead th small { display: block; margin-top: 2px; font: 400 11.5px/1.3 var(--f-mono); color: var(--muted); }
.rate-table thead th.rh { width: 30%; }
.rate-table tbody th { font: 500 14px/1.35 var(--f-body); letter-spacing: 0; text-transform: none; color: var(--ink-2); padding: 10px; border-bottom: 1px solid var(--hair); }
#nhtsa-table tbody th { font-weight: 600; color: var(--ink); }
.rate-table tbody th small { display: block; margin-top: 2px; font: 400 11.5px/1.3 var(--f-mono); color: var(--muted); }
.rate-table thead th { hyphens: manual; }
.rate-table td { padding: 10px; }
.rate-table tr.award-row th, .rate-table tr.award-row td { border-bottom-color: var(--rule); padding-block: 12px; }
.stars { display: inline-flex; gap: 2px; vertical-align: middle; }
.stars svg { width: 15px; height: 15px; display: block; }
.stars .on { fill: var(--ink); }
.stars .off { fill: var(--inset); stroke: var(--muted); stroke-width: 1; }
.stars-c { display: none; align-items: center; gap: 3px; font: 600 15px/1 var(--f-body); font-variant-numeric: tabular-nums; }
.stars-c svg { width: 13px; height: 13px; fill: var(--ink); }
.nr { font-size: 13px; color: var(--muted); }
.rt { display: inline-flex; align-items: center; gap: 8px; }
.rt-meter { display: inline-grid; grid-template-columns: repeat(4, 8px); gap: 2px; flex: none; }
.rt-meter i { height: 12px; border-radius: 2px; background: var(--inset); }
.rt-meter i:first-child { border-radius: 3px 2px 2px 3px; }
.rt-meter i:last-child { border-radius: 2px 3px 3px 2px; }
.rt-meter i.on { background: var(--rc); }
.rt-word { font-size: 14px; color: var(--ink); }
.rt-letter { display: none; font: 600 13px/1 var(--f-mono); color: var(--ink); }
.award { display: inline-flex; align-items: center; font: 600 12.5px/1.2 var(--f-body); color: var(--ink); border: 1.5px solid var(--ink); border-radius: 999px; padding: 4px 9px; white-space: nowrap; }
.award.none { font-weight: 500; color: var(--muted); border: 1px dashed var(--rule); }
.award .ab { display: none; }
.rate-notes { list-style: none; margin: 12px 4px 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 13.5px; line-height: 1.5; color: var(--ink-2); max-width: 90ch; }
.rate-notes b { color: var(--ink); font-weight: 600; }
.rate-notes a { font-size: 13px; }
.hbar text.c-rlabel { fill: var(--ink); font: 500 13.5px var(--f-body); }
.hbar text.c-rsub { fill: var(--muted); font: 400 11.5px var(--f-mono); }
.hbar text.c-rval { fill: var(--ink); font: 600 13px var(--f-body); font-variant-numeric: tabular-nums; paint-order: stroke; stroke: var(--panel); stroke-width: 4px; stroke-linejoin: round; }
.hbar .c-zone { fill: var(--inset); }
.hbar text.c-zlab { fill: var(--ink-2); font: 500 11.5px var(--f-mono); }
.hbar .c-limit { stroke: var(--ink-2); stroke-width: 1.5; stroke-dasharray: 3 3; }
.hbar .c-bar { stroke-width: 1.5; }
.hbar .c-hit { cursor: default; }
.fsd-controls { margin-top: 18px; }
.ratio-line { margin: 12px 4px 0; max-width: 72ch; font-size: 16px; line-height: 1.5; text-wrap: pretty; }
.ratio-line b { font-variant-numeric: tabular-nums; }
.mix-panel2 { padding: 16px 18px; }
.mix-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 18px 36px; align-items: start; margin-top: 12px; }
.ratio-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--hair); }
.ratio-tiles > div { display: flex; flex-direction: column; gap: 3px; padding: 10px 10px 10px 0; border-bottom: 1px solid var(--hair); }
.ratio-tiles .rl { font-size: 13px; color: var(--ink-2); }
.ratio-tiles .rv { font: 600 24px/1.1 var(--f-body); font-variant-numeric: tabular-nums; }
.share-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.share-row { display: grid; grid-template-columns: 150px minmax(0, 1fr) 48px; align-items: center; gap: 12px; font-size: 14px; color: var(--ink-2); }
.share-track { height: 12px; background: var(--inset); border-radius: 4px; }
.share-fill { height: 100%; border-radius: 4px; background: var(--k); }
.share-val { font: 600 14px/1 var(--f-body); color: var(--ink); text-align: right; font-variant-numeric: tabular-nums; }
.read-list { list-style: none; margin: 16px 0 0; padding: 0; border-top: 1px solid var(--hair); }
.read-list li { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 4px 20px; padding-block: 12px; border-bottom: 1px solid var(--hair); }
.read-list h3 { margin: 0; font: 600 15px/1.4 var(--f-body); }
.read-list p { margin: 0; font-size: 14.5px; line-height: 1.5; color: var(--ink-2); max-width: 78ch; text-wrap: pretty; }
.read-list a { font-size: 13px; }
.ev-date.probe-id { font: 600 13px/1.4 var(--f-mono); color: var(--ink); }
.ev-date.probe-id span { display: block; margin-left: 0; font-weight: 400; color: var(--muted); }

footer { border-top: 1px solid var(--rule); padding-top: 18px; display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--muted); }
footer p { margin: 0; max-width: 90ch; }
.load-error { padding: 28px; color: var(--ink-2); }

@media (max-width: 860px) {
  .instrument { grid-template-columns: 1fr; padding: 22px 20px 24px; }
  .split { grid-template-columns: 1fr; }
  .drv { grid-template-columns: minmax(0, 1fr) 168px; }
  .drv-info { grid-column: 1 / -1; }
  .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cards .card-link.span-last { grid-column: 1 / -1; }
  .grid-3 { grid-template-columns: 1fr; }
  .mix-grid { grid-template-columns: 1fr; }
  .stats.c4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .grid-2 { grid-template-columns: 1fr; }
  .ev { grid-template-columns: 1fr auto; }
  .ev-date { grid-column: 1 / -1; }
  .ev-date span { display: inline; margin-left: 8px; }
  .news > li { grid-template-columns: 1fr; }
  .qnotes li { grid-template-columns: 1fr; }
  .cap-row { grid-template-columns: minmax(0, 1fr) 64px; }
  .cap-name { grid-column: 1 / -1; }
  .lad-row { grid-template-columns: minmax(0, 1fr) 92px; }
  .lad-name { grid-column: 1 / -1; }
  .lad-axis-row .lad-name { display: none; }
  .tg { grid-template-columns: minmax(0, 1fr) auto; }
  .tg-said { grid-column: 1 / -1; }
  .tg-said span { display: inline; margin-left: 8px; }
  .read-list li { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .wrap { padding-inline: 16px; gap: 42px; }
  .wordmark { font-size: 19px; }
  .lede { font-size: 16.5px; }
  .page-title { font-size: 28px; }
  h2 { font-size: 23px; }
  .hero-num { font-size: 76px; }
  .instrument { padding: 18px 14px 20px; }
  .readings dd { grid-template-columns: 3ch 118px; gap: 12px; }
  .drv { grid-template-columns: 1fr; gap: 8px; }
  .drv-score { grid-template-columns: auto auto 1fr; }
  .drv-num { grid-row: auto; font-size: 26px; }
  .drv-delta { justify-self: end; white-space: normal; text-align: right; }
  .method-grid { grid-template-columns: 1fr; }
  .zb { grid-template-columns: 96px minmax(0, 1fr); gap: 10px; }
  .chart-panel { padding: 12px 8px 12px; }
  .stats, .stats.c3, .stats.c4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stats.c3.one { grid-template-columns: 1fr; }
  .stats > .stat:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .cards { grid-template-columns: 1fr; }
  .stars { display: none; }
  .stars-c { display: inline-flex; }
  .rt-word { display: none; }
  .rt-letter { display: inline; }
  .rt-meter { grid-template-columns: repeat(4, 6px); }
  .award .full { display: none; }
  .award .ab { display: inline; }
  .award { padding: 3px 7px; font-size: 12px; }
  .rate-table thead th { font-size: 12.5px; padding-inline: 5px; }
  .rate-table thead th.rh { width: 34%; }
  .rate-table tbody th, .rate-table td { padding-inline: 6px; }
  .rate-table tbody th { font-size: 13px; }
  .rate-panel { padding: 12px 10px 10px; }
  .share-row { grid-template-columns: 96px minmax(0, 1fr) 44px; gap: 10px; font-size: 13px; }
  .ratio-tiles .rv { font-size: 21px; }
  .stat { padding-right: 10px; }
  .stat-value { font-size: 26px; }
  .site-nav { gap: 2px 0; }
  .site-nav a { padding: 8px 7px 10px; font-size: 14px; }
  .next-up { grid-template-columns: 1fr; padding: 18px; }
  .next-date { flex-direction: row; gap: 10px; justify-content: flex-start; min-width: 0; }
  .next-date .d { font-size: 30px; }
}
@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; transition: none !important; }
}
