@font-face { font-family: "Oswald"; font-weight: 500; font-display: swap; src: url("/fonts/oswald-v57-latin-500.woff2") format("woff2"); }
@font-face { font-family: "Oswald"; font-weight: 600; font-display: swap; src: url("/fonts/oswald-v57-latin-600.woff2") format("woff2"); }
@font-face { font-family: "Oswald"; font-weight: 700; font-display: swap; src: url("/fonts/oswald-v57-latin-700.woff2") format("woff2"); }
@font-face { font-family: "Public Sans"; font-weight: 300; font-display: swap; src: url("/fonts/public-sans-v21-latin-300.woff2") format("woff2"); }
@font-face { font-family: "Public Sans"; font-weight: 400; font-display: swap; src: url("/fonts/public-sans-v21-latin-regular.woff2") format("woff2"); }
@font-face { font-family: "Public Sans"; font-weight: 400; font-style: italic; font-display: swap; src: url("/fonts/public-sans-v21-latin-italic.woff2") format("woff2"); }
@font-face { font-family: "Public Sans"; font-weight: 600; font-display: swap; src: url("/fonts/public-sans-v21-latin-600.woff2") format("woff2"); }
@font-face { font-family: "Public Sans"; font-weight: 700; font-display: swap; src: url("/fonts/public-sans-v21-latin-700.woff2") format("woff2"); }

:root {
  --navy: #013B58; --navy-deep: #01293D; --paper: #FAF7F1; --ink: #3B4453; --ink-soft: #57606F;
  --violet: #784DA0; --violet-text: #6B4490; --magenta: #C34A87; --magenta-text: #A23068;
  --teal: #2578A2; --lavender: #7F85B5; --lavender-text: #5C6391; --gold: #D4A843; --alarm: #7E1801;
  --hairline: color-mix(in oklab, var(--paper), var(--navy) 14%);
  --hairline-soft: color-mix(in oklab, var(--paper), var(--navy) 8%);
  --paper-raised: color-mix(in oklab, var(--paper), white 55%);
  --paper-well: color-mix(in oklab, var(--paper), var(--navy) 5%);
  --gradient: linear-gradient(90deg, var(--teal), var(--lavender), var(--magenta));
  --oswald: "Oswald", "Arial Narrow", sans-serif; --sans: "Public Sans", system-ui, sans-serif;
  --step-0: 1.0625rem; --step-1: calc(var(--step-0) * 1.25); --step-2: calc(var(--step-1) * 1.25); --step-3: calc(var(--step-2) * 1.25);
  --measure: 687px; --wide: 980px; --content-max: 1200px; --sheet-pad-inline: clamp(20px, 4vw, 64px);
  --doc-num: clamp(64px, 9vw, 120px); --doc-gap: clamp(20px, 3vw, 36px);
  --doc-copy: minmax(0, var(--measure)); --doc-rest: minmax(0, 1fr);
  --doc-cols: var(--doc-num) var(--doc-copy) var(--doc-rest);
  --doc-copy-col: 2; --doc-wide-col: 2 / -1; --doc-full-col: 1 / -1;
  --shadow-sheet: 0 -1px 2px oklch(0 0 0 / 0.12), 0 4px 12px oklch(0 0 0 / 0.18), 0 24px 64px oklch(0 0 0 / 0.28);
  --shadow-raised: 0 1px 2px oklch(0 0 0 / 0.06), 0 4px 12px oklch(0 0 0 / 0.08), 0 16px 32px oklch(0 0 0 / 0.06);
}
@media (min-width: 920px) { :root { --measure: 820px; --wide: 1140px; } }
@media (max-width: 919px) { :root { --doc-cols: var(--doc-num) minmax(0, 1fr); --doc-wide-col: 1 / -1; } }

* { box-sizing: border-box; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
html { scroll-padding-top: 24px; }
body {
  margin: 0; background: var(--navy-deep); color: var(--ink); font-family: var(--sans);
  font-size: var(--step-0); line-height: 1.6; font-kerning: normal;
  font-variant-ligatures: common-ligatures contextual; text-rendering: optimizeLegibility; -webkit-text-size-adjust: 100%;
}
h1, h2, h3, h4 { text-wrap: balance; }
p, li { text-wrap: pretty; }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 3px solid var(--teal); outline-offset: 2px; }
.on-navy :focus-visible { outline-color: #9ED7F3; }
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 100; background: var(--paper); color: var(--navy); font-family: var(--oswald); font-weight: 600; padding: 12px 20px; }
.skip-link:focus { left: 12px; top: 12px; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; clip-path: inset(50%); overflow: hidden; white-space: nowrap; }

.field { position: relative; }
.field::after { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E"); opacity: .035; }
.field > * { position: relative; z-index: 1; }

.caps { font-family: var(--oswald); font-weight: 500; font-size: 13px; letter-spacing: .09em; text-transform: uppercase; font-feature-settings: "case" 1; }
.label-caps { font-family: var(--oswald); font-weight: 600; font-size: 12.5px; letter-spacing: .16em; text-transform: uppercase; font-feature-settings: "case" 1; }

/* ---- masthead (two-tier) ---- */
.mh-util { background: rgba(0,0,0,.18); border-bottom: 1px solid rgba(255,255,255,.10); }
.mh-util-inner { max-width: 1140px; margin: 0 auto; padding: 8px 28px; display: flex; align-items: center; justify-content: space-between; gap: 16px 24px; flex-wrap: wrap; font-family: var(--oswald); font-weight: 600; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; font-feature-settings: "case" 1; }
.mh-group { display: flex; align-items: center; gap: 16px; }
.mh-link { display: inline-flex; align-items: center; gap: 7px; color: rgba(255,255,255,.66); text-decoration: none; white-space: nowrap; }
.mh-link:hover { color: #fff; }
.mh-link .ico { font-size: 13px; line-height: 1; }
.mh-flip { color: rgba(255,255,255,.55); }
.mh-flip .ico { font-size: 14px; }
.mh-sep { width: 1px; height: 13px; background: rgba(255,255,255,.20); }
.mh-band { padding-bottom: 4px; }
.mh-band-inner { max-width: 1140px; margin: 0 auto; padding: 18px 28px; display: flex; align-items: center; justify-content: center; }
.mh-logo { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; }
.mh-logo img { height: 48px; width: auto; display: block; }
.mh-wordmark { font-family: var(--oswald); font-weight: 700; font-size: 21px; letter-spacing: .14em; text-transform: uppercase; color: #fff; line-height: 1; }
@media (max-width: 640px) { .mh-band-inner { padding: 14px 20px; } .mh-logo img { height: 40px; } .mh-wordmark { font-size: 17px; } .mh-util-inner { padding: 8px 20px; } }

.sheet { position: relative; z-index: 2; background: var(--paper); max-width: 1320px; margin: 0 auto; border-top: 4px solid; border-image: var(--gradient) 1; box-shadow: var(--shadow-sheet); overflow: hidden; overflow: clip; }
.sheet-pad { padding: 48px var(--sheet-pad-inline) 88px; }

.btn { display: inline-block; font-family: var(--oswald); font-weight: 600; font-size: 14px; letter-spacing: .1em; text-transform: uppercase; font-feature-settings: "case" 1; text-decoration: none; padding: 12px 24px; }
.btn-solid { background: var(--magenta); color: #fff; box-shadow: inset 0 1px 0 oklch(1 0 0 / 0.18); }
.btn-solid:hover { background: color-mix(in oklab, var(--magenta), black 12%); }
.btn-ghost { border: 1.5px solid rgba(255,255,255,.55); color: #fff; }
.btn-ghost:hover { border-color: #fff; }

.mark {
  --mark-color: rgba(212,168,67,0.52); --mark-edge: rgba(212,168,67,0.22); --mark-streak: rgba(250,247,241,0.22); --mark-sheen: rgba(255,255,255,0.24); --mark-shadow: rgba(1,41,61,0.08);
  --mark-angle: 101deg; --mark-texture-angle: 178deg; --mark-streak-angle: 92deg;
  --mark-edge-start: 0.14em; --mark-color-start: 0.36em; --mark-color-end: 0.38em; --mark-edge-end: 0.12em;
  --mark-height: 1.22em; --mark-height-2: 1.08em; --mark-height-3: 1.02em;
  --mark-y: -0.02em; --mark-y2: 0.02em; --mark-y3: 0.05em; --mark-x: 0em; --mark-x2: 0em; --mark-x3: 0.12em;
  --mark-pad-left: 0.12em; --mark-pad-right: 0.12em; --mark-over-left: -0.08em; --mark-over-right: -0.08em;
  padding: 0 var(--mark-pad-right) 0 var(--mark-pad-left); margin: 0 var(--mark-over-right) 0 var(--mark-over-left); color: inherit;
  background-image:
    linear-gradient(var(--mark-angle), transparent 0, var(--mark-edge) var(--mark-edge-start), var(--mark-color) var(--mark-color-start), var(--mark-color) calc(100% - var(--mark-color-end)), var(--mark-edge) calc(100% - var(--mark-edge-end)), transparent 100%),
    linear-gradient(var(--mark-texture-angle), transparent 0 18%, var(--mark-sheen) 19% 25%, transparent 26% 70%, var(--mark-shadow) 71% 76%, transparent 77% 100%),
    repeating-linear-gradient(var(--mark-streak-angle), transparent 0 8px, var(--mark-streak) 8px 10px, transparent 10px 15px);
  background-repeat: no-repeat;
  background-size: 100% var(--mark-height), 100% var(--mark-height-2), 100% var(--mark-height-3);
  background-position: var(--mark-x) var(--mark-y), var(--mark-x2) var(--mark-y2), var(--mark-x3) var(--mark-y3);
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
}
.mark.gold { --mark-color: rgba(212,168,67,0.55); --mark-edge: rgba(212,168,67,0.24); --mark-streak: rgba(250,247,241,0.28); }
.mark.magenta { --mark-color: rgba(195,74,135,0.30); --mark-edge: rgba(195,74,135,0.16); --mark-streak: rgba(250,247,241,0.18); }
.mark.violet { --mark-color: rgba(120,77,160,0.24); --mark-edge: rgba(120,77,160,0.13); --mark-streak: rgba(250,247,241,0.16); }
.mark.teal { --mark-color: rgba(37,120,162,0.26); --mark-edge: rgba(37,120,162,0.14); --mark-streak: rgba(250,247,241,0.16); }
.mark.cream { --mark-color: rgba(250,247,241,0.55); --mark-edge: rgba(250,247,241,0.26); --mark-streak: rgba(255,255,255,0.22); }
.mark.wide { --mark-y: -0.06em; --mark-y2: 0.00em; --mark-y3: 0.04em; --mark-pad-left: 0.24em; --mark-pad-right: 0.24em; --mark-over-left: -0.16em; --mark-over-right: -0.16em; --mark-x: -0.06em; --mark-x2: 0.08em; --mark-x3: 0.16em; }
.mark.display { position: relative; z-index: 0; --mark-height: 0.64em; --mark-height-2: 0.52em; --mark-height-3: 0.48em; --mark-y: 0.12em; --mark-y2: 0.16em; --mark-y3: 0.18em; }
.mark.display::after { content: ""; position: absolute; left: var(--mark-after-left, -0.08em); right: var(--mark-after-right, -0.04em); top: var(--mark-after-top, 0.42em); height: var(--mark-after-height, 0.58em); pointer-events: none; z-index: -1; background: linear-gradient(var(--mark-after-angle, 96deg), transparent 0, var(--mark-edge) 0.12em, var(--mark-color) 0.28em, var(--mark-color) calc(100% - 0.30em), var(--mark-edge) calc(100% - 0.08em), transparent 100%), repeating-linear-gradient(var(--mark-after-streak-angle, 88deg), transparent 0 9px, var(--mark-streak) 9px 11px, transparent 11px 16px); transform: rotate(var(--mark-after-rotate, -0.35deg)); opacity: 0.78; }
.on-navy .mark { --mark-sheen: rgba(1,41,61,0.08); --mark-shadow: rgba(1,41,61,0.14); --mark-streak: rgba(1,41,61,0.14); }

@media screen and (prefers-reduced-motion: no-preference) {
  html.anim .prose .mark { transition: background-size 0.65s cubic-bezier(0.33, 0, 0.2, 1); }
  html.anim .prose .mark:not(.mark-in) { background-size: 0% var(--mark-height), 0% var(--mark-height-2), 0% var(--mark-height-3); }
  html.anim .prose .mark.display::after { transition: opacity 0.5s ease 0.3s; }
  html.anim .prose .mark.display:not(.mark-in)::after { opacity: 0; }
  html.anim [data-rise] { transition: opacity 0.55s ease, transform 0.55s ease; transition-delay: calc(var(--rise-i, 0) * 120ms); }
  html.anim [data-rise]:not(.rise-in) { opacity: 0; transform: translateY(10px); }
}

.paper-tile { position: relative; background: #FFFDF8; border: 1px solid var(--hairline-soft); box-shadow: 8px 8px 0 rgba(1, 59, 88, 0.10); }
.paper-tile::after { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E"); opacity: 0.03; }
.paper-tile.dogear { clip-path: polygon(0 0, calc(100% - 26px) 0, 100% 26px, 100% 100%, 0 100%); box-shadow: none; outline: 1px solid var(--hairline-soft); }
.paper-tile.dogear::before { content: ""; position: absolute; top: 0; right: 0; width: 26px; height: 26px; background: linear-gradient(225deg, transparent 50%, rgba(1, 59, 88, 0.14) 50%, rgba(1, 59, 88, 0.06) 72%, transparent 72%); }

.chip { display: inline-block; font-family: var(--oswald); font-weight: 600; font-size: 10.5px; letter-spacing: .09em; text-transform: uppercase; font-feature-settings: "case" 1; padding: 3px 8px; white-space: nowrap; }
.chip-likely { background: color-mix(in oklab, var(--violet), var(--paper) 84%); color: var(--violet-text); }
.chip-actual { background: var(--magenta); color: #fff; }
.chip-pending { background: var(--paper-well); color: var(--ink-soft); }
.chip-confirmed { background: var(--navy); color: #fff; }

/* ---- reading progress ---- */
.readline { display: none; }
@supports (animation-timeline: scroll()) { @media (prefers-reduced-motion: no-preference) {
  .readline { display: block; position: fixed; top: 0; left: 0; width: 100%; height: 3px; background: var(--gradient); transform-origin: 0 50%; transform: scaleX(0); animation: readline-grow linear both; animation-timeline: scroll(root block); z-index: 90; pointer-events: none; }
} }
@keyframes readline-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* ---- cover ---- */
.cover { color: #fff; padding: 24px 28px 56px; position: relative; overflow: hidden; }
.cover-inner { max-width: 1140px; margin: 0 auto; position: relative; }
.cover .flame { position: absolute; right: -130px; bottom: -170px; width: 560px; height: 560px; fill: none; stroke: rgba(255, 255, 255, 0.07); stroke-width: 0.6; pointer-events: none; }
.folio { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; border-top: 3px solid rgba(255, 255, 255, 0.9); border-bottom: 1px solid rgba(255, 255, 255, 0.28); padding: 9px 0 10px; margin: 0 0 30px; font-family: var(--oswald); font-weight: 600; font-size: 13px; letter-spacing: 0.18em; text-transform: uppercase; font-feature-settings: "case" 1; font-variant-numeric: tabular-nums; }
.folio-kicker { color: #E68AB8; }
.folio-date { color: rgba(255, 255, 255, 0.6); }
.cover h1 { font-family: var(--oswald); font-weight: 700; text-transform: uppercase; width: 100%; font-size: clamp(32px, 7vw, 88px); line-height: 1.0; margin: 0 0 30px; }
.standfirst { font-weight: 300; font-size: clamp(20px, 2.5vw, 24px); line-height: 1.45; color: rgba(255, 255, 255, 0.88); margin: 0 0 36px; display: block; max-width: 960px; }
.standfirst p { margin: 0; }
.byline { display: flex; flex-wrap: wrap; gap: 8px 28px; font-size: 14px; color: rgba(255, 255, 255, 0.65); font-variant-numeric: tabular-nums; border-top: 1px solid rgba(255, 255, 255, 0.22); padding-top: 14px; margin-top: 2px; }
.byline strong { color: rgba(255, 255, 255, 0.92); font-weight: 600; }
.scrollcue { margin: 36px 0 0; font-family: var(--oswald); font-size: 12px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; font-feature-settings: "case" 1; color: rgba(255, 255, 255, 0.45); }

.livewire { max-width: var(--content-max); margin: 0 auto; }
.section-lead { margin: 80px calc(-1 * var(--sheet-pad-inline)) 0; background: var(--navy); padding: 40px var(--sheet-pad-inline); border-top: 3px solid; border-image: var(--gradient) 1; }
.section-lead-inner { max-width: var(--content-max); margin: 0 auto; }
.section-lead-num { display: block; font-family: var(--oswald); font-weight: 700; font-size: clamp(40px, 4.8vw, 68px); line-height: 0.9; color: transparent; -webkit-text-stroke: 2px color-mix(in srgb, var(--lavender), transparent 30%); font-variant-numeric: tabular-nums slashed-zero; margin: 0 0 8px; }
.section-lead h2 { font-family: var(--oswald); font-weight: 700; font-size: clamp(26px, 3.2vw, 38px); line-height: 1.12; color: #fff; margin: 0; letter-spacing: -0.015em; text-wrap: balance; }
@media (min-width: 920px) { .section-lead-inner { display: grid; grid-template-columns: calc(306px + clamp(40px, 4.8vw, 68px)) minmax(0, 1fr); column-gap: clamp(14px, 2vw, 24px); align-items: center; } .section-lead-num { grid-column: 1; justify-self: end; margin: 0; } .section-lead h2 { grid-column: 2; } }


/* ---- docgrid + toc ---- */
.docgrid { display: grid; grid-template-columns: 250px minmax(0, 1fr); column-gap: 56px; max-width: var(--content-max); margin: 0 auto; position: relative; padding-top: 40px; }
.docgrid::before { content: none; }
.toc { font-size: 14px; min-width: 0; overflow: clip; }
.toc-sticky { position: sticky; top: 28px; width: 250px; max-height: calc(100vh - 56px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.toc .label-caps { color: var(--ink-soft); margin: 0 0 12px; }
.toc ol { list-style: none; margin: 0; padding: 0; border-left: 1px solid var(--hairline); }
.toc li a { display: block; padding: 6px 0 6px 16px; color: var(--ink-soft); text-decoration: none; line-height: 1.4; border-left: 2px solid transparent; margin-left: -1px; }
.toc li a:hover { color: var(--navy); }
.toc li a.active { color: var(--navy); font-weight: 600; border-left-color: var(--magenta); }
.toc li.toc-sub a, .toc-pop li.toc-sub a, .toc-mobile li.toc-sub a { padding-left: 32px; font-size: 13px; color: var(--ink-soft); }
.docgrid[data-toc="collapsed"] { grid-template-columns: 0px minmax(0, 1fr); column-gap: 0px; }
.docgrid[data-toc="collapsed"] .toc { visibility: hidden; opacity: 0; }
@media (prefers-reduced-motion: no-preference) { .docgrid { transition: grid-template-columns 0.45s ease, column-gap 0.45s ease; } .docgrid .toc { transition: opacity 0.3s ease, visibility 0.3s; } }

.toc-dock { position: fixed; left: 0; top: 50%; transform: translateY(-50%); z-index: 70; }
.toc-dock[hidden] { display: none; }
#toc-dock-btn { display: block; background: var(--paper); border: 1px solid var(--hairline); border-left: 0; color: var(--navy); cursor: pointer; padding: 18px 9px; writing-mode: vertical-rl; font-family: var(--oswald); font-weight: 600; font-size: 12.5px; letter-spacing: 0.16em; text-transform: uppercase; font-feature-settings: "case" 1; box-shadow: 4px 4px 0 rgba(1, 41, 61, 0.35); }
#toc-dock-btn:hover { color: var(--magenta-text); }
.toc-pop { position: absolute; left: 100%; top: 50%; transform: translateY(-50%); padding-left: 10px; display: none; }
.toc-dock:hover .toc-pop, .toc-dock.open .toc-pop { display: block; }
.toc-pop-inner { background: var(--paper-raised); box-shadow: var(--shadow-raised), 0 0 0 1px var(--hairline); padding: 18px 22px 20px; width: 300px; max-height: calc(100vh - 48px); overflow: auto; font-size: 14px; }
.toc-pop .label-caps { color: var(--ink-soft); margin: 0 0 12px; }
.toc-pop ol { list-style: none; margin: 0; padding: 0; border-left: 1px solid var(--hairline); }
.toc-pop li a { display: block; padding: 6px 0 6px 16px; color: var(--ink-soft); text-decoration: none; line-height: 1.4; border-left: 2px solid transparent; margin-left: -1px; }
.toc-pop li a:hover { color: var(--navy); }
.toc-pop li a.active { color: var(--navy); font-weight: 600; border-left-color: var(--magenta); }
@media (max-width: 919px) { .toc-dock { display: none; } }

.toc-mobile { display: none; max-width: var(--content-max); margin: 40px auto 32px; border-top: 3px solid var(--navy); padding-top: 16px; }
.toc-mobile summary { color: var(--navy); cursor: pointer; padding: 10px 0; }
.toc-mobile ol { list-style: none; margin: 0; padding: 0 0 8px; border-left: 1px solid var(--hairline); }
.toc-mobile li a { display: block; padding: 6px 0 6px 16px; color: var(--ink-soft); text-decoration: none; }
@media (max-width: 919px) { .docgrid { grid-template-columns: minmax(0, 1fr); border-top: 0; padding-top: 0; margin-top: 0; } .docgrid::before { content: none; } .toc { display: none; } .toc-mobile { display: block; } }

/* ---- prose ---- */
.prose { display: grid; grid-template-columns: var(--doc-cols); column-gap: var(--doc-gap); min-width: 0; counter-reset: chapter 1; }
/* When the contents rail is showing (desktop only), the body is already inset
   by the rail, so tighten the chapter-number gutter + gap so copy fills more.
   --doc-cols must be redeclared here: its inner var(--doc-num) resolves where
   --doc-cols is declared, so overriding --doc-num alone wouldn't take. */
@media (min-width: 920px) {
  .docgrid[data-toc="open"] .prose { --doc-num: clamp(40px, 4.8vw, 68px); --doc-gap: clamp(14px, 2vw, 24px); --doc-cols: var(--doc-num) var(--doc-copy) var(--doc-rest); }
}
.prose > :not(h2) { grid-column: var(--doc-copy-col); max-width: 100%; min-width: 0; }
.prose > :is(.statstrip, .cascade, .bill-grid, .usmap, .dshift, .arc, table, .pullquote, section[data-footnotes]) { grid-column: var(--doc-wide-col); max-width: min(100%, var(--wide)); }
.prose > p { margin: 0 0 1.25em; }
.prose strong { color: inherit; font-weight: 600; }
.prose a { color: var(--violet-text); text-decoration-color: color-mix(in oklab, var(--violet), var(--paper) 60%); text-underline-offset: 3px; }
.prose a:hover { text-decoration-color: var(--violet-text); }
.prose ul, .prose ol { padding-left: 22px; margin: 0 0 1.4em; }
.prose li { margin: 8px 0; }
.prose > ul > li, .prose > ol > li { margin: 14px 0; }
.prose li::marker { color: var(--lavender-text); }
.prose hr { border: 0; border-top: 1px solid var(--hairline); margin: 48px 0; }
.prose > h2 { grid-column: var(--doc-full-col); max-width: none; counter-increment: chapter; font-family: var(--oswald); font-weight: 700; font-size: clamp(26px, 3.2vw, 38px); line-height: 1.12; color: #fff; background: transparent; margin: 80px 0 48px; padding: 40px 0; display: grid; grid-template-columns: var(--doc-cols); column-gap: var(--doc-gap); align-items: center; border: 0; position: relative; isolation: isolate; }
@supports (grid-template-columns: subgrid) { .prose > h2 { grid-template-columns: subgrid; } }
.prose > h2::after { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: -24px; right: calc(50% - 50vw); background: var(--navy); border-top: 3px solid; border-image: var(--gradient) 1; }
.docgrid[data-toc="collapsed"] .prose > h2::after { left: calc(50% - 50vw); }
@media (max-width: 919px) { .prose > h2::after { left: calc(50% - 50vw); } }
@media (prefers-reduced-motion: no-preference) { .prose > h2::after { transition: left 0.45s ease; } }
.prose > h2:first-child { margin-top: 0; }
.prose > h2::before { content: counter(chapter, decimal-leading-zero); grid-column: 1; justify-self: end; font-weight: 700; font-size: var(--doc-num); line-height: 0.9; color: transparent; -webkit-text-stroke: 2px color-mix(in srgb, var(--lavender), transparent 30%); font-variant-numeric: tabular-nums slashed-zero; }
.prose > h2 .chapter-title { grid-column: var(--doc-copy-col); min-width: 0; }
@supports (animation-timeline: view()) { @media (prefers-reduced-motion: no-preference) { .prose > h2::before { animation: chapter-ink linear both; animation-timeline: view(); animation-range: entry 0% cover 32%; } } }
@keyframes chapter-ink { from { clip-path: inset(-10% 100% -10% 0); } to { clip-path: inset(-10% -10% -10% -10%); } }
.prose h3 { font-family: var(--oswald); font-weight: 600; font-size: var(--step-2); line-height: 1.22; color: var(--violet-text); margin: 44px 0 12px; position: relative; }

.anchor-btn { background: none; border: 0; padding: 4px; margin-left: 10px; cursor: pointer; color: var(--lavender); opacity: 0; transition: opacity 0.15s; vertical-align: middle; display: inline-flex; }
.anchor-btn svg { width: 17px; height: 17px; }
.prose > h2 .anchor-btn { color: rgba(255, 255, 255, 0.6); }
h2:hover .anchor-btn, h3:hover .anchor-btn, .anchor-btn:focus-visible { opacity: 1; }
.anchor-btn.copied { opacity: 1; color: var(--gold); }
@media (hover: none) { .anchor-btn { opacity: 0.7; } }

.prose sup { line-height: 0; }
.prose [data-footnote-ref] { font-size: 12px; font-weight: 600; color: var(--magenta-text); text-decoration: none; padding: 0 2px; font-variant-numeric: tabular-nums; }
.prose [data-footnote-ref]:hover { background: color-mix(in oklab, var(--magenta), var(--paper) 86%); }

.prose section[data-footnotes] { margin-top: 72px; padding: 20px 28px 22px; background: var(--paper-well); box-shadow: inset 0 1px 3px oklch(0 0 0 / 0.06); }
.prose section[data-footnotes] summary { cursor: pointer; }
.prose section[data-footnotes] summary:hover h2 { color: var(--navy); }
.prose section[data-footnotes] details[open] summary { margin-bottom: 16px; }
.prose section[data-footnotes] h2 { position: static !important; width: auto !important; height: auto !important; margin: 0 !important; padding: 0 !important; clip: auto !important; clip-path: none !important; overflow: visible !important; white-space: normal !important; background: none; border: 0; display: inline-block; color: var(--ink-soft); font-family: var(--oswald); font-weight: 600; font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; font-feature-settings: "case" 1; }
.prose section[data-footnotes] h2::before { content: none; }
.prose section[data-footnotes] h2::after { content: none; }
.prose section[data-footnotes] .fn-count { font-family: var(--oswald); font-weight: 600; font-size: 12px; color: var(--ink-soft); font-variant-numeric: tabular-nums; margin-left: 8px; }
.prose section[data-footnotes] .fn-count::before { content: "\00B7 "; }
.prose section[data-footnotes] ol { margin: 0; padding-left: 22px; font-size: 14.5px; line-height: 1.55; color: var(--ink-soft); }
.prose section[data-footnotes] li { margin: 10px 0; }
.prose [data-footnote-backref] { color: var(--magenta-text); text-decoration: none; font-weight: 600; }

.fn-pop { position: absolute; z-index: 60; max-width: min(440px, calc(100vw - 32px)); background: var(--paper-raised); color: var(--ink); font-size: 13.5px; line-height: 1.5; padding: 12px 16px; box-shadow: var(--shadow-raised), 0 0 0 1px var(--hairline); }
.fn-pop a { color: var(--violet-text); }

.prose table { border-collapse: collapse; width: 100%; font-size: 15px; font-variant-numeric: tabular-nums slashed-zero; margin: 28px 0; }
.prose thead th { background: var(--navy); color: #fff; font-family: var(--oswald); font-weight: 600; font-size: 13.5px; letter-spacing: 0.08em; text-transform: uppercase; font-feature-settings: "case" 1; text-align: left; padding: 10px 14px; }
.prose tbody td { padding: 9px 14px; border-bottom: 1px solid var(--hairline-soft); }
.prose tbody tr:nth-child(even) { background: var(--paper-well); }

.bill-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; margin: 32px 0 44px; }
@media (max-width: 760px) { .bill-grid { grid-template-columns: 1fr; } }
.bill-tile { padding: 16px 20px 18px; box-shadow: 5px 5px 0 rgba(1, 59, 88, 0.08); }
.prose .bill-grid h3 { margin: 0 0 8px; font-size: 17px; color: var(--navy); }
.prose .bill-grid p { font-size: 14.5px; line-height: 1.55; margin: 0 0 0.9em; }
.prose .bill-grid p:last-child { margin-bottom: 0; }

.prose blockquote { margin: 32px 0; padding: 6px 0 6px 28px; border-left: 3px solid var(--violet); font-style: italic; font-size: var(--step-1); line-height: 1.6; color: var(--navy); }
.prose blockquote p { margin: 0 0 0.6em; }
.prose blockquote p:last-child { margin-bottom: 0; }

/* ---- share ---- */
.sharepop { position: absolute; z-index: 50; transform: translate(-50%, calc(-100% - 10px)); background: var(--navy); color: #fff; font-family: var(--oswald); font-weight: 600; font-size: 12.5px; letter-spacing: 0.1em; text-transform: uppercase; font-feature-settings: "case" 1; border: 0; padding: 9px 16px; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; box-shadow: 0 4px 12px oklch(0 0 0 / 0.25); }
.sharepop[hidden] { display: none; }
.sharepop svg { width: 14px; height: 14px; }
.sharepop:hover { background: var(--navy-deep); }
.sharecard { border: 0; padding: 0; background: var(--paper-raised); box-shadow: 0 8px 24px oklch(0 0 0 / 0.3), 0 32px 80px oklch(0 0 0 / 0.35); max-width: 560px; width: calc(100vw - 48px); }
.sharecard::backdrop { background: oklch(0.1 0.02 240 / 0.55); }
.sharecard .head { background: var(--navy); color: #fff; font-family: var(--oswald); font-weight: 600; font-size: 12.5px; letter-spacing: 0.16em; text-transform: uppercase; font-feature-settings: "case" 1; padding: 10px 20px; display: flex; justify-content: space-between; align-items: center; }
.sharecard .head button { background: none; border: 0; color: rgba(255, 255, 255, 0.7); cursor: pointer; font-size: 16px; line-height: 1; padding: 2px 4px; }
.sharecard .head button:hover { color: #fff; }
.sharecard .body { padding: 18px 20px 20px; }
.sharecard canvas { width: 100%; height: auto; display: block; box-shadow: 0 1px 4px oklch(0 0 0 / 0.2); }
.sharecard .actions { display: flex; gap: 10px; margin-top: 16px; flex-wrap: wrap; }
.sharecard .actions button { font-family: var(--oswald); font-weight: 600; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; font-feature-settings: "case" 1; border: 0; padding: 10px 18px; cursor: pointer; }
.sharecard .primary { background: var(--magenta); color: #fff; }
.sharecard .primary:hover { background: color-mix(in oklab, var(--magenta), black 12%); }
.sharecard .secondary { background: none; border: 1.5px solid var(--hairline); color: var(--ink); }
.sharecard .secondary:hover { border-color: var(--ink-soft); }

/* ---- UpdateFeed (wire) ---- */
.wire { border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); padding: 14px 0 16px; }
.wire-head { display: flex; align-items: baseline; gap: 10px 24px; flex-wrap: wrap; margin: 0 0 14px; }
.wire-label { color: var(--navy); margin: 0; display: flex; align-items: center; gap: 10px; }
.wire .dot { width: 9px; height: 9px; background: var(--gold); flex-shrink: 0; }
.wire .status { margin: 0; font-size: 13.5px; color: var(--ink-soft); max-width: 64ch; }
.wire-head .presskit { margin-left: auto; }
.wire .feed { display: flex; flex-direction: column; gap: 32px; margin-top: 20px; border-left: 1px solid var(--hairline); padding-left: 20px; margin-left: 4px; }
.wire .dev { position: relative; }
.wire .dev::before { content: ''; position: absolute; left: -25px; top: 5px; width: 9px; height: 9px; background: var(--hairline); }
.wire .dev:first-child::before { background: var(--gold); }
.wire .when { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin: 0 0 6px; font-family: var(--oswald); font-weight: 500; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; font-feature-settings: "case" 1; color: var(--ink-soft); font-variant-numeric: tabular-nums; }
.wire .stamp { font-weight: 600; font-size: 10.5px; letter-spacing: 0.12em; background: var(--gold); color: #2B2410; padding: 2px 8px; }
.wire .lead { margin: 0; font-weight: 600; color: var(--navy); font-size: 16px; max-width: 78ch; text-wrap: pretty; }
.wire .note { margin: 7px 0 0; font-size: 14px; line-height: 1.55; color: var(--ink-soft); max-width: 88ch; }
.presskit { display: flex; align-items: baseline; gap: 10px; font-size: 14px; }
.presskit .label-caps { color: var(--navy); }
.presskit a { color: var(--violet-text); font-weight: 600; text-decoration-color: color-mix(in oklab, var(--violet), var(--paper) 60%); text-underline-offset: 3px; }
.presskit a:hover { text-decoration-color: var(--violet-text); }

/* ---- StatStrip ---- */
.statstrip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin: 40px 0; padding: 26px 0; border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); }
@media (max-width: 700px) { .statstrip { grid-template-columns: 1fr; } }
.statstrip .n { display: block; font-family: var(--oswald); font-weight: 700; font-size: 46px; line-height: 1; color: var(--navy); font-variant-numeric: tabular-nums slashed-zero; }
.statstrip .l { display: block; font-size: 13.5px; color: var(--ink-soft); margin-top: 8px; line-height: 1.45; }

/* ---- RulingCascade ---- */
.cascade { margin: 48px 0 56px; }
.fork-root { background: var(--navy); color: #fff; padding: 16px 22px; text-align: center; max-width: 420px; margin: 0 auto; font-family: var(--oswald); font-weight: 600; font-size: 16px; letter-spacing: 0.03em; }
.fork-root .when { display: block; font-family: var(--sans); font-weight: 400; font-size: 13px; color: rgba(255, 255, 255, 0.68); margin-top: 6px; letter-spacing: 0; }
.fork-stem { width: 2px; height: 26px; background: var(--hairline); margin: 0 auto; }
.fork-bar { height: 2px; background: var(--hairline); margin: 0 8%; }
.branches { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 760px) { .branches { grid-template-columns: 1fr; } .fork-bar { display: none; } }
.branch { position: relative; padding-top: 22px; }
.branch::before { content: ""; position: absolute; top: 0; left: 50%; width: 2px; height: 22px; background: var(--hairline); }
.branch.faded { opacity: 0.34; }
.branch-card { background: var(--paper-raised); height: 100%; box-shadow: var(--shadow-raised); }
.branch-card .bar { height: 4px; }
.branch.narrow .bar { background: var(--teal); }
.branch.between .bar { background: var(--violet); }
.branch.broad .bar { background: var(--magenta); }
.branch-card .inner { padding: 14px 18px 18px; }
.cascade h4 { font-family: var(--oswald); font-weight: 600; font-size: 15px; letter-spacing: 0.08em; text-transform: uppercase; font-feature-settings: "case" 1; margin: 0 0 8px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.branch.narrow h4 { color: #1D6488; }
.branch.between h4 { color: var(--violet-text); }
.branch.broad h4 { color: var(--magenta-text); }
.branch p { margin: 0; font-size: 14px; line-height: 1.55; }
.cascade .fourth { margin: 18px 0 0; font-size: 13.5px; color: var(--ink-soft); font-style: italic; }
.switchlist { margin: 36px 0 0; }
.switchlist .label-caps { color: var(--ink-soft); margin: 0 0 14px; }
.switchlist ul { list-style: none; margin: 0; padding: 0; position: relative; }
.switchlist ul::before { content: ""; position: absolute; left: 7px; top: 8px; bottom: 8px; width: 2px; background: var(--hairline); }
.switchlist li { position: relative; padding: 0 0 18px 34px; font-size: 14.5px; }
.switchlist li:last-child { padding-bottom: 0; }
.switchlist li::before { content: ""; position: absolute; left: 1px; top: 4px; width: 10px; height: 10px; border-radius: 50%; background: var(--paper); border: 3px solid var(--hairline); }
.switchlist li.active::before, .switchlist li.confirmed::before { border-color: var(--magenta); }
.switchlist .row2 { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.switchlist strong { color: var(--navy); }

/* ---- CaseFile ---- */
.casefile { margin: 36px 0; filter: drop-shadow(7px 7px 0 rgba(1, 59, 88, 0.10)); }
.casefile .inner { padding: 20px 28px 24px; }
.casefile .status { margin: 2px 0 10px; }
.casefile h3 { font-family: var(--oswald); font-weight: 600; font-size: 21px; line-height: 1.25; color: var(--navy); margin: 0 0 14px; padding-bottom: 12px; border-bottom: 1px solid var(--hairline-soft); }
.casefile p { font-size: 15.5px; margin: 0 0 1em; }
.casefile p:last-child { margin-bottom: 0; }
.casefile p > strong:first-child { display: inline-block; font-family: var(--oswald); font-weight: 600; font-size: 12.5px; letter-spacing: 0.12em; text-transform: uppercase; font-feature-settings: "case" 1; color: var(--magenta-text); margin-right: 2px; }

/* ---- PullQuote ---- */
.pullquote { margin: 44px 0; padding: 26px 30px 24px; }
.pullquote blockquote { margin: 0; border: 0; padding: 0; font-family: var(--oswald); font-weight: 500; font-style: normal; font-size: clamp(20px, 2.4vw, 26px); line-height: 1.35; color: var(--navy); text-wrap: balance; }
.pullquote blockquote::before { content: "\201C"; display: block; font-weight: 700; font-size: 40px; line-height: 0.6; color: var(--magenta); margin-bottom: 10px; }
.pullquote figcaption { margin-top: 12px; font-family: var(--sans); font-size: 13px; color: var(--ink-soft); }

/* ---- DomainShift ---- */
.dshift { margin: 28px 0 36px; border: 1px solid var(--hairline-soft); background: #FFFDF8; }
.dhead { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 12px 20px; border-bottom: 1px solid var(--hairline); }
.dtitle h3 { margin: 0 !important; font-size: 19px !important; line-height: 1.25 !important; color: var(--navy) !important; }
.dshift .statute { font-family: var(--oswald); font-weight: 500; font-size: 11.5px; letter-spacing: 0.12em; text-transform: uppercase; font-feature-settings: "case" 1; color: var(--ink-soft); font-variant-numeric: tabular-nums; }
.dcols { display: grid; grid-template-columns: 1fr 1fr; }
.dcol { padding: 14px 20px 18px; min-width: 0; }
.dcol.after { border-left: 1px solid var(--hairline); background: color-mix(in oklab, var(--magenta), #FFFDF8 95%); }
.dtag { font-family: var(--oswald); font-weight: 600; font-size: 11.5px; letter-spacing: 0.14em; text-transform: uppercase; font-feature-settings: "case" 1; margin: 0 0 10px; display: flex; align-items: center; gap: 8px; }
.dtag::before { content: ""; width: 8px; height: 8px; flex-shrink: 0; }
.today .dtag { color: var(--teal); }
.today .dtag::before { background: var(--teal); }
.after .dtag { color: var(--magenta-text); }
.after .dtag::before { background: var(--magenta); }
.dbody p { margin: 0 0 0.9em; font-size: 15px; line-height: 1.55; }
.dbody p:last-child { margin-bottom: 0; }
.dbody ul { margin: 0 0 0.9em; padding-left: 20px; }
.dbody ul:last-child { margin-bottom: 0; }
.dbody li { margin: 6px 0; font-size: 15px; line-height: 1.55; }
@media (max-width: 760px) { .dcols { grid-template-columns: 1fr; } .dcol.after { border-left: 0; border-top: 1px solid var(--hairline); } }

/* ---- JusticeSpectrum ---- */
.prose > .jspectrum { grid-column: var(--doc-full-col); max-width: none; }
@media (max-width: 919px) { .prose > .jspectrum { grid-column: var(--doc-wide-col); } }
.jspectrum { margin: 32px 0 40px; }
.jspectrum .axis { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin: 0 0 8px; }
.jspectrum .pole { font-family: var(--oswald); font-weight: 600; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; font-feature-settings: "case" 1; }
.jspectrum .pole.left { color: var(--teal); }
.jspectrum .pole.right { color: var(--magenta-text); }
.jspectrum .caption { font-size: 12.5px; color: var(--ink-soft); text-align: center; }
.jspectrum .axis-rule { height: 3px; background: var(--gradient); margin: 0 0 18px; }
.jspectrum .cards { display: flex; flex-wrap: wrap; gap: 14px; justify-content: space-between; align-items: stretch; }
@media (max-width: 860px) { .jspectrum .cards { flex-direction: column; gap: 10px; } .jspectrum .axis { flex-wrap: wrap; } .jspectrum .caption { order: 3; width: 100%; text-align: left; } }

/* ---- JusticeCard ---- */
.jcard { position: relative; min-width: 0; flex: 0 0 auto; width: 118px; }
.jcard:has(.bubbles :nth-child(2)) { width: 134px; }
.jcard:has(.bubbles :nth-child(3)) { width: 178px; }
.jcard .head { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; width: 100%; height: 100%; text-align: left; background: var(--paper-well); border: 1px solid var(--hairline-soft); border-top: 3px solid var(--tone, var(--teal)); padding: 12px 12px 14px; cursor: pointer; font-family: var(--sans); color: var(--ink); }
.jcard .head:hover { background: color-mix(in oklab, var(--paper-well), var(--navy) 3%); }
.tone-magenta { --tone: var(--magenta); --bubble: color-mix(in oklab, var(--magenta), var(--paper) 18%); }
.tone-gold { --tone: var(--gold); --bubble: color-mix(in oklab, var(--gold), var(--paper) 12%); }
.tone-violet { --tone: var(--violet); --bubble: color-mix(in oklab, var(--violet), var(--paper) 14%); }
.tone-lavender { --tone: var(--lavender); --bubble: var(--lavender); }
.tone-teal { --tone: var(--teal); --bubble: color-mix(in oklab, var(--teal), var(--paper) 10%); }
.jcard .bubbles { display: flex; }
.jcard .bubble { display: block; width: 56px; height: 56px; border-radius: 50%; overflow: hidden; background: var(--bubble, var(--teal)); border: 2px solid var(--paper); box-shadow: 0 0 0 1px var(--hairline); flex-shrink: 0; }
.jcard .bubble + .bubble { margin-left: -14px; }
.jcard .bubble img { width: 100%; height: 100%; object-fit: cover; object-position: top center; transform: scale(1.12) translateY(4%); }
.jcard .bubble.mono { display: flex; align-items: center; justify-content: center; background: var(--tone, var(--teal)); color: var(--paper); font-family: var(--oswald); font-weight: 700; font-size: 18px; letter-spacing: 0.02em; }
.jcard .jname { font-family: var(--oswald); font-weight: 600; font-size: 15px; color: var(--navy); line-height: 1.2; }
.jcard .lean { font-family: var(--oswald); font-weight: 600; font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; font-feature-settings: "case" 1; color: var(--ink-soft); }
.jcard .gist { font-size: 13px; line-height: 1.45; color: var(--ink); text-wrap: pretty; }
.jcard .detail { display: none; position: absolute; top: calc(100% + 8px); left: 50%; transform: translateX(-50%); width: min(360px, 86vw); z-index: 30; }
.jcard:first-child .detail { left: 0; transform: none; }
.jcard:last-child .detail { left: auto; right: 0; transform: none; }
.jcard:hover .detail, .jcard:focus-within .detail, .jcard.open .detail { display: block; }
.jcard .detail-inner { background: var(--paper-raised); box-shadow: var(--shadow-raised), 0 0 0 1px var(--hairline); border-top: 3px solid var(--tone, var(--teal)); padding: 14px 18px; font-size: 14.5px; line-height: 1.55; }
.jcard .detail-inner p { margin: 0; }
@media (max-width: 860px) { .jcard, .jcard:has(.bubbles :nth-child(2)), .jcard:has(.bubbles :nth-child(3)) { width: 100%; } .jcard .head { height: auto; display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; row-gap: 3px; align-items: center; } .jcard .bubbles { grid-row: 1 / span 2; } .jcard .jname, .jcard .lean { grid-column: 2; } .jcard:hover:not(.open):not(:focus-within) .detail { display: none; } .jcard .detail, .jcard:first-child .detail, .jcard:last-child .detail { position: static; width: 100%; transform: none; margin-top: 2px; } }

/* ---- DoctrinalTimeline (arc) ---- */
.arc { list-style: none; margin: 32px 0 40px; padding: 0; position: relative; }
.arc::before { content: ""; position: absolute; left: 74px; top: 12px; bottom: 12px; width: 2px; background: var(--hairline); }
.arc li { display: grid; grid-template-columns: 60px 1fr; gap: 30px; padding: 0 0 26px; position: relative; }
.arc li:last-child { padding-bottom: 0; }
.arc li::before { content: ""; position: absolute; left: 68px; top: 7px; width: 14px; height: 14px; border-radius: 50%; background: var(--paper); border: 3px solid var(--teal); }
.arc li.pending::before { border-color: var(--magenta); background: color-mix(in oklab, var(--magenta), var(--paper) 75%); }
.arc .year { font-family: var(--oswald); font-weight: 600; font-size: 14px; letter-spacing: 0.08em; text-transform: uppercase; font-feature-settings: "case" 1; color: var(--ink-soft); text-align: right; font-variant-numeric: tabular-nums; padding-top: 3px; }
.arc li.pending .year { color: var(--magenta-text); }
.arc .body { padding-left: 28px; }
.arc .name { margin: 0 0 3px; font-size: 16px; color: var(--navy); font-weight: 600; display: flex; gap: 12px; align-items: baseline; flex-wrap: wrap; }
.arc .vote { font-family: var(--oswald); font-weight: 600; font-size: 13px; color: var(--ink-soft); font-variant-numeric: tabular-nums; }
.arc .line { margin: 0; font-size: 14.5px; color: var(--ink-soft); max-width: 58ch; }

/* ---- USMap ---- */
.usmap { margin: 36px 0 44px; background: var(--paper-well); border: 1px solid var(--hairline-soft); padding: 20px 24px 18px; }
.usmap .head { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; margin-bottom: 14px; }
.usmap .title { color: var(--navy); font-size: 14px; }
.usmap .sub { font-size: 13.5px; color: var(--ink-soft); font-style: italic; }
.usmap-svg svg { width: 100%; height: auto; display: block; }
.usmap .legend { display: flex; gap: 10px 22px; flex-wrap: wrap; margin-top: 14px; font-size: 12.5px; color: var(--ink-soft); }
.usmap .legend .k { display: inline-block; width: 11px; height: 11px; margin-right: 7px; }
.usmap .legend .shield { background: var(--teal); }
.usmap .legend .ban { background: var(--magenta); }
.usmap .legend .blocked { background: var(--gold); }
.usmap .legend .none { background: color-mix(in oklab, var(--paper), var(--navy) 18%); border: 1px solid var(--hairline); }
.usmap .legend .wv { background: var(--magenta); outline: 2px solid var(--navy); outline-offset: -1px; }
.usmap .note { margin: 10px 0 0; font-size: 12.5px; color: var(--ink-soft); line-height: 1.5; max-width: 90ch; }
.usmap-svg .state { fill: color-mix(in oklab, var(--paper), var(--navy) 18%); }
.usmap-svg .borders { stroke: #FAF7F1; stroke-width: 1; fill: none; }
.usmap-svg .separator1 { stroke: var(--hairline); stroke-width: 2; }
.usmap-svg .state .al, .usmap-svg .state .az, .usmap-svg .state .ar, .usmap-svg .state .fl, .usmap-svg .state .ga, .usmap-svg .state .id, .usmap-svg .state .in, .usmap-svg .state .ia, .usmap-svg .state .ks, .usmap-svg .state .ky, .usmap-svg .state .la, .usmap-svg .state .ms, .usmap-svg .state .mo, .usmap-svg .state .mt, .usmap-svg .state .ne, .usmap-svg .state .nh, .usmap-svg .state .nc, .usmap-svg .state .nd, .usmap-svg .state .oh, .usmap-svg .state .ok, .usmap-svg .state .sc, .usmap-svg .state .sd, .usmap-svg .state .tn, .usmap-svg .state .tx, .usmap-svg .state .ut, .usmap-svg .state .wv, .usmap-svg .state .wy { fill: var(--magenta); }
.usmap-svg .state .wa, .usmap-svg .state .or, .usmap-svg .state .ca, .usmap-svg .state .hi, .usmap-svg .state .co, .usmap-svg .state .nm, .usmap-svg .state .mn, .usmap-svg .state .il, .usmap-svg .state .ny, .usmap-svg .state .vt, .usmap-svg .state .me, .usmap-svg .state .ma, .usmap-svg .state .ri, .usmap-svg .state .ct, .usmap-svg .state .md { fill: var(--teal); }
.usmap-svg .state .mt, .usmap-svg .state .ks { fill: var(--gold); }
.usmap-svg circle.dc { fill: var(--teal); }
.usmap-svg .state .wv { stroke: var(--navy); stroke-width: 3; }

/* ---- Pitch ---- */
.pitch { padding: 72px 28px 8px; }
.letter-shadow { max-width: 720px; margin: 0 auto; filter: drop-shadow(10px 10px 0 rgba(1, 30, 45, 0.55)); }
.letter { padding: 36px clamp(28px, 5vw, 52px) 40px; position: relative; }
.letter > * { position: relative; z-index: 1; }
.letter .roundel { display: block; margin: 0 0 18px; }
.letter .from { color: var(--magenta-text); margin: 0 0 18px; }
.letter .from::after { content: ""; display: block; width: 64px; height: 3px; margin-top: 10px; background: var(--gradient); }
.letter h2 { font-family: var(--oswald); font-weight: 700; text-transform: uppercase; color: var(--navy); font-size: clamp(24px, 3vw, 34px); line-height: 1.1; margin: 0 0 18px; }
.letter .para { max-width: 60ch; font-size: 16.5px; line-height: 1.62; color: var(--ink); margin: 0 0 1.1em; }
.letter .cta { display: flex; gap: 14px; flex-wrap: wrap; margin: 26px 0 30px; }
.letter .ghost-navy { border: 1.5px solid var(--navy); color: var(--navy); }
.letter .ghost-navy:hover { background: color-mix(in oklab, var(--navy), var(--paper) 92%); }
.letter .signoff { font-style: italic; color: var(--navy); margin: 0; line-height: 1.5; }

/* ---- Footer ---- */
.sitefoot { color: rgba(255, 255, 255, 0.78); padding: 64px 28px 72px; font-size: 14px; line-height: 1.7; }
.foot-inner { max-width: 720px; margin: 0 auto; }
.foot-top { display: flex; justify-content: space-between; align-items: center; gap: 18px 32px; flex-wrap: wrap; }
.sitefoot img { height: 36px; width: auto; }
.foot-buttons { display: flex; gap: 14px; flex-wrap: wrap; }
.sitefoot .signoff { font-style: italic; color: rgba(255, 255, 255, 0.88); margin: 22px 0 0; }
.foot-social { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; margin: 26px 0 0; }
.foot-social a { color: rgba(255, 255, 255, 0.72); display: inline-flex; transition: color 0.15s; }
.foot-social a:hover { color: #fff; }
.foot-social svg { width: 20px; height: 20px; }
.foot-legal { font-size: 12px; color: rgba(255, 255, 255, 0.52); line-height: 1.6; max-width: 780px; margin: 0; }
.foot-legal .addr { margin-top: 10px; font-style: normal; }
.foot-divider { height: 1px; background: rgba(255, 255, 255, 0.14); border: 0; margin: 26px 0 18px; }

.prose > .caseband { grid-column: var(--doc-full-col); position: relative; isolation: isolate; margin: 44px 0; }
.caseband::after { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: -24px; right: calc(50% - 50vw); background: var(--navy-deep); border-top: 3px solid; border-image: var(--gradient) 1; }
.docgrid[data-toc="collapsed"] .caseband::after { left: calc(50% - 50vw); }
@media (prefers-reduced-motion: no-preference) { .caseband::after { transition: left 0.45s ease; } }
@media (max-width: 919px) { .caseband::after { left: calc(50% - 50vw); } }
.caseband .case-cols { display: grid; grid-template-columns: 1fr 1fr; }
@media (max-width: 680px) { .caseband .case-cols { grid-template-columns: 1fr; } .caseband .case-cols > * + * { border-left: 0 !important; border-top: 1px solid rgba(255,255,255,0.1); } }


/* ===== Live coverage (LiveCoverage component) ===== */
.lcv {
  --navy: #013B58; --paper: #FAF7F1; --ink: #3B4453; --ink-soft: #57606F;
  --violet: #784DA0; --violet-text: #6B4490; --magenta: #C34A87; --magenta-text: #A23068;
  --teal: #2578A2; --lavender: #7F85B5; --gold: #D4A843;
  --hairline: color-mix(in oklab, var(--paper), var(--navy) 14%);
  --rule: color-mix(in oklab, var(--paper), var(--navy) 26%);
  --oswald: "Oswald", "Arial Narrow", sans-serif; --sans: "Public Sans", system-ui, sans-serif;
  font-family: var(--sans); color: var(--ink); position: relative;
}
.lcv * { box-sizing: border-box; }
.lcv .lcv-eyebrow { font-family: var(--oswald); font-weight: 600; font-size: 12.5px; letter-spacing: .16em; text-transform: uppercase; font-feature-settings: "case" 1; color: var(--ink-soft); margin: 0 0 14px; }

.lcv .feed { position: relative; margin: 0; padding: 8px 0 0; }
.lcv .posts { position: relative; }
.lcv .posts::before { content: ""; position: absolute; left: 9px; top: 16px; bottom: -1px; width: 2px; background: var(--lavender); }
.lcv .closing { border-top: 1.5px solid var(--rule); }

.lcv .post { position: relative; padding: 0 0 28px 38px; }
.lcv .post::before { content: ""; position: absolute; left: 0; top: 5px; width: 14px; height: 14px; border-radius: 50%; background: var(--paper); border: 3px solid var(--lavender); z-index: 1; }
.lcv .post.is-latest::before { border-color: var(--magenta); box-shadow: 0 0 0 5px color-mix(in oklab, var(--magenta), transparent 80%); }
.lcv .post:not(.is-latest) .post-content { opacity: 0.6; transition: opacity 0.25s ease; }
.lcv .post:not(.is-latest):hover .post-content { opacity: 1; }
.lcv .feed.is-expanded .post:not(.is-latest) .post-content { opacity: 1; }
.lcv .post-meta { display: flex; align-items: center; gap: 9px 13px; flex-wrap: wrap; margin: 13px 0 0; }
.lcv .post-time { font-family: var(--oswald); font-weight: 600; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; font-feature-settings: "case" 1; color: var(--ink-soft); font-variant-numeric: tabular-nums; }
.lcv .post.is-latest .post-time { color: var(--magenta-text); }
.lcv .tag { font-family: var(--oswald); font-weight: 600; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; font-feature-settings: "case" 1; padding: 3px 8px; }
.lcv .tag.latest { background: var(--magenta); color: #fff; }
.lcv .tag.scheduling { background: color-mix(in oklab, var(--gold), var(--paper) 30%); color: #5b4a13; }
.lcv .tag.argument { background: color-mix(in oklab, var(--teal), var(--paper) 76%); color: #195a7d; }
.lcv .tag.precedent { background: color-mix(in oklab, var(--violet), var(--paper) 78%); color: var(--violet-text); }
.lcv .post h4 { font-family: var(--oswald); font-weight: 600; font-size: 19px; line-height: 1.24; color: var(--navy); margin: 0 0 7px; max-width: 70ch; }
.lcv .post p { margin: 0; font-size: 15px; line-height: 1.58; max-width: 78ch; color: var(--ink); }
.lcv .post .byline { display: inline-flex; align-items: center; gap: 7px; margin-top: 0; font-size: 12.5px; color: var(--ink-soft); }
.lcv .post .byline img { width: 24px; height: 24px; border-radius: 50%; }
.lcv .post .byline b { color: var(--navy); font-weight: 600; }

/* older items collapse to compact one-liners on the same timeline */
.lcv .post.compact { padding-bottom: 15px; }
.lcv .post.compact::before { width: 9px; height: 9px; left: 3px; top: 6px; border-width: 2px; box-shadow: none; }
.lcv .compact-row { display: flex; gap: 13px; align-items: baseline; }
.lcv .compact-row .post-time { flex: none; width: 58px; }
.lcv .compact-row h4 { font-family: var(--oswald); font-weight: 600; font-size: 14.5px; line-height: 1.32; color: var(--navy); margin: 0; max-width: none; }
.lcv .post.compact:hover h4 { color: var(--magenta-text); }
.lcv .more-list[hidden] { display: none; }

/* quiet in-flow disclosure that sits on the timeline as the next node */
.lcv .reveal { position: relative; display: flex; align-items: center; gap: 9px; width: auto; text-align: left; background: none; border: none; cursor: pointer; padding: 1px 0 28px 38px; }
.lcv .reveal::before { content: ""; position: absolute; left: 3px; top: 3px; width: 9px; height: 9px; border-radius: 50%; background: var(--lavender); z-index: 1; }
.lcv .reveal .rchev { font-family: var(--oswald); font-weight: 700; font-size: 15px; line-height: 1; color: var(--violet-text); transition: transform .22s ease; }
.lcv .reveal[aria-expanded="true"] .rchev { transform: rotate(90deg); }
.lcv .reveal-text { font-family: var(--oswald); font-weight: 600; font-size: 13px; letter-spacing: .07em; text-transform: uppercase; font-feature-settings: "case" 1; color: var(--violet-text); }
.lcv .reveal:hover .reveal-text { text-decoration: underline; text-underline-offset: 3px; }
.lcv .reveal-count { font-variant-numeric: tabular-nums; }


/* ============================================================
   Mobile refinement pass
   ============================================================ */

/* Caseband: on narrow screens the decorative floating state maps sit behind
   the case text and cut its contrast. Drop the maps + scrim and let the case
   text run full width so it reads cleanly. (The maps still shine on desktop.) */
@media (max-width: 680px) {
  .caseband .case-cols > div { min-height: 0 !important; padding: 22px 0 !important; }
  .caseband .case-cols > div > div[style*="absolute"] { display: none !important; }
  .caseband .case-cols > div > div:last-child { padding-left: 2px !important; padding-right: 2px !important; }
}

@media (max-width: 640px) {
  /* Flame watermark: keep it from spilling awkwardly off the small cover. */
  .cover .flame { width: 320px; height: 320px; right: -86px; bottom: -120px; }

  /* Dense tables: tighten padding + size so text-heavy columns breathe, and
     let long tokens wrap instead of forcing width. */
  .prose table { font-size: 13.5px; }
  .prose thead th { padding: 8px 9px; font-size: 12px; letter-spacing: 0.05em; }
  .prose tbody td { padding: 8px 9px; }
  .prose table :is(td, th) { overflow-wrap: anywhere; }

  /* A touch more breathing room under the cover headline + comfortable tap
     spacing for the contents disclosure and footnote refs. */
  .toc-mobile summary { padding-top: 12px; padding-bottom: 12px; }
  .prose sup a[data-footnote-ref] { padding: 0 2px; }
}
