/* ww3.press — one stylesheet, no framework.
   The world on the brink. Charcoal, bone, vermilion. Headlines are
   set in condensed Archivo, reading text in Source Serif 4. See DESIGN.md. */

@font-face {
  font-family: "Archivo";
  src: url("/assets/fonts/archivo-latin-wdth-normal.woff2") format("woff2");
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Archivo";
  src: url("/assets/fonts/archivo-latin-ext-wdth-normal.woff2") format("woff2");
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Source Serif 4";
  src: url("/assets/fonts/source-serif-4-latin-opsz-normal.woff2") format("woff2");
  font-weight: 200 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Source Serif 4";
  src: url("/assets/fonts/source-serif-4-latin-opsz-italic.woff2") format("woff2");
  font-weight: 200 900;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Source Serif 4";
  src: url("/assets/fonts/source-serif-4-latin-ext-opsz-normal.woff2") format("woff2");
  font-weight: 200 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Source Serif 4";
  src: url("/assets/fonts/source-serif-4-latin-ext-opsz-italic.woff2") format("woff2");
  font-weight: 200 900;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Shared editorial tokens. See DESIGN.md and docs/ART-DIRECTION.md. */
:root {
  color-scheme: dark;
  --paper: #101110;
  --panel: #171916;
  --panel-2: #20221e;
  --ink: #eee9df;
  --slate: #aaa79f;
  --fog: #171916;
  --rule: #383a35;
  --lapis: #e7be92;
  --saffron: #f5c06b;
  --claimed-text: #f5c06b;
  --pomegranate: #ff9493;
  --alarm: #ef5738;
  --alarm-text: #ff8265;
  --alarm-solid: #b73520;
  --alarm-deep: #2f1b16;
  --ember: #db8f53;
  --safe: #a6b8a2;
  --map-land: #222722;
  --map-iran: #444c3b;
  --map-line: #101110;
  --sans: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --serif: "Source Serif 4", "Iowan Old Style", Georgia, serif;
  --mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --page: 90rem;
  --measure: 40rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: 1.5rem; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--serif);
  font-size: 1.125rem;
  line-height: 1.6;
  font-optical-sizing: auto;
  text-rendering: optimizeLegibility;
  border-top: 0;
}
h1, h2, h3, h4 { font-family: var(--sans); margin: 0; text-wrap: balance; }
p, ul, ol, dl, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
a { color: var(--lapis); text-decoration-thickness: 0.06em; text-underline-offset: 0.18em; }
a:hover { text-decoration-thickness: 0.14em; }
:focus-visible { outline: 3px solid var(--saffron); outline-offset: 2px; border-radius: 2px; }
time { white-space: nowrap; }

.wrap { width: 100%; max-width: var(--page); margin-inline: auto; padding-inline: clamp(1.1rem, 4vw, 2.5rem); }
.skip { position: absolute; left: -999px; top: 0; background: var(--ink); color: var(--paper); padding: 0.6rem 1rem; font-family: var(--sans); z-index: 5; }
.skip:focus { left: 0.5rem; top: 0.5rem; }

/* ---------------------------------------------------------- masthead */
/* Nameplate left, edition dateline right, both on the wordmark's baseline. */
.masthead-inner {
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between;
  gap: 0.7rem 2rem; padding-block: 1.4rem 0.85rem;
}
.wordmark, .footer-mark {
  display: block;
  font-family: var(--sans); font-weight: 800; font-stretch: 68%; letter-spacing: -0.015em;
  font-size: clamp(2.15rem, 5.5vw, 2.7rem); line-height: 0.95; color: var(--ink); text-decoration: none;
}
.wordmark span, .footer-mark span { font-weight: 500; }
.masthead-line { font-family: var(--sans); font-size: 0.95rem; color: var(--slate); margin-top: 0.34rem; }
.dateline { font-family: var(--sans); font-size: 0.86rem; color: var(--slate); }

/* Sections left, trackers right. When the two groups cannot share a line the
   trackers wrap onto their own row and space-between leaves them at the start. */
.nav {
  display: flex; flex-wrap: wrap; justify-content: space-between;
  column-gap: 2.5rem; border-bottom: 1px solid var(--rule);
}
.nav-list { display: flex; flex-wrap: wrap; gap: 0 1.5rem; }
.nav a {
  display: block; padding: 0.5rem 0 0.68rem; font-family: var(--sans); font-weight: 650; font-size: 0.97rem;
  color: var(--ink); text-decoration: none; border-bottom: 3px solid transparent; margin-bottom: -1px;
}
.nav a:hover { border-bottom-color: var(--rule); }
.nav a[aria-current="page"] { border-bottom-color: var(--lapis); }
.nav-trackers a { font-weight: 500; color: var(--slate); }
.nav-trackers a[aria-current="page"] { color: var(--ink); }
@media (max-width: 40rem) {
  .nav-list { gap: 0 1.15rem; }
  .nav a { font-size: 0.92rem; padding: 0.38rem 0 0.5rem; }
}

/* ---------------------------------------------------------- status labels */
.status {
  display: inline-flex; align-items: center; gap: 0.45em; white-space: nowrap;
  font-family: var(--sans); font-weight: 650; font-size: 0.86rem; line-height: 1.2;
}
.status-glyph { width: 0.72em; height: 0.72em; flex: none; border: 0.14em solid currentColor; border-radius: 50%; }
.status-confirmed { color: var(--lapis); }
.status-confirmed .status-glyph { background: currentColor; }
.status-claimed { color: var(--claimed-text); }
.status-claimed .status-glyph { border-color: var(--saffron); background: linear-gradient(90deg, var(--saffron) 50%, transparent 50%); }
.status-disputed { color: var(--pomegranate); }
.status-disputed .status-glyph { border-radius: 0; transform: rotate(45deg) scale(0.86); background: currentColor; }
.status-unverified { color: var(--slate); }

/* ---------------------------------------------------------- contribute */
.contribute { margin-top: 2.6rem; max-width: 46rem; }
.contribute h2 { font-weight: 800; font-stretch: 75%; font-size: 1.8rem; padding-top: 1rem; border-top: 3px solid var(--ink); }
.contribute-group { margin-top: 1.8rem; }
.contribute-group h3 { font-weight: 800; font-stretch: 80%; font-size: 1.25rem; }
.contribute-blurb { font-size: 1.05rem; line-height: 1.5; color: var(--slate); margin-top: 0.4rem; }
.contribute-options { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-top: 1rem; }
.contribute-button {
  display: grid; gap: 0.1rem; text-decoration: none; min-width: 9.5rem;
  border: 1px solid var(--alarm); background: var(--panel-2); padding: 0.75rem 1.1rem;
}
.contribute-button:hover { background: var(--alarm-deep); }
.contribute-amount { font-family: var(--sans); font-weight: 800; font-size: 1.2rem; color: var(--ink); }
.contribute-note { font-family: var(--sans); font-size: 0.78rem; line-height: 1.3; color: var(--slate); }
.contribute-manage { font-family: var(--sans); font-size: 0.9rem; margin-top: 0.9rem; }
.contribute-thanks { display: none; font-family: var(--sans); font-size: 1.05rem; line-height: 1.5; color: var(--ink);
  margin-top: 1.4rem; padding: 0.9rem 1.1rem; border-left: 4px solid var(--safe); background: var(--paper-2, transparent); }
.contribute-thanks:target { display: block; }
.contribute-foot { font-family: var(--sans); font-size: 0.85rem; line-height: 1.45; color: var(--slate); margin-top: 1.5rem; }

/* ---------------------------------------------------------- signup */
.signup { border: 1px solid var(--rule); background: var(--panel-2); padding: 1.1rem 1.2rem 1.15rem; }
.signup-heading { font-family: var(--sans); font-weight: 800; font-stretch: 78%; font-size: 1.25rem; line-height: 1.15; }
.signup-blurb { font-size: 1rem; line-height: 1.45; color: var(--slate); margin-top: 0.3rem; }
.signup-row { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 0.9rem; }
.signup-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.signup-input {
  flex: 1 1 14rem; min-width: 0; font-family: var(--sans); font-size: 1rem;
  padding: 0.62rem 0.75rem; color: var(--ink); background: var(--paper);
  border: 1px solid var(--rule);
}
.signup-input::placeholder { color: var(--slate); }
.signup-input:focus-visible { border-color: var(--saffron); }
.signup-button {
  flex: 0 0 auto; font-family: var(--sans); font-weight: 750; font-size: 1rem;
  padding: 0.62rem 1.3rem; cursor: pointer; color: #fff;
  background: var(--alarm-solid); border: 1px solid var(--alarm);
}
.signup-button:hover { background: var(--alarm); }
.signup-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.signup-fine { font-family: var(--sans); font-size: 0.8rem; line-height: 1.4; color: var(--slate); margin-top: 0.7rem; }
.signup-big .signup-input, .signup-big .signup-button { font-size: 1.06rem; padding-block: 0.72rem; }

.hero-signup { margin-top: 2.2rem; }
.hero-signup .signup { max-width: 44rem; border-left: 4px solid var(--alarm); }
.esc-signup { margin-top: 3rem; max-width: 56rem; }
.footer-signup { margin-top: 2rem; }
.footer-signup .signup { max-width: 34rem; background: var(--paper); }

.alerts-grid { display: grid; gap: 2.5rem; }
.alerts-terms { margin-top: 2rem; }
.alerts-terms h2 { font-weight: 800; font-stretch: 75%; font-size: 1.5rem; }
.alerts-now { font-family: var(--sans); font-size: 0.95rem; line-height: 1.45; color: var(--slate); margin-top: 1rem; }
.alerts-armed { border: 1px solid var(--alarm); background: var(--alarm-deep); padding: 1rem 1.2rem; margin-top: 1.5rem; }
.alerts-armed h2 { font-family: var(--sans); font-size: 0.74rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--alarm-text); }
.alerts-armed ul { margin-top: 0.6rem; display: grid; gap: 0.4rem; }
.alerts-armed li { font-family: var(--sans); font-size: 0.95rem; line-height: 1.3; }
@media (min-width: 62rem) { .alerts-grid { grid-template-columns: minmax(0, 1.4fr) minmax(0, 20rem); gap: 4rem; } }

/* ---------------------------------------------------------- completion bar */
/* Reads as a loading bar because that is the honest metaphor: distance already
   travelled toward a defined end state, not odds of arriving. */
.comp-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 0.5rem; font-family: var(--sans); }
.comp-label { font-weight: 800; font-stretch: 74%; letter-spacing: -0.01em; color: var(--ink); }
.comp-read { font-weight: 850; font-stretch: 70%; line-height: 0.85; color: var(--alarm); letter-spacing: -0.02em; }
.comp-pct { font-size: 0.5em; font-weight: 700; }
.comp-unit { font-weight: 500; color: var(--slate); }
.comp-track {
  position: relative; margin-top: 0.7rem; background: var(--panel-2);
  border: 1px solid var(--rule); overflow: hidden;
}
.comp-fill { height: 100%; background: linear-gradient(90deg, var(--ember), var(--alarm)); }
.comp-ticks { position: absolute; inset: 0; display: flex; pointer-events: none; }
.comp-tick { flex: 1; border-right: 1px solid var(--paper); opacity: 0.55; }
.comp-tick:last-child { border-right: 0; }
.comp-formula { font-family: var(--sans); font-size: 0.84rem; line-height: 1.4; color: var(--slate); margin-top: 0.7rem; }
.comp-disclaimer { font-size: 0.95rem; line-height: 1.45; color: var(--slate); margin-top: 0.6rem; max-width: 40rem; }

.comp-big .comp-label { font-size: clamp(1.5rem, 3.4vw, 2.1rem); }
.comp-big .comp-read { font-size: clamp(3.6rem, 9.5vw, 5.4rem); }
.comp-big .comp-unit { font-size: clamp(1rem, 2vw, 1.25rem); }
.comp-big .comp-track { height: 2.4rem; }

.comp-small .comp-head { gap: 0 0.4rem; }
.comp-small .comp-label { font-size: 0.78rem; letter-spacing: 0.04em; text-transform: uppercase; }
.comp-small .comp-read { font-size: 1.5rem; }
.comp-small .comp-unit { font-size: 0.74rem; }
.comp-small .comp-track { height: 0.7rem; margin-top: 0.35rem; }

/* ---------------------------------------------------------- escalation */
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* Level flag: rides in the masthead of every page. */
.level-flag {
  display: block; text-decoration: none; min-width: 13rem;
  font-family: var(--sans); padding: 0.4rem 0.75rem 0.5rem;
  border: 1px solid var(--alarm); background: var(--alarm-deep); color: var(--ink);
}
.level-flag:hover { background: var(--alarm); }
.level-flag-note { font-size: 0.74rem; color: var(--slate); }
.level-flag:hover .level-flag-note { color: var(--ink); }

/* Hero: the escalation reading is the front page. */
.hero { background: var(--panel); border-bottom: 1px solid var(--rule); padding-block: clamp(2rem, 5vw, 3.4rem); }
.hero-grid { display: grid; gap: 2.5rem; }
.kicker.kicker-loud {
  font-weight: 750; font-size: 0.86rem; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--alarm-text);
}
.hero h1 {
  font-weight: 850; font-stretch: 70%; font-size: clamp(2.5rem, 6.4vw, 4.6rem);
  line-height: 0.96; letter-spacing: -0.015em; margin-top: 0.7rem; max-width: 16ch;
}
.hero-summary { font-size: clamp(1.14rem, 2.1vw, 1.32rem); line-height: 1.48; margin-top: 1.2rem; max-width: 38rem; }
.hero-move { font-size: 1rem; line-height: 1.45; color: var(--slate); margin-top: 1.1rem; max-width: 38rem; }
.hero .meta { margin-top: 0.8rem; }

/* Per-theatre sections on the escalation page. */
.theatre + .theatre { margin-top: 4rem; }
.theatre-head { border-top: 3px solid var(--ink); padding-top: 1.1rem; }
.theatre-head h2 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.8rem; font-weight: 850; font-stretch: 72%; font-size: clamp(2rem, 4.6vw, 3rem); line-height: 1; }
.theatre-region { font-family: var(--sans); font-size: 0.7rem; font-weight: 750; letter-spacing: 0.1em; text-transform: uppercase; color: var(--slate); border: 1px solid var(--rule); padding: 0.15rem 0.5rem; align-self: center; }
.theatre-read { font-size: 1.7rem; color: var(--alarm-text); font-weight: 850; }
.theatre-read span { font-size: 1rem; color: var(--slate); font-weight: 500; }
.theatre-q { font-family: var(--sans); font-size: 0.95rem; color: var(--slate); margin-top: 0.5rem; }
.theatre .scale-list { margin-top: 1.6rem; }
.theatre .esc-history { margin-top: 2rem; }
.theatre .esc-history h3 { font-family: var(--sans); font-weight: 800; font-stretch: 80%; font-size: 1.2rem; }

/* The shared severity scale. */
.esc-formula { margin-top: 4rem; max-width: 52rem; }
.esc-formula h2 { font-weight: 800; font-stretch: 75%; font-size: 1.7rem; padding-top: 1rem; border-top: 3px solid var(--ink); }
.esc-formula h3 { font-family: var(--sans); font-weight: 800; font-stretch: 80%; font-size: 1.15rem; margin-top: 1.6rem; }
.esc-formula p { margin-top: 0.7rem; }
.formula-list { margin-top: 1rem; display: grid; gap: 0.6rem; }
.formula-list li { padding-left: 1.1rem; position: relative; font-size: 1.02rem; line-height: 1.5; }
.formula-list li::before { content: ""; position: absolute; left: 0; top: 0.62em; width: 0.5rem; height: 2px; background: var(--alarm); }
.hero-main .comp { margin-bottom: 1.4rem; }
.esc-head .comp { margin-block: 1rem 1.4rem; }
.esc-scale { margin-top: 4rem; max-width: 56rem; }
.esc-scale h2 { font-weight: 800; font-stretch: 75%; font-size: 1.7rem; padding-top: 1rem; border-top: 3px solid var(--ink); }
.levels { margin-top: 1.2rem; border-top: 1px solid var(--rule); }
.level-band { display: grid; grid-template-columns: 2rem 1fr; gap: 0.15rem 1rem; padding: 0.7rem 0; border-bottom: 1px solid var(--rule); }
.level-band-n { font-family: var(--sans); font-weight: 850; color: var(--slate); }
.level-band-name { font-family: var(--sans); font-weight: 750; font-size: 1.02rem; }
.level-band-meaning { grid-column: 2; font-size: 0.97rem; line-height: 1.4; color: var(--slate); }
@media (min-width: 48rem) { .level-band { grid-template-columns: 2rem 13rem 1fr; } .level-band-meaning { grid-column: 3; grid-row: 1; } }
@media (min-width: 62rem) { .hero-grid { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 4rem; } }

/* The gauge. Ten bars, lit from the bottom. One per theatre. */
.gauge-stack { display: grid; gap: 0.9rem; }
.gauge { border: 1px solid var(--rule); background: var(--panel-2); padding: 1rem 1.2rem 1.15rem; }
.gauge-theatre { font-family: var(--sans); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--slate); }
.gauge-theatre a { color: inherit; text-decoration: none; }
.gauge-theatre a:hover { color: var(--ink); text-decoration: underline; }
.gauge-peak { color: var(--safe); }
.theatre-peak { font-family: var(--sans); font-size: 0.92rem; line-height: 1.45; color: var(--safe); margin-top: 0.5rem; }
.gauge-region { float: right; font-weight: 500; letter-spacing: 0.06em; color: var(--rule); }
.gauge-read { font-family: var(--sans); line-height: 0.85; color: var(--alarm); }
.gauge-num { font-size: clamp(2.8rem, 7vw, 3.6rem); font-weight: 850; font-stretch: 72%; letter-spacing: -0.02em; }
.gauge-of { font-size: 1.6rem; font-weight: 500; color: var(--slate); }
.gauge-bars { display: flex; gap: 3px; margin-top: 0.7rem; }
.bar { flex: 1; height: 2rem; background: var(--rule); }
.bar-crossed { background: var(--ember); }
.bar-current { background: var(--alarm); box-shadow: 0 0 0 2px var(--paper), 0 0 0 3px var(--alarm); }
.gauge-caption { font-family: var(--sans); font-size: 0.8rem; line-height: 1.4; color: var(--slate); margin-top: 0.8rem; }

.next-level { border: 1px solid var(--alarm); border-left-width: 4px; background: var(--panel-2); padding: 1rem 1.2rem; margin-top: 1.2rem; }
.next-level-label { font-family: var(--sans); font-size: 0.72rem; font-weight: 750; letter-spacing: 0.1em; text-transform: uppercase; color: var(--alarm-text); }
.next-level-name { font-family: var(--sans); font-weight: 800; font-stretch: 78%; font-size: 1.32rem; line-height: 1.15; margin-top: 0.3rem; }
.next-level-trip { font-size: 1rem; line-height: 1.45; margin-top: 0.5rem; color: var(--ink); }
.next-level-pre { font-size: 0.97rem; line-height: 1.45; margin-top: 0.7rem; color: var(--slate); }

.level-key {
  display: inline-block; font-family: var(--sans); font-size: 0.68rem; font-weight: 750;
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--slate);
  border: 1px solid var(--rule); padding: 0.08rem 0.4rem; margin-right: 0.45rem;
  vertical-align: 0.12em;
}
.level-key-warn { color: var(--ember); border-color: var(--ember); }

/* The full scale, level by level. */
.esc-head { background: var(--panel); border-bottom: 1px solid var(--rule); padding-block: clamp(2rem, 5vw, 3.2rem); }
.esc-head-grid { display: grid; gap: 2.5rem; align-items: start; }
.esc-head h1 { font-weight: 850; font-stretch: 70%; font-size: clamp(2.6rem, 7vw, 4.4rem); line-height: 0.95; letter-spacing: -0.015em; margin-top: 0.5rem; }
.esc-headline { font-family: var(--sans); font-weight: 700; font-stretch: 84%; font-size: clamp(1.25rem, 2.4vw, 1.6rem); line-height: 1.2; color: var(--ember); margin-top: 0.8rem; max-width: 24ch; }
.esc-summary { font-size: 1.15rem; line-height: 1.5; margin-top: 1rem; max-width: 38rem; }
.esc-head .meta { margin-top: 1rem; }
@media (min-width: 62rem) { .esc-head-grid { grid-template-columns: minmax(0, 1.4fr) minmax(0, 20rem); gap: 4rem; } }

.scale-list { border-top: 1px solid var(--rule); max-width: 56rem; }
.level { display: grid; grid-template-columns: 3.2rem 1fr; gap: 0 1.3rem; padding: 1.3rem 0; border-bottom: 1px solid var(--rule); }
.level-n {
  font-family: var(--sans); font-weight: 850; font-stretch: 72%; font-size: 2rem; line-height: 1;
  color: var(--rule); text-align: right;
}
.level h3 { font-weight: 800; font-stretch: 80%; font-size: 1.35rem; line-height: 1.15; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.6rem; }
.level-crit { font-size: 1.02rem; line-height: 1.45; color: var(--slate); margin-top: 0.35rem; }
.level-note, .level-trip, .level-pre { font-size: 1.02rem; line-height: 1.5; margin-top: 0.6rem; }
.level-context { font-size: 0.99rem; line-height: 1.5; margin-top: 0.6rem; color: var(--slate); }
.level-when { font-family: var(--sans); font-size: 0.84rem; color: var(--slate); margin-top: 0.5rem; }
.level-crossed .level-n { color: var(--ember); }
.level-crossed h3 { color: var(--slate); }
.level-current { background: var(--alarm-deep); margin-inline: -1.2rem; padding-inline: 1.2rem; border-left: 4px solid var(--alarm); }
.level-current .level-n { color: var(--alarm); font-size: 2.6rem; }
.level-current h3 { font-size: 1.6rem; }
.level-ahead .level-n { color: var(--alarm-text); opacity: 0.6; }
.level-here {
  font-family: var(--sans); font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em;
  text-transform: uppercase; background: var(--alarm-solid); color: #fff; padding: 0.15rem 0.5rem;
}
.level-ahead { opacity: 0.94; }

.esc-history { margin-top: 3rem; max-width: 56rem; }
.esc-history h2, .esc-method h2 { font-weight: 800; font-stretch: 75%; font-size: 1.7rem; padding-top: 1rem; border-top: 3px solid var(--ink); }
.moves { margin-top: 1.1rem; }
.move { display: grid; gap: 0.15rem 1rem; padding: 0.7rem 0; border-bottom: 1px solid var(--rule); font-family: var(--sans); font-size: 0.95rem; }
.move time { color: var(--slate); }
.move-to { font-weight: 800; }
.move-up .move-to { color: var(--alarm-text); }
.move-down .move-to { color: var(--safe); }
.move-why { color: var(--ink); font-family: var(--serif); }
@media (min-width: 44rem) { .move { grid-template-columns: 7rem 4rem 1fr; align-items: baseline; } }
.esc-method { margin-top: 3rem; max-width: var(--measure); }
.esc-method p { margin-top: 1rem; }

/* Countdown to a dated, already-scheduled event. */
.clock { background: var(--alarm-deep); border-block: 1px solid var(--alarm); padding-block: 1.4rem; }
.clock-inner { display: grid; gap: 0.6rem 2rem; align-items: center; }
.clock-count { font-family: var(--sans); font-weight: 850; font-stretch: 72%; line-height: 0.9; color: var(--alarm); font-size: clamp(2.4rem, 6vw, 3.4rem); }
.clock h2 { font-weight: 800; font-stretch: 80%; font-size: 1.3rem; line-height: 1.15; }
.clock p { font-size: 1.02rem; line-height: 1.45; margin-top: 0.3rem; }
@media (min-width: 48rem) { .clock-inner { grid-template-columns: 11rem 1fr; } }

/* Tripwires. */
.wires { padding-block: clamp(2rem, 4.5vw, 3rem); border-bottom: 1px solid var(--rule); }
.wires-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.5rem 2rem; }
.wires-head h2 { font-weight: 850; font-stretch: 72%; font-size: clamp(1.9rem, 4vw, 2.6rem); line-height: 1; }
.wires-clock { font-family: var(--sans); text-align: right; }
.wires-clock-num { display: block; font-weight: 850; font-stretch: 76%; font-size: 1.7rem; line-height: 1; color: var(--alarm); }
.wires-clock-what { display: block; font-size: 0.82rem; color: var(--slate); margin-top: 0.2rem; }
.wire-list { margin-top: 1.4rem; border-top: 1px solid var(--rule); }
.wire { display: grid; gap: 0.3rem 1.5rem; padding: 1.15rem 0; border-bottom: 1px solid var(--rule); }
.wire-status {
  font-family: var(--sans); font-size: 0.74rem; font-weight: 800; letter-spacing: 0.1em;
  text-transform: uppercase; display: flex; align-items: center; gap: 0.45em; color: var(--slate);
}
.wire-dot { width: 0.6em; height: 0.6em; flex: none; border-radius: 50%; background: currentColor; }
.wire-armed .wire-status { color: var(--alarm-text); }
.wire-tripped .wire-status { color: var(--ember); }
.wire-holding .wire-status { color: var(--safe); }
.wire h3 { font-weight: 800; font-stretch: 80%; font-size: 1.22rem; line-height: 1.18; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.6rem; }
.wire-level { font-family: var(--sans); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--slate); border: 1px solid var(--rule); padding: 0.05rem 0.4rem; }
.wire-what { font-size: 1.02rem; line-height: 1.5; margin-top: 0.4rem; }
.wire-first { font-size: 0.97rem; line-height: 1.45; margin-top: 0.6rem; color: var(--slate); }
.wire-armed { background: linear-gradient(90deg, var(--alarm-deep), transparent 60%); margin-inline: -1rem; padding-inline: 1rem; }
@media (min-width: 48rem) { .wire { grid-template-columns: 7.5rem 1fr; } .wire-status { padding-top: 0.3rem; } }

/* ---------------------------------------------------------- home: board */
.board { background: var(--fog); padding-block: clamp(1.8rem, 4vw, 3rem); }
.board-grid { display: grid; gap: 2.5rem; }
.board h2#board-title { font-weight: 800; font-stretch: 72%; font-size: clamp(2.3rem, 5.4vw, 3.9rem); line-height: 1; letter-spacing: -0.012em; max-width: 18ch; }
.board-asof { font-family: var(--sans); color: var(--slate); font-size: 0.98rem; margin-top: 0.7rem; }
.board-items { margin-top: 1.6rem; display: grid; gap: 1.15rem; }
.board-items li { display: grid; gap: 0.2rem 1.2rem; }
.board-items p { font-size: 1.12rem; line-height: 1.5; }
.board-src, .board-items .board-src { font-family: var(--sans); font-size: 0.86rem; line-height: 1.4; color: var(--slate); margin-top: 0.25rem; }
.board-src a { color: inherit; }
.board-note { margin-top: 1.5rem; font-size: 1rem; color: var(--slate); max-width: 38rem; }
.map svg { display: block; width: 100%; height: auto; }
.map figcaption { font-family: var(--sans); font-size: 0.8rem; color: var(--slate); margin-top: 0.5rem; }
.key { display: inline-flex; align-items: center; gap: 0.4em; margin-right: 1.1em; color: var(--ink); }
.key::before { content: ""; width: 0.62em; height: 0.62em; background: var(--ink); }
.key-place::before { background: var(--paper); border: 0.12em solid var(--ink); border-radius: 50%; }
.legend { margin-top: 1.8rem; }
.legend h2 { font-size: 1rem; font-weight: 700; }
.legend dl { margin-top: 0.7rem; display: grid; gap: 0.6rem; }
.legend dl div { display: grid; grid-template-columns: 6.6rem 1fr; gap: 0.8rem; align-items: baseline; }
.legend dd { margin: 0; font-family: var(--sans); font-size: 0.86rem; line-height: 1.4; color: var(--slate); }
.legend p { margin-top: 0.8rem; font-family: var(--sans); font-size: 0.9rem; }
@media (min-width: 40rem) {
  .board-items li { grid-template-columns: 6.6rem 1fr; align-items: baseline; }
}
@media (min-width: 62rem) {
  .board-grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 4rem; }
}

/* map classes (inline SVG; presentation comes from here so dark mode works) */
.m-land { fill: var(--map-land); stroke: var(--map-line); stroke-width: 1; stroke-linejoin: round; }
.m-iran { fill: var(--map-iran); stroke: var(--map-line); stroke-width: 1; stroke-linejoin: round; }
.m-country { font-family: var(--sans); font-size: 13px; font-weight: 500; fill: var(--slate); text-anchor: middle; }
.m-country-iran { font-size: 22px; font-weight: 800; font-stretch: 72%; fill: var(--ink); letter-spacing: 0.04em; }
.m-water { font-family: var(--serif); font-style: italic; font-size: 13px; fill: var(--slate); text-anchor: middle; }
.m-site { fill: var(--ink); }
.m-city { fill: var(--paper); stroke: var(--ink); stroke-width: 1.6; }
.m-label { font-family: var(--sans); font-size: 13.5px; font-weight: 650; fill: var(--ink); paint-order: stroke; stroke: var(--map-iran); stroke-width: 3.5; stroke-linejoin: round; }
.m-label-out { stroke: var(--paper); }

/* ---------------------------------------------------------- home: front */
.kicker { font-family: var(--sans); font-size: 0.92rem; font-weight: 600; color: var(--slate); }
.kicker a { color: var(--lapis); text-decoration: none; }
.kicker a:hover { text-decoration: underline; }
.meta { font-family: var(--sans); font-size: 0.86rem; color: var(--slate); }
.front { display: grid; gap: 3rem; padding-block: clamp(2rem, 5vw, 3.5rem); }
.lead h2 { font-weight: 800; font-stretch: 70%; font-size: clamp(2.2rem, 5vw, 3.6rem); line-height: 1.02; letter-spacing: -0.012em; margin-top: 0.5rem; }
.lead h2 a, .story h3 a, .section-list a, .trackers h2 a, .sections h2 a { color: var(--ink); text-decoration: none; }
.lead h2 a:hover, .story h3 a:hover, .section-list a:hover, .trackers h2 a:hover, .sections h2 a:hover { text-decoration: underline; text-decoration-thickness: 0.08em; }
.lead-dek { font-size: 1.3rem; line-height: 1.45; margin-top: 1rem; max-width: 36rem; }
.lead .meta { margin-top: 1rem; }
.rail-title { font-size: 1.05rem; font-weight: 750; padding-bottom: 0.6rem; border-bottom: 3px solid var(--ink); }
.stories { display: grid; }
.story { padding-block: 1.1rem; border-bottom: 1px solid var(--rule); }
.story h3 { font-weight: 700; font-stretch: 80%; font-size: 1.35rem; line-height: 1.15; margin-top: 0.25rem; }
.story-dek { font-size: 1rem; line-height: 1.5; margin-top: 0.4rem; color: var(--ink); }
.story .meta { margin-top: 0.45rem; }
.more { font-family: var(--sans); font-size: 0.95rem; font-weight: 600; margin-top: 1rem; }
@media (min-width: 62rem) {
  .front { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 4.5rem; }
}

/* ---------------------------------------------------------- home: trackers */
.trackers { border-block: 1px solid var(--rule); padding-block: clamp(2rem, 4vw, 3rem); }
.trackers-grid { display: grid; gap: 3rem; }
.trackers h2, .sections h2 { font-weight: 800; font-stretch: 75%; font-size: 1.7rem; line-height: 1.1; }
.mini-timeline { margin-top: 1rem; display: grid; gap: 0.7rem; }
.mini-timeline li { display: grid; grid-template-columns: 8.2rem 1fr; gap: 1rem; font-size: 1rem; line-height: 1.4; }
.mini-timeline time { font-family: var(--sans); font-size: 0.86rem; color: var(--slate); padding-top: 0.12rem; }
.mini-claims { margin-top: 1rem; display: grid; gap: 0.95rem; }
.mini-claims li { display: grid; gap: 0.15rem; }
.mini-claims p { font-size: 1rem; line-height: 1.4; }
.mini-claims a { color: var(--ink); }
.mini-claimant { display: block; font-family: var(--sans); font-size: 0.84rem; color: var(--slate); margin-top: 0.1rem; }
@media (min-width: 62rem) {
  .trackers-grid { grid-template-columns: 1fr 1fr; gap: 4.5rem; }
}

/* ---------------------------------------------------------- home: sections */
.sections { display: grid; gap: 2.8rem 3.5rem; padding-block: clamp(2rem, 5vw, 3.5rem); }
.section-blurb { font-family: var(--sans); font-size: 0.92rem; color: var(--slate); margin-top: 0.3rem; }
.section-list { margin-top: 0.9rem; }
.section-list li { padding-block: 0.7rem; border-top: 1px solid var(--rule); }
.section-list a { font-family: var(--sans); font-weight: 650; font-stretch: 85%; font-size: 1.12rem; line-height: 1.2; display: block; }
.section-list .meta { display: block; margin-top: 0.2rem; }
@media (min-width: 48rem) { .sections { grid-template-columns: 1fr 1fr; } }
@media (min-width: 76rem) { .sections { grid-template-columns: 1fr 1fr 1fr; } }

/* ---------------------------------------------------------- article */
.article-head { padding-block: clamp(2rem, 5vw, 3.5rem) 0; }
.article-head h1, .page-head h1 { font-weight: 800; font-stretch: 70%; font-size: clamp(2.4rem, 5.6vw, 4.1rem); line-height: 1; letter-spacing: -0.014em; margin-top: 0.6rem; max-width: 22ch; }
.dek { font-size: clamp(1.2rem, 2.2vw, 1.42rem); line-height: 1.42; margin-top: 1.1rem; max-width: 40rem; }
.byline { margin-top: 1.4rem; font-family: var(--sans); font-size: 0.9rem; color: var(--slate); display: grid; gap: 0.15rem; }
.byline a { color: inherit; }

.known { display: grid; gap: 2rem; margin-top: 2.4rem; padding-block: 1.6rem; background: var(--fog); border-radius: 4px; }
.known h2 { font-size: 1.1rem; font-weight: 750; }
.known-list, .unknown-list { margin-top: 0.9rem; display: grid; gap: 0.85rem; }
.known-list li { display: grid; gap: 0.15rem; }
.known-list p, .unknown-list li { font-size: 1.02rem; line-height: 1.45; }
.unknown-list li { padding-left: 1.1rem; position: relative; }
.unknown-list li::before { content: ""; position: absolute; left: 0; top: 0.62em; width: 0.5rem; height: 2px; background: var(--slate); }
@media (min-width: 56rem) { .known { grid-template-columns: 1.25fr 1fr; gap: 3.5rem; } }

.prose { margin-top: 2.4rem; font-size: 1.19rem; line-height: 1.62; }
.row { display: grid; gap: 0.3rem; }
.row + .row { margin-top: 1.25rem; }
.row-main { max-width: var(--measure); min-width: 0; }
.row-main > * + * { margin-top: 1.25rem; }
.row-wide .row-main { max-width: none; }
.prose h2 { font-weight: 800; font-stretch: 75%; font-size: 1.85rem; line-height: 1.1; margin-top: 1.6rem; max-width: var(--measure); }
.prose h3 { font-weight: 700; font-stretch: 85%; font-size: 1.3rem; line-height: 1.2; margin-top: 0.8rem; max-width: var(--measure); }
.prose ul, .prose ol { padding-left: 1.3rem; display: grid; gap: 0.5rem; }
.prose ul { list-style: disc; }
.prose ol { list-style: decimal; }
.prose blockquote { margin: 0; padding-left: 1.2rem; border-left: 3px solid var(--rule); color: var(--ink); }
.prose hr { border: 0; border-top: 1px solid var(--rule); margin-block: 1rem; max-width: var(--measure); }
.prose table { border-collapse: collapse; width: 100%; max-width: 56rem; font-family: var(--sans); font-size: 0.92rem; line-height: 1.4; }
.prose th, .prose td { text-align: left; vertical-align: top; padding: 0.55rem 0.9rem 0.55rem 0; border-bottom: 1px solid var(--rule); }
.prose th { font-weight: 700; border-bottom: 2px solid var(--ink); }
.cite { font-family: var(--sans); font-size: 0.68em; font-weight: 650; line-height: 0; margin-left: 0.08em; }
.cite a { text-decoration: none; padding: 0 0.12em; }
.cite a:hover { text-decoration: underline; }
.cite + .cite::before { content: ", "; color: var(--slate); }

.row-rail { font-family: var(--sans); font-size: 0.84rem; line-height: 1.35; color: var(--slate); max-width: var(--measure); }
.row-rail ul { display: flex; flex-wrap: wrap; gap: 0.1rem 0.9rem; }
.row-rail a { color: var(--ink); }
.rail-n { font-weight: 700; color: var(--lapis); margin-right: 0.35em; }
.rail-date::before { content: ", "; }
@media (min-width: 62rem) {
  .row { grid-template-columns: minmax(0, var(--measure)) minmax(0, 17rem); gap: 0 3.5rem; }
  .row-wide { grid-template-columns: 1fr; }
  .row-rail { padding-top: 0.42rem; border-top: 1px solid var(--rule); align-self: start; margin-top: 0.55rem; }
  .row-rail ul { display: grid; gap: 0.35rem; }
  .row-rail li { display: grid; grid-template-columns: 1.4rem 1fr; }
  .rail-n { margin-right: 0; }
  .rail-date { display: block; }
  .rail-date::before { content: none; }
}

.sources, .changes, .related { margin-top: 3.2rem; }
.sources h2, .changes h2, .related h2 { font-weight: 800; font-stretch: 75%; font-size: 1.6rem; padding-top: 1rem; border-top: 3px solid var(--ink); max-width: 57rem; }
.source-list { margin-top: 1rem; padding-left: 2rem; list-style: decimal; max-width: 55rem; display: grid; gap: 0.7rem; font-family: var(--sans); font-size: 0.95rem; line-height: 1.4; }
.source-list li::marker { font-weight: 700; color: var(--lapis); }
.source-list li:target { background: var(--fog); outline: 0.4rem solid var(--fog); }
.source-meta { display: block; color: var(--slate); font-size: 0.86rem; margin-top: 0.1rem; }
.changes ul { margin-top: 1rem; display: grid; gap: 0.7rem; max-width: var(--measure); font-size: 1rem; }
.changes p { margin-top: 1rem; max-width: var(--measure); font-size: 1rem; }
.changes strong { font-family: var(--sans); font-size: 0.92rem; }
.related .section-list { max-width: var(--measure); }
.article { padding-bottom: clamp(3rem, 6vw, 5rem); }

/* ---------------------------------------------------------- listings, pages */
.listing, .page { padding-block: clamp(2rem, 5vw, 3.5rem) clamp(3rem, 6vw, 5rem); }
.page-head { margin-bottom: 2.2rem; }
.page-head .meta { margin-top: 0.9rem; }
.stories-wide { max-width: 46rem; border-top: 3px solid var(--ink); }
.empty { max-width: var(--measure); }
.page-body { max-width: var(--measure); font-size: 1.15rem; }
.page-body > * + * { margin-top: 1.2rem; }
.page-body h2 { font-weight: 800; font-stretch: 75%; font-size: 1.7rem; line-height: 1.1; margin-top: 2.4rem; }
.page-body h3 { font-weight: 700; font-stretch: 85%; font-size: 1.25rem; margin-top: 1.8rem; }
.page-body ul, .page-body ol { padding-left: 1.3rem; display: grid; gap: 0.5rem; }
.page-body ul { list-style: disc; }
.page-body ol { list-style: decimal; }
.page-body table { border-collapse: collapse; width: 100%; font-family: var(--sans); font-size: 0.92rem; line-height: 1.4; }
.page-body th, .page-body td { text-align: left; vertical-align: top; padding: 0.55rem 0.9rem 0.55rem 0; border-bottom: 1px solid var(--rule); }
.page-body th { border-bottom: 2px solid var(--ink); }
.page-log { margin-top: 2.4rem; }
.page-foot { margin-top: 2.5rem; font-family: var(--sans); font-size: 0.9rem; color: var(--slate); }

/* timeline */
.tl-year + .tl-year { margin-top: 3rem; }
.tl-year h2 { font-weight: 800; font-stretch: 70%; font-size: 2.6rem; line-height: 1; padding-bottom: 0.6rem; border-bottom: 3px solid var(--ink); max-width: 52rem; }
.tl { max-width: 52rem; }
.tl-entry { display: grid; gap: 0.2rem 2rem; padding-block: 1.15rem; border-bottom: 1px solid var(--rule); }
.tl-entry > time { font-family: var(--sans); font-size: 0.92rem; font-weight: 600; color: var(--slate); padding-top: 0.2rem; white-space: normal; }
.tl-entry h3 { font-weight: 700; font-stretch: 82%; font-size: 1.3rem; line-height: 1.18; }
.tl-entry p { font-size: 1.04rem; line-height: 1.5; margin-top: 0.35rem; }
.tl-major h3 { font-weight: 800; font-size: 1.55rem; }
.tl-major > time { color: var(--ink); }
.tl-entry:target { background: var(--fog); outline: 0.6rem solid var(--fog); }
@media (min-width: 44rem) { .tl-entry { grid-template-columns: 9.5rem 1fr; } }

/* claim ledger */
.ledger { max-width: 56rem; border-top: 3px solid var(--ink); }
.ledger-row { display: grid; gap: 0.5rem 2rem; padding-block: 1.5rem; border-bottom: 1px solid var(--rule); }
.ledger-row h2 { font-family: var(--serif); font-weight: 600; font-size: 1.3rem; line-height: 1.3; font-stretch: normal; }
.ledger-who { font-family: var(--sans); font-size: 0.9rem; color: var(--slate); margin-top: 0.3rem; }
.ledger-body > p:not(.ledger-who):not(.board-src) { margin-top: 0.7rem; font-size: 1.06rem; line-height: 1.5; }
.ledger-row:target { background: var(--fog); outline: 0.6rem solid var(--fog); }
@media (min-width: 44rem) { .ledger-row { grid-template-columns: 7.2rem 1fr; } .ledger-status { padding-top: 0.35rem; } }

/* ---------------------------------------------------------- footer */
.footer { background: var(--fog); padding-block: 2.6rem 2rem; font-family: var(--sans); font-size: 0.93rem; line-height: 1.5; }
.footer-grid { display: grid; gap: 2rem; }
.footer-mark { font-size: 1.8rem; margin-bottom: 0.8rem; }
.footer-grid p + p { margin-top: 0.8rem; }
.footer-grid > div { max-width: 44rem; }
.footer nav ul { display: grid; gap: 0.4rem; }
.footer nav a { color: var(--ink); font-weight: 600; }
.footer-built { margin-top: 2rem; color: var(--slate); font-size: 0.84rem; }
@media (min-width: 48rem) { .footer-grid { grid-template-columns: 1fr auto; gap: 5rem; } }

@media print {
  .masthead nav, .footer nav, .skip, .related { display: none; }
  body { border: 0; font-size: 11pt; }
  .row-rail { display: none; }
  a { color: inherit; }
}
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

/* September 2026: the world on the brink. Shared publication system. */
::selection { background: var(--alarm); color: #101110; }
a { transition: color 150ms var(--ease-snap), background-color 150ms var(--ease-snap); }
button, input, summary { font: inherit; }
.wrap { padding-inline: clamp(1.25rem, 4vw, 3.25rem); }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 2rem; padding: .65rem 1.1rem; background: var(--ink); color: var(--paper); text-decoration: none; font: 650 .9rem var(--sans); border: 1px solid var(--ink); }
.button:hover { background: var(--alarm); border-color: var(--alarm); color: var(--paper); }
.text-link { display: inline-flex; align-items: center; gap: 1.2rem; color: var(--alarm-text); font: 600 .96rem var(--sans); text-decoration: none; }
.text-link:hover { color: var(--ink); }
.text-link span { font-size: 1.2em; }
.section-index { font: .67rem/1.4 var(--mono); text-transform: uppercase; letter-spacing: .13em; color: var(--slate); }
.edition-line { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: .7rem; font: .64rem/1.4 var(--mono); letter-spacing: .055em; text-transform: uppercase; color: var(--slate); }
.edition-line a { color: inherit; text-decoration: none; }
.masthead-inner { align-items: center; flex-wrap: nowrap; padding-block: 1rem 1.2rem; position: relative; }
.masthead-inner::before { content: ''; position: absolute; inset: 0 clamp(1.25rem, 4vw, 3.25rem) auto; border-top: 1px solid var(--rule); }
.wordmark { font-size: clamp(2.6rem, 5vw, 4.6rem); font-weight: 900; font-stretch: 62%; letter-spacing: -.055em; white-space: nowrap; }
.wordmark span, .footer-mark span { color: var(--alarm); font-weight: 900; }
.primary-nav { display: flex; gap: clamp(1.2rem, 3vw, 2.6rem); margin-left: auto; margin-right: auto; }
.primary-nav a { font: 700 .88rem/1.2 var(--sans); font-stretch: 78%; letter-spacing: .04em; text-transform: uppercase; text-decoration: none; color: var(--ink); padding-block: .6rem; }
.primary-nav a:hover, .primary-nav a[aria-current] { color: var(--alarm-text); }
.nav { position: relative; align-items: center; border: 0; flex-wrap: nowrap; gap: 1rem; }
.nav::before, .nav::after { content: ''; position: absolute; left: clamp(1.25rem, 4vw, 3.25rem); right: clamp(1.25rem, 4vw, 3.25rem); border-top: 1px solid var(--rule); top: 0; }
.nav::after { top: auto; bottom: 0; }
.nav-list { gap: clamp(1rem, 2.2vw, 2.2rem); }
.nav a { font: .68rem/1.4 var(--mono); text-transform: uppercase; letter-spacing: .04em; padding-block: .85rem; border: 0; margin: 0; }
.nav a:hover, .nav a[aria-current="page"] { color: var(--alarm-text); }
.nav .nav-support { color: var(--slate); white-space: nowrap; }
.mobile-menu { display: none; }
.kicker { font: .7rem/1.5 var(--mono); text-transform: uppercase; letter-spacing: .07em; }
.kicker a { color: var(--alarm-text); }
.article-head .kicker a { text-decoration: underline; text-underline-offset: .22em; }
.alerts-grid > * { min-width: 0; }
.mobile-menu:not([open]) nav { display: none; }
.meta { font-size: .77rem; }

/* Front page: one image-led lead, with a compact live-data reading rail. */
.cover { display: grid; grid-template-columns: minmax(0, 1fr) 18rem; gap: 2rem; padding-block: 1.7rem 2rem; }
.cover-main { position: relative; isolation: isolate; min-width: 0; display: flex; flex-direction: column; justify-content: space-between; }
.cover-art { position: absolute; z-index: -1; inset: -.8rem -1.6rem 0 -2rem; overflow: hidden; pointer-events: none; }
.cover-art img { width: 100%; height: 100%; object-fit: cover; object-position: 62% center; mask-image: linear-gradient(180deg, #000 65%, transparent 100%); }
.cover-art::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, var(--paper) 0%, #101110b0 15%, #10111020 65%, transparent 100%); }
.cover-art figcaption { position: absolute; right: 1.8rem; bottom: 1rem; font: .54rem var(--mono); letter-spacing: .06em; color: #aaa79f; writing-mode: vertical-rl; }
.cover-copy h1 { font-size: clamp(5.2rem, 9.6vw, 8.7rem); font-weight: 900; font-stretch: 62%; line-height: .82; letter-spacing: -.03em; text-transform: uppercase; text-wrap: initial; }
.cover-copy h1 span { color: var(--alarm); }
.cover-dek { margin-top: 1.7rem; font-size: clamp(1.1rem, 1.6vw, 1.42rem); line-height: 1.4; max-width: 33rem; text-shadow: 0 1px 14px #101110; }
.cover-story { margin-top: 2rem; border-top: 1px solid #eee9df70; padding-top: 1rem; max-width: 39rem; }
.cover-story .kicker { color: var(--alarm-text); }
.cover-story .kicker span { color: var(--slate); }
.cover-story h2 { font: 550 clamp(1.45rem, 2.2vw, 2rem)/1.1 var(--serif); letter-spacing: -.025em; text-wrap: initial; margin-top: .55rem; }
.cover-story h2 a { color: var(--ink); text-decoration: none; }
.cover-story h2 a:hover { color: var(--alarm-text); }
.cover-story-dek { font-size: 1.02rem; line-height: 1.45; margin-top: .7rem; max-width: 36rem; }
.cover-story .text-link { margin-top: 1rem; }
.cover-story .meta { margin-left: 1.1rem; white-space: nowrap; }
.cover-monitor { padding-left: 1.7rem; border-left: 1px solid var(--rule); min-width: 0; }
.monitor-heading h2 { font-size: 1.8rem; font-stretch: 67%; font-weight: 850; line-height: 1; text-transform: uppercase; margin-top: .45rem; }
.monitor-review { font: .59rem/1.5 var(--mono); color: var(--slate); margin-top: .55rem; }
.monitor-review time { white-space: normal; }
.monitor-theatres { margin-top: .6rem; }
.monitor-theatres li { border-bottom: 1px solid var(--rule); }
.monitor-theatres a { display: grid; grid-template-columns: 1fr auto; column-gap: .7rem; padding-block: .8rem; color: var(--ink); text-decoration: none; }
.monitor-name { font: 750 .9rem/1.3 var(--sans); font-stretch: 80%; }
.monitor-value { font: 800 1.05rem/1 var(--sans); color: var(--alarm-text); }
.monitor-value small { color: var(--slate); font-size: .7rem; font-weight: 500; }
.monitor-bars { display: flex; grid-column: 1/-1; gap: 4px; margin-top: .6rem; }
.monitor-bar { flex: 1; height: .38rem; background: var(--rule); }
.monitor-bar-crossed { background: var(--ember); }
.monitor-bar-current { background: var(--alarm); }
.monitor-caption { grid-column: 1/-1; font: .7rem/1.4 var(--serif); color: var(--slate); margin-top: .35rem; }
.monitor-theatres a:hover .monitor-name { color: var(--alarm-text); }
.monitor-completion { padding-block: 1rem .5rem; }
.monitor-completion .comp-label { font-size: .62rem; }
.monitor-completion .comp-read { font-size: 1.3rem; }
.monitor-completion .comp-unit { font-size: .64rem; }
.monitor-completion .comp-track { height: .35rem; }
.monitor-note { font: .66rem/1.5 var(--mono); color: var(--slate); margin-top: .5rem; }
.cover-monitor > .text-link { font-size: .8rem; margin-top: 1rem; }
.dispatches { padding-bottom: 3.5rem; }
.section-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--rule); padding-block: .9rem; }
.section-heading h2 { font-size: 1.75rem; font-weight: 850; font-stretch: 67%; line-height: 1; text-transform: uppercase; }
.section-heading > a { font: .7rem var(--mono); color: var(--slate); text-decoration: none; white-space: nowrap; }
.dispatch-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 1.4rem; }
.dispatch { padding-inline: 1.3rem; border-left: 1px solid var(--rule); display: flex; flex-direction: column; }
.dispatch:first-child { padding-left: 0; border: 0; }
.dispatch:last-child { padding-right: 0; }
.dispatch-meta { display: flex; gap: .8rem; justify-content: space-between; font: .6rem/1.4 var(--mono); letter-spacing: .02em; text-transform: uppercase; }
.dispatch-meta a { color: var(--alarm-text); text-decoration: none; }
.dispatch-meta span { color: var(--slate); white-space: nowrap; }
.dispatch h3 { font: 550 1.5rem/1.14 var(--serif); letter-spacing: -.025em; text-wrap: initial; margin-top: .8rem; }
.dispatch h3 a { color: var(--ink); text-decoration: none; }
.dispatch h3 a:hover { color: var(--alarm-text); }
.dispatch-dek { font-size: .97rem; color: #c9c7be; line-height: 1.55; margin-block: .8rem 1rem; }
.dispatch > .text-link { font-size: .78rem; margin-top: auto; }

/* Research: quiet, open editorial columns and native disclosure controls. */
.wires { background: var(--panel); border-block: 1px solid var(--rule); padding-block: 3.5rem; }
.wires-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 4rem; }
.wires-intro h2, .participate h2 { font-weight: 850; font-stretch: 67%; font-size: clamp(2.7rem, 4.8vw, 4.4rem); line-height: .97; letter-spacing: -.035em; margin-top: .8rem; }
.wires-intro > p { color: var(--slate); font-size: 1.05rem; line-height: 1.55; max-width: 23rem; margin-top: 1.1rem; }
.deadline { border-top: 1px solid var(--rule); margin-top: 2.3rem; padding-top: 1.3rem; max-width: 22rem; }
.deadline strong { display: block; font: 850 2.8rem/.95 var(--sans); font-stretch: 65%; color: var(--alarm-text); margin-top: .7rem; }
.deadline p { margin-top: .6rem; font-size: 1rem; line-height: 1.35; }
.deadline time { font: .65rem var(--mono); color: var(--slate); }
.wire-detail { border-bottom: 1px solid var(--rule); }
.wire-detail:first-child { border-top: 1px solid var(--rule); }
.wire-detail summary { cursor: pointer; list-style: none; display: grid; grid-template-columns: 5.5rem 1fr 1rem; gap: .9rem; padding-block: 1.2rem; align-items: baseline; }
summary::-webkit-details-marker { display: none; }
.wire-title { font: 750 1.2rem/1.2 var(--sans); font-stretch: 83%; }
.wire-title small { display: block; font: .63rem/1.5 var(--mono); color: var(--slate); margin-top: .45rem; }
.wire-status { font-size: .64rem; letter-spacing: .05em; }
.wire-state-armed { color: var(--alarm-text); }
.wire-state-holding { color: var(--safe); }
.wire-state-tripped { color: var(--ember); }
.detail-toggle { color: var(--slate); font: 300 1.2rem var(--sans); }
.wire-detail[open] .detail-toggle { transform: rotate(45deg); }
.wire-detail-body { margin-left: 6.4rem; padding-bottom: 1.4rem; font-size: 1rem; line-height: 1.5; }
.wire-first strong { font: 650 .74rem var(--sans); color: var(--ink); }
.wire-detail-body .board-src { margin-top: .9rem; font-size: .75rem; }
.board { background: var(--paper); padding-block: 4.5rem; }
.board h2#board-title { font-size: clamp(2.4rem, 4.1vw, 3.7rem); font-stretch: 67%; line-height: 1.04; letter-spacing: -.03em; }
.board-grid { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); }
.board-asof { font: .7rem/1.5 var(--mono); margin-top: 1rem; }
.board-items { gap: 0; }
.board-items li { grid-template-columns: 1fr; border-top: 1px solid var(--rule); padding-block: 1.15rem; gap: .5rem; }
.board-items p { font-size: 1.08rem; }
.board-items .board-src { font-size: .73rem; margin-top: .7rem; }
.board-side { padding-top: .6rem; }
.map { border-block: 1px solid var(--rule); padding-block: 1rem; }
.map figcaption { font-size: .65rem; line-height: 1.6; }
.legend { margin-top: 2rem; }
.legend dl div { gap: 1rem; grid-template-columns: 6rem 1fr; }
.legend dd { font-size: .78rem; }
.status { font: 650 .68rem/1.3 var(--sans); letter-spacing: .02em; }
.trackers { padding-block: 3.5rem; }
.trackers h2 { font-stretch: 67%; font-size: 2.7rem; font-weight: 850; letter-spacing: -.025em; }
.mini-timeline, .mini-claims { margin-top: 1.5rem; }
.mini-timeline li { padding-bottom: 1rem; border-bottom: 1px solid var(--rule); }
.mini-timeline time { font-size: .73rem; }
.mini-claims li { padding-bottom: 1rem; border-bottom: 1px solid var(--rule); gap: .5rem; }
.trackers .more { font-size: .8rem; }
.participate { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; padding-block: 4.5rem; }
.participate p { font-size: 1.1rem; color: var(--slate); max-width: 26rem; margin-top: 1rem; }
.participate-links > a { display: flex; align-items: baseline; gap: 1.2rem; border-top: 1px solid var(--rule); padding-block: 1.5rem; text-decoration: none; color: var(--ink); font: 650 1.35rem var(--sans); }
.participate-links > a:last-child { border-bottom: 1px solid var(--rule); }
.participate-links > a:hover { color: var(--alarm-text); }
.participate-links > a > span { font: .7rem var(--mono); color: var(--alarm-text); }
.participate-links b { margin-left: auto; font-weight: 400; color: var(--alarm-text); }
.participate-links small { display: block; font: .92rem/1.5 var(--serif); color: var(--slate); margin-top: .4rem; }

/* Article: generous display typography, readable prose and its evidence. */
.article-head { padding-top: 3rem; }
.article-head h1 { font-size: clamp(2.8rem, 6.8vw, 6.6rem); max-width: 26ch; font-stretch: 62%; font-weight: 850; line-height: .98; letter-spacing: -.025em; margin-top: 1rem; text-wrap: balance; }
.article-head .dek { font-size: clamp(1.2rem, 2.1vw, 1.75rem); max-width: 59rem; margin-top: 1.8rem; }
.byline { display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; padding-block: 1.3rem; margin-top: 1.2rem; font-size: .75rem; }
.byline p:last-child { flex-basis: 100%; }
.known { background: transparent; border-radius: 0; margin-top: 1rem; padding-block: 2rem; position: relative; }
.known::before, .known::after { position: absolute; content: ''; left: clamp(1.25rem, 4vw, 3.25rem); right: clamp(1.25rem, 4vw, 3.25rem); top: 0; border-top: 1px solid var(--slate); }
.known::after { top: auto; bottom: 0; border-color: var(--rule); }
.known h2 { font: 700 .75rem var(--sans); text-transform: uppercase; letter-spacing: .13em; }
.known-list, .unknown-list { gap: 1.1rem; margin-top: 1.3rem; }
.known-list li { gap: .4rem; }
.known-list p, .unknown-list li { font-size: 1.08rem; line-height: 1.5; }
.prose { margin-top: 2.6rem; font-size: 1.23rem; line-height: 1.7; }
.prose .row-main { color: #ddd9d0; }
.prose h2 { font-size: 2.2rem; color: var(--ink); font-stretch: 68%; }
.row-rail { font-size: .78rem; }
.row-rail a { color: #c8c4bb; }
.sources h2, .changes h2, .related h2 { border-top-width: 1px; padding-top: 1.5rem; }
.article-explore { margin-top: 3.5rem; padding-block: 2.5rem; background: var(--panel); }
.article-explore h2 { font: 550 2rem/1.2 var(--serif); }
.article-explore p { font-size: 1rem; color: var(--slate); margin-top: .5rem; }
.article-explore nav { display: flex; flex-wrap: wrap; gap: 1rem 2.2rem; margin-top: 1.5rem; }
.article-explore a { display: inline-flex; gap: 1rem; font: 650 .85rem var(--sans); color: var(--alarm-text); text-decoration: none; }
.page-head h1 { font-size: clamp(3rem, 6vw, 5.5rem); letter-spacing: -.035em; font-stretch: 65%; }
.page-head .dek { color: #c9c7be; }
.stories-wide { max-width: 65rem; border-top-width: 1px; }
.stories-wide .story { padding-block: 1.6rem; }
.stories-wide .story h3 { font: 550 clamp(1.6rem, 3vw, 2.3rem)/1.14 var(--serif); max-width: 42ch; }
.stories-wide .story-dek { max-width: 45rem; font-size: 1.1rem; margin-top: .8rem; color: #c9c7be; }
.stories-wide .story .meta { margin-top: .8rem; }
.esc-head { background: var(--paper); }
.esc-head h1 { font-size: clamp(3rem, 6vw, 5rem); font-stretch: 65%; }
.gauge { background: transparent; border-width: 0 0 1px; padding: .6rem 0 1rem; }
.gauge-region { color: var(--slate); }
.gauge-bars { flex-direction: row; }
.bar { height: .55rem; }
.bar-current { box-shadow: none; }
.gauge-num { font-size: 2.2rem; }
.gauge-read { float: right; margin-top: -.7rem; }
.gauge-of { font-size: 1rem; }
.gauge-theatre { padding-right: 4rem; }
.gauge-region { display: none; }
.gauge-caption { font-size: .75rem; }
.gauge-bars { clear: both; padding-top: .4rem; }
.gauge-stack { gap: .4rem; }
.level-key, .wire-level, .theatre-region { border-color: #66695f; }
.level-ahead .level-n { opacity: 1; }
.level-band-n { color: var(--slate); }
.level-current { border-left-width: 3px; }

/* Reader relationship and shared footer. */
.footer { background: var(--paper); padding-top: 0; border-top: 1px solid var(--rule); }
.reader-band { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 4rem; padding-block: 3.5rem; position: relative; }
.reader-band::after { content: ''; position: absolute; bottom: 0; left: clamp(1.25rem, 4vw, 3.25rem); right: clamp(1.25rem, 4vw, 3.25rem); border-bottom: 1px solid var(--rule); }
.reader-band h2 { font-size: clamp(2.4rem, 4.6vw, 4.3rem); font-weight: 900; font-stretch: 65%; text-transform: uppercase; line-height: .95; letter-spacing: -.025em; }
.reader-band h2 span { color: var(--alarm); }
.reader-band > div > p { color: var(--slate); font: 1rem/1.5 var(--serif); margin-top: 1rem; }
.signup { border: 0; background: transparent; padding: 0; }
.signup-heading { font: 650 1.2rem var(--serif); }
.signup-blurb { font-size: .95rem; }
.signup-row { flex-wrap: nowrap; }
.signup-input { border: 1px solid #6b6d61; border-radius: 0; min-width: 0; padding: .85rem; font: .88rem var(--sans); }
.signup-button { border: 1px solid var(--ink); background: var(--ink); color: var(--paper); padding: .85rem 1.3rem; font-size: .88rem; }
.signup-button:hover { background: var(--alarm); color: var(--paper); border-color: var(--alarm); }
.signup-fine { font-size: .68rem; }
.footer-grid { grid-template-columns: minmax(0, 1.6fr) 1fr 1fr; gap: 4rem; padding-top: 3rem; }
.footer-mark { font-size: 2.8rem; font-weight: 900; font-stretch: 62%; letter-spacing: -.045em; text-decoration: none; }
.footer-grid > div { max-width: 28rem; }
.footer-disclosure { color: var(--slate); font-size: .76rem; line-height: 1.65; }
.footer-nav-title { font: .65rem var(--mono); text-transform: uppercase; letter-spacing: .1em; color: var(--slate); margin-bottom: .9rem; }
.footer nav ul { gap: .55rem; }
.footer nav a { font-size: .83rem; font-weight: 500; text-decoration: none; }
.footer nav a:hover { color: var(--alarm-text); }
.footer-built { display: flex; flex-wrap: wrap; gap: .7rem 2rem; justify-content: space-between; font: .63rem/1.6 var(--mono); padding-top: 2rem; margin-top: 1.5rem; }
.footer-built a { color: var(--slate); text-decoration: none; }

@media (min-width: 90rem) { .cover-copy h1 { font-size: 8.7rem; } }
@media (max-width: 74rem) {
  .edition-line a, .nav .nav-support { display: none; }
  .cover { grid-template-columns: minmax(0, 1fr) 16rem; gap: 1.5rem; }
  .cover-monitor { padding-left: 1.3rem; }
  .cover-copy h1 { font-size: clamp(4.5rem, 9.7vw, 7.8rem); }
  .dispatch-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 0; }
  .dispatch:nth-child(3) { padding-left: 0; border: 0; }
  .dispatch:nth-child(2) { padding-right: 0; }
  .wires-layout { gap: 2.5rem; }
  .footer-grid { gap: 2rem; }
}
@media (max-width: 60rem) {
  .primary-nav { gap: 1.2rem; }
  .primary-nav a { font-size: .75rem; }
  .wordmark { font-size: 3.1rem; }
  .header-alert { font-size: .75rem; gap: 1rem; padding-inline: .8rem; }
  .nav a { font-size: .61rem; }
  .cover { grid-template-columns: minmax(0, 1fr) 14rem; }
  .cover-copy h1 { font-size: 6rem; }
  .cover-story .meta { display: block; margin: .7rem 0 0; }
  .cover-art { inset: 0 -1rem 0 -1rem; }
  .cover-art img { object-position: 60% center; }
  .monitor-heading h2 { font-size: 1.6rem; }
  .board-grid { grid-template-columns: 1fr; }
  .board-side { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
  .legend { margin-top: 1rem; }
  .wires-layout { grid-template-columns: 1fr; }
  .wires-intro { display: grid; grid-template-columns: 1fr 1fr; column-gap: 2.5rem; }
  .wires-intro > .section-index { grid-column: 1; }
  .wires-intro h2 { grid-column: 1; }
  .wires-intro > p { grid-column: 1; }
  .deadline { grid-column: 2; grid-row: 1 / 4; align-self: center; margin-top: 0; }
  .participate, .reader-band { gap: 2rem; }
  .footer-grid { grid-template-columns: 1.5fr 1fr 1fr; }
}
@media (max-width: 43rem) {
  .edition-line { font-size: .53rem; gap: .5rem; padding-block: .6rem; letter-spacing: 0; }
  .edition-line > span { max-width: 9rem; text-align: right; }
  .masthead-inner { padding-block: 1rem; gap: 1rem; }
  .wordmark { font-size: 3rem; }
  .primary-nav, .header-alert, .masthead > .nav { display: none; }
  .mobile-menu { display: block; }
  .mobile-menu summary { display: flex; gap: 1rem; align-items: center; list-style: none; cursor: pointer; padding: .65rem .8rem; border: 1px solid var(--rule); font: .75rem var(--sans); }
  .mobile-menu nav { position: absolute; left: 1.25rem; right: 1.25rem; top: calc(100% - .1rem); padding: 1rem 1.3rem; background: var(--panel); border: 1px solid var(--rule); z-index: 20; display: grid; grid-template-columns: 1fr 1fr; gap: .1rem 1rem; box-shadow: 0 16px 40px #0008; }
  .mobile-menu nav a { padding-block: .7rem; font: .8rem/1.35 var(--sans); color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--rule); }
  .cover { grid-template-columns: 1fr; padding-top: 1.5rem; border-top: 1px solid var(--rule); gap: 2rem; }
  .cover-copy h1 { font-size: clamp(4.7rem, 17vw, 7.3rem); }
  .cover-dek { font-size: 1.1rem; max-width: 26rem; margin-top: 1.4rem; }
  .cover-art { inset: -.7rem -1.25rem 8rem -1.25rem; }
  .cover-art img { object-position: 50% center; }
  .cover-art figcaption { display: none; }
  .cover-story { margin-top: 1.6rem; padding-top: 1rem; }
  .cover-story h2 { font-size: 1.6rem; }
  .cover-story-dek { font-size: 1rem; }
  .cover-story .meta { display: inline; margin-left: .65rem; font-size: .67rem; }
  .cover-monitor { border: 1px solid var(--rule); padding: 1.2rem; }
  .monitor-heading h2 { font-size: 1.75rem; }
  .monitor-heading h2 br { display: none; }
  .monitor-theatres { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1.2rem; }
  .monitor-name { font-size: .8rem; }
  .monitor-theatres a { min-height: 6.2rem; align-content: start; }
  .monitor-value { font-size: .92rem; }
  .monitor-caption { font-size: .67rem; }
  .monitor-completion { padding-top: .8rem; }
  .monitor-completion .comp-track { max-width: 18rem; }
  .monitor-note { max-width: 25rem; }
  .dispatches { padding-bottom: 2.5rem; }
  .section-heading h2 { font-size: 1.35rem; }
  .section-heading > a { font-size: .6rem; }
  .dispatch-grid { grid-template-columns: 1fr; margin-top: .2rem; gap: 0; }
  .dispatch, .dispatch:nth-child(3) { border: 0; border-bottom: 1px solid var(--rule); padding: 1.4rem 0; }
  .dispatch h3 { font-size: 1.7rem; }
  .dispatch-meta { font-size: .64rem; }
  .dispatch-dek { font-size: 1rem; }
  .wires { padding-block: 2.5rem; }
  .wires-intro { display: block; }
  .wires-intro > p { max-width: none; }
  .deadline { margin-top: 1.7rem; max-width: none; }
  .wire-detail summary { grid-template-columns: 1fr 1rem; gap: .55rem 1rem; }
  .wire-status { grid-column: 1; }
  .wire-title { grid-column: 1; font-size: 1.1rem; }
  .detail-toggle { grid-column: 2; grid-row: 1 / 3; }
  .wire-detail-body { margin-left: 0; }
  .board { padding-block: 3rem; }
  .board-side { grid-template-columns: 1fr; }
  .board-asof time { white-space: normal; }
  .board h2#board-title { font-size: 2.8rem; }
  .trackers { padding-block: 2.5rem; }
  .trackers h2 { font-size: 2.3rem; }
  .mini-timeline li { grid-template-columns: 6.3rem 1fr; gap: .7rem; }
  .mini-timeline time { font-size: .64rem; }
  .participate { grid-template-columns: 1fr; padding-block: 3rem; }
  .participate-links > a { font-size: 1.15rem; }
  .article-head { padding-top: 2rem; }
  .article-head h1 { font-size: clamp(2.6rem, 10.6vw, 4rem); }
  .article-head .dek { font-size: 1.25rem; margin-top: 1.3rem; }
  .byline time { white-space: normal; }
  .known { gap: 2rem; padding-block: 1.5rem; }
  .known-col + .known-col { border-top: 1px solid var(--rule); padding-top: 1.5rem; }
  .prose { font-size: 1.12rem; line-height: 1.65; }
  .row-rail { border-left: 2px solid var(--rule); padding-left: .7rem; margin-top: .6rem; }
  .row-rail ul { padding-left: 0; list-style: none; }
  .source-list { overflow-wrap: anywhere; padding-left: 1.4rem; }
  .article-explore nav { display: grid; gap: 1.2rem; }
  .reader-band { grid-template-columns: 1fr; padding-block: 2.5rem; gap: 1.6rem; }
  .reader-band h2 { font-size: 2.8rem; }
  .signup-row { gap: .4rem; }
  .signup-input { flex-basis: 9rem; }
  .signup-button { padding-inline: .85rem; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem 1rem; padding-top: 2rem; }
  .footer-grid > div { grid-column: 1/-1; }
  .footer-built { display: grid; gap: .8rem; }
  .esc-head .comp-big .comp-label { font-size: 1.4rem; }
  .esc-head .comp-big .comp-read { font-size: 3.6rem; }
  .theatre-head h2 { font-size: 2rem; }
  .level { gap: .7rem; grid-template-columns: 2rem 1fr; }
  .level-current { margin-inline: 0; padding-inline: .6rem; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; } }
@media print {
  :root { --paper: white; --ink: black; --slate: #444; --rule: #bbb; --panel: white; --lapis: #333; }
  body { background: white; color: black; }
  .edition-line, .masthead nav, .header-alert, .mobile-menu, .footer, .cover-art, .article-explore { display: none; }
  .article-head h1 { font-size: 32pt; }
  .prose .row-main { color: black; }
  .known { display: block; }
  .known-col + .known-col { margin-top: 1rem; }
  .article { padding: 0; }
}

/* editorial illustrations -- see /illustrations/.
   The caption is not decoration: these are generated pictures on a news site,
   so the credit is part of the picture and is never visually optional. */
.page-art { margin-block: 0 2.6rem; max-width: 58rem; }
.page-art.is-tall { max-width: 26rem; }
.page-art.is-square { max-width: 34rem; }
.page-art img { width: 100%; height: auto; display: block; border: 1px solid var(--rule); }
.page-art figcaption { margin-top: 0.6rem; display: flex; flex-wrap: wrap; gap: 0.2rem 0.8rem;
  font: .68rem/1.5 var(--mono); letter-spacing: .04em; color: var(--slate); }
.page-art-title { color: var(--ink); }
.page-art-credit { text-transform: uppercase; letter-spacing: .07em; font-size: .62rem; }
.page-art-credit a { color: var(--slate); }
.page-art-credit a:hover { color: var(--alarm-text); }

.gallery { margin-top: 3.4rem; border-top: 3px solid var(--ink); padding-top: 1.6rem; }
.gallery h2 { font-family: var(--sans); font-weight: 800; font-stretch: 75%; font-size: 1.7rem; line-height: 1.1; }
.gallery-item { margin-top: 2.6rem; max-width: 58rem; }
.gallery-item.is-tall { max-width: 26rem; }
.gallery-item.is-square { max-width: 34rem; }
.gallery-item img { width: 100%; height: auto; display: block; border: 1px solid var(--rule); }
.gallery-item figcaption { margin-top: 0.8rem; max-width: var(--measure); }
.gallery-item h3 { font: 550 1.35rem/1.15 var(--serif); letter-spacing: -.02em; }
.gallery-alt { margin-top: 0.4rem; font-size: 1rem; line-height: 1.5; color: var(--slate); }
.gallery-prompt { margin-top: 0.7rem; border-top: 1px solid var(--rule); padding-top: 0.6rem; }
.gallery-prompt summary { font: .7rem var(--mono); letter-spacing: .06em; text-transform: uppercase;
  color: var(--slate); cursor: pointer; }
.gallery-prompt summary:hover { color: var(--alarm-text); }
.gallery-prompt p { margin-top: 0.6rem; font: .84rem/1.6 var(--mono); color: var(--slate); }
@media (max-width: 40rem) { .page-art { margin-bottom: 1.8rem; } .gallery-item { margin-top: 2rem; } }

/* intensity — whether things are still getting worse where a theatre already
   stands. The level is a high-water mark; this is the part that can move
   every week without the level moving at all. */
.intensity { margin-top: 1.1rem; border-left: 3px solid var(--rule); padding: .1rem 0 .1rem .9rem; }
.intensity-head { font: .78rem/1.5 var(--mono); letter-spacing: .04em; text-transform: uppercase; color: var(--slate); }
.intensity-head strong { color: var(--ink); }
.intensity-dot { display: inline-block; width: .5rem; height: .5rem; margin-right: .45rem; vertical-align: baseline; background: var(--slate); }
.intensity-deepening { border-left-color: var(--alarm); }
.intensity-deepening .intensity-dot { background: var(--alarm); }
.intensity-deepening .intensity-head strong { color: var(--alarm-text); }
.intensity-easing { border-left-color: var(--safe); }
.intensity-easing .intensity-dot { background: var(--safe); }
.intensity-easing .intensity-head strong { color: var(--safe); }
.intensity-note { margin-top: .5rem; font-size: .96rem; line-height: 1.5; color: var(--slate); max-width: 46rem; }
.intensity-sources { margin-top: .5rem; display: flex; flex-wrap: wrap; gap: .3rem .9rem; list-style: none; padding: 0; font: .68rem var(--mono); }
.intensity-sources a { color: var(--slate); }
.intensity-sources a:hover { color: var(--alarm-text); }
.monitor-intensity { display: block; margin-top: .3rem; font: .62rem var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--slate); }
.monitor-intensity-deepening { color: var(--alarm-text); }
.monitor-intensity-easing { color: var(--safe); }

/* Weapons of mass destruction, measured off the ladder. Deliberately not
   styled as a level: it is a different question, true or not at any level. */
.wmd { margin-top: 1.4rem; border: 1px solid var(--rule); padding: .9rem 1rem; max-width: 52rem; }
.wmd-head { font: .74rem/1.5 var(--mono); letter-spacing: .05em; text-transform: uppercase; color: var(--slate); }
.wmd-head strong { color: var(--safe); }
.wmd-head span { display: block; margin-top: .2rem; font-size: .62rem; color: #6f6f68; text-transform: none; letter-spacing: .03em; }
.wmd-cbr .wmd-head strong, .wmd-nuclear_battlefield .wmd-head strong, .wmd-nuclear_strategic .wmd-head strong { color: var(--alarm-text); }
.wmd-cbr, .wmd-nuclear_battlefield, .wmd-nuclear_strategic { border-color: var(--alarm); }
.wmd-note { margin-top: .55rem; font-size: .95rem; line-height: 1.5; color: var(--slate); }

/* ═══════════════════════════════════════════════════════════════════════
   MOTION — Surgical personality.

   This site is about nuclear war. Spring overshoot, bounce and playful
   physics would be obscene here, so nothing overshoots: motion is crisp,
   short, functional, and gets out of the way of the reading. Three curves,
   no more, so the whole page sounds like one instrument.

   CSS only. The site ships zero JavaScript and /privacy/ promises it, so
   scroll reveals run on `animation-timeline: view()` rather than an
   IntersectionObserver. That is gated behind @supports: a browser without
   scroll-driven animation must never be left holding an invisible page.

   Mobile first, because that is where most readers are and where the old
   page felt deadest: shorter travel, faster durations, and press feedback
   on everything, since a phone has no hover to give feedback with.
   ═══════════════════════════════════════════════════════════════════════ */

:root {
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);      /* entries, reveals */
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);  /* state changes */
  --ease-snap: cubic-bezier(0.22, 1, 0.36, 1);    /* press, hover, feedback */
  --lift: -2px;                                    /* one lift distance, everywhere */
  --rise: 14px;                                    /* one reveal distance, everywhere */
}

@media (prefers-reduced-motion: no-preference) {

  /* ── Entry. The masthead arrives, then the page under it. Total under 500ms:
        a reader came for the escalation number, not for a curtain. ── */
  @keyframes rise { from { opacity: 0; transform: translate3d(0, var(--rise), 0); } }
  @keyframes settle { from { opacity: 0; } }

  .masthead { animation: settle 320ms var(--ease-out) both; }
  .masthead-inner { animation: rise 420ms var(--ease-out) both; animation-delay: 40ms; }
  .masthead .nav { animation: rise 420ms var(--ease-out) both; animation-delay: 110ms; }
  main > * { animation: rise 480ms var(--ease-out) both; animation-delay: 150ms; }

  /* ── Scroll reveal. One animation for everything that reveals, so the page
        reads as one hand. Gated: without view() support nothing is hidden. ── */
  @supports (animation-timeline: view()) {
    .story, .theatre, .tl-entry, .gallery-item, .board-row, .claim-row,
    .page-body > h2, .page-body > table, .contribute-group, .footer-grid > * {
      animation: rise 520ms var(--ease-out) both;
      animation-timeline: view();
      animation-range: entry 0% entry 42%;
    }
    /* The monitor is a row of five; stagger tells the eye where to start. */
    .monitor-theatres > * { animation: rise 460ms var(--ease-out) both;
      animation-timeline: view(); animation-range: entry 0% entry 38%; }
  }

  /* ── The mobile menu is the one state change on the site. ── */
  .mobile-menu[open] > nav { animation: rise 260ms var(--ease-out) both; }
  .mobile-menu summary { transition: color 160ms var(--ease-snap); }
  .mobile-menu[open] summary span { transform: rotate(45deg); }
  .mobile-menu summary span { display: inline-block; transition: transform 240ms var(--ease-in-out); }
}

/* ── Feedback. NOT inside prefers-reduced-motion: a user who asks for less
      motion still needs to know their tap registered. Kept to colour and a
      2px press, which is feedback rather than animation. ── */
.button, .contribute-button, .give, .text-link, .nav-list a, .primary-nav a,
.footer a, .nav-support a, .signup button, .mobile-menu summary {
  transition: color 160ms var(--ease-snap), background-color 160ms var(--ease-snap),
              border-color 160ms var(--ease-snap), transform 160ms var(--ease-snap);
}
.button:active, .contribute-button:active, .give:active, .signup button:active {
  transform: translate3d(0, 1px, 0);
}

/* Hover only where there is a real pointer. On a phone :hover fires on tap and
   sticks, which reads as a stuck button. */
@media (hover: hover) and (pointer: fine) {
  .button:hover, .contribute-button:hover, .give:hover { transform: translate3d(0, var(--lift), 0); }
  .story h3 a:hover, .cover-story h2 a:hover { color: var(--alarm-text); }
}

/* ── The contribution link. The only element on the site allowed to glow, and
      only on the section nav where it has to compete with the headlines. ── */
.give-head { margin-left: auto; }
.menu-give { color: var(--alarm-text) !important; }
.give {
  display: inline-block; padding: .3rem .7rem; border: 1px solid var(--alarm);
  color: var(--alarm-text); font: .68rem var(--mono); letter-spacing: .06em;
  text-transform: uppercase; text-decoration: none; white-space: nowrap;
}
.give:hover, .give:focus-visible { background: var(--alarm); color: var(--paper); }
.give-why { font: .62rem var(--mono); letter-spacing: .05em; color: var(--slate); text-decoration: none; }
.give-why:hover { color: var(--alarm-text); }
.band-give { margin-top: 1rem; font-size: .95rem; line-height: 1.55; color: var(--slate); max-width: 40rem; }
.band-give .give { margin-inline: .15rem; }

/* ── Mobile. Less travel, faster, bigger targets. ── */
@media (max-width: 40rem) {
  :root { --rise: 10px; }
  main > * { animation-duration: 380ms; }
  .give { padding: .42rem .8rem; font-size: .72rem; }       /* thumb-sized */
  .nav-support { width: 100%; justify-content: space-between; margin-top: .6rem; }
  .band-give { font-size: .92rem; }
}

@media (prefers-reduced-motion: reduce) {
  .masthead, .masthead-inner, .masthead .nav, main > *, .mobile-menu[open] > nav,
  .story, .theatre, .tl-entry, .gallery-item, .monitor-theatres > * {
    animation: none !important;
  }
}

/* The contribution control sits in the masthead so it survives every
   breakpoint. It used to live in the section nav, which is hidden below
   74rem and again below 43rem -- meaning the button asking for money was
   invisible on every phone and most laptops. */
@media (max-width: 43rem) {
  /* Three things must share one bar at 390px: nameplate, contribution, menu.
     The nameplate yields, because it is the one a reader does not need to
     read -- they already know what site they are on. */
  .masthead-inner { gap: .55rem; }
  .wordmark { font-size: clamp(1.9rem, 9vw, 2.4rem); }
  .give-head { margin-left: auto; padding: .38rem .55rem; font-size: .6rem; letter-spacing: .04em; }
  .give-head b { font-weight: 700; }
  .mobile-menu summary { padding: .4rem .6rem; font-size: .7rem; }
}

/* End of article. Most readers arrive from a link, read one report and leave
   without seeing the front page, and 68% of them are on a phone. This is the
   only moment the site gets with them, so it is built for a thumb: the
   contribution first, the optional alert form second, navigation last. */
.article-next { border-top: 3px solid var(--ink); padding-top: 1.6rem; margin-top: 3rem; }
.article-next h2 { font-family: var(--sans); font-weight: 800; font-stretch: 72%;
  font-size: clamp(1.6rem, 4.5vw, 2.3rem); line-height: 1.06; letter-spacing: -.02em; max-width: 26ch; }
.article-next-lede { margin-top: .9rem; font-size: 1.06rem; line-height: 1.55; max-width: 44rem; color: var(--slate); }
.article-next-lede a { color: var(--alarm-text); }
.article-next .signup { margin-top: 1.4rem; max-width: 44rem; }
.article-next-give { margin-top: 2rem; border-left: 3px solid var(--rule); padding-left: 1.1rem; max-width: 44rem; }
.article-next-give p { font-size: 1rem; line-height: 1.55; color: var(--slate); }
.article-next-give p + p { margin-top: .9rem; }
.article-next-give strong { color: var(--ink); }
.give-big { padding: .7rem 1.2rem; font-size: .8rem; }
.article-next-fine { font-size: .9rem !important; color: #8a8880 !important; }
.article-next-nav { margin-top: 2.2rem; display: flex; flex-wrap: wrap; gap: .5rem 1.6rem;
  border-top: 1px solid var(--rule); padding-top: 1rem; }
.article-next-nav a { font: .72rem var(--mono); letter-spacing: .05em; text-transform: uppercase;
  color: var(--slate); text-decoration: none; }
.article-next-nav a:hover { color: var(--alarm-text); }

@media (max-width: 40rem) {
  .article-next { margin-top: 2.2rem; }
  .give-big { display: block; text-align: center; padding: .85rem 1rem; font-size: .84rem; }
  .article-next-give .give-why { display: inline-block; margin-top: .7rem; }
  .article-next-nav { gap: .55rem 1.2rem; }
}

/* First $1,000 reader-funding appeal: existing editorial type and square links. */
.donation-first { margin: 1.5rem 0 3rem; }
.donation-first .contribute-group { margin-top: 1.2rem; }
.donation-first .contribute-button { min-height: 64px; justify-content: center; }
.monthly-choice { margin-top: 1.6rem; border-top: 1px solid var(--rule); padding-top: 1rem; }
.monthly-choice summary { cursor: pointer; font-family: var(--sans); min-height: 44px; }
.donation-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin: 1.3rem 0 1rem; }
.donation-actions .give { display: flex; align-items: center; justify-content: center; min-height: 48px; }
.article-alert-follow { border-top: 1px solid var(--rule); padding-top: 1.4rem; margin-top: 1.7rem; }
.article-alert-follow h3 { font-family: var(--sans); font-size: 1.25rem; }
@media (max-width: 40rem) { .donation-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .donation-actions .give { padding: .7rem .35rem; font-size: .7rem; white-space: normal; } }

/* Keep the tablet masthead inside the viewport; alerts remain in navigation. */
@media (min-width: 43.01rem) and (max-width: 56rem) {
  .header-alert { display: none; }
}

/* Native article footage: same-origin, user-initiated playback. */
.article-video { margin-block: 2rem 3rem; }
.article-video video { display: block; width: 100%; max-width: 40rem; max-height: 70vh; height: auto; background: #101110; }
.article-video figcaption { max-width: 40rem; font-size: .9rem; line-height: 1.55; }
.article-video figcaption p { margin-block: .75rem; }

/* Keep all three header controls inside narrow phone screens. */
@media (max-width: 22.5rem) {
  .masthead-inner { gap: .35rem; }
  .wordmark { font-size: 1.6rem; }
  .mobile-menu summary { gap: .35rem; }
}

/* Reader experiments: same editorial palette; roomy, ordinary controls. */
.lab {padding-bottom:4rem}.lab-head {padding:3rem 0 2rem}.lab-head h1 {font-family:var(--sans);font-stretch:condensed;font-weight:850;font-size:clamp(3.5rem,8vw,7rem);line-height:.95;letter-spacing:-.045em;margin:1rem 0 1.5rem}.lab-head h1 span{color:#ef5738}.lab-dek{font-size:clamp(1.2rem,2.5vw,1.6rem);max-width:40rem}.lab-jump{display:flex;gap:1.5rem;flex-wrap:wrap;margin-top:2rem;font-family:var(--sans);font-weight:700}.lab-section{border-top:1px solid #66685f;padding:2.5rem 0;scroll-margin-top:1rem}.lab-section-head{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:end;margin-bottom:1.5rem}.lab-section h2{font-family:var(--sans);font-size:clamp(2.5rem,5vw,4.25rem);font-stretch:condensed;line-height:1.02;letter-spacing:-.025em;margin:.5rem 0}.lab-section-head>p{max-width:37rem;font-size:1.2rem}.lab-notice{border-left:3px solid #ef5738;padding:.6rem 1rem;color:#ddd8cf;font-size:1rem}.lab-presets{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem;margin:1.5rem 0;font-family:var(--sans)}.lab button{border:1px solid #777b70;background:#191b18;color:#eee9df;font:600 1rem/1.35 var(--sans);padding:.75rem 1rem;min-height:44px;cursor:pointer;border-radius:0}.lab button:hover,.lab button[aria-pressed=true]{background:#eee9df;color:#101110}.lab button:focus-visible,.lab input:focus-visible,.lab summary:focus-visible{outline:3px solid #ff947b;outline-offset:4px}.lab-grid{display:grid;grid-template-columns:minmax(230px,1fr) minmax(0,2.1fr);gap:2.5rem}.lab-controls{font-family:var(--sans)}.lab-controls fieldset{margin:0 0 1.5rem;border:0;padding:0;min-width:0}.lab-controls legend{font-size:1.25rem;font-weight:750;margin-bottom:1rem}.lab-controls label{display:flex;justify-content:space-between;gap:.75rem;font-size:1rem;margin-top:.85rem}.lab-controls output{font-weight:750;color:#ff947b;white-space:nowrap}.lab-controls input[type=range]{display:block;width:100%;height:36px;accent-color:#ef5738;cursor:pointer;margin:.2rem 0}.lab-hint{font-size:.9rem;line-height:1.5;color:#c4c1b8;margin:.3rem 0}.lab-result-head{border-top:3px solid #ef5738;padding:1rem 0 .5rem}.lab-result-head h3{font:750 clamp(1.6rem,3vw,2.3rem)/1.15 var(--sans);margin:.5rem 0}.lab-result-head p{margin:.4rem 0}.lab-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;border-block:1px solid #55594e;padding:1.2rem 0;margin:1rem 0}.lab-stats strong{display:block;font:750 clamp(1.6rem,3vw,2.8rem)/1.1 var(--sans);font-variant-numeric:tabular-nums;color:#f1c886}.lab-stats span{font:400 .9rem/1.4 var(--sans);display:block;margin-top:.4rem}.lab-chart{margin:0}.lab-chart svg{display:block;width:100%;height:auto;overflow:visible}.chart-grid{stroke:#45493f;stroke-width:1}.chart-label{fill:#ddd8cf;font:13px var(--sans)}.chart-bar{fill:#a8c294}.chart-bar.shortfall{fill:#ef5738}.chart-baseline{fill:none;stroke:#eee9df;stroke-width:2.5;stroke-dasharray:5 4}.lab-chart figcaption{font:.9rem/1.5 var(--sans);color:#ccc7bc}.lab-key{display:inline-block;margin-right:1rem}.lab-key:before{content:'';display:inline-block;width:1.2rem;margin-right:.4rem;border-top:3px solid #a8c294;vertical-align:middle}.lab-key.dashed:before{border-top:3px dashed #eee9df}.lab-chart figcaption p{margin:.5rem 0}.lab-comparison{font-size:1rem}.lab-details{border-top:1px solid #55594e;padding:1rem 0}.lab-details summary{font-family:var(--sans);font-weight:650;cursor:pointer;min-height:32px}.lab-method{margin-top:2rem}.lab-method>div{max-width:48rem}.lab-table-scroll{overflow-x:auto}.lab table{border-collapse:collapse;width:100%;font: .9rem/1.5 var(--sans);font-variant-numeric:tabular-nums}.lab th,.lab td{padding:.6rem;text-align:right;border-bottom:1px solid #45493f}.lab caption{text-align:left;padding:.8rem 0}.lab-share{margin-top:1rem}.lab-share p{font-size:1rem}.lab-share input{box-sizing:border-box;width:100%;background:#191b18;color:#eee9df;border:1px solid #777b70;font:1rem var(--sans);padding:.8rem;margin:.5rem 0}.lab-share label{font-family:var(--sans);font-size:1rem}.evidence-board{max-width:52rem;border-left:3px solid #ef5738;padding:1.5rem 2rem;background:#191b18}.evidence-board h3{font:700 clamp(1.5rem,3vw,2rem)/1.2 var(--sans);margin:.6rem 0}.evidence-options{display:grid;gap:.7rem;margin:1.5rem 0}.evidence-options button{text-align:left;font-weight:500}.evidence-options button:disabled{opacity:.65;cursor:default;background:#191b18;color:#eee9df}.evidence-options button.evidence-correct{opacity:1;border-color:#a8c294;background:#243220;color:#e1eed7}.evidence-board [role=status]:not(:empty){border-top:1px solid #55594e;padding-top:1rem}.evidence-board [role=status] strong{font-family:var(--sans)}.lab-close{margin-top:2rem;max-width:45rem}.lab-teaser{display:grid;grid-template-columns:1.2fr 1fr;gap:2rem;margin-top:2rem;margin-bottom:2rem;padding-top:2rem;padding-bottom:2rem;border-block:1px solid #66685f}.lab-teaser h2{font:750 clamp(2rem,4vw,3rem)/1.1 var(--sans);margin:.5rem 0}.lab-teaser p{max-width:35rem}.lab-teaser-links{display:flex;flex-direction:column;justify-content:center;gap:1rem;font-family:var(--sans);font-weight:650}.lab-article-link{border-block:1px solid #66685f;padding-block:1rem;margin-block:2rem}.lab-article-link p{margin:.5rem 0}.lab [hidden]{display:none!important}
@media(max-width:760px){.lab-grid,.lab-section-head,.lab-teaser{grid-template-columns:1fr;gap:1.25rem}.lab-head{padding-top:2rem}.lab-controls{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.lab-controls fieldset{margin-bottom:.5rem}.lab-controls .lab-reset{grid-column:1/-1;justify-self:start}.evidence-board{padding:1rem}.lab-stats{gap:.5rem}.lab-stats span{font-size:.85rem}.lab-presets{gap:.5rem}.lab-chart svg{min-height:145px}.lab-section-head>p{margin:0}}
@media(max-width:420px){.lab-controls{grid-template-columns:1fr}.lab-controls label{font-size:1.05rem}.lab-head h1{font-size:3.6rem}.lab-jump{gap:.8rem}.lab-stats strong{font-size:1.55rem}.lab button{padding:.7rem .8rem}.lab th,.lab td{padding:.45rem}.lab-section{padding-block:2rem}}
@media print{.lab-controls,.lab-presets,.lab-share,.evidence-options,.lab button{display:none}.lab-grid{display:block}.lab-chart{break-inside:avoid}}

/* Simplified publication header: one row, three destinations, one menu. */
.simple-header {position:relative;z-index:25;border-bottom:1px solid var(--rule)}
.simple-header .masthead-inner {min-height:88px;gap:2rem;align-items:center;flex-wrap:nowrap;padding-block:1.2rem}
.simple-header .masthead-inner::before {content:none}
.simple-header .wordmark {font-size:clamp(2.25rem,3.5vw,3rem);flex-shrink:0}
.simple-header .primary-nav {display:flex;gap:2rem;margin-left:auto;margin-right:0}
.simple-header .primary-nav a {font:600 1rem/1.4 var(--sans);text-transform:none;letter-spacing:0;min-height:44px;display:flex;align-items:center}
.site-menu {flex-shrink:0;font-family:var(--sans)}
.site-menu>summary {display:flex;align-items:center;justify-content:center;gap:.85rem;min-height:44px;padding:.55rem .9rem;border:1px solid #777b70;list-style:none;cursor:pointer;font:600 1rem/1.4 var(--sans);color:var(--ink)}
.site-menu>summary::-webkit-details-marker {display:none}
.menu-symbol::before {content:'+';font-size:1.3rem;line-height:1}
.site-menu[open] .menu-symbol::before {content:'−'}
.site-menu>summary:hover,.site-menu[open]>summary {background:var(--ink);color:var(--paper)}
.site-menu-panel {position:absolute;top:calc(100% - 1px);right:clamp(1.1rem,4vw,2.5rem);width:min(25rem,calc(100% - 2.2rem));max-height:75vh;overflow-y:auto;padding:.7rem 1.3rem 1rem;background:#191b18;border:1px solid #777b70;box-shadow:0 18px 32px #0007}
.site-menu:not([open])>.site-menu-panel {display:none}
.site-menu-quick {display:none}
.site-menu-group {border-bottom:1px solid #45493f}
.site-menu-group:last-child {border-bottom:0}
.site-menu-group>summary {padding:1rem 0;cursor:pointer;font:650 1.05rem/1.4 var(--sans);min-height:44px}
.site-menu-group>div {display:grid;padding:0 0 .7rem .8rem}
.site-menu-group:not([open])>div {display:none}
.site-menu-panel a {color:var(--ink);font:450 1rem/1.45 var(--sans);padding:.65rem 0;text-decoration:none;min-height:44px}
.site-menu-panel a:hover,.site-menu-panel a[aria-current] {color:#ff947b;text-decoration:underline}
.site-menu summary:focus-visible,.site-menu a:focus-visible {outline:3px solid #ff947b;outline-offset:3px}
@media(max-width:700px){
 .simple-header .masthead-inner {min-height:76px;gap:1rem;padding-block:1rem}
 .simple-header .primary-nav {display:none}
 .simple-header .wordmark {font-size:2.4rem}
 .site-menu {margin-left:auto}
 .site-menu-panel {left:1.1rem;right:1.1rem;width:auto}
 .site-menu-quick {display:grid;border-bottom:1px solid #45493f;padding:.25rem 0 .75rem}
 .site-menu-quick a {font-weight:650}
}
@media(max-width:350px){.simple-header .wordmark{font-size:2.1rem}.site-menu>summary{padding:.5rem .7rem;gap:.6rem}}
@media print{.simple-header .site-menu,.simple-header .primary-nav{display:none}.simple-header{border:0}}

/* News-led front page, September 20: reporting first; compact reader tools. */
.news-edition {display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-block:.85rem;font:500 .95rem/1.5 var(--sans)}
.news-edition p {margin:0;color:var(--ink)}
.news-edition time {font-size:.85rem;color:#c4c1b8;white-space:nowrap}
.news-tools {position:sticky;top:0;z-index:20;background:#191b18;border-block:1px solid #45493f}
.news-tools>.wrap {display:flex;align-items:center;gap:1.8rem;min-height:46px;font:550 .95rem/1.4 var(--sans)}
.news-tools>.wrap>span {color:#b6b3aa;font-weight:400;margin-right:auto}
.news-tools a {padding:.7rem 0;color:#eee9df;text-decoration:none}
.news-tools a:hover {color:#ff947b;text-decoration:underline}
.news-front {display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:3rem;padding-block:2rem 2.5rem}
.news-lead .kicker {font-size:.82rem;letter-spacing:.045em;margin:0 0 .8rem}
.news-lead h1 {font:650 clamp(2rem,3.4vw,3.2rem)/1.13 var(--serif);letter-spacing:-.025em;text-wrap:pretty;margin:0 0 1rem}
.news-lead h1 a,.news-latest h3 a,.news-more h3 a {color:var(--ink);text-decoration:none}
.news-lead h1 a:hover,.news-latest h3 a:hover,.news-more h3 a:hover {text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em}
.news-lead-dek {font-size:1.2rem;line-height:1.55;margin:0 0 1rem;max-width:44rem;color:#ded9cf}
.news-meta {font:450 .85rem/1.5 var(--sans);color:#c4c1b8;margin:.6rem 0}
.news-lead-media {margin:1.2rem 0}
.news-lead-media>a {display:block;position:relative;background:#191b18}
.news-lead-media img {display:block;width:100%;height:220px;object-fit:cover;object-position:center}
.news-lead-media>a>span {position:absolute;bottom:0;left:0;right:0;padding:.8rem 1rem;background:#101110eb;color:#eee9df;font:600 .95rem/1.4 var(--sans)}
.news-lead-media figcaption {font:.8rem/1.5 var(--sans);color:#c4c1b8;margin-top:.5rem}
.news-latest {border-left:1px solid #55594e;padding-left:2rem}
.news-section-heading {display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.news-section-heading h2,.news-explore h2 {font:700 1.25rem/1.3 var(--sans);letter-spacing:0;margin:0;text-transform:none}
.news-section-heading>a {font:500 .9rem/1.4 var(--sans);white-space:nowrap}
.news-latest ol {list-style:none;margin:0;padding:0}
.news-latest li {padding:1.1rem 0;border-top:1px solid #45493f}
.news-latest li:first-child {padding-top:.2rem;border:0}
.news-latest h3 {font:600 clamp(1.25rem,1.8vw,1.65rem)/1.25 var(--serif);letter-spacing:-.01em;margin:.4rem 0}
.news-reader-note {font:500 .9rem/1.5 var(--sans);padding-top:1rem;border-top:1px solid #45493f}
.news-monitor {padding-block:1.25rem;border-block:1px solid #66685f}
.news-monitor .news-section-heading {margin-bottom:.8rem}
.news-monitor .news-section-heading p {font:.8rem/1.4 var(--sans);color:#c4c1b8;margin:0}
.news-monitor h2 a {color:var(--ink);text-decoration:none}
.news-monitor ul {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;list-style:none;margin:0;padding:0}
.news-monitor li {border-left:1px solid #45493f;padding-left:1rem}
.news-monitor li:first-child {padding-left:0;border:0}
.news-monitor li a {display:grid;grid-template-columns:1fr auto;gap:.25rem .6rem;text-decoration:none;color:var(--ink);font:550 .9rem/1.4 var(--sans)}
.news-monitor li a:hover>span:first-child {text-decoration:underline}
.news-monitor strong {font-weight:750;color:#f1c886;font-size:1.2rem}
.news-monitor small {font-size:.8rem;color:#c4c1b8;font-weight:400}
.news-level-name {grid-column:1/-1;font-size:.78rem;font-weight:400;color:#c4c1b8}
.news-monitor>.news-meta {margin-top:.9rem;margin-bottom:0}
.news-explore {display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-block:1.3rem;border-bottom:1px solid #66685f}
.news-explore p {font-size:1rem;margin:.3rem 0 0}
.news-explore>div:last-child {display:grid;gap:.5rem;font:550 .95rem/1.4 var(--sans)}
.news-more {padding-block:2rem}
.news-more-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 3rem}
.news-more-grid article {border-top:1px solid #45493f;padding-top:1rem}
.news-more h3 {font:600 1.65rem/1.25 var(--serif);letter-spacing:-.015em;margin:.6rem 0}
.news-more-grid article>p:not([class]) {font-size:1.05rem;margin:.6rem 0}
.news-background {border-block:1px solid #45493f;margin-block:1rem 0}
.news-background>summary {padding-block:1rem;cursor:pointer;font:650 1.1rem/1.5 var(--sans)}
.news-background>summary>span {display:block;font-weight:400;font-size:.9rem;color:#c4c1b8}
.news-background:not([open])>.news-background-body {display:none}
.home-page .participate {padding-block:2.5rem}
.home-page .participate h2 {font-size:clamp(2rem,3vw,3rem)}
@media(max-width:1000px){.news-front{gap:2rem;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.news-latest{padding-left:1.5rem}.news-monitor ul{gap:.6rem}.news-monitor li{padding-left:.6rem}.news-monitor li a{display:block}.news-monitor strong{display:block}.news-monitor .news-level-name{display:block}}
@media(max-width:700px){
 .news-edition{display:block;padding-block:.7rem}.news-edition time{display:none}
 .news-edition p{font-size:.9rem}
 .news-tools>.wrap{gap:1.1rem;justify-content:space-between;min-height:44px;font-size:.9rem}
 .news-tools>.wrap>span{display:none}
 .news-front{grid-template-columns:1fr;gap:1.8rem;padding-block:1.4rem 1.8rem}
 .news-lead h1{font-size:2rem;line-height:1.16}.news-lead-dek{font-size:1.1rem}
 .news-lead-media img{height:185px}
 .news-latest{padding:1.3rem 0 0;border-left:0;border-top:1px solid #66685f}
 .news-latest h3{font-size:1.4rem}
 .news-monitor .news-section-heading{display:block}.news-monitor .news-section-heading p{margin-top:.5rem}
 .news-monitor ul{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem}
 .news-monitor li,.news-monitor li:first-child{border:0;padding:0;flex:1 1 130px}
 .news-monitor li a{display:grid;grid-template-columns:1fr auto}.news-monitor .news-level-name{display:none}
 .news-explore{display:block;padding-block:1.2rem}.news-explore>div:last-child{margin-top:.8rem;gap:.75rem}
 .news-more-grid{grid-template-columns:1fr;gap:1.5rem}.news-more h3{font-size:1.5rem}
}
@media print{.news-tools{position:static}.news-lead-media img{height:auto;max-height:220px}.news-front{display:block}}

@media(max-width:350px){.news-tools a>span{display:none}.news-tools>.wrap{gap:.8rem;font-size:.875rem}}

.comp-w75 { width: 75%; }
