:root {
  --bg: #0d1210;
  --surface: #141a17;
  --surface-2: #1a221e;
  --rule: #26302b;
  --rule-strong: #36423c;
  --ink: #e8ede9;
  --ink-2: #b9c3bd;
  --ink-3: #8a958f;
  --accent: #5fd39a;
  --accent-ink: #0d1210;
  --accent-dim: rgba(95, 211, 154, .10);
  --mark: rgba(232, 237, 233, .14);
  --grid: rgba(95, 211, 154, .045);

  --payer: #d95926;
  --outlet: #3987e5;
  --journo: #e8ede9;
  --line-money: #c9d2cc;
  --line-other: #6b7771;

  --f-ui: "Quattrocento", "Palatino Linotype", Georgia, serif;
  --f-id: "Courier Prime", "Courier New", Courier, monospace;
  --f-display: "Quattrocento", "Palatino Linotype", Georgia, serif;
  --gutter: 16px;
  --max: 1240px;
  color-scheme: dark;
}
:root[data-theme="light"] {
  --bg: #f4f6f4;
  --surface: #ffffff;
  --surface-2: #eef1ee;
  --rule: #dde3df;
  --rule-strong: #c2cbc5;
  --ink: #141c18;
  --ink-2: #3d4943;
  --ink-3: #5f6b65;
  --accent: #17794a;
  --accent-ink: #ffffff;
  --accent-dim: rgba(23, 121, 74, .07);
  --mark: rgba(20, 28, 24, .09);
  --grid: rgba(23, 121, 74, .05);
  --payer: #eb6834;
  --outlet: #2a78d6;
  --journo: #141c18;
  --line-money: #3d4943;
  --line-other: #a3ada7;
  color-scheme: light;
}
@media (min-width: 720px) { :root { --gutter: 28px; } }

* { box-sizing: border-box; }
html { font-size: 18px; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--f-ui);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

body::after {
  content: ""; position: fixed; inset: 0; pointer-events: none; z-index: -1;
  background-image: linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(ellipse at 50% 0%, #000 0%, transparent 65%);
}
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--accent); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 2px; }
::selection { background: var(--accent); color: var(--accent-ink); }
button, input, select { font: inherit; color: inherit; }
.wrap { max-width: var(--max); margin: 0 auto; padding: 0 var(--gutter); }
.mono { font-family: var(--f-id); font-size: .78rem; letter-spacing: .02em; }
.kicker { font-family: var(--f-id); font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; color: var(--ink-3); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.preview {
  background: var(--surface-2); color: var(--ink-2); border-bottom: 1px dashed var(--rule-strong);
  font-family: var(--f-id); font-size: .72rem; text-align: center; padding: 6px var(--gutter);
}

.status {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 18px;
  padding: 10px 0; border-bottom: 1px solid var(--rule); color: var(--ink-3);
}
.status .live::before {
  content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%;
  background: var(--accent); margin-right: 8px; vertical-align: 1px;
  animation: pulse 2.4s ease-in-out infinite;
}
.status-right { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.theme-toggle {
  background: none; border: 1px solid var(--rule-strong); border-radius: 2px;
  padding: 2px 8px; cursor: pointer; color: var(--ink-2); font-family: var(--f-id); font-size: .72rem;
}
.theme-toggle:hover { border-color: var(--accent); color: var(--accent); }
.masthead {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 12px 32px;
  padding: 26px 0 18px;
}
.logo {
  font-family: var(--f-id); font-weight: 700; text-decoration: none;
  font-size: clamp(1.5rem, 5.6vw, 3.4rem); line-height: .95; letter-spacing: -.03em; color: var(--ink); white-space: nowrap;
}
.logo:hover { color: var(--ink); }
.logo .us { color: var(--accent); }
.logo .cursor {
  display: inline-block; width: .5em; height: .82em; background: var(--accent); margin-left: .06em;
  vertical-align: -.04em; animation: blink 1.1s steps(1) infinite;
}
.tagline { font-family: var(--f-id); font-style: italic; font-size: .95rem; color: var(--ink-2); max-width: 26ch; text-align: right; margin: 0; }
.nav {
  display: flex; gap: 4px 22px; flex-wrap: wrap;
  border-top: 1px solid var(--rule-strong); border-bottom: 1px solid var(--rule);
  padding: 10px 0; font-family: var(--f-id); font-size: .78rem; text-transform: uppercase; letter-spacing: .12em;
}
.nav a { text-decoration: none; color: var(--ink-2); }
.nav a::before, .nav a::after { content: "\00a0"; }
.nav a[aria-current="page"] { color: var(--accent); }
.nav a[aria-current="page"]::before { content: "["; }
.nav a[aria-current="page"]::after { content: "]"; }
@media (max-width: 1000px) {
  .masthead { grid-template-columns: 1fr; }
  .tagline { text-align: left; }
}

.hed-xl { font-family: var(--f-display); font-weight: 700; font-size: clamp(2.1rem, 5.4vw, 3.9rem); line-height: 1.02; letter-spacing: -.015em; margin: .3em 0 .35em; }
.hed-l { font-family: var(--f-display); font-weight: 700; font-size: clamp(1.4rem, 2.6vw, 1.85rem); line-height: 1.12; margin: .3em 0; }
.hed-m { font-family: var(--f-display); font-weight: 700; font-size: 1.22rem; line-height: 1.2; margin: .35em 0; }
.hed-xl a, .hed-l a, .hed-m a { text-decoration: none; }
.hed-xl a:hover, .hed-l a:hover, .hed-m a:hover { color: inherit; text-decoration: underline; text-decoration-color: var(--accent); }
.dek { font-family: var(--f-display); font-size: 1.22rem; line-height: 1.45; color: var(--ink-2); margin: 0 0 1em; max-width: 60ch; }
.byline { color: var(--ink-3); }
.byline b { color: var(--ink-2); font-weight: 500; }
mark { background: var(--mark); color: inherit; padding: 0 .15em; border-radius: 2px; }

.intro { padding: 30px 0 4px; border-bottom: 1px solid var(--rule); }
.intro p { font-family: var(--f-display); font-size: clamp(1.15rem, 2.1vw, 1.4rem); line-height: 1.45; margin: 0 0 22px; max-width: 58ch; color: var(--ink); }
.intro .keys { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-bottom: 22px; color: var(--ink-2); }
.intro .keys span { display: inline-flex; align-items: center; gap: 7px; }

.sec { margin: 56px 0 18px; display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.sec h2 { margin: 0; font-family: var(--f-id); font-size: .82rem; text-transform: uppercase; letter-spacing: .14em; font-weight: 700; color: var(--ink); }
.sec h2::before { content: "// "; color: var(--ink-3); }
.sec .rule { flex: 1; height: 1px; background: var(--rule); min-width: 40px; }
.sec .more { font-family: var(--f-id); font-size: .75rem; color: var(--ink-2); text-decoration: none; }
.sec .more:hover { color: var(--accent); }

.hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 36px; padding: 34px 0 8px; align-items: stretch; }
@media (max-width: 900px) { .hero { grid-template-columns: 1fr; } }
.hero .meta { display: flex; gap: 6px 18px; flex-wrap: wrap; color: var(--ink-3); margin-top: 14px; }
.cta {
  display: inline-flex; align-items: center; gap: 10px; margin-top: 22px; padding: 10px 16px;
  border: 1px solid var(--accent); background: var(--accent); color: var(--accent-ink); text-decoration: none;
  font-family: var(--f-id); font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 700;
  transition: filter .2s;
}
.cta:hover { color: var(--accent-ink); filter: brightness(1.1); }
.cta.ghost { background: none; border-color: var(--rule-strong); color: var(--ink); font-weight: 400; }
.cta.ghost:hover { border-color: var(--accent); color: var(--accent); filter: none; }

.console {
  position: relative; overflow: hidden; min-height: 360px;
  background: var(--surface); border: 1px solid var(--rule-strong);
  display: flex; flex-direction: column;
}
.console canvas { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .28; }
.console-bar {
  position: relative; display: flex; justify-content: space-between; gap: 10px;
  padding: 8px 12px; border-bottom: 1px solid var(--rule); background: var(--surface-2); color: var(--ink-3);
}
.console-body {
  position: relative; flex: 1; padding: 16px 14px 18px; font-family: var(--f-id); font-size: clamp(.72rem, 1.05vw, .86rem); line-height: 1.75;
  overflow-x: auto; scrollbar-width: none;
  background: linear-gradient(to right, color-mix(in srgb, var(--surface) 94%, transparent) 0 72%, color-mix(in srgb, var(--surface) 60%, transparent));
}
.console-body .ln { white-space: pre; color: var(--ink-2); }
.console-body .ln.hop { white-space: pre-wrap; padding-left: calc(var(--depth) * 3ch + 2ch); text-indent: -2ch; }
.console-body .k { color: var(--ink-3); }
.console-body .p { color: var(--accent); }
.console-body .jr { color: var(--ink); font-weight: 700; }
.console-body .dot { width: 8px; height: 8px; margin-right: 7px; vertical-align: 1px; }
.console-body .caret { display: inline-block; width: .55em; height: 1.05em; background: var(--accent); vertical-align: -.2em; animation: blink 1.1s steps(1) infinite; }

.ledger { width: 100%; border-collapse: collapse; font-size: .92rem; }
.ledger th { text-align: left; font-family: var(--f-id); font-weight: 500; font-size: .7rem; text-transform: uppercase; letter-spacing: .12em; color: var(--ink-3); padding: 8px 10px; border-bottom: 1px solid var(--rule-strong); }
.ledger td { padding: 12px 10px; border-bottom: 1px solid var(--rule); vertical-align: top; }
.ledger tr:last-child td { border-bottom: 0; }
.ledger .num { font-family: var(--f-id); text-align: right; white-space: nowrap; color: var(--ink); }
.ledger th.num { text-align: right; }
.ledger .what { color: var(--ink-2); }
.ledger .what b { color: var(--ink); font-weight: 600; display: block; }
.ledger-wrap { overflow-x: auto; border: 1px solid var(--rule); background: var(--surface); }
@media (max-width: 640px) { .ledger .hide-s { display: none; } }

.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--rule-strong); }
@media (max-width: 900px) { .grid-3 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .grid-3 { grid-template-columns: 1fr; } }
.card { position: relative; padding: 18px 18px 22px; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); transition: background .2s; }
.card:hover { background: var(--surface); }
.card-id { display: flex; justify-content: space-between; align-items: center; color: var(--ink-3); }
.card p { margin: .4em 0 .9em; color: var(--ink-2); }
.card .basis { color: var(--ink-3); display: flex; gap: 14px; flex-wrap: wrap; }
.card .basis b { color: var(--ink); font-weight: 500; }
.card a.cover::after { content: ""; position: absolute; inset: 0; }
.type-tag { font-family: var(--f-id); font-size: .66rem; text-transform: uppercase; letter-spacing: .1em; padding: 1px 6px; border: 1px solid var(--rule-strong); color: var(--ink-2); }
.type-tag.editorial { border-style: dashed; }

.split { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 36px; }
@media (max-width: 900px) { .split { grid-template-columns: 1fr; } }
.map-frame { position: relative; border: 1px solid var(--rule-strong); background: var(--surface); }
.map-frame svg { display: block; width: 100%; height: 100%; }
.map-frame .frame-bar { display: flex; justify-content: space-between; gap: 10px; padding: 8px 12px; border-bottom: 1px solid var(--rule); color: var(--ink-3); flex-wrap: wrap; }
.map-preview { height: 420px; }
.ed-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule-strong); }
.ed-list li { padding: 16px 0; border-bottom: 1px solid var(--rule); display: grid; grid-template-columns: 3.4rem minmax(0, 1fr); gap: 4px 12px; }
.ed-list .n { font-family: var(--f-id); color: var(--ink-3); font-size: .78rem; padding-top: .35em; }
.ed-list .hed-m { font-weight: 700; margin-top: 0; }
.ed-list p { margin: 0; color: var(--ink-2); font-size: .92rem; grid-column: 2; }

.legend { display: flex; flex-direction: column; gap: 8px; color: var(--ink-2); }
.legend .grp { display: inline-flex; gap: 6px 14px; flex-wrap: wrap; align-items: center; }
.legend .grp > b { font-weight: 500; color: var(--ink-3); text-transform: uppercase; letter-spacing: .1em; font-size: .66rem; min-width: 3.4rem; }
.legend span, .keys span { display: inline-flex; align-items: center; gap: 6px; }
.dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; flex: none; }
.dot.payer { background: var(--payer); }
.dot.outlet { background: var(--outlet); }
.dot.journalist { background: var(--journo); }
.swatch { width: 24px; height: 0; border-top: 1.5px solid var(--line-other); display: inline-block; }
.swatch.money { border-top-width: 3px; border-color: var(--line-money); }
.swatch.control, .swatch.employs { border-top-width: 1.5px; }

.g-link { fill: none; stroke: var(--line-other); stroke-width: 1.2; opacity: .9; transition: opacity .2s; }
.g-link.money { stroke: var(--line-money); stroke-width: 2.4; opacity: .75; }
.arrow path { fill: var(--line-other); }
.arrow.money path { fill: var(--line-money); }
.g-node .hit { fill: transparent; stroke: none; cursor: pointer; }
.g-node .mark { stroke: var(--surface); stroke-width: 2; cursor: pointer; }
.g-node text { font-family: var(--f-id); font-size: 10.5px; fill: var(--ink-2); pointer-events: none; paint-order: stroke; stroke: var(--surface); stroke-width: 4px; stroke-linejoin: round; transition: opacity .2s; }
.g-node.payer .mark { fill: var(--payer); }
.g-node.outlet .mark { fill: var(--outlet); }
.g-node.journalist .mark { fill: var(--journo); }
.g-node.journalist text { fill: var(--ink); font-weight: 700; }
.g-node.sel .mark { stroke: var(--accent); stroke-width: 3; }
.g-node.sel text { fill: var(--ink); font-weight: 700; }
svg.focus .g-link:not(.on) { opacity: .07; }
svg.focus .g-node:not(.on) { opacity: .2; }
svg.focus .g-link.on { opacity: 1; }
svg.quiet .g-node text { opacity: 0; }
svg.quiet.focus .g-node.on text { opacity: 1; }
.g-node.hidden, .g-link.hidden { display: none; }

.map-page { display: grid; grid-template-columns: 15.5rem minmax(0, 1fr) 21rem; border: 1px solid var(--rule-strong); background: var(--surface); margin: 22px 0 0; min-height: 76vh; }
.map-page > * { min-width: 0; }
.rail { border-right: 1px solid var(--rule); padding: 14px; display: flex; flex-direction: column; gap: 18px; }
.rail fieldset { border: 0; margin: 0; padding: 0; }
.rail legend { font-family: var(--f-id); font-size: .68rem; text-transform: uppercase; letter-spacing: .12em; color: var(--ink-3); margin-bottom: 8px; padding: 0; }
.rail label { display: flex; align-items: center; gap: 8px; font-size: .88rem; color: var(--ink-2); padding: 3px 0; cursor: pointer; }
.rail input[type="checkbox"] { accent-color: var(--accent); }
.rail .search { width: 100%; background: var(--bg); border: 1px solid var(--rule-strong); padding: 7px 9px; font-family: var(--f-id); font-size: .8rem; }
.rail .search:focus { border-color: var(--accent); outline: none; }
.rail .count { margin-left: auto; font-family: var(--f-id); font-size: .72rem; color: var(--ink-3); }
.stage { position: relative; min-height: 520px; }
.stage svg { position: absolute; inset: 0; width: 100%; height: 100%; cursor: grab; }
.stage .hint, .stage .tools { z-index: 1; }
.stage .hint { position: absolute; left: 12px; bottom: 10px; color: var(--ink-3); pointer-events: none; margin: 0; }
.stage .tools { position: absolute; right: 10px; top: 10px; display: flex; gap: 6px; }
.btn {
  background: var(--surface-2); border: 1px solid var(--rule-strong); padding: 5px 10px; cursor: pointer;
  font-family: var(--f-id); font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; color: var(--ink-2);
}
.btn:hover { border-color: var(--accent); color: var(--accent); }
.drawer { border-left: 1px solid var(--rule); padding: 16px; overflow-y: auto; max-height: 82vh; }
.drawer .empty { color: var(--ink-2); }
.drawer h2 { font-family: var(--f-display); font-size: 1.45rem; line-height: 1.15; margin: 6px 0 4px; }
.drawer h3 { font-family: var(--f-id); font-size: .68rem; text-transform: uppercase; letter-spacing: .12em; color: var(--ink-3); margin: 20px 0 6px; font-weight: 500; }
.rec { list-style: none; margin: 0; padding: 0; }
.rec li { padding: 9px 0; border-bottom: 1px solid var(--rule); font-size: .88rem; }
.rec li button { all: unset; cursor: pointer; color: var(--ink); text-decoration: underline; text-decoration-color: var(--rule-strong); text-underline-offset: 3px; }
.rec li button:hover { color: var(--accent); text-decoration-color: var(--accent); }
.rec li button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.rec .what { color: var(--ink-2); display: block; }
.rec .facts { display: flex; gap: 4px 12px; flex-wrap: wrap; margin-top: 3px; color: var(--ink-3); }
.src { display: block; margin-top: 3px; font-size: .8rem; color: var(--ink-3); }
.src a { color: var(--ink-2); }
.src a:hover { color: var(--accent); }
.conn td.src { display: table-cell; margin: 0; }
.notice { margin-top: 18px; padding: 10px 12px; border-left: 2px solid var(--rule-strong); background: var(--bg); font-size: .85rem; color: var(--ink-2); }
@media (max-width: 1080px) {
  .map-page { grid-template-columns: 13rem minmax(0, 1fr); }
  .drawer { grid-column: 1 / -1; border-left: 0; border-top: 1px solid var(--rule); max-height: none; }
}
@media (max-width: 720px) {
  .map-page { grid-template-columns: 1fr; }
  .rail { border-right: 0; border-bottom: 1px solid var(--rule); display: grid; grid-template-columns: 1fr 1fr; }
  .rail .full { grid-column: 1 / -1; }
  .stage { min-height: 460px; }
}

.conn-wrap { overflow-x: auto; border: 1px solid var(--rule); background: var(--surface); }
.conn { width: 100%; border-collapse: collapse; font-size: .88rem; min-width: 640px; }
.conn th { text-align: left; font-family: var(--f-id); font-weight: 500; font-size: .68rem; text-transform: uppercase; letter-spacing: .1em; color: var(--ink-3); padding: 9px 10px; border-bottom: 1px solid var(--rule-strong); position: sticky; top: 0; background: var(--surface); }
.conn td { padding: 9px 10px; border-bottom: 1px solid var(--rule); vertical-align: top; color: var(--ink-2); }
.conn td.who { color: var(--ink); white-space: nowrap; }
.conn td.who button { all: unset; cursor: pointer; display: inline-flex; align-items: center; gap: 7px; }
.conn td.who button:hover { color: var(--accent); }
.conn td.who button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.conn td.num { font-family: var(--f-id); white-space: nowrap; color: var(--ink); }
.conn tr[hidden] { display: none; }
.conn tr.on td { background: var(--accent-dim); }

.filters { display: flex; flex-wrap: wrap; border: 1px solid var(--rule-strong); width: fit-content; margin: 26px 0 0; }
.filters button { background: none; border: 0; border-right: 1px solid var(--rule); padding: 8px 14px; cursor: pointer; font-family: var(--f-id); font-size: .74rem; text-transform: uppercase; letter-spacing: .1em; color: var(--ink-2); }
.filters button:last-child { border-right: 0; }
.filters button[aria-pressed="true"] { background: var(--accent); color: var(--accent-ink); font-weight: 700; }
.filters button:hover:not([aria-pressed="true"]) { color: var(--accent); }
.index-list { list-style: none; margin: 22px 0 0; padding: 0; border-top: 1px solid var(--rule-strong); }
.index-list li { display: grid; grid-template-columns: 7rem minmax(0, 1fr) 11rem; gap: 6px 22px; padding: 20px 0; border-bottom: 1px solid var(--rule); }
.index-list li:hover { background: linear-gradient(90deg, var(--accent-dim), transparent 60%); }
.index-list .when { color: var(--ink-3); display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.index-list p { margin: .2em 0 0; color: var(--ink-2); }
.index-list .basis { color: var(--ink-3); text-align: right; }
.index-list .basis b { color: var(--ink); font-weight: 500; display: block; }
.index-list li[hidden] { display: none; }
@media (max-width: 720px) {
  .index-list li { grid-template-columns: 1fr; }
  .index-list .when { flex-direction: row; align-items: center; }
  .index-list .basis { text-align: left; }
  .index-list .basis b { display: inline; margin-right: 6px; }
}

.rights { margin: 48px 0 0; padding: 22px 0 0; border-top: 1px solid var(--rule-strong); display: grid; grid-template-columns: 14rem minmax(0, 1fr); gap: 8px 32px; }
.rights h2 { margin: 0; font-family: var(--f-display); font-size: 1.3rem; line-height: 1.2; }
.rights p { margin: 0; max-width: 62ch; color: var(--ink-2); font-family: var(--f-display); font-size: 1.12rem; line-height: 1.5; }
.rights .contact { grid-column: 2; font-family: var(--f-id); font-size: .85rem; color: var(--ink-3); }
.rights .contact a { color: var(--ink); }
.rights .contact a:hover { color: var(--accent); }
@media (max-width: 720px) { .rights { grid-template-columns: 1fr; } .rights .contact { grid-column: 1; } }

.article { display: grid; grid-template-columns: minmax(0, 1fr) 19rem; gap: 48px; padding: 36px 0 0; }
@media (max-width: 960px) { .article { grid-template-columns: 1fr; } }
.article header { grid-column: 1 / -1; border-bottom: 1px solid var(--rule-strong); padding-bottom: 22px; }
.article .hed-xl { max-width: 20ch; }
.body { font-family: var(--f-display); font-size: 1.16rem; line-height: 1.65; max-width: 66ch; }
.body p { margin: 0 0 1.05em; }
.body h2 { font-family: var(--f-id); font-size: .8rem; text-transform: uppercase; letter-spacing: .12em; color: var(--ink-3); margin: 2em 0 .8em; font-weight: 500; }
.body > p:first-of-type::first-letter { font-weight: 700; float: left; font-size: 3.4em; line-height: .82; padding: .06em .08em 0 0; color: var(--ink); }
.body blockquote { margin: 1.4em 0; padding: 0 0 0 18px; border-left: 2px solid var(--rule-strong); font-size: 1.12em; color: var(--ink-2); }
.body figure { margin: 1.8em 0; }
.body figcaption { font-family: var(--f-ui); font-size: .82rem; color: var(--ink-3); margin-top: 8px; }
.map-inline { height: 380px; }
.aside { display: flex; flex-direction: column; gap: 22px; }
.panel { border: 1px solid var(--rule-strong); background: var(--surface); }
.panel > h2 { margin: 0; padding: 9px 12px; border-bottom: 1px solid var(--rule); font-family: var(--f-id); font-size: .7rem; text-transform: uppercase; letter-spacing: .12em; color: var(--ink-2); font-weight: 700; }
.panel .in { padding: 12px; font-size: .88rem; color: var(--ink-2); }
.panel dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 6px 12px; }
.panel dt { font-family: var(--f-id); font-size: .72rem; color: var(--ink-3); text-transform: uppercase; letter-spacing: .08em; padding-top: 2px; }
.panel dd { margin: 0; color: var(--ink); }
.panel ol { margin: 0; padding-left: 1.3em; }
.panel ol li { margin-bottom: 6px; }

.footer { margin-top: 72px; border-top: 1px solid var(--rule-strong); padding: 28px 0 40px; color: var(--ink-3); }
.footer-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr)); gap: 28px; }
@media (max-width: 720px) { .footer-grid { grid-template-columns: 1fr; } }
.footer .logo { font-size: 1.6rem; }
.footer p { margin: 10px 0 0; font-size: .88rem; max-width: 44ch; }
.footer h3 { font-family: var(--f-id); font-size: .68rem; text-transform: uppercase; letter-spacing: .12em; color: var(--ink-3); margin: 0 0 8px; font-weight: 500; }
.footer ul { list-style: none; margin: 0; padding: 0; font-size: .9rem; color: var(--ink-2); }
.footer li { padding: 3px 0; }
.footer a { text-decoration: none; }
.footer .disclose { border: 1px dashed var(--rule-strong); padding: 10px 12px; margin-top: 14px; font-size: .84rem; color: var(--ink-2); max-width: 46ch; }

.reveal { opacity: 0; transform: translateY(10px); animation: rise .7s cubic-bezier(.2, .7, .2, 1) forwards; animation-delay: calc(var(--d, 0) * 90ms); }
@keyframes rise { to { opacity: 1; transform: none; } }
@keyframes blink { 50% { opacity: 0; } }
@keyframes pulse { 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal { opacity: 1; transform: none; }
}

.skip { position: absolute; left: -999px; top: 8px; background: var(--accent); color: var(--accent-ink); padding: 6px 10px; z-index: 60; }
.skip:focus { left: 8px; }
.page-head { padding-top: 30px; }
.page-head .hed-l { font-size: clamp(1.8rem, 4vw, 2.6rem); }
.page-head .dek { margin: 0; }
.cta-row { display: flex; gap: 10px; flex-wrap: wrap; }
.empty-list { color: var(--ink-3); font-style: normal; margin: 8px 0 0; }
.index-count { color: var(--ink-3); margin: 12px 0 0; }
.index-list em { font-style: normal; }
.hero-empty { grid-template-columns: 1fr; }
.footer h2 { font-family: var(--f-id); font-size: .68rem; text-transform: uppercase; letter-spacing: .12em; color: var(--ink-3); margin: 0 0 8px; font-weight: 400; }
.console-body a { color: inherit; text-decoration: none; }
.console-body a:hover { color: var(--accent); }
.related { margin-top: 56px; }

.stance { font-family: var(--f-id); font-size: .66rem; text-transform: uppercase; letter-spacing: .1em; padding: 1px 6px; border: 1px solid var(--ink-2); color: var(--ink); }
.stance.foe { background: var(--ink); color: var(--bg); border-color: var(--ink); }

.conn td.who a { color: var(--ink); text-decoration: none; display: inline-flex; align-items: center; gap: 7px; }
.conn td.who a:hover { color: var(--accent); }
.conn .pin { background: none; border: 1px solid var(--rule-strong); color: var(--ink-3); cursor: pointer; font-size: .8rem; line-height: 1; padding: 2px 5px; margin-left: 4px; }
.conn .pin:hover, .conn .pin:focus-visible { color: var(--accent); border-color: var(--accent); }
.ledger td.what a, .rec a, .src a { color: inherit; }

.flow { display: block; width: 100%; height: auto; }
.flow text { font-family: var(--f-id); font-size: var(--flow-font, 15px); fill: var(--ink-2); paint-order: stroke; stroke: var(--surface); stroke-width: 5px; stroke-linejoin: round; }
.flow .g-node.journalist text { fill: var(--ink); font-weight: 700; }
.flow-fig { margin: 1.8em 0; }
.flow-fig .map-frame { padding-bottom: 6px; }
.thumb { margin: 10px 0 4px; border: 1px solid var(--rule); background: var(--bg); }
.thumb .flow-sm .g-link { stroke-width: 1; }
.thumb .flow-sm .g-link.money { stroke-width: 1.8; }

.who-page .page-head { border-bottom: 1px solid var(--rule-strong); padding-bottom: 22px; }
.who-page .kicker { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.who-meta { color: var(--ink-3); margin: 10px 0 0; }
.who-note { font-family: var(--f-display); font-size: 1.1rem; color: var(--ink-2); max-width: 62ch; margin: 22px 0 0; }
.who-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 40px; margin-top: 26px; }
@media (max-width: 800px) { .who-cols { grid-template-columns: 1fr; } }
.who-h { font-family: var(--f-id); font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; color: var(--ink-3); margin: 0 0 6px; font-weight: 400; }

body.og-card { width: 1200px; height: 630px; overflow: hidden; margin: 0; background: var(--bg); }
body.og-card::after { opacity: 1; }
.og-inner { position: relative; height: 100%; display: grid; grid-template-columns: 1fr; padding: 64px 72px; border: 2px solid var(--rule-strong); box-sizing: border-box; }
.og-has-art .og-inner { grid-template-columns: 470px 1fr; gap: 36px; align-items: center; }
.og-text { display: flex; flex-direction: column; justify-content: space-between; height: 100%; }
.og-logo { font-family: var(--f-id); font-weight: 700; font-size: 34px; color: var(--ink); }
.og-logo .us { color: var(--accent); }
.og-logo .cursor { display: inline-block; width: 18px; height: 28px; background: var(--accent); margin-left: 4px; vertical-align: -3px; }
.og-card h1 { font-family: var(--f-display); font-weight: 700; font-size: 64px; line-height: 1.04; margin: 30px 0 18px; color: var(--ink); }
.og-has-art h1 { font-size: 54px; }
.og-card p { font-family: var(--f-display); font-size: 26px; line-height: 1.35; color: var(--ink-2); margin: 0; max-width: 30ch; }
.og-url { font-family: var(--f-id); font-size: 22px; color: var(--accent); margin-top: auto; padding-top: 24px; }
.og-art { background: var(--surface); border: 1px solid var(--rule-strong); padding: 12px; }
