/* Fonts are self-hosted (latin woff2 in /fonts/, copied from static/fonts/ at build), not
   loaded from Google Fonts. This removes the render-blocking @import + its second request to
   fonts.gstatic.com, drops a third-party dependency and IP hand-off from every page, and keeps
   the "privacy-friendly" positioning honest. font-display:swap so text paints immediately in the
   fallback and swaps when the face loads. Weights match what the design uses: Archivo 500-900,
   Inter 400-600, JetBrains Mono 400/500/700. */
@font-face{font-family:'Archivo';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/Archivo-500.woff2') format('woff2');}
@font-face{font-family:'Archivo';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/Archivo-600.woff2') format('woff2');}
@font-face{font-family:'Archivo';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/Archivo-700.woff2') format('woff2');}
@font-face{font-family:'Archivo';font-style:normal;font-weight:800;font-display:swap;src:url('/fonts/Archivo-800.woff2') format('woff2');}
@font-face{font-family:'Archivo';font-style:normal;font-weight:900;font-display:swap;src:url('/fonts/Archivo-900.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/Inter-400.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/Inter-500.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/Inter-600.woff2') format('woff2');}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/JetBrainsMono-400.woff2') format('woff2');}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/JetBrainsMono-500.woff2') format('woff2');}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/JetBrainsMono-700.woff2') format('woff2');}

:root{
  --page:#ECE8DF; --surface:#F5F2EB; --white:#FBFAF5; --ink:#1A1815;
  --muted:#6C665C; --faint:#6B655C; --hair:#DAD5CB; --accent:#C2410C;
  /* IC3 reported loss is the same cybercrime-loss series the index is built on, so it carries the
     cyber accent everywhere it appears (losses chart, its legend, its source card). */
  --ic3:var(--accent); --chain:#7C3AED; --ibm:#64748B;
  /* The market counterpoint: a deep petrol-teal against the warm accent (cyber). Colorblind-safe
     opposite-hue pair, used for the S&P series in the race and the living index. */
  --market:#235B6E;
  /* Evidence grades V/A/I, tokenized so the dark theme can lift them for contrast. */
  --grade-v:#15803D; --grade-a:#1D4ED8; --grade-i:#B45309;
  /* Inverted panels (masthead, the Rule box): deliberately dark with light text in BOTH
     themes, so they use their own tokens instead of --ink (which flips to light text). */
  --panel-invert:#201C15; --panel-invert-ink:#EFEAE0;
  /* THE INDEX compounding race. Every colour aliases an existing token; the track is
     derived arithmetic on two of them (a 6% ink tint of the page), never a new literal
     and never coupled to another token doing a second job. */
  --race-hih:var(--accent); --race-spx:var(--market); --race-text:var(--ink);
  --race-rule:var(--hair); --race-muted:var(--muted); --race-knockout:var(--page);
  --race-track:color-mix(in srgb, var(--ink) 6%, var(--page));
  --sh-sm:0 1px 2px rgba(26,22,17,.05);
  --sh-md:0 1px 3px rgba(26,22,17,.05), 0 12px 30px rgba(26,22,17,.07);
  /* CARD TIER SYSTEM. Depth comes from hierarchy, hairline structure, spacing zones, and
     typographic contrast, never shadow or radius. Radius is a restrained 6px (an instrument
     panel, not a broadsheet column), never raised. One accent, reserved as the Tier-1 signal. */
  --card-radius:6px; --card-pad:22px 24px; --card-bg:var(--white);
  --rule:1px solid var(--hair); --zone-gap:18px;
  --focal-1:clamp(38px,5.4vw,56px); --focal-2:22px; --tier-signal:var(--accent);
}
/* DARK THEME (soft cool ink). Designed, not inverted: a deep cool-slate ground, cards a step
   up, off-white text, the terracotta accent lifted for contrast, and the series and grade
   colors brightened for a dark surface. The same token list is applied two ways: forced when
   the reader picks dark (:root[data-theme="dark"]), and by default under a dark system setting
   UNLESS the reader has chosen light (:root:not([data-theme="light"])). Inverted panels stay
   dark in both themes via --panel-invert. */
:root[data-theme="dark"]{
  --page:#16140F; --surface:#201D17; --white:#262218; --ink:#EFEAE0;
  --muted:#9C948A; --faint:#948B81; --hair:#322E27; --accent:#E8632E;
  --ic3:var(--accent); --chain:#EC4899; --ibm:#94A3B8; --market:#5F9AAE;
  --grade-v:#4ADE80; --grade-a:#60A5FA; --grade-i:#FBBF24;
  --panel-invert:#100E0A; --panel-invert-ink:#EFEAE0;
  --sh-sm:0 1px 2px rgba(0,0,0,.35);
  --sh-md:0 1px 3px rgba(0,0,0,.4), 0 12px 30px rgba(0,0,0,.5);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --page:#0F1317; --surface:#191E24; --white:#1F262D; --ink:#E6E9E5;
    --muted:#9BA39C; --faint:#828C97; --hair:#2A3138; --accent:#E8632E;
    --ic3:var(--accent); --chain:#EC4899; --ibm:#94A3B8; --market:#5F9AAE;
    --grade-v:#4ADE80; --grade-a:#60A5FA; --grade-i:#FBBF24;
    --panel-invert:#0A0D11; --panel-invert-ink:#E6E9E5;
    --sh-sm:0 1px 2px rgba(0,0,0,.35);
    --sh-md:0 1px 3px rgba(0,0,0,.4), 0 12px 30px rgba(0,0,0,.5);
  }
}
*{box-sizing:border-box;}
body{margin:0;background:var(--page);color:var(--ink);
  font-family:'Inter',system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;}
.wrap{max-width:1100px;margin:0 auto;padding:0 28px;}

/* NAMEPLATE */
.nameplate{background:var(--panel-invert);color:var(--panel-invert-ink);border-bottom:3px solid var(--accent);position:relative;z-index:2;}
.np-inner{max-width:1100px;margin:0 auto;padding:24px 28px 0;}
.np-top{display:flex;justify-content:space-between;align-items:flex-end;gap:20px 40px;flex-wrap:wrap;padding-bottom:20px;}
.nameplate.no-ticker .np-top{padding-bottom:26px;}
.np-id{min-width:280px;}
.np-lockup{display:flex;align-items:center;gap:16px;}
.np-glyph{width:clamp(42px,6vw,58px);height:auto;flex:none;}
.np-byline{margin-left:0;}
.np-mark{font-family:'Archivo',sans-serif;font-weight:900;font-size:clamp(26px,4.2vw,44px);line-height:.94;letter-spacing:-.025em;color:var(--panel-invert-ink);text-transform:uppercase;}
.np-mark .tm{font-size:0.32em;font-weight:700;vertical-align:0.9em;line-height:1;margin-left:0.06em;letter-spacing:0;}
.np-byline{font-family:'JetBrains Mono',monospace;font-size:14px;letter-spacing:.04em;color:#C4BEB2;margin-top:0;line-height:1.5;max-width:380px;text-align:right;}
@media (max-width:720px){.np-byline{text-align:left;margin-top:12px;}}
.np-byline b{color:#E4DED2;font-weight:700;}
.np-byline a{color:inherit;text-decoration:none;border-bottom:1px solid #545b62;}
.np-byline a:hover{border-bottom-color:#E4DED2;}

/* TOP COMBINED SIGNUP */
.np-signup{width:330px;max-width:100%;}
.np-signup-lab{font-family:'Archivo',sans-serif;font-weight:700;font-size:14px;color:#fff;letter-spacing:-.01em;margin-bottom:9px;}
.np-signup-row{display:flex;gap:7px;}
.np-signup-input{flex:1;min-width:0;background:#2A251D;border:1px solid #423B2E;border-radius:5px;padding:9px 11px;color:#fff;font-size:13px;font-family:'Inter',sans-serif;}
.np-signup-input::placeholder{color:#8B8375;}
.np-signup-input:focus{outline:none;border-color:#9FE6B4;}
.signup-flash{animation:flashRing 1.4s ease-out;border-radius:var(--card-radius);}
@keyframes flashRing{0%{box-shadow:0 0 0 0 rgba(195,255,73,0);}20%{box-shadow:0 0 0 4px rgba(195,255,73,.55);}100%{box-shadow:0 0 0 0 rgba(195,255,73,0);}}
.np-signup-btn{background:var(--accent);color:#fff;border:0;border-radius:5px;padding:9px 16px;font-family:'Archivo',sans-serif;font-weight:700;font-size:13px;cursor:pointer;white-space:nowrap;}
.np-signup-fine{font-family:'JetBrains Mono',monospace;font-size:14px;color:#C4BEB2;letter-spacing:.03em;margin-top:8px;line-height:1.5;}

/* TICKER */
.ticker{display:flex;align-items:stretch;border-top:1px solid rgba(255,255,255,.12);margin:0 -28px;padding:0 28px;overflow:hidden;}
.tk-live{display:flex;align-items:center;gap:7px;padding:11px 18px 11px 0;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#9FE6B4;border-right:1px solid rgba(255,255,255,.12);}
.tk-dot{width:7px;height:7px;border-radius:50%;background:#34d399;animation:pulse 2.2s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(52,211,153,.5);}70%{box-shadow:0 0 0 6px rgba(52,211,153,0);}100%{box-shadow:0 0 0 0 rgba(52,211,153,0);}}
.tk-item{display:flex;align-items:baseline;gap:9px;padding:11px 20px;border-right:1px solid rgba(255,255,255,.12);}
.tk-name{font-family:'JetBrains Mono',monospace;font-size:11px;color:#A69F93;letter-spacing:.04em;}
.tk-val{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:14px;font-variant-numeric:tabular-nums;}
.tk-chg{font-family:'JetBrains Mono',monospace;font-size:11px;color:#f87171;}
.tk-stamp{margin-left:auto;padding:11px 0 11px 20px;font-family:'JetBrains Mono',monospace;font-size:10px;color:#837C70;letter-spacing:.06em;align-self:center;}

/* LIVE BAND: one strip under the masthead carrying the freshness signal (left, static) and
   the Verified Losses stream (right, scrolling), so the top reads as a single live layer.
   Full-bleed, sits directly under the market ticker. Individual figures only, never a total.
   The .fig-* item styles and the fig-scroll keyframe are shared by the scrolling stream. */
.live-band{display:flex;align-items:stretch;background:var(--surface);border-bottom:1px solid var(--hair);margin:22px -28px 0;overflow:hidden;}
.live-band + .sec{margin-top:34px;}
.lb-status{flex:0 0 auto;display:flex;align-items:center;flex-wrap:wrap;gap:5px 9px;padding:10px 22px;border-right:1px solid var(--hair);
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.02em;color:var(--muted);}
.lb-stat{white-space:nowrap;}
.lb-stat b{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums;}
.lb-sep{color:var(--hair);}
.lb-dot{flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:3px;
  box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 55%, transparent);animation:fr-pulse 2.6s ease-out infinite;}
@keyframes fr-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 55%, transparent);}70%{box-shadow:0 0 0 6px transparent;}100%{box-shadow:0 0 0 0 transparent;}}
.lb-stream{flex:1 1 auto;display:flex;align-items:stretch;min-width:0;overflow:hidden;}
.lb-stream-label{flex:0 0 auto;display:flex;align-items:center;padding:0 16px;border-right:1px solid var(--hair);white-space:nowrap;
  font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);}
.fig-window{flex:1 1 auto;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);}
.fig-track{display:inline-flex;white-space:nowrap;padding:10px 0;animation-name:fig-scroll;animation-timing-function:linear;animation-iteration-count:infinite;will-change:transform;}
.fig-item{display:inline-flex;align-items:baseline;gap:8px;padding:0 22px;font-family:'JetBrains Mono',monospace;font-size:12px;}
.fig-org{color:var(--ink);letter-spacing:.01em;}
.fig-sep{color:var(--hair);}
.fig-amt{color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em;}
@keyframes fig-scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){.fig-track{animation:none;}.lb-dot{animation:none;}}
/* Below ~820px there is not enough room for a full status line and a usable stream side
   by side, so stack them: the status reads as one line, the scrolling stream sits beneath. */
@media (max-width:820px){
  .live-band{flex-direction:column;}
  .lb-status{border-right:0;border-bottom:1px solid var(--hair);width:100%;justify-content:flex-start;}
  .lb-stream-label{display:none;}
}

/* VERIFIED LOSSES TABLE - the studyable companion to the marquee. Card-framed, mono
   numerals, hairline rows; sortable via header buttons (progressive enhancement, sorts
   the server-rendered rows in place). Scrolls inside its own container on narrow screens
   so the page body never scrolls sideways. */
.vtable-wrap{border:1px solid var(--hair);border-radius:var(--card-radius);background:var(--white);overflow-x:auto;-webkit-overflow-scrolling:touch;}
.vtable{width:100%;border-collapse:collapse;font-size:13.5px;min-width:520px;}
.vt-cap{caption-side:top;text-align:left;padding:14px 18px 12px;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);line-height:1.5;border-bottom:1px solid var(--hair);}
.vtable thead th{position:sticky;top:0;background:var(--surface);border-bottom:1px solid var(--hair);padding:0;text-align:left;white-space:nowrap;}
.vt-sort{width:100%;display:flex;align-items:center;gap:5px;background:none;border:0;cursor:pointer;font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:11px 14px;}
.vt-sort:hover{color:var(--ink);}
.vtable thead th.vt-h-amt .vt-sort{justify-content:flex-end;}
.vt-ind{font-size:8px;color:var(--faint);min-width:7px;}
.vtable th[aria-sort="ascending"] .vt-ind::after{content:"\25B2";}
.vtable th[aria-sort="descending"] .vt-ind::after{content:"\25BC";}
.vtable th[aria-sort]:not([aria-sort="none"]) .vt-sort{color:var(--ink);}
.vtable tbody td{padding:11px 14px;border-bottom:1px solid var(--hair);vertical-align:baseline;}
.vtable tbody tr:last-child td{border-bottom:0;}
.vtable tbody tr:hover td{background:color-mix(in srgb, var(--ink) 3%, var(--white));}
.vt-rank{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums;width:1%;white-space:nowrap;}
.vt-org{color:var(--ink);}
.vt-org a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--hair);}
.vt-org a:hover{border-bottom-color:var(--muted);}
.vt-ext{font-size:9px;color:var(--faint);}
.vt-amt{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:14px;font-variant-numeric:tabular-nums;color:var(--accent);text-align:right;white-space:nowrap;}
.vt-date{font-family:'JetBrains Mono',monospace;font-size:11.5px;color:var(--muted);white-space:nowrap;}
.vt-sector{font-size:12px;color:var(--muted);}

/* SECTION HEADER */
/* Section titles are the masthead for a whole group of cards, so they are the most confident type
   in the section: near-black, bold, and a step up in size from a card's own masthead, with room
   beneath so each reads as a header for the cards that follow. Hierarchy: section title (mono,
   uppercase, ruled) > card masthead (Archivo) > card body. Shared, so it applies on the homepage
   and both ledger pages at once. */
.sec{display:flex;align-items:center;gap:16px;margin:60px 0 28px;}
.sec-label{font-family:'JetBrains Mono',monospace;font-size:20px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin:0;}
.sec-rule{flex:1;height:1px;background:var(--hair);}
/* Heading tags carry the same visual weight as the divs/spans they replaced: the semantic
   hierarchy (h1 title, h2 section, h3 card) is for SEO and screen readers, not a restyle. */
.np-mark,.ledger-mark{margin:0;}

/* THE INDEX'S TWO LEDGERS: quiet wayfinding AFTER the argument lands (the
   $100 -> $2,074 comparison and the 6.05x callout come first), offering the ledgers
   as "here's the proof, go look". Two slim tabs, not feature cards. Warm accent for
   the Verified SEC ledger, cool slate for the softer Media tier, echoing the feeds. */
.ledger-nav{display:flex;gap:10px;margin:2px 0 34px;flex-wrap:wrap;}
.ledger-btn{flex:1 1 auto;display:inline-flex;align-items:center;gap:7px;text-decoration:none;background:var(--white);border:1px solid var(--hair);border-left:3px solid var(--hair);border-radius:7px;padding:8px 14px;font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.01em;color:var(--ink);transition:border-color .15s,background .15s;}
.ledger-btn .ledger-btn-arrow{margin-left:auto;padding-left:10px;}
.ledger-btn:hover{background:var(--surface);}
.ledger-btn.is-sec{border-left-color:var(--accent);}
.ledger-btn.is-media{border-left-color:#64748B;}
.ledger-btn.is-exhibits{border-left-color:var(--ink);}
.ledger-btn.is-method{border-left-color:var(--muted);}
.ledger-btn.is-resources{border-left-color:var(--market);}
.ledger-btn.is-sec:hover{border-color:var(--accent);}
.ledger-btn.is-media:hover{border-color:#64748B;}
.ledger-btn.is-exhibits:hover{border-color:var(--ink);}
.ledger-btn.is-method:hover{border-color:var(--muted);}
.ledger-btn.is-resources:hover{border-color:var(--market);}
.ledger-btn.is-exhibits .ledger-btn-arrow{color:var(--ink);}
.ledger-tier{color:var(--faint);}
.ledger-btn-arrow{color:var(--accent);transition:transform .15s;}
.ledger-btn.is-media .ledger-btn-arrow{color:#64748B;}
.ledger-btn:hover .ledger-btn-arrow{transform:translateX(2px);}

/* Homepage exhibit teaser: a compact, all-words rotation over the four argument exhibits, one shown
   per build (build-time pick, no JavaScript), deep-linking to that card's anchor on the shelf. It is
   a pointer into the evidence, not a re-drawing of it: one line and one link, no chart or image.
   It sits between the living-index chart card and the Built Wrong book card, so "See the evidence"
   lands right after the most evidence-heavy element and stays anchored to that permanent chart when
   the book card later comes off the page. Width matches the content column by construction: the
   teaser and its neighbours are all full-width direct children of .wrap, so they share the same
   container (max-width 1100, 28px side padding) and their left and right edges align at every screen
   size, with no hardcoded width. box-sizing:border-box keeps the border and padding inside that
   width. The chart card above has no bottom margin, so the teaser carries its own 34px top and
   bottom margin for a clean, uncrowded gap on both sides. */
.ex-teaser{margin:34px 0;padding:15px 18px;background:var(--surface);border:1px solid var(--hair);border-left:3px solid var(--accent);border-radius:7px;}
.ex-teaser-label{display:block;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:9px;}
.ex-teaser-line{font-family:'Archivo',sans-serif;font-weight:700;font-size:clamp(15px,2.1vw,19px);line-height:1.32;letter-spacing:-.01em;color:var(--ink);margin:0 0 11px;text-wrap:balance;}
.ex-teaser-link{display:inline-flex;align-items:center;gap:6px;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.03em;color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;}
.ex-teaser-link:hover{border-bottom-color:var(--accent);}

/* HERO EQUATION */
.hero-eyebrow{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 18px;}
.hero-q{font-family:'Archivo',sans-serif;font-weight:700;font-size:clamp(22px,3.2vw,34px);line-height:1.1;letter-spacing:-.02em;margin:0 0 34px;max-width:760px;}
/* Standfirst: the front-page lead under the nameplate. The thesis leads; the race below proves it. */
.standfirst{margin:40px 0 14px;}
.sf-lead{font-family:'Archivo',sans-serif;font-weight:800;font-size:clamp(26px,4.8vw,54px);line-height:1.05;letter-spacing:-.028em;color:var(--ink);margin:0 0 18px;}
.sf-sub{font-size:clamp(15px,1.5vw,18px);line-height:1.5;color:var(--muted);margin:0;max-width:64ch;}
/* The subscribe band: the ask, demoted below the argument. A dark panel (warm), reusing the form styles. */
.subscribe{display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;background:var(--panel-invert);color:var(--panel-invert-ink);border-radius:var(--card-radius);padding:26px 30px;margin-top:34px;}
.sub-copy{flex:1;min-width:240px;}
.sub-lab{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:8px;}
.sub-lede{font-size:14px;line-height:1.55;color:#C4BEB2;margin:0;max-width:48ch;}
.sub-form{width:330px;max-width:100%;}
@media (max-width:640px){.subscribe{flex-direction:column;align-items:stretch;}.sub-form{width:100%;}}
.equation{margin-bottom:36px;}
.race-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
/* Skip-to-content: the first focusable element on every page (before the fixed theme
   toggle), off-screen until focused, so a keyboard user can jump past the chrome to the
   main landmark. Shared block, so it is identical on every page. */
.skip-link{position:absolute;left:8px;top:-52px;z-index:2000;background:var(--accent);color:#fff;padding:9px 16px;border-radius:0 0 7px 7px;font-family:'Archivo',sans-serif;font-weight:700;font-size:14px;text-decoration:none;transition:top .16s ease;}
.skip-link:focus{top:0;}
.lane{margin-bottom:18px;}
.lane-name{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--race-muted);margin-bottom:7px;}
/* The year counter rides the first lane's label line, right-aligned, so the label row
   carries it as content rather than the component opening on a near-empty spacing row. */
.lane-name--lead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;}
.race-year{font-variant-numeric:tabular-nums;font-size:12px;letter-spacing:.06em;text-transform:none;}
.track{position:relative;height:44px;background:var(--race-track);}
.runner{position:absolute;left:0;top:0;bottom:0;width:0;display:flex;align-items:center;justify-content:flex-end;padding-right:12px;z-index:1;transition:none;}
.runner-hih{background:var(--race-hih);}
.runner-spx{background:var(--race-spx);}
.tag{font-family:'JetBrains Mono',monospace;font-weight:500;font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--race-knockout);}
.tag.outside{position:absolute;left:100%;margin-left:12px;color:var(--race-text);}
/* The finish notch sits above the bars (z-index) and is knocked out in the page colour,
   so it reads as a notch cut into the rust bar it lands on, not a faint line drawn over it. */
.finish{position:absolute;top:-7px;bottom:-7px;width:2px;background:var(--race-knockout);opacity:0;z-index:2;transition:opacity .4s;}
.finish.on{opacity:1;}
.verdict{display:flex;align-items:center;gap:18px;margin-top:26px;padding-top:24px;border-top:1px solid var(--race-rule);flex-wrap:wrap;opacity:0;transform:translateY(6px);transition:opacity .5s ease,transform .5s ease;}
.verdict.on{opacity:1;transform:none;}
.verdict-x{font-family:'Archivo',sans-serif;font-weight:900;font-size:clamp(44px,8vw,76px);color:var(--race-text);letter-spacing:-.025em;line-height:.85;}
.verdict p{font-size:14.5px;color:var(--race-text);max-width:440px;line-height:1.5;margin:0;}
.race-foot{display:flex;align-items:flex-start;justify-content:space-between;gap:20px 28px;margin-top:24px;flex-wrap:wrap;}
.race-foot>div{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.03em;color:var(--race-muted);line-height:1.6;max-width:560px;}
.race-replay{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--race-text);background:transparent;border:1px solid var(--race-rule);border-radius:6px;padding:7px 12px;cursor:pointer;white-space:nowrap;}
.race-replay:hover{border-color:var(--race-muted);}
.race-replay:focus-visible{outline:2px solid var(--race-hih);outline-offset:2px;}
@media (prefers-reduced-motion:reduce){.finish,.verdict{transition:none;}}

.rate-strip{display:flex;align-items:stretch;border:1px solid var(--hair);border-radius:var(--card-radius);overflow:hidden;flex-wrap:wrap;background:var(--white);}
.rate-cell{padding:14px 22px;border-right:1px solid var(--hair);}
.rate-num{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:27px;color:var(--ic3);font-variant-numeric:tabular-nums;display:block;letter-spacing:-.01em;}
.rate-num span{font-size:13px;color:var(--faint);font-weight:400;margin-left:2px;}
.rate-lab{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);display:block;margin-top:4px;}
.rate-note{flex:1;min-width:240px;display:flex;align-items:center;padding:14px 22px;font-size:13.5px;color:var(--ink);line-height:1.5;}

/* BOOK BAND */
.book{display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap;border:1px solid var(--hair);border-left:4px solid var(--accent);border-radius:var(--card-radius);background:var(--white);padding:24px 28px;margin-top:24px;}
.book-eyebrow{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);margin-bottom:9px;font-weight:700;}
.book-title{font-family:'Archivo',sans-serif;font-weight:800;font-size:clamp(26px,3.6vw,38px);letter-spacing:-.02em;line-height:1;}
.book-sub{font-family:'Archivo',sans-serif;font-weight:600;font-size:15px;color:var(--muted);margin-top:7px;}
.book-thesis{font-size:13.5px;color:var(--ink);line-height:1.55;max-width:560px;margin:13px 0 0;}
.book-side{display:flex;flex-direction:column;align-items:flex-end;gap:13px;}
.book-status{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);}
.book-btn{background:var(--accent);color:#fff;border:0;border-radius:5px;padding:12px 24px;font-family:'Archivo',sans-serif;font-weight:700;font-size:13px;cursor:pointer;white-space:nowrap;}
.book--top{margin-top:30px;}

/* CHART */
.chart-frame{background:var(--white);border:1px solid var(--hair);border-radius:var(--card-radius);padding:8px;}
.chart-inner{background:var(--surface);border-radius:6px;padding:26px 22px 16px;}
.chart-title{font-family:'Archivo',sans-serif;font-weight:800;font-size:clamp(20px,2.6vw,26px);margin:0 0 8px;letter-spacing:-.02em;line-height:1.1;max-width:640px;}
.chart-note{font-size:13.5px;color:var(--muted);line-height:1.55;max-width:760px;margin:0;}
.axis-note{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--faint);letter-spacing:.06em;text-transform:uppercase;}
.legend{display:flex;gap:22px;flex-wrap:wrap;padding:16px 6px 4px;}
.leg-item{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink);}
.leg-swatch{width:18px;border-top-width:3px;border-top-style:solid;height:0;}
.leg-meta{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);}

/* CHART HOVER: a crosshair + tooltip layer on the line charts. Everything is hidden until the
   chart-hover script activates it, so a chart with JS off is exactly the static render. */
.chart-wrap{position:relative;}
.ic-hit{fill:transparent;cursor:crosshair;}
svg.ichart:focus{outline:none;}
svg.ichart:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px;}
.ic-cross{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3;opacity:0;pointer-events:none;transition:opacity .08s;}
.ic-cross.on{opacity:.55;}
.ic-dots circle{pointer-events:none;}
.chart-tip{position:absolute;top:6px;left:0;transform:translateX(-50%);z-index:3;pointer-events:none;
  background:var(--white);border:1px solid var(--hair);border-radius:6px;box-shadow:0 4px 14px rgba(20,24,28,.10);
  padding:8px 10px;min-width:118px;max-width:230px;}
.chart-tip[hidden]{display:none;}
.ct-x{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-bottom:6px;}
.ct-row{display:flex;align-items:baseline;gap:8px;padding:2px 0;}
.ct-key{flex:0 0 auto;width:12px;height:2px;border-radius:1px;align-self:center;}
.ct-val{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:13px;font-variant-numeric:tabular-nums;color:var(--ink);}
.ct-name{font-size:11px;color:var(--muted);margin-left:auto;}
.footnote{font-size:12px;color:var(--muted);line-height:1.55;padding:13px 6px 2px;border-top:1px dashed var(--hair);margin-top:8px;}
.footnote + .footnote{border-top:0;padding-top:4px;}
.footnote b{font-weight:600;color:var(--ink);}

/* EXHIBIT */
.exhibit{border:1px solid var(--hair);border-radius:var(--card-radius);background:var(--white);padding:20px 24px;margin-top:18px;}
.exhibit-tag{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;font-weight:700;}
.exhibit p{font-size:14px;line-height:1.6;color:var(--ink);margin:0 0 10px;}
.exhibit p:last-child{margin-bottom:0;}
.exhibit b{font-weight:700;}
.exhibit-caveat{font-size:12.5px;color:var(--muted);border-top:1px dashed var(--hair);padding-top:11px;}

/* LEDGER */
.ledger{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px;}
.src{background:var(--white);border:1px solid var(--hair);border-radius:var(--card-radius);padding:20px 22px;border-top-width:3px;}
.src-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;}
.src-name{font-family:'Archivo',sans-serif;font-weight:800;font-size:18px;letter-spacing:-.015em;}
.src-latest{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:20px;text-align:right;font-variant-numeric:tabular-nums;}
.src-latest small{display:block;font-weight:400;font-size:10px;color:var(--faint);letter-spacing:.06em;}
.kv{display:grid;grid-template-columns:82px 1fr;gap:7px 12px;font-size:13px;line-height:1.45;margin:0;}
.kv dt{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding-top:2px;}
.kv dd{margin:0;color:var(--ink);}
.src-foot{margin-top:14px;padding-top:12px;border-top:1px solid var(--hair);display:flex;justify-content:space-between;align-items:center;gap:10px;}
.src-cadence{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.04em;}
.src-link{display:inline-block;margin-top:12px;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.03em;color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;}
.src-link:hover{border-bottom-color:var(--accent);}
.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid;border-radius:4px;padding:4px 9px;font-family:'JetBrains Mono',monospace;font-weight:700;letter-spacing:.04em;font-size:11.5px;}
.chip-label{font-weight:600;font-size:10px;letter-spacing:.06em;text-transform:uppercase;}
.gV{color:var(--grade-v);border-color:var(--grade-v);background:color-mix(in srgb, var(--grade-v) 12%, transparent);}
.gA{color:var(--grade-a);border-color:var(--grade-a);background:color-mix(in srgb, var(--grade-a) 12%, transparent);}
.gI{color:var(--grade-i);border-color:var(--grade-i);background:color-mix(in srgb, var(--grade-i) 12%, transparent);}

/* GRADE LEGEND: a compact key on the homepage so a first-time reader knows what the V/A/I chips on
   the cards mean before they reach them. Reuses the chips; links to the full standard. */
.grade-legend{display:flex;flex-wrap:wrap;align-items:center;gap:9px 20px;margin:34px 0 6px;padding:12px 16px;
  background:var(--surface);border:1px solid var(--hair);border-radius:6px;}
.grade-legend + .sec{margin-top:24px;}
.gl-lead{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
.gl-item{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);}
.gl-def{color:var(--muted);}
.gl-more{margin-left:auto;font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--accent);text-decoration:none;
  border-bottom:1px solid var(--hair);white-space:nowrap;}
.gl-more:hover{border-bottom-color:var(--accent);}
@media (max-width:640px){.gl-more{margin-left:0;}}

/* THEME TOGGLE: a fixed light/dark control, present on every page (styling shared). It follows
   the system preference until the reader picks a side, which is then remembered. */
.theme-toggle{position:fixed;right:18px;bottom:18px;z-index:50;width:42px;height:42px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;cursor:pointer;background:var(--white);color:var(--muted);
  border:1px solid var(--hair);box-shadow:0 2px 10px rgba(20,24,28,.16);line-height:1;
  transition:color .15s,border-color .15s,background .15s,box-shadow .15s;}
.theme-toggle:hover{color:var(--accent);border-color:var(--accent);box-shadow:0 3px 14px rgba(20,24,28,.22);}
.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.theme-toggle .tt-sun,.theme-toggle .tt-moon{pointer-events:none;display:inline-flex;align-items:center;justify-content:center;}
.theme-toggle[data-mode="light"] .tt-sun{display:none;}
.theme-toggle[data-mode="dark"] .tt-moon{display:none;}
@media print{.theme-toggle{display:none;}}
/* Sector pill: same .chip geometry as the grade pills, one neutral slate for every
   sector (never per-sector color) so it never reads as a grade. Uppercase to match
   the grade label's case treatment. */
.chip-sector{color:#64748B;border-color:#64748B;text-transform:uppercase;}

/* FEED */
.feed-stat{background:var(--white);border:1px solid var(--hair);border-radius:var(--card-radius);padding:18px 22px;margin-bottom:16px;}
.feed-stat-main{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;}
.feed-stat-num{font-family:'Archivo',sans-serif;font-weight:900;font-size:40px;color:var(--ink);letter-spacing:-.02em;line-height:1;}
.feed-stat-lab{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.feed-stat-grades{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--muted);margin-top:9px;letter-spacing:.04em;}
.feed-stat-note{font-size:12.5px;color:var(--faint);line-height:1.55;margin-top:11px;max-width:680px;}

/* LIVE CUT exhibit: a build-time cut of the ledger, same card chrome as the stat cards. The
   industry cut is a horizontal bar chart of incident COUNT by sector. Count is the only variable,
   so every named bar shares one hue and length carries the magnitude; Other is the residual, not a
   sector, so it takes a neutral, never the hue. No dollar figure appears on this card. */
.exhibit{background:var(--white);border:1px solid var(--hair);border-radius:var(--card-radius);padding:20px 24px;margin-bottom:16px;scroll-margin-top:20px;}
.exhibit-label{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);}
.exhibit-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:6px;}
.exhibit-title{font-family:'Archivo',sans-serif;font-weight:800;font-size:22px;letter-spacing:-.02em;margin:0;}
.exhibit-n{font-family:'JetBrains Mono',monospace;font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap;}
.exhibit-sub{font-size:12.5px;color:var(--muted);line-height:1.5;margin-top:6px;max-width:560px;}
.bars{margin-top:16px;}
.bar-row{margin-top:11px;}
.bar-row:first-child{margin-top:0;}
.bar-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:4px;}
.bar-label{font-size:13px;color:var(--ink);}
.bar-label a{color:inherit;text-decoration:none;border-bottom:1px solid var(--hair);}
.bar-label a:hover{border-bottom-color:var(--accent);color:var(--accent);}
.bar-val{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:13px;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap;}
.bar-share{font-weight:400;color:var(--muted);}
.bar-track{display:block;height:10px;background:var(--surface);border-radius:5px;overflow:hidden;}
.bar-fill{display:block;height:100%;background:var(--accent);border-radius:5px;min-width:3px;}
.bar-fill-other{background:var(--faint);}
.exhibit-foot{margin-top:18px;padding-top:14px;border-top:1px solid var(--hair);font-size:11.5px;color:var(--faint);line-height:1.6;}
.exhibit-foot p{margin:0 0 7px;}
.exhibit-foot p:last-child{margin:0;}
.exhibit-foot b{color:var(--muted);font-weight:700;letter-spacing:.06em;}
.exhibit-disclaimer{color:var(--muted);}
/* Unit grid: one cell per filing. A filled cell carries a dollar figure; an empty outline carries
   none. The empty field IS the argument, and it reads in grayscale (the mute test). Count only,
   never a sum. */
.unit-grid{display:flex;flex-wrap:wrap;gap:4px;margin:14px 0;}
.unit-cell{width:16px;height:16px;border-radius:3px;flex:0 0 auto;display:inline-block;}
.unit-priced{background:var(--market);}
.unit-blank{background:transparent;border:1.5px solid var(--hair);}
.unit-key{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);flex-wrap:wrap;}
.unit-key .unit-cell{width:12px;height:12px;}
/* Silence cut: a hero proportion. The big number carries the claim; the slim bar beneath it (a
   reused .bar-track/.bar-fill) shows the tiny priced share against a mostly-empty track. */
.silence-stat{display:flex;align-items:baseline;gap:12px;margin:14px 0 10px;flex-wrap:wrap;}
.silence-num{font-family:'Archivo',sans-serif;font-weight:800;font-size:44px;letter-spacing:-.03em;line-height:1;color:var(--ink);}
.silence-cap{font-size:13px;color:var(--muted);max-width:280px;}
/* EXHIBIT extras: an Exhibit (outside primary-source evidence) reuses the card chrome above and
   adds a chart, a basis line naming the plotted series, and an inline primary-source link. */
.exhibit-chart{margin-top:16px;overflow-x:auto;}
.exhibit-svg{display:block;max-width:520px;margin:0 auto;}
.exhibit-basis{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.03em;color:var(--faint);margin-top:12px;line-height:1.5;}
.exhibit-quote{margin:14px 0 0;padding:8px 0 8px 14px;border-left:3px solid var(--accent);font-size:13.5px;line-height:1.5;color:var(--ink);font-style:italic;max-width:560px;}
.exhibit-source{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.03em;color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;}
.exhibit-source:hover{border-bottom-color:var(--accent);}

/* LIVING INDEX card: the book's fixed reading (6.05x, 2014-2024) against the live reading, plus a
   two-line index chart. Sits with the compounding race as its living layer, never replacing it. */
/* CARD TIERS. A card opts in with .card plus ONE tier modifier; the tier carries all chrome and no
   card styles its own border, radius, shadow, or accent. Zones (.card-head / .card-body /
   .card-prov) are the masthead / figures / provenance structure of a ledger entry, separated by
   spacing and, at the provenance line, one structural hairline. Grounded in an instrument readout
   with a source line, not a broadsheet column: restrained radius, generous zones, no dense rules. */
.card{background:var(--card-bg);border:1px solid var(--hair);border-radius:var(--card-radius);padding:var(--card-pad);}
.card-body{margin-top:var(--zone-gap);}
.card-prov{margin-top:var(--zone-gap);padding-top:14px;border-top:var(--rule);}
.card-label{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);}
.card-title{font-family:'Archivo',sans-serif;letter-spacing:-.02em;margin:5px 0 0;}
/* The three tier modifiers (.card--argument / --evidence / --utility) are defined near the end of
   this stylesheet, AFTER every card class, so the Tier-1 accent signal and the Tier-3 fill win over
   a card's own border and background by source order. Chrome (no shadow, restrained radius) is
   already global; a card opts into a tier by adding one modifier class. */

/* Living-index card (Tier 1). Chrome and masthead come from .card .card--argument and the zone
   classes; only content-specific layout lives here. The ratio figures are the card's focal point. */
.living-index{margin-top:18px;scroll-margin-top:20px;}
.li-sub{font-size:13px;color:var(--muted);line-height:1.55;margin-top:8px;max-width:620px;}
.li-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.li-panel{border:1px solid var(--hair);border-radius:6px;padding:16px 18px;background:var(--surface);}
.li-panel--live{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 5%, var(--white));}
.li-panel-lab{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
.li-panel-val{font-family:'Archivo',sans-serif;font-weight:900;font-size:var(--focal-1);line-height:1;letter-spacing:-.02em;margin-top:10px;color:var(--ink);font-variant-numeric:tabular-nums;}
.li-panel--live .li-panel-val{color:var(--accent);}
.li-panel-sub{font-size:12px;color:var(--faint);margin-top:8px;}
.li-chart{margin-top:20px;overflow-x:auto;}
.li-svg{display:block;max-width:640px;margin:0 auto;}
/* The live reading pulses: a soft expanding ring on the 2025 IC3 endpoint only. Motion maps to the
   card's claim, that point is where the index stands now and is moving, while the 2024 book point
   is a fixed baseline (a static ring). transform-box:fill-box scales the ring about its own centre.
   The ring sits behind the static dot, so the dot stays the clear line endpoint. */
.li-pulse{transform-box:fill-box;transform-origin:center;animation:li-pulse 2.6s ease-out infinite;}
@keyframes li-pulse{0%{transform:scale(1);opacity:.5;}100%{transform:scale(2.6);opacity:0;}}
/* Reduced motion: no loop. The pulse ring is hidden outright (not a paused frame), and the live dot
   renders as a deliberately larger static accent dot so the live reading is still identifiable. */
@media (prefers-reduced-motion:reduce){
  .li-pulse{display:none;}
  .li-live-dot{transform-box:fill-box;transform-origin:center;transform:scale(1.5);}
}
.li-foot{font-size:11.5px;color:var(--faint);line-height:1.6;max-width:680px;}
@media (max-width:620px){.li-panels{grid-template-columns:1fr;}}
.feed{display:flex;flex-direction:column;border:1px solid var(--hair);border-radius:var(--card-radius);overflow:hidden;background:var(--white);}
.evt{display:flex;justify-content:space-between;gap:18px;padding:17px 22px;border-bottom:1px solid var(--hair);}
.evt:last-child{border-bottom:0;}
.evt-top{display:flex;align-items:baseline;gap:12px;margin-bottom:5px;}
.evt-org{font-family:'Archivo',sans-serif;font-weight:700;font-size:16px;letter-spacing:-.01em;}
/* When the company name links to the incident's own page, it reads as a link: a trailing arrow
   always signals it, and hover/focus lifts it to the accent with an underline. */
.evt-org a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:color .12s,border-color .12s;}
.evt-org a:hover,.evt-org a:focus-visible{color:var(--accent);border-bottom-color:var(--accent);outline:none;}
.evt-go{font-family:'JetBrains Mono',monospace;font-weight:400;font-size:.7em;margin-left:6px;color:var(--faint);vertical-align:1px;}
.evt-org a:hover .evt-go,.evt-org a:focus-visible .evt-go{color:var(--accent);}
.evt-date{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--faint);letter-spacing:.04em;}
.evt-filer{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin:-2px 0 5px;}
.evt-detail{font-size:13.5px;color:var(--ink);line-height:1.45;max-width:640px;}
.evt-src{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:7px;}
.evt-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;white-space:nowrap;}
.evt-amt{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:15px;font-variant-numeric:tabular-nums;}
.feed-more{display:inline-block;margin-top:13px;font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.03em;color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;}
.feed-more:hover{border-bottom-color:var(--accent);}

/* MEDIA REPORTED tier: the softer companion to the Verified SEC scoreboard. Its feed panel
   trades the scoreboard's crisp white for a muted fill and a cool slate rail (against the site's
   warm accent), so the tier reads as distinct and secondary at a glance; the per-card grade chip
   (Attested / Inferred) carries each figure's certainty, and the header tag names the grade range. */
.feed-media{background:var(--surface);border-left:3px solid #64748B;}
.tier-tag{flex:0 0 auto;font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);border:1px solid var(--hair);border-radius:4px;padding:3px 8px;}

/* COUNTERPOINT */
.counter{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:center;background:var(--white);border:1px solid var(--hair);border-radius:var(--card-radius);padding:24px 26px;}
.counter h3{font-family:'Archivo',sans-serif;font-weight:800;font-size:22px;margin:0 0 12px;letter-spacing:-.02em;}
.counter p{font-size:14px;color:var(--muted);line-height:1.55;margin:0 0 10px;}
.counter strong{color:var(--ink);font-weight:600;}

/* RULE */
.rule-box{background:var(--panel-invert);color:var(--panel-invert-ink);border-left:4px solid var(--accent);border-radius:var(--card-radius);padding:24px 28px;margin-top:16px;display:flex;gap:18px;align-items:flex-start;}
.rule-mark{font-family:'Archivo',sans-serif;font-weight:900;font-size:13px;letter-spacing:.1em;color:var(--accent);white-space:nowrap;padding-top:2px;}
.rule-txt{font-size:14px;line-height:1.6;color:var(--panel-invert-ink);}

/* FOOTER */
.foot{margin-top:54px;padding:26px 0 64px;border-top:1px solid var(--hair);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.foot-block{font-size:12px;color:var(--muted);line-height:1.6;max-width:560px;}
.foot-brand{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);text-align:right;}
.foot-brand b{color:var(--ink);font-weight:700;}
.foot-copyright{flex-basis:100%;margin-top:24px;padding-top:18px;border-top:1px solid var(--hair);font-size:11.5px;color:var(--faint);line-height:1.6;}
.foot-copyright b{color:var(--muted);font-weight:600;}

svg text{font-family:'JetBrains Mono',monospace;}

/* CARD TIER MODIFIERS. Defined last, after every card class, so the Tier-1 accent signal and the
   Tier-3 fill win over a card's own border and background by source order. Chrome (no shadow,
   restrained radius) is already global; these carry only the per-tier signal. A card opts into a
   tier by adding one modifier to its class list. Tier 2 (evidence) is the unmarked default: a
   monochrome, hairline-structured card with no accent, so it needs no modifier of its own beyond
   the semantic class. */
.card--argument{border-top:3px solid var(--tier-signal);}
.card--argument .card-title{font-weight:800;font-size:var(--focal-2);}
.card--evidence .card-title{font-weight:700;font-size:var(--focal-2);letter-spacing:-.015em;}
.card--utility{background:var(--surface);border:0;}

@media (max-width:760px){
  .counter{grid-template-columns:1fr;}
  .rate-cell{border-right:0;border-bottom:1px solid var(--hair);}
  .np-signup{width:100%;}
  .tk-stamp{display:none;}
  .book-side{align-items:flex-start;width:100%;}
  .evt{flex-direction:column;}
}
/* Back-to-top: a fixed control that fades in once the reader has scrolled, so a long ledger does not
   trap them at the bottom. Hidden from the tab order and pointer until shown. */
.to-top{position:fixed;right:18px;bottom:18px;z-index:60;display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 12px;border:1px solid var(--hair);border-radius:9px;background:var(--surface);color:var(--muted);font:700 15px/1 'JetBrains Mono',monospace;cursor:pointer;box-shadow:0 3px 12px rgba(0,0,0,.14);opacity:0;transform:translateY(10px);transition:opacity .22s ease,transform .22s ease,color .15s ease,border-color .15s ease;pointer-events:none;}
.to-top.show{opacity:1;transform:none;pointer-events:auto;}
.to-top:hover{color:var(--accent);border-color:var(--accent);}
.to-top:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
@media (prefers-reduced-motion:reduce){.to-top{transition:opacity .22s ease;transform:none;}}
