/* Vertical Observer — dark-first instrument typography.
   Colour is reserved for one job: how strong the evidence behind a figure is.
   Everything else is graphite, so the provenance ramp is the only thing on
   screen competing for a reader's attention.

   Fonts are self-hosted rather than linked from Google, so no reader's IP
   reaches a third party for a typeface. */

@font-face {
  font-family: "Space Grotesk";
  src: url("fonts/space-grotesk.woff2") format("woff2-variations");
  font-weight: 400 700;
  font-display: swap;
  font-style: normal;
}
@font-face {
  font-family: "Literata";
  src: url("fonts/literata.woff2") format("woff2-variations");
  font-weight: 400 500;
  font-display: swap;
  font-style: normal;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("fonts/plex-mono-400.woff2") format("woff2");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("fonts/plex-mono-500.woff2") format("woff2");
  font-weight: 500;
  font-display: swap;
}

/* ---------------------------------------------------------------- tokens */
/* Dark is the base, by design — not a media-query branch. Light is opt-in. */

:root {
  --ground:     #0A0C09;
  --surface:    #12150F;
  --raised:     #191D16;
  --rule:       #262B22;
  --rule-soft:  #1D2119;
  --rule-hard:  #3A4234;

  --ink:        #EDF0E7;
  --read:       #C9CFC0;
  --body:       #B4BBA9;
  --muted:      #949C88;   /* 6.9:1 on ground — was #7C8474 at 5.1 */
  --faint:      #8A927F;   /* 6.1:1 on ground — was #5A6153 at 3.1, unreadable */

  --accent:     #abd216;
  --accent-hot: #f0f200;

  /* the provenance ramp */
  --official:    #54c73a;
  --official-bd: rgba(84, 199, 58, 0.38);
  --official-bg: rgba(84, 199, 58, 0.08);
  --estimate:    #abd216;
  --estimate-bd: rgba(171, 210, 22, 0.38);
  --estimate-bg: rgba(171, 210, 22, 0.08);
  --reported:    #ccce0f;
  --reported-bd: rgba(204, 206, 15, 0.34);
  --reported-bg: rgba(204, 206, 15, 0.07);
  --company:     #f0f200;
  --company-bd:  rgba(240, 242, 0, 0.34);
  --company-bg:  rgba(240, 242, 0, 0.07);

  --display: "Space Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  --read-face: Literata, Georgia, "Iowan Old Style", serif;
  --mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  /* The signature bands. Fixed in both themes: this is the brand, not a
     surface, so it must not flip with the reader's preference. Dark ink on it
     measures 11.2:1. */
  --signature:    #abd216;
  --on-sig:       #0A0C09;
  --on-sig-soft:  rgba(10, 12, 9, 0.82);
  --on-sig-rule:  rgba(10, 12, 9, 0.20);

  --maxw: 1280px;
  color-scheme: dark;
}

:root[data-theme="light"] {
  --ground:     #F7F8F3;
  --surface:    #FFFFFF;
  --raised:     #EDEFE6;
  --rule:       #DCE0D2;
  --rule-soft:  #E6E9DE;
  --rule-hard:  #B7BEAA;

  --ink:        #14170F;
  --read:       #33372C;
  --body:       #43483B;
  --muted:      #5E6656;   /* 5.6:1 on paper */
  --faint:      #666E5D;   /* 5.0:1 on paper — was #8A9280 at 3.0 */

  --accent:     #4F7A0A;
  --accent-hot: #6E7000;

  /* the same hues, darkened until each clears 4.5:1 on paper */
  --official:    #2F7A22;
  --official-bd: rgba(47, 122, 34, 0.35);
  --official-bg: rgba(84, 199, 58, 0.13);
  --estimate:    #5F7A0D;
  --estimate-bd: rgba(95, 122, 13, 0.35);
  --estimate-bg: rgba(171, 210, 22, 0.14);
  --reported:    #757703;
  --reported-bd: rgba(117, 119, 3, 0.35);
  --reported-bg: rgba(204, 206, 15, 0.13);
  --company:     #6E7000;
  --company-bd:  rgba(110, 112, 0, 0.35);
  --company-bg:  rgba(240, 242, 0, 0.16);

  color-scheme: light;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--ground);
  color: var(--body);
  font-family: var(--display);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 40px; }
.mono { font-family: var(--mono); font-variant-numeric: tabular-nums; }
a { color: var(--accent); text-decoration: none; }
a:hover { color: var(--accent-hot); text-decoration: underline; text-underline-offset: 2px; }

::selection { background: var(--accent); color: var(--ground); }

:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* -------------------------------------------------------------- masthead */

header.mast { background: var(--signature); color: var(--on-sig); border-bottom: none; }
header.mast .wordmark,
header.mast .live .txt b { color: var(--on-sig); }
header.mast .tagline,
header.mast .live .txt { color: var(--on-sig-soft); }
header.mast .live .dot { background: var(--on-sig); box-shadow: none; }
/* the one control on the signature band: solid black, so it reads as the
   single interactive thing rather than a hairline on green */
header.mast .iconbtn {
  background: var(--on-sig); color: var(--signature);
  border-color: var(--on-sig); font-weight: 500;
}
header.mast .iconbtn:hover { background: #000; border-color: #000; color: #fff; }
header.mast .brand:hover .wordmark { color: var(--on-sig); }

/* On a signature band the mark sits on its own dark tile — that is the app
   icon, and it keeps the three-step readout legible against the green. */
header.mast .mark,
footer.foot .ftmark {
  background: var(--on-sig); border-radius: 7px;
  padding: 8px 10px; box-sizing: content-box;
}
.mast-in {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 36px; flex-wrap: wrap;
  /* keep .wrap's 40px inset — a shorthand with 0 here pulled the masthead
     40px left of every other element on the page */
  padding: 26px 40px 22px;
}
.brand { display: flex; align-items: center; gap: 16px; text-decoration: none; }
.brand:hover { text-decoration: none; }
.brand svg { flex: 0 0 auto; display: block; }
.wordmark {
  font-size: clamp(23px, 3.2vw, 30px); font-weight: 700;
  letter-spacing: -0.028em; line-height: 1; color: var(--ink); margin: 0;
}
.tagline {
  font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--muted); margin: 9px 0 0;
}
.mast-meta { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; }
.live { display: flex; align-items: center; gap: 8px; }
.live .dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--accent); box-shadow: 0 0 9px var(--accent);
}
.live .txt { font-family: var(--mono); font-size: 11px; color: var(--body); letter-spacing: 0.06em; }
.mast-actions { display: flex; gap: 8px; }
.iconbtn {
  font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.09em;
  text-transform: uppercase; background: transparent; color: var(--muted);
  border: 1px solid var(--rule); padding: 6px 11px; cursor: pointer;
  text-decoration: none; line-height: 1.5;
}
.iconbtn:hover { color: var(--ink); border-color: var(--accent); text-decoration: none; }

/* ------------------------------------------------------------------- nav */

nav.tabs { position: sticky; top: 0; z-index: 40; background: var(--ground); border-bottom: 1px solid var(--rule); }
.tabs-in { display: flex; gap: 2px; overflow-x: auto; scrollbar-width: none; }
.tabs-in::-webkit-scrollbar { display: none; }
.tabs button {
  font-family: var(--mono); font-size: 11.5px; letter-spacing: 0.12em;
  text-transform: uppercase; background: none; border: none;
  border-bottom: 2px solid transparent; color: var(--muted);
  padding: 15px 15px 13px; cursor: pointer; white-space: nowrap;
}
.tabs button:hover { color: var(--ink); }
.tabs button.on { color: var(--ink); border-bottom-color: var(--accent); }

/* ----------------------------------------------------------------- views */

main { padding: 40px 0 90px; min-height: 60vh; }
.view { display: none; }
.view.on { display: block; }

.view-head { margin: 0 0 24px; padding-bottom: 16px; border-bottom: 1px solid var(--rule); }
.view-head h2 {
  font-size: 26px; font-weight: 600; letter-spacing: -0.02em;
  color: var(--ink); margin: 0 0 8px;
}
.view-head p { margin: 0; color: var(--body); font-size: 15px; max-width: 74ch; font-family: var(--read-face); line-height: 1.68; }

h3 { font-size: 20px; font-weight: 600; color: var(--ink); margin: 34px 0 10px; letter-spacing: -0.015em; }
p { margin: 0 0 13px; max-width: 72ch; }

/* ----------------------------------------------------------------- chips */

.chip {
  display: inline-block; font-family: var(--mono);
  font-size: 10.5px; letter-spacing: 0.09em; text-transform: uppercase;
  padding: 4px 9px; white-space: nowrap; border: 1px solid transparent;
}
.chip.official { color: var(--official); border-color: var(--official-bd); background: var(--official-bg); }
.chip.estimate { color: var(--estimate); border-color: var(--estimate-bd); background: var(--estimate-bg); }
.chip.reported { color: var(--reported); border-color: var(--reported-bd); background: var(--reported-bg); }
.chip.company  { color: var(--company);  border-color: var(--company-bd);  background: var(--company-bg); }
.chip.dim      { color: var(--muted); border-color: var(--rule); }
.chip.cat      { color: var(--body); background: var(--raised); }

/* --------------------------------------------------------------- filters */

.filters {
  display: flex; gap: 9px; flex-wrap: wrap; align-items: center;
  margin: 0 0 8px; padding-bottom: 20px; border-bottom: 1px solid var(--rule-soft);
}
.filters input[type="search"], .filters select {
  font-family: var(--display); font-size: 14px; color: var(--ink);
  background: var(--surface); border: 1px solid var(--rule);
  padding: 9px 12px; min-width: 190px; border-radius: 0;
}
.filters input[type="search"]::placeholder { color: var(--faint); }
.filters .count { font-family: var(--mono); font-size: 12px; color: var(--muted); margin-left: auto; letter-spacing: 0.06em; }
.pill {
  font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.08em;
  text-transform: uppercase; padding: 10px 14px; cursor: pointer;
  background: transparent; border: 1px solid var(--rule); color: var(--muted);
}
.pill:hover { color: var(--ink); border-color: var(--accent); }
.pill.on { background: var(--accent); border-color: var(--accent); color: var(--ground); font-weight: 500; }

/* ------------------------------------------------------------------ feed */

.dayline {
  font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ink);
  padding: 44px 0 11px; margin-bottom: 4px;
  border-bottom: 2px solid var(--accent);
  display: flex; justify-content: space-between; align-items: baseline;
  position: sticky; top: 44px; background: var(--ground); z-index: 20;
}
.dayline:first-child { padding-top: 8px; }
.dayline .n { color: var(--muted); letter-spacing: 0.1em; }

article.story {
  border-bottom: 1px solid var(--rule-soft);
  padding: 26px 20px; margin: 0 -20px;
  transition: background .12s;
}
article.story:hover { background: var(--surface); }
article.story h4 {
  font-size: 22px; line-height: 1.3; font-weight: 600; letter-spacing: -0.014em;
  color: var(--ink); margin: 0; cursor: pointer; text-wrap: pretty;
}
article.story h4:hover { color: var(--accent); }
article.story .dek {
  font-family: var(--read-face); font-size: 15.5px; line-height: 1.66;
  color: var(--body); margin: 11px 0 0; max-width: 68ch;
}
article.story .st-foot {
  display: flex; gap: 9px; flex-wrap: wrap; align-items: center;
  margin-top: 15px; font-family: var(--mono); font-size: 11.5px; color: var(--muted);
}
article.story .body { margin-top: 16px; display: none; max-width: 68ch; }
article.story.open {
  border-left: 2px solid var(--accent);
  padding-left: 18px;
  background: var(--surface);
}
article.story.open:hover { background: var(--surface); }
article.story.open h4 { color: var(--accent); }
article.story.open .body { display: block; }
article.story .body p {
  font-family: var(--read-face); font-size: 16.5px; line-height: 1.72; color: var(--read);
}
.srclist { margin: 16px 0 0; padding: 14px 0 0; border-top: 1px solid var(--rule); }
.srclist .lbl {
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.13em;
  text-transform: uppercase; color: var(--faint); display: block; margin-bottom: 8px;
}
.srclist a { display: inline; font-size: 14px; }
.srclist > div { margin-bottom: 5px; line-height: 1.6; }
.srclist .outlet { color: var(--muted); font-family: var(--mono); font-size: 11px; margin-left: 6px; }

/* ----------------------------------------------------------------- stats */

.stats {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(168px, 1fr));
  gap: 1px; background: var(--rule); border: 1px solid var(--rule); margin: 0 0 30px;
}
.stat { background: var(--surface); padding: 18px 16px; }
.stat .n {
  font-family: var(--mono); font-size: 25px; font-weight: 500;
  line-height: 1.1; color: var(--ink); display: block;
}
.stat .l { font-size: 13px; color: var(--body); margin-top: 8px; display: block; line-height: 1.45; }
.stat .s { font-family: var(--mono); font-size: 11.5px; color: var(--muted); margin-top: 8px; display: block; }

/* ----------------------------------------------------------------- cards */

.grid { display: grid; gap: 1px; background: var(--rule); border: 1px solid var(--rule); }
.grid.g2 { grid-template-columns: repeat(auto-fit, minmax(330px, 1fr)); }
.grid.g3 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }

.co { background: var(--surface); padding: 20px; cursor: pointer; border-left: 2px solid transparent; transition: background .12s; }
.co:hover { background: var(--raised); border-left-color: var(--accent); }
.co .nm { font-size: 19px; font-weight: 600; color: var(--ink); margin: 0 0 6px; letter-spacing: -0.014em; text-wrap: pretty; }
.co .cat { font-family: var(--mono); font-size: 11px; color: var(--muted); letter-spacing: 0.07em; text-transform: uppercase; }
.co .sm { font-family: var(--read-face); font-size: 13.5px; line-height: 1.6; margin: 12px 0 0; color: var(--body); }
.co .kv { font-family: var(--mono); font-size: 12px; color: var(--ink); margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--rule-soft); display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

/* ----------------------------------------------------------------- table */

.tscroll { overflow-x: auto; border: 1px solid var(--rule); background: var(--surface); margin: 0 0 26px; }
table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
th, td { text-align: left; padding: 13px 18px; vertical-align: top; }
th {
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--ink); font-weight: 500;
  background: var(--raised); position: sticky; top: 0; white-space: nowrap;
}
td { border-top: 1px solid var(--rule-soft); color: var(--body); line-height: 1.55; }
tbody tr:nth-child(even) { background: color-mix(in srgb, var(--raised) 45%, transparent); }
tbody td:first-child { color: var(--ink); font-weight: 500; }
tbody tr:hover { background: var(--raised); }
table { font-variant-numeric: tabular-nums; }
td.num, td .mono { font-family: var(--mono); font-variant-numeric: tabular-nums; }
td b { color: var(--ink); font-weight: 500; }

/* ------------------------------------------------------------------- reg */

.instr { background: var(--surface); border: 1px solid var(--rule); border-left: 2px solid var(--rule-hard); padding: 26px 28px; margin: 0 0 16px; }
/* the left rule and the status chip agree: settled law reads green, a draft
   or a proposal reads as the unsettled end of the same ramp */
.instr.f-official { border-left-color: var(--official); }
.instr.f-company  { border-left-color: var(--company); }
.instr h4 { font-size: 23px; font-weight: 600; color: var(--ink); margin: 0 0 8px; letter-spacing: -0.018em; }
.instr .juris { font-family: var(--mono); font-size: 10.5px; color: var(--muted); letter-spacing: 0.1em; text-transform: uppercase; }
.instr .status {
  font-family: var(--mono); font-size: 11.5px; line-height: 1.5;
  padding: 7px 12px; display: inline-block; margin: 14px 0 4px;
  border: 1px solid var(--rule); color: var(--body); background: var(--raised);
}
.instr .status.official { color: var(--official); border-color: var(--official-bd); background: var(--official-bg); }
.instr .status.company  { color: var(--company);  border-color: var(--company-bd);  background: var(--company-bg); }
.instr .lbl {
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--faint); display: block; margin: 24px 0 9px;
}
.instr p { font-family: var(--read-face); font-size: 14.5px; line-height: 1.7; color: var(--read); max-width: 78ch; }
.instr ul { margin: 0; padding: 0; list-style: none; }
.instr li {
  font-family: var(--read-face); font-size: 14px; line-height: 1.6; color: var(--body);
  padding-left: 17px; position: relative; margin-bottom: 9px;
}
.instr li::before { content: ""; position: absolute; left: 0; top: 9px; width: 5px; height: 5px; background: var(--accent); }
.tl { list-style: none; padding: 0; margin: 12px 0 0; }
.tl li {
  display: grid; grid-template-columns: 108px 1fr; gap: 18px;
  padding: 10px 0; border-bottom: 1px solid var(--rule-soft);
  font-family: var(--read-face); font-size: 14px; line-height: 1.55;
}
.tl li::before { display: none; }
.tl li .d { font-family: var(--mono); font-size: 11.5px; color: var(--muted); }
.tl li:first-child .d { color: var(--accent); }

/* ------------------------------------------------------------- slideover */

.sheet {
  position: fixed; inset: 0 0 0 auto; width: min(720px, 100%);
  background: var(--surface); border-left: 1px solid var(--rule);
  z-index: 90; overflow-y: auto; padding: 26px 32px 80px;
  transform: translateX(101%); transition: transform .18s ease;
  box-shadow: -24px 0 60px rgba(0, 0, 0, .5);
}
.sheet.on { transform: translateX(0); }
.sheet .x {
  position: sticky; top: 0; float: right; font-family: var(--mono); font-size: 11px;
  background: var(--surface); border: 1px solid var(--rule); color: var(--muted);
  padding: 6px 11px; cursor: pointer; letter-spacing: 0.08em; text-transform: uppercase;
}
.sheet .x:hover { color: var(--ink); border-color: var(--accent); }
.sheet h3 { margin-top: 4px; font-size: 25px; }
.sheet p { font-family: var(--read-face); font-size: 14.5px; line-height: 1.68; color: var(--read); }
.scrim {
  position: fixed; inset: 0; background: rgba(5, 7, 4, .68);
  z-index: 80; opacity: 0; pointer-events: none; transition: opacity .18s;
}
.scrim.on { opacity: 1; pointer-events: auto; }

dl.kv2 {
  display: grid; grid-template-columns: minmax(120px, 178px) 1fr; gap: 1px;
  background: var(--rule); border: 1px solid var(--rule); margin: 18px 0;
}
dl.kv2 dt {
  background: var(--raised); padding: 10px 14px; font-family: var(--mono);
  font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted);
}
dl.kv2 dd { background: var(--surface); padding: 10px 14px; margin: 0; font-size: 14px; color: var(--body); }

/* ------------------------------------------------------------------ misc */

.note {
  background: var(--surface); border: 1px solid var(--rule);
  border-left: 2px solid var(--accent); padding: 16px 20px; margin: 0 0 26px;
  font-family: var(--read-face); font-size: 14px; line-height: 1.68; color: var(--body);
}
.note strong { color: var(--ink); font-weight: 500; }
.empty { color: var(--muted); font-style: italic; padding: 48px 0; text-align: center; }

.prose { max-width: 74ch; }
.prose h3:first-child { margin-top: 0; }
.prose p { font-family: var(--read-face); font-size: 16px; line-height: 1.72; color: var(--read); }

footer.foot {
  border-top: none; margin-top: 72px; padding: 44px 0 52px;
  font-size: 13px; background: var(--signature); color: var(--on-sig);
}
footer.foot a { color: var(--on-sig); text-decoration: none; }
footer.foot a:hover { color: var(--on-sig); text-decoration: underline; text-underline-offset: 2px; }
footer.foot .ftcols,
footer.foot .ftnav,
footer.foot .ftcopy { border-color: var(--on-sig-rule) !important; }
footer.foot .ftdesc,
footer.foot .cred,
footer.foot .ftparent,
footer.foot .ftdisc,
footer.foot .ftcopy,
footer.foot .madeby { color: var(--on-sig); }
footer.foot .ftdesc b,
footer.foot .ftdisc em { color: var(--on-sig); }
footer.foot h5 { color: var(--on-sig-soft); }
footer.foot .colibri .mb { color: var(--on-sig-soft); }
/* the supplied Anthropic mark is dark-on-transparent — correct as-is on green */
footer.foot .anthropic-logo { filter: none; opacity: .82; }
footer.foot .madeby:hover .anthropic-logo { opacity: 1; }
:root[data-theme="light"] footer.foot .anthropic-logo { filter: none; opacity: .82; }
/* wordmark now ships dark; no inversion in either theme */
:root[data-theme="light"] footer.foot .colibri .cw { filter: none; }

/* brand block + credits, as on the sister properties */
footer.foot .ftcols {
  display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  gap: 48px; padding-bottom: 30px; border-bottom: 1px solid var(--rule-soft);
}
footer.foot .ftbrand { display: flex; gap: 18px; align-items: flex-start; }
footer.foot .ftmark { flex: 0 0 auto; margin-top: 2px; }
footer.foot .ftdesc {
  font-family: var(--read-face); font-size: 13.5px; line-height: 1.68;
  color: var(--on-sig); margin: 0; max-width: 62ch;
}
footer.foot .ftdesc b { color: var(--ink); font-weight: 500; font-family: var(--display); }
footer.foot .ftcredits { display: flex; flex-direction: column; gap: 11px; align-items: flex-start; }
footer.foot .cred {
  font-family: var(--read-face); font-size: 12.5px; line-height: 1.6;
  color: var(--on-sig); max-width: 56ch;
}
footer.foot .cred a { display: inline; }
footer.foot .madeby {
  display: inline-flex; align-items: center; gap: 9px; color: var(--on-sig);
  text-decoration: none; white-space: nowrap;
}
footer.foot .madeby:hover { color: var(--ink); text-decoration: none; }
footer.foot .anthropic-logo {
  height: 15px; width: auto; display: inline-block; vertical-align: middle;
  /* the mark is dark-on-transparent and the footer band is light green,
     so it is used as supplied — no inversion in either theme */
  filter: none; opacity: .82;
}

footer.foot .ftnav {
  display: flex; gap: 56px; flex-wrap: wrap;
  padding: 28px 0; border-bottom: 1px solid var(--rule-soft);
}
footer.foot h5 {
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--on-sig-soft); margin: 0 0 10px; font-weight: 400;
}
footer.foot a { display: block; margin-bottom: 5px; }

footer.foot .ftparent {
  font-family: var(--read-face); font-size: 12.5px; color: var(--on-sig);
  margin: 24px 0 0; max-width: none;
}
footer.foot .ftdisc {
  font-family: var(--read-face); font-size: 13px; line-height: 1.75;
  color: var(--on-sig); margin: 14px 0 0; max-width: 96ch;
}
footer.foot .ftdisc em { color: var(--on-sig); font-style: normal; font-weight: 500; }
footer.foot .ftdisc a { display: inline; }
footer.foot .ftcopy {
  font-family: var(--mono); font-size: 11.5px; color: var(--on-sig);
  margin: 22px 0 0; padding-top: 18px; border-top: 1px solid var(--rule-soft);
}

footer.foot .madeline { margin-top: 22px; }
footer.foot .colibri {
  display: inline-flex; align-items: center; gap: 8px;
  text-decoration: none; white-space: nowrap; line-height: 1; opacity: .82;
}
footer.foot .colibri:hover { opacity: 1; text-decoration: none; }
footer.foot .colibri .mb { font-size: 12px; color: var(--on-sig); }
footer.foot .colibri .bird,
footer.foot .colibri .cw { height: 22px; width: auto; display: inline-block; vertical-align: middle; }

@media (max-width: 760px) {
  .wrap { padding: 0 20px; }
  .mast-in { flex-direction: column; align-items: flex-start; gap: 18px; }
  .sheet { padding: 22px 20px 70px; }
  dl.kv2 { grid-template-columns: 1fr; }
  dl.kv2 dt { border-top: 1px solid var(--rule); }
  .tl li { grid-template-columns: 1fr; gap: 4px; }
  article.story h4 { font-size: 19px; }
  .filters input[type="search"], .filters select { min-width: 0; width: 100%; }
  .filters .count { margin-left: 0; }
}

@media print {
  nav.tabs, .filters, .mast-actions, .sheet, .scrim, footer.foot { display: none !important; }
  body { background: #fff; color: #000; }
  article.story .body { display: block !important; }
}

@media (prefers-reduced-motion: reduce) {
  .sheet, .scrim { transition: none; }
}

/* ------------------------------------------------------------------ rail */
/* The feed's reading column is ~68ch by design; without a rail the right
   half of a wide screen is dead space and the page reads as unbalanced.
   The rail carries the provenance key, which is the thing a first-time
   reader most needs in order to make sense of the chips. */

.feedgrid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 56px; align-items: start; }

.rail { position: sticky; top: 92px; display: flex; flex-direction: column; gap: 30px; padding-top: 4px; }
.railblk { margin: 0; }
.raillbl {
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--muted); font-weight: 400;
  margin: 0 0 13px; padding-bottom: 11px; border-bottom: 1px solid var(--rule);
}
.railnote {
  font-family: var(--read-face); font-size: 13.5px; line-height: 1.65;
  color: var(--body); margin: 0; max-width: none;
}
.railstats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--rule); border: 1px solid var(--rule); }
.railstats > div { background: var(--surface); padding: 14px 12px; }
.railstats .n { font-family: var(--mono); font-size: 24px; font-weight: 500; color: var(--ink); display: block; line-height: 1; }
.railstats .l { font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin-top: 8px; display: block; }

dl.railkey { margin: 15px 0 0; display: grid; grid-template-columns: auto 1fr; gap: 11px 11px; align-items: start; }
dl.railkey dt { margin: 0; }
dl.railkey dd {
  margin: 0; font-family: var(--read-face); font-size: 13px;
  line-height: 1.5; color: var(--body);
}

@media (max-width: 1040px) {
  .feedgrid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .rail {
    position: static; margin-top: 48px; padding-top: 30px;
    border-top: 1px solid var(--rule);
    display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 36px;
  }
}

/* ---------------------------------------------------------- rank charts */
/* Magnitude gets one hue. Colour on this site encodes evidence strength, so
   it is never also spent on size — the basis chip beside each bar keeps that
   meaning intact, and makes a mixed-evidence ranking readable at a glance. */

.rank { margin: 0 0 40px; }
.rank-t { font-size: 19px; font-weight: 600; color: var(--ink); margin: 0 0 6px; letter-spacing: -0.014em; }
.rank-lead {
  font-family: var(--read-face); font-size: 14px; line-height: 1.6;
  color: var(--body); margin: 0 0 20px; max-width: 68ch;
}
.rank-head, .rank-row {
  display: grid; grid-template-columns: 148px minmax(0, 1fr) 104px 108px;
  gap: 16px; align-items: center;
}
.rank-head {
  font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--muted);
  padding-bottom: 9px; border-bottom: 1px solid var(--rule);
}
.rank-head .r { text-align: right; }
.rank-row { padding: 5px 0; }
.rank-row:hover .rank-bar { background: var(--accent-hot); }
.rank-app { font-size: 14.5px; color: var(--ink); font-weight: 500; }
.rank-track { background: var(--raised); height: 26px; display: block; }
.rank-bar { display: block; height: 26px; background: var(--accent); border-radius: 0 4px 4px 0; transition: background .12s; }
.rank-fig { font-family: var(--mono); font-size: 13px; color: var(--ink); text-align: right; font-variant-numeric: tabular-nums; }
.rank-ori { font-family: var(--mono); font-size: 11.5px; color: var(--muted); }
.rank-note {
  font-family: var(--read-face); font-size: 12.5px; line-height: 1.6;
  color: var(--muted); margin: 18px 0 0; padding-top: 14px;
  border-top: 1px solid var(--rule-soft); max-width: 82ch;
}

@media (max-width: 720px) {
  .rank-head { display: none; }
  .rank-row {
    grid-template-columns: 1fr auto; gap: 6px 12px;
    padding: 12px 0; border-bottom: 1px solid var(--rule-soft);
  }
  .rank-track { grid-column: 1 / -1; order: 3; }
  .rank-fig { text-align: left; }
}

/* -------------------------------------------------------- capital extras */
h3 .h3n {
  font-family: var(--mono); font-size: 12px; color: var(--muted);
  font-weight: 400; margin-left: 8px; letter-spacing: 0.06em;
}
.filing-meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 4px; }
.filing-link { margin-top: 4px; }
.instr.f-dim { border-left-color: var(--rule-hard); }

/* the caveat sits above the legal boilerplate and is set to actually be read:
   larger than the disclaimer, ruled off, full-strength ink */
footer.foot .ftcaveat {
  font-family: var(--read-face); font-size: 15px; line-height: 1.65;
  color: var(--on-sig); margin: 26px 0 0; padding: 18px 0 0;
  border-top: 1px solid var(--on-sig-rule); max-width: 88ch; font-weight: 500;
}
