:root {
  --ink: #172234;
  --ink-soft: #4a5565;
  --paper: #f8f6f1;
  --surface: #ffffff;
  --line: #d8d2c7;
  --accent: #8a5b1f;
  --accent-dark: #684215;
  --max: 1180px;
  --measure: 72ch;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.65;
}

a { color: var(--accent-dark); }
a:hover { color: var(--accent); }
a:focus-visible, button:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
img { max-width: 100%; height: auto; }

.skip-link {
  position: absolute;
  left: 1rem;
  top: -5rem;
  background: var(--ink);
  color: white;
  padding: .75rem 1rem;
  z-index: 100;
}
.skip-link:focus { top: 1rem; }

.site-header {
  border-bottom: 1px solid var(--line);
  background: rgba(248, 246, 241, .97);
}
.header-inner,
.site-footer,
main {
  width: min(calc(100% - 2rem), var(--max));
  margin-inline: auto;
}
.header-inner {
  min-height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}
.brand {
  color: var(--ink);
  text-decoration: none;
  font-weight: 800;
  letter-spacing: -.02em;
  display: inline-flex;
  align-items: center;
  gap: .55rem;
}
.brand-mark {
  flex: 0 0 auto;
  width: 1.5rem;
  height: 1.75rem;
  background: var(--ink);
  -webkit-mask: url('/assets/visual/brand/compact-crest.svg') center / contain no-repeat;
  mask: url('/assets/visual/brand/compact-crest.svg') center / contain no-repeat;
}
.primary-nav { display: flex; gap: 1.2rem; flex-wrap: wrap; }
.primary-nav a {
  color: var(--ink);
  text-decoration: none;
  font-weight: 650;
}
.primary-nav a[aria-current="page"] { text-decoration: underline; text-underline-offset: .35rem; }

.hero { padding: clamp(4rem, 9vw, 8rem) 0 4rem; }
.eyebrow {
  margin: 0 0 1rem;
  color: var(--accent-dark);
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
h1, h2, h3 { line-height: 1.12; letter-spacing: -.035em; }
h1 { max-width: 14ch; margin: 0; font-size: clamp(2.8rem, 7vw, 6.2rem); }
h2 { font-size: clamp(2rem, 4vw, 3.5rem); margin: 0 0 1rem; }
h3 { font-size: 1.35rem; margin: 0 0 .7rem; }
.lede { max-width: var(--measure); font-size: clamp(1.15rem, 2vw, 1.45rem); color: var(--ink-soft); }
.hero .lede { margin-top: 1.5rem; max-width: 60ch; }

/* Institutional hero plate: an engraved seal on a dark field, text stays HTML. */
.hero-institutional {
  position: relative;
  isolation: isolate;
  margin-top: 1px;
  padding: clamp(4rem, 9vw, 8rem) clamp(1.2rem, 4vw, 3rem) clamp(3.5rem, 7vw, 6rem);
  color: #f2ecdf;
  background: #061426 url('/assets/visual/heroes/hero-home.svg') center / cover no-repeat;
}
.hero-institutional.hero-guide { background-image: url('/assets/visual/heroes/hero-guide.svg'); }
.hero-institutional::before {
  content: "";
  position: absolute; inset: 0; z-index: -2;
  background: linear-gradient(90deg, rgba(5,18,34,.97) 0 46%, rgba(5,18,34,.7) 70%, rgba(5,18,34,.28) 100%);
}
.hero-institutional::after {
  content: "";
  position: absolute; z-index: -1;
  width: min(52vw, 40rem); aspect-ratio: 96 / 112;
  right: -4vw; top: 50%; transform: translateY(-50%);
  background: url('/assets/visual/brand/seal-full.png') center / contain no-repeat;
  opacity: .8; pointer-events: none;
}
.hero-institutional > * { max-width: 62ch; }
.hero-institutional h1 { color: #f7f2e8; }
.hero-institutional .eyebrow { color: #d8b56b; }
.hero-institutional .lede { color: #d9d2c4; }
.hero-institutional .button { border-color: #f2ecdf; color: #f2ecdf; }
.hero-institutional .button:hover { background: rgba(242,236,223,.12); color: #fff; }
.hero-institutional .button.primary { background: #f2ecdf; color: #0b1b30; border-color: #f2ecdf; }
.hero-institutional .button.primary:hover { background: #fff; color: #0b1b30; }
@media (max-width: 850px) {
  .hero-institutional::after { width: 70vw; opacity: .5; right: -14vw; }
}

/* Research illustrative figure */
.research-figure { margin: 1.5rem 0 0; }
.research-figure img { width: 100%; height: auto; border: 1px solid var(--line); background: var(--surface); }
.research-figure figcaption { color: var(--ink-soft); font-size: .9rem; margin-top: .5rem; }

.button-row { display: flex; gap: .8rem; flex-wrap: wrap; margin-top: 2rem; }
.button {
  display: inline-block;
  border: 1px solid var(--ink);
  padding: .78rem 1rem;
  color: var(--ink);
  text-decoration: none;
  font-weight: 750;
  background: transparent;
}
.button.primary { background: var(--ink); color: white; }
.button.primary:hover { background: #25344b; color: white; }

.section { padding: clamp(3rem, 7vw, 6rem) 0; border-top: 1px solid var(--line); }
.section-intro { max-width: var(--measure); margin-bottom: 2rem; }
.grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.card {
  background: var(--surface);
  border: 1px solid var(--line);
  padding: clamp(1.3rem, 2.5vw, 2rem);
}
.card p:last-child { margin-bottom: 0; }

.sequence { counter-reset: step; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; padding: 0; list-style: none; }
.sequence li {
  counter-increment: step;
  border-top: 3px solid var(--ink);
  padding-top: 1rem;
}
.sequence li::before { content: "0" counter(step); display: block; color: var(--accent-dark); font-weight: 800; margin-bottom: .4rem; }

.callout {
  background: var(--ink);
  color: white;
  padding: clamp(2rem, 5vw, 4rem);
}
.callout h2 { max-width: 16ch; }
.callout p { max-width: 68ch; color: #e2e7ee; }
.callout a { color: white; }

.prose { max-width: var(--measure); }
.prose h2 { margin-top: 3rem; }
.prose ul, .prose ol { padding-left: 1.3rem; }
.kicker-list { display: grid; gap: .65rem; padding: 0; list-style: none; }
.kicker-list li { border-left: 3px solid var(--accent); padding-left: 1rem; }

.site-footer { padding: 3rem 0 4rem; display: flex; justify-content: space-between; gap: 2rem; border-top: 1px solid var(--line); }
.site-footer nav { display: flex; gap: 1rem; flex-wrap: wrap; }
.site-footer a { color: var(--ink); }
.muted { color: var(--ink-soft); }

/* --- Extended institutional components (Phase 1) --- */

/* Truth-boundary and status markers */
.badge {
  display: inline-block;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--accent-dark);
  border: 1px solid var(--accent);
  border-radius: 999px;
  padding: .2rem .7rem;
}
.badge.provisional { color: #7a4a12; border-color: #b98b4e; background: #f3ead9; }
.badge + h2, .badge + h3 { margin-top: .8rem; }

/* Disclosure / notice block — lighter weight than .callout */
.notice {
  background: var(--surface);
  border: 1px solid var(--line);
  border-left: 4px solid var(--accent);
  padding: 1.2rem 1.4rem;
}
.notice > :first-child { margin-top: 0; }
.notice > :last-child { margin-bottom: 0; }
.notice h3 { font-size: 1.1rem; }

/* Definition-style list for "what we do / do not" and data-use points */
.definition-list { display: grid; gap: 1rem; padding: 0; margin: 0; list-style: none; }
.definition-list li { border-top: 1px solid var(--line); padding-top: 1rem; }
.definition-list strong { display: block; margin-bottom: .25rem; }
.definition-list p { margin: 0; color: var(--ink-soft); }

/* Two-state comparison (does / does not) */
.compare { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.compare .card h3 { display: flex; align-items: baseline; gap: .5rem; }
.compare .mark { font-weight: 800; }
.compare .mark.yes { color: #2f6b3a; }
.compare .mark.no { color: var(--accent-dark); }

/* Guide intake placeholder shell (real intake arrives in a later phase) */
.guide-shell {
  border: 1px dashed var(--line);
  background: var(--surface);
  padding: clamp(1.5rem, 4vw, 2.5rem);
}
.guide-shell noscript p { margin: 0; }
.guide-steps { counter-reset: gstep; display: grid; gap: .8rem; padding: 0; margin: 0; list-style: none; }
.guide-steps li { counter-increment: gstep; border-left: 3px solid var(--accent); padding: .3rem 0 .3rem 1rem; }
.guide-steps li::before { content: "Step " counter(gstep); display: block; font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--accent-dark); }

/* --- Guide intake application (Phase 5) --- */
.intake { max-width: 46rem; }
.intake-progress { display: flex; align-items: center; gap: .5rem; margin: 0 0 1.5rem; font-size: .85rem; color: var(--ink-soft); }
.intake-progress .bar { flex: 1; height: 6px; background: var(--line); border-radius: 999px; overflow: hidden; }
.intake-progress .bar > span { display: block; height: 100%; background: var(--accent); transition: width .25s ease; }
@media (prefers-reduced-motion: reduce) { .intake-progress .bar > span { transition: none; } }

.intake-step { border: 1px solid var(--line); background: var(--surface); padding: clamp(1.3rem, 3vw, 2rem); }
.intake-step h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); }
.intake-step .help { color: var(--ink-soft); margin-top: -.3rem; }

.field { margin: 1.2rem 0; }
.field > label, .fieldset > legend { display: block; font-weight: 700; margin-bottom: .4rem; }
.field .hint { display: block; font-weight: 400; color: var(--ink-soft); font-size: .9rem; margin-bottom: .5rem; }
.field input[type="text"], .field input[type="email"], .field textarea, .field select {
  width: 100%; font: inherit; color: var(--ink);
  padding: .7rem .8rem; border: 1px solid var(--line); border-radius: 4px; background: #fff;
}
.field textarea { min-height: 7rem; resize: vertical; }
.field input:focus-visible, .field textarea:focus-visible, .field select:focus-visible {
  outline: 3px solid var(--accent); outline-offset: 1px; border-color: var(--accent);
}
.field .error { color: var(--accent-dark); font-weight: 700; font-size: .9rem; margin-top: .4rem; }
.field[aria-invalid="true"] input, .field[aria-invalid="true"] textarea { border-color: var(--accent-dark); }

.fieldset { border: 0; padding: 0; margin: 1.2rem 0; }
.choice-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: .5rem; }
.choice { display: flex; gap: .6rem; align-items: flex-start; border: 1px solid var(--line); border-radius: 4px; padding: .6rem .8rem; cursor: pointer; background: #fff; }
.choice input { margin-top: .2rem; }
.choice:focus-within { outline: 2px solid var(--accent); outline-offset: 1px; }
.choice span { font-size: .95rem; }

.mic-row { display: flex; align-items: center; gap: .6rem; margin-top: .5rem; flex-wrap: wrap; }
.mic-btn { display: inline-flex; align-items: center; gap: .4rem; border: 1px solid var(--ink); background: #fff; color: var(--ink); font: inherit; font-weight: 650; padding: .45rem .8rem; border-radius: 999px; cursor: pointer; }
.mic-btn[aria-pressed="true"] { background: var(--accent-dark); color: #fff; border-color: var(--accent-dark); }
.mic-btn[hidden] { display: none; }
.mic-note { font-size: .82rem; color: var(--ink-soft); }
.mic-status { font-size: .85rem; color: var(--accent-dark); font-weight: 650; }

.intake-actions { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1.6rem; flex-wrap: wrap; }
.intake-error { color: var(--accent-dark); font-weight: 700; margin-top: 1rem; }

.review-list { display: grid; gap: 1rem; list-style: none; padding: 0; margin: 1rem 0; }
.review-list li { border-left: 3px solid var(--accent); padding-left: 1rem; }
.review-list .label { font-weight: 700; display: block; }
.review-list textarea, .review-list input { width: 100%; margin-top: .3rem; }

.report-inline { border: 1px solid var(--line); background: var(--surface); padding: clamp(1.3rem,3vw,2rem); }
.report-inline .candidate { border-top: 1px solid var(--line); padding-top: 1rem; margin-top: 1rem; }
.report-inline .evidence { font-size: .85rem; color: var(--ink-soft); }

@media (max-width: 850px) {
  .header-inner, .site-footer { align-items: flex-start; flex-direction: column; padding: 1rem 0; }
  .grid, .grid.two, .sequence, .compare { grid-template-columns: 1fr; }
  h1 { max-width: 12ch; }
  .choice-grid { grid-template-columns: 1fr; }
}

/* --- Report document (Phase 6) --- */
.report-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 2rem; flex-wrap: wrap; }
.report-doc { max-width: 52rem; }
.report-doc h1 { font-size: clamp(2rem, 5vw, 3rem); margin-top: .5rem; }
.report-doc h3 { margin-top: 2.2rem; border-top: 1px solid var(--line); padding-top: 1.2rem; }
.report-doc h4 { font-size: 1.15rem; margin: 0 0 .4rem; }
.report-note { background: #eef3ec; border-left: 4px solid #2f6b3a; padding: .9rem 1.1rem; }
.report-meta { display: flex; flex-wrap: wrap; gap: .3rem 1.2rem; color: var(--ink-soft); font-size: .85rem; margin: .3rem 0 1rem; }
.report-doc .candidate { border-top: 1px solid var(--line); padding-top: 1.2rem; margin-top: 1.2rem; }
.report-doc .evidence { font-size: .85rem; color: var(--ink-soft); margin: .3rem 0; }
.report-cta { margin-top: 2.5rem; }

.verdict-list { list-style: none; padding: 0; display: grid; gap: .8rem; }
.verdict-list li { display: flex; gap: .7rem; align-items: flex-start; }
.verdict-icon {
  flex: 0 0 auto; width: 1.5rem; height: 1.5rem; margin-top: .1rem;
  background: var(--accent-dark);
  -webkit-mask: var(--i) center / contain no-repeat;
  mask: var(--i) center / contain no-repeat;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

@media print {
  .site-header, .site-footer, .skip-link, .report-toolbar, .report-cta { display: none !important; }
  body { background: #fff; color: #000; }
  main { width: 100%; }
  .report-doc { max-width: none; }
  .verdict-icon { background: #000; }
  a { color: #000; text-decoration: underline; }
}

/* ============================================================
   EDITORIAL INSTITUTIONAL SYSTEM  (scoped to body.editorial)
   Full-bleed bands, serif/sans pairing, asymmetric composition.
   Other pages are unaffected until the system is propagated.
   ============================================================ */

:root {
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Times New Roman", serif;
  --sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Inter, sans-serif;
  --navy-900: #061426;
  --navy-800: #0a1c30;
  --navy-700: #12283f;
  --parchment: #f4efe4;
  --parchment-2: #ece4d5;
  --paper: #ffffff;
  --oxblood: #6d2233;
  --gold: #b88548;
  --gold-soft: #d8b56b;
  --rule-light: #d9d0be;
  --rule-dark: rgba(155, 175, 194, .26);
  --ink-dim: #5d5749;
}

/* --- shell ------------------------------------------------- */
.editorial main { width: 100%; max-width: none; margin: 0; }
.editorial .wrap { width: min(calc(100% - 3rem), 1280px); margin-inline: auto; }
.editorial .wrap.narrow { width: min(calc(100% - 3rem), 820px); }
.editorial .wrap.wide { width: min(calc(100% - 2rem), 1600px); }

.editorial .band { padding-block: clamp(4.5rem, 9vw, 9.5rem); position: relative; }
.editorial .band--tight { padding-block: clamp(3rem, 5vw, 5rem); }
.editorial .band--tall { padding-block: clamp(6rem, 12vw, 13rem); }
.editorial .band--navy { background: var(--navy-900); color: var(--parchment); }
.editorial .band--navy-800 { background: var(--navy-800); color: var(--parchment); }
.editorial .band--parchment { background: var(--parchment); color: var(--ink); }
.editorial .band--parchment-2 { background: var(--parchment-2); color: var(--ink); }
.editorial .band--paper { background: var(--paper); color: var(--ink); }

/* --- masthead merges into the cinematic hero ---------------- */
.editorial .site-header { background: var(--navy-900); border-bottom: 1px solid var(--rule-dark); }
.editorial .site-header .brand { color: var(--parchment); }
.editorial .site-header .brand-mark { background: var(--parchment); }
.editorial .primary-nav a { color: #c8d4e0; font-weight: 600; font-size: .95rem; letter-spacing: .01em; }
.editorial .primary-nav a:hover { color: var(--gold-soft); }
.editorial .primary-nav a[aria-current="page"] { color: var(--gold-soft); }

/* --- type -------------------------------------------------- */
.editorial h1, .editorial h2, .editorial h3, .editorial .display-1, .editorial .statement {
  font-family: var(--serif); font-weight: 600; letter-spacing: -.015em;
}
.editorial .rule-label {
  font-family: var(--sans); font-size: .78rem; font-weight: 700; letter-spacing: .18em;
  text-transform: uppercase; color: var(--gold); margin: 0 0 1.6rem;
  display: flex; align-items: center; gap: 1rem;
}
.editorial .rule-label::after { content: ""; flex: 1; height: 1px; background: currentColor; opacity: .38; }
.editorial .band--parchment .rule-label,
.editorial .band--paper .rule-label,
.editorial .band--parchment-2 .rule-label { color: var(--oxblood); }

.editorial .display-1 {
  font-size: clamp(2.9rem, 7.4vw, 7rem); line-height: .96; max-width: 18ch; margin: 0;
  letter-spacing: -.03em;
}
.editorial .display-1 em { font-style: italic; color: var(--gold-soft); }
.editorial .statement {
  font-size: clamp(1.9rem, 4.4vw, 3.6rem); line-height: 1.08; max-width: 22ch; margin: 0;
  letter-spacing: -.022em;
}
.editorial .statement--wide { max-width: 30ch; }
.editorial .interrupt {
  font-family: var(--serif); font-size: clamp(2.6rem, 9.2vw, 8.5rem); line-height: .94;
  letter-spacing: -.035em; margin: 0; max-width: 15ch;
}
.editorial .lede-2 {
  font-family: var(--sans); font-size: clamp(1.02rem, 1.35vw, 1.2rem); line-height: 1.65;
  color: var(--ink-soft); max-width: 62ch;
}
.editorial .band--navy .lede-2, .editorial .band--navy-800 .lede-2 { color: #b9c6d4; }
.editorial .note {
  font-family: var(--sans); font-size: .92rem; line-height: 1.6; color: var(--ink-dim); max-width: 58ch;
}
.editorial .band--navy .note, .editorial .band--navy-800 .note { color: #8ea0b3; }

/* --- asymmetric composition -------------------------------- */
.editorial .split { display: grid; gap: clamp(2rem, 5vw, 5.5rem); align-items: start; }
@media (min-width: 900px) {
  .editorial .split { grid-template-columns: 7fr 5fr; }
  .editorial .split--rev { grid-template-columns: 5fr 7fr; }
  .editorial .split--thesis { grid-template-columns: 3fr 8fr; }
  .editorial .split--wide-left { grid-template-columns: 8fr 4fr; }
  .editorial .drop { margin-top: clamp(2rem, 6vw, 7rem); }
  .editorial .indent { padding-left: clamp(2rem, 6vw, 6rem); }
}

/* --- links & actions --------------------------------------- */
.editorial .actions { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: 2.4rem; }
.editorial .btn {
  font-family: var(--sans); font-weight: 650; font-size: .98rem; text-decoration: none;
  padding: .85rem 1.5rem; border: 1px solid currentColor; display: inline-block;
  transition: background-color .18s ease, color .18s ease;
}
.editorial .band--navy .btn, .editorial .band--navy-800 .btn { color: var(--parchment); }
.editorial .band--navy .btn:hover, .editorial .band--navy-800 .btn:hover { background: rgba(244,239,228,.12); }
.editorial .btn--solid { background: var(--parchment); color: var(--navy-900); border-color: var(--parchment); }
.editorial .band--navy .btn--solid:hover { background: #fff; color: var(--navy-900); }
.editorial .band--parchment .btn, .editorial .band--paper .btn, .editorial .band--parchment-2 .btn { color: var(--ink); }
.editorial .band--parchment .btn--solid, .editorial .band--paper .btn--solid, .editorial .band--parchment-2 .btn--solid {
  background: var(--navy-900); color: var(--parchment); border-color: var(--navy-900);
}
.editorial .band--parchment .btn:hover, .editorial .band--paper .btn:hover { background: rgba(23,34,52,.07); }
.editorial .band--parchment .btn--solid:hover, .editorial .band--paper .btn--solid:hover { background: var(--navy-800); color: #fff; }

.editorial .more {
  font-family: var(--sans); font-weight: 650; font-size: .95rem; text-decoration: none;
  border-bottom: 1px solid var(--gold); padding-bottom: 2px; color: inherit;
  display: inline-block; margin-top: 1.4rem;
}
.editorial .more:hover { color: var(--gold); }
.editorial .band--navy .more, .editorial .band--navy-800 .more { color: var(--parchment); }
.editorial .band--navy .more:hover { color: var(--gold-soft); }

/* --- hero -------------------------------------------------- */
.editorial .hero-cinematic {
  background: var(--navy-900); color: var(--parchment);
  position: relative; overflow: hidden; isolation: isolate;
  padding-block: clamp(5rem, 13vw, 12rem) clamp(3rem, 6vw, 5rem);
}
.editorial .hero-cinematic::before {
  content: ""; position: absolute; inset: 0; z-index: -2;
  background: radial-gradient(120% 90% at 12% 40%, #0d2237 0%, #061426 62%);
}
.editorial .hero-seal {
  position: absolute; z-index: -1; pointer-events: none;
  right: clamp(-14rem, -8vw, -4rem); top: 50%; transform: translateY(-50%);
  width: min(78vw, 56rem); aspect-ratio: 1;
  background: url("/assets/visual/brand/seal-full.png") center / contain no-repeat;
  opacity: .30;
}
.editorial .hero-copy { max-width: 58rem; }
.editorial .hero-lede {
  font-family: var(--sans); font-size: clamp(1.05rem, 1.5vw, 1.28rem); line-height: 1.62;
  color: #c3d0dd; max-width: 46ch; margin: 2rem 0 0;
}
.editorial .hero-foot {
  margin-top: clamp(3.5rem, 8vw, 7rem); padding-top: 1.6rem; border-top: 1px solid var(--rule-dark);
  display: flex; flex-wrap: wrap; gap: .6rem 2.6rem;
  font-family: var(--sans); font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: #8ea0b3;
}
.editorial .hero-foot span { display: inline-flex; align-items: center; gap: .7rem; }
.editorial .hero-foot span::before { content: ""; width: 6px; height: 6px; background: var(--gold); }

/* --- figures ----------------------------------------------- */
.editorial .figure-bleed { margin: 0; }
.editorial .figure-bleed img { display: block; width: 100%; height: auto; }
.editorial figcaption {
  font-family: var(--sans); font-size: .86rem; color: var(--ink-dim); margin-top: 1.4rem; max-width: 70ch;
}
.editorial .band--navy figcaption, .editorial .band--navy-800 figcaption { color: #8ea0b3; }

/* --- editorial index (practices) --------------------------- */
.editorial .index-list { list-style: none; margin: 0; padding: 0; }
.editorial .index-list li { border-top: 1px solid var(--rule-light); padding: 1.5rem 0; display: grid; gap: .35rem 1.6rem; }
@media (min-width: 700px) { .editorial .index-list li { grid-template-columns: 4rem 1fr; align-items: baseline; } }
.editorial .index-list .n { font-family: var(--serif); color: var(--gold); font-size: 1.15rem; }
.editorial .index-list h3 { margin: 0 0 .3rem; font-size: 1.3rem; }
.editorial .index-list p { margin: 0; font-family: var(--sans); font-size: .96rem; color: var(--ink-soft); max-width: 62ch; }

.editorial .lead-practice { border-left: 3px solid var(--gold); padding-left: clamp(1.2rem, 3vw, 2.4rem); }
.editorial .lead-practice h3 { font-size: clamp(1.7rem, 2.6vw, 2.4rem); margin: 0 0 1rem; }

/* --- report specimen --------------------------------------- */
.editorial .specimen {
  background: var(--paper); border: 1px solid var(--rule-light);
  box-shadow: 0 24px 60px rgba(6, 20, 38, .13);
  padding: clamp(1.6rem, 3vw, 2.6rem);
}
.editorial .specimen-tag {
  font-family: var(--sans); font-size: .68rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--oxblood); border: 1px solid currentColor; padding: .25rem .6rem; display: inline-block; margin-bottom: 1.2rem;
}
.editorial .specimen h3 { font-size: 1.55rem; margin: 0 0 .5rem; }
.editorial .specimen-meta {
  font-family: var(--sans); font-size: .74rem; color: var(--ink-dim); letter-spacing: .04em;
  border-bottom: 1px solid var(--rule-light); padding-bottom: 1rem; margin-bottom: 1.2rem;
  display: flex; flex-wrap: wrap; gap: .3rem 1.2rem;
}
.editorial .specimen h4 {
  font-family: var(--sans); font-size: .72rem; letter-spacing: .16em; text-transform: uppercase;
  color: var(--ink-dim); margin: 1.4rem 0 .7rem; font-weight: 700;
}
.editorial .specimen .verdict { display: flex; gap: .7rem; align-items: flex-start; margin-bottom: .6rem; font-size: .95rem; }
.editorial .specimen .verdict .verdict-icon { width: 1.25rem; height: 1.25rem; margin-top: .1rem; }
.editorial .specimen .verdict b { font-weight: 650; }
.editorial .specimen .verdict i { font-style: italic; color: var(--ink-soft); }
.editorial .specimen .cite {
  font-family: var(--sans); font-size: .82rem; color: var(--ink-dim);
  border-left: 2px solid var(--rule-light); padding-left: .9rem; margin: .5rem 0 0;
}
.editorial .specimen .nobuy {
  margin-top: 1.2rem; border: 1px solid var(--gold); padding: .9rem 1.1rem; font-size: .95rem;
}
.editorial .specimen .nobuy b { color: var(--oxblood); }

/* --- credential plate (Masters standard) -------------------- */
.editorial .plate {
  border: 1px solid var(--rule-dark); padding: clamp(1.8rem, 4vw, 3.2rem); position: relative;
}
.editorial .plate::before {
  content: ""; position: absolute; inset: 10px; border: 1px solid var(--rule-dark); pointer-events: none;
}
.editorial .plate-crest {
  width: 3.4rem; height: 4rem; background: var(--gold-soft);
  -webkit-mask: url("/assets/visual/brand/compact-crest.svg") center / contain no-repeat;
  mask: url("/assets/visual/brand/compact-crest.svg") center / contain no-repeat;
  margin-bottom: 1.6rem;
}

/* --- publication objects (research) ------------------------ */
.editorial .pubs { display: grid; gap: 1.4rem; }
@media (min-width: 900px) { .editorial .pubs { grid-template-columns: repeat(3, 1fr); } }
.editorial .pub {
  border-left: 3px solid var(--navy-900); padding: .2rem 0 .4rem 1.4rem;
}
.editorial .pub.pub--provisional { border-left-color: var(--oxblood); }
.editorial .pub .kind {
  font-family: var(--sans); font-size: .68rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--ink-dim); display: block; margin-bottom: .5rem;
}
.editorial .pub h3 { font-size: 1.2rem; margin: 0 0 .5rem; line-height: 1.25; }
.editorial .pub p { font-family: var(--sans); font-size: .9rem; color: var(--ink-soft); margin: 0 0 .6rem; }
.editorial .pub .dated { font-family: var(--sans); font-size: .76rem; color: var(--ink-dim); letter-spacing: .04em; }

/* --- footer closes the composition ------------------------- */
.editorial .site-footer {
  background: var(--navy-900); color: var(--parchment); border-top: 0;
  width: 100%; max-width: none; margin: 0;
  padding: clamp(2.5rem, 5vw, 4rem) 0;
}
.editorial .site-footer a { color: #c8d4e0; }
.editorial .site-footer a:hover { color: var(--gold-soft); }
.editorial .site-footer .muted { color: #8ea0b3; }

/* --- restrained motion (hierarchy only) -------------------- */
@media (prefers-reduced-motion: no-preference) {
  .editorial .hero-copy > * { animation: ed-rise .7s cubic-bezier(.2,.7,.3,1) both; }
  .editorial .hero-copy > *:nth-child(2) { animation-delay: .06s; }
  .editorial .hero-copy > *:nth-child(3) { animation-delay: .12s; }
  .editorial .hero-copy > *:nth-child(4) { animation-delay: .18s; }
  @keyframes ed-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
}

@media (max-width: 899px) {
  .editorial .hero-seal { opacity: .4; right: -30vw; width: 100vw; }
  .editorial .display-1 { max-width: 14ch; }
}

/* verdict icon variants used by the report specimen (no inline styles) */
.editorial .vi-deterministic { --i: url("/assets/visual/icons/icon-deterministic.svg"); }
.editorial .vi-data { --i: url("/assets/visual/icons/icon-data.svg"); }
.editorial .vi-existing { --i: url("/assets/visual/icons/icon-existing-system.svg"); }
.editorial .vi-local { --i: url("/assets/visual/icons/icon-local-control.svg"); }

/* a genuinely edge-to-edge figure moment */
.editorial .figure-edge { width: 100%; margin: 0; }
.editorial .figure-edge img { display: block; width: 100%; height: auto; }

/* review pass: give the oversized interruption room to breathe */
.editorial .interrupt { margin: 0 0 clamp(2.5rem, 6vw, 6rem); }

/* review pass: the plate crest is a bare span in a block context */
.editorial .plate-crest { display: block; }

/* review pass: mobile diagram legibility + tighter masthead.
   Wide diagrams pan inside their own container; the page never scrolls sideways. */
@media (max-width: 899px) {
  .editorial .primary-nav { gap: .55rem 1rem; }
  .editorial .primary-nav a { font-size: .86rem; }
  .editorial .figure-bleed,
  .editorial .figure-edge { overflow-x: auto; overscroll-behavior-x: contain; }
  .editorial .figure-bleed img,
  .editorial .figure-edge img { min-width: 640px; }
  .editorial figcaption { padding-top: .2rem; }
}

/* review pass: focus rings must stay visible on the dark bands */
.editorial .hero-cinematic a:focus-visible,
.editorial .band--navy a:focus-visible,
.editorial .band--navy-800 a:focus-visible,
.editorial .site-header a:focus-visible,
.editorial .site-footer a:focus-visible {
  outline: 3px solid var(--gold-soft);
  outline-offset: 3px;
}

/* ============================================================
   REFINEMENT PASS — GII section, gold discipline, premium header
   ============================================================ */

/* better headline ragging where supported */
.editorial .display-1, .editorial .statement, .editorial .interrupt { text-wrap: balance; }
.editorial .lede-2, .editorial .note, .editorial .hero-lede { text-wrap: pretty; }

/* --- premium masthead --- */
.editorial .site-header { border-bottom: 1px solid rgba(184,133,72,.34); }
.editorial .header-inner { min-height: 92px; }
.editorial .site-header .brand { font-size: 1.02rem; letter-spacing: .005em; gap: .7rem; }
.editorial .site-header .brand-mark { width: 1.7rem; height: 2rem; }
.editorial .primary-nav { gap: 1.45rem; }
.editorial .primary-nav a { position: relative; padding-bottom: 3px; }
.editorial .primary-nav a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: var(--gold); transform: scaleX(0); transform-origin: left;
}
@media (prefers-reduced-motion: no-preference) {
  .editorial .primary-nav a::after { transition: transform .2s ease; }
}
.editorial .primary-nav a:hover::after,
.editorial .primary-nav a[aria-current="page"]::after { transform: scaleX(1); }

/* --- gold discipline: reserve gold for emphasis, not every rule --- */
.editorial .more { border-bottom-color: rgba(23,34,52,.28); }
.editorial .band--navy .more, .editorial .band--navy-800 .more,
.editorial .hero-cinematic .more { border-bottom-color: rgba(184,133,72,.5); }
.editorial .more:hover { border-bottom-color: var(--gold); }
.editorial .index-list .n { color: var(--ink-dim); }
.editorial .lead-practice .n, .editorial .index-list li:hover .n { color: var(--gold); }

/* --- link/button states --- */
@media (prefers-reduced-motion: no-preference) {
  .editorial .btn { transition: background-color .18s ease, color .18s ease, border-color .18s ease; }
  .editorial .index-list li { transition: border-top-color .18s ease; }
}
.editorial .index-list li:hover { border-top-color: var(--gold); }

/* --- GII section --- */
.editorial .gii-lead {
  font-family: var(--serif); font-size: clamp(1.3rem, 2.1vw, 1.85rem); line-height: 1.34;
  color: #d7cdb9; max-width: 34ch; margin-top: 1.6rem;
}
.editorial .gii-figure { margin-block: clamp(2.5rem, 6vw, 5rem); }
.editorial .band--navy-800 .index-list li,
.editorial .band--navy .index-list li { border-top-color: var(--rule-dark); }
.editorial .band--navy-800 .index-list h3,
.editorial .band--navy .index-list h3 { color: var(--parchment); }
.editorial .band--navy-800 .index-list p,
.editorial .band--navy .index-list p { color: #a8b7c6; }
.editorial .band--navy-800 .index-list .n,
.editorial .band--navy .index-list .n { color: #6f8296; }
.editorial .band--navy-800 .index-list li:hover .n,
.editorial .band--navy .index-list li:hover .n { color: var(--gold-soft); }
@media (min-width: 900px) { .editorial .gii-index { columns: 2; column-gap: 4rem; } }
.editorial .gii-index li { break-inside: avoid; }

/* the truth boundary is stated with dignity, not shrunk away */
.editorial .truth-note {
  border-left: 3px solid var(--gold); padding: .3rem 0 .3rem 1.5rem;
  max-width: 74ch; margin-top: clamp(2rem, 4vw, 3rem);
}
.editorial .truth-note .kicker {
  display: block; font-family: var(--sans); font-size: .72rem; letter-spacing: .2em;
  text-transform: uppercase; color: var(--gold); margin-bottom: .6rem; font-weight: 700;
}
.editorial .truth-note p { font-family: var(--sans); font-size: 1rem; line-height: 1.6; margin: 0; color: #c3d0dd; }
.editorial .band--parchment .truth-note p, .editorial .band--paper .truth-note p { color: var(--ink-soft); }

/* --- mobile: composed, not merely collapsed --- */
@media (max-width: 899px) {
  .editorial .band { padding-block: clamp(3.5rem, 11vw, 5.5rem); }
  .editorial .band--tall { padding-block: clamp(4.5rem, 14vw, 7rem); }
  .editorial .display-1 { font-size: clamp(2.6rem, 11.5vw, 4rem); line-height: 1.0; }
  .editorial .statement { font-size: clamp(1.75rem, 7.6vw, 2.6rem); }
  .editorial .interrupt { font-size: clamp(2.4rem, 12.5vw, 4.2rem); }
  .editorial .gii-lead { font-size: 1.18rem; max-width: none; }
  .editorial .hero-foot { gap: .5rem 1.4rem; font-size: .68rem; }
  .editorial .split { gap: 2.2rem; }
  .editorial .specimen { padding: 1.3rem 1.1rem; }
}

/* ------------------------------------------------------------------
   INSTITUTIONAL IDENTITY — the real Masters emblem
   assets/visual/brand/seal-full.{webp,png} is the canonical ceremonial
   seal, preserved exactly as supplied (500x500, transparent). WebP is
   served first with a PNG fallback. seal-256 is the smaller ceremonial
   derivative. compact-crest.svg remains the small mark for nav, favicons
   and tight UI only.
   ------------------------------------------------------------------ */
:root {
  --seal-webp: url("/assets/visual/brand/seal-full.webp");
  --seal-png:  url("/assets/visual/brand/seal-full.png");
}

/* Hero: the seal sits IN the material, not on top of it. */
.editorial .hero-seal {
  background-image: var(--seal-png);
  background-image: image-set(var(--seal-webp) type("image/webp"), var(--seal-png) type("image/png"));
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  opacity: .30;
  mix-blend-mode: luminosity;
  filter: contrast(.86) brightness(1.12);
}

/* Ceremonial seal used as content (credential, about, footer). */
.editorial .seal { display: block; }
.editorial .seal img { display: block; width: 100%; height: auto; }
.editorial .seal--lg { width: clamp(13rem, 22vw, 19rem); }
.editorial .seal--md { width: clamp(9rem, 14vw, 12rem); }
.editorial .seal--sm { width: 5.25rem; }
/* on dark grounds the seal is already navy+gold, so it seats naturally */
.editorial .band--navy .seal img,
.editorial .band--navy-800 .seal img,
.editorial .site-footer .seal img { filter: saturate(1.02); }

/* footer identity lockup */
.editorial .footer-identity { display: flex; align-items: center; gap: 1.1rem; }
.editorial .footer-identity strong { font-family: var(--serif); font-size: 1.05rem; letter-spacing: .01em; }

/* --- Guide page components --- */
.editorial .claim-list { list-style: none; padding: 0; margin: 1.6rem 0 0; display: grid; gap: .9rem; }
.editorial .claim-list li {
  font-family: var(--sans); font-size: 1.02rem; line-height: 1.55; color: var(--ink-soft);
  padding-left: 1.6rem; position: relative; max-width: 56ch;
}
.editorial .claim-list li::before {
  content: ""; position: absolute; left: 0; top: .62em; width: .55rem; height: .55rem;
  background: var(--gold); transform: rotate(45deg);
}
.editorial .does-not h3 { font-size: 1.15rem; margin: 0 0 1rem; color: var(--ink-dim); }
.editorial .does-not ul { list-style: none; padding: 0; margin: 0; }
.editorial .does-not li {
  font-family: var(--sans); font-size: .95rem; color: var(--ink-dim); line-height: 1.5;
  border-top: 1px solid var(--rule-light); padding: .75rem 0;
}

.editorial .specimen--full { padding: clamp(1.6rem, 3.4vw, 3rem); }
.editorial .specimen-cols { display: grid; gap: clamp(1.6rem, 3vw, 3rem); }
@media (min-width: 900px) { .editorial .specimen-cols { grid-template-columns: 1fr 1fr; } }
.editorial .specimen-list { list-style: none; padding: 0; margin: 0 0 .4rem; }
.editorial .specimen-list li { font-size: .93rem; line-height: 1.5; margin-bottom: .45rem; color: var(--ink-soft); }
.editorial .specimen-list b { color: var(--ink); font-weight: 650; }
.editorial .specimen-cand { font-size: 1rem; margin: 0 0 .4rem; }
.editorial .specimen-cand-note { font-size: .92rem; color: var(--ink-soft); margin: 0 0 .6rem; }
.editorial .specimen-flag {
  font-size: .92rem; color: var(--ink-soft); border-left: 2px solid var(--gold);
  padding-left: .9rem; margin: .4rem 0 0;
}

.editorial .pipeline { counter-reset: pl; list-style: none; padding: 0; margin: 1.4rem 0 0; }
.editorial .pipeline li {
  counter-increment: pl; position: relative; padding: 0 0 1.15rem 2.6rem;
  font-family: var(--sans); font-size: .97rem; line-height: 1.55; color: var(--ink-soft);
  border-left: 1px solid var(--rule-light); margin-left: .55rem;
}
.editorial .pipeline li:last-child { border-left-color: transparent; padding-bottom: 0; }
.editorial .pipeline li::before {
  content: counter(pl, decimal-leading-zero); position: absolute; left: -.72rem; top: 0;
  width: 1.45rem; height: 1.45rem; border-radius: 50%; background: var(--paper);
  border: 1px solid var(--gold); color: var(--gold);
  font-size: .64rem; font-weight: 700; display: grid; place-items: center; letter-spacing: .02em;
}
.editorial .pipeline b { color: var(--ink); font-weight: 650; }
.editorial .band--parchment .pipeline li::before, .editorial .band--parchment-2 .pipeline li::before { background: var(--parchment); }

/* the specimen is a white document: it must carry its own ink regardless of band */
.editorial .specimen { color: var(--ink); }
.editorial .specimen h3, .editorial .specimen h4, .editorial .specimen b { color: var(--ink); }
.editorial .specimen .specimen-cand { color: var(--ink); }

/* --- Practices page --- */
.editorial .engagement { border-left: 3px solid var(--rule-light); padding-left: clamp(1.1rem, 2.4vw, 2rem); }
.editorial .engagement h3 { font-size: clamp(1.3rem, 2vw, 1.75rem); margin: 0 0 .9rem; }
.editorial .engagement p { font-family: var(--sans); font-size: .98rem; line-height: 1.6; color: var(--ink-soft); max-width: 56ch; }
.editorial .engagement--dark { border-left-color: rgba(184,133,72,.55); }
.editorial .engagement--dark p { color: #a8b7c6; }
.editorial .engagement--dark h3 { color: var(--parchment); }
.editorial .lead-practice--dark { border-left-color: var(--gold); }
.editorial .lead-practice--dark .claim-list li { color: #b9c6d4; }
.editorial .band--navy-800 .claim-list li,
.editorial .band--navy .claim-list li { color: #b9c6d4; }
.editorial .index-list--detailed .sub {
  font-size: .87rem; color: var(--ink-dim); margin-top: .5rem; line-height: 1.55;
}

/* --- Approach page --- */
.editorial .pull {
  font-family: var(--serif); font-size: clamp(1.2rem, 1.9vw, 1.6rem); line-height: 1.35;
  color: var(--ink); border-left: 3px solid var(--gold); padding-left: 1.2rem; margin-top: 1.8rem; max-width: 34ch;
}
.editorial .band--navy .pull, .editorial .band--navy-800 .pull { color: var(--parchment); }
.editorial .pipeline--wide li { font-size: 1rem; }
.editorial .options {
  list-style: none; padding: 0; margin: 0;
  display: grid; gap: 0;
}
@media (min-width: 700px) { .editorial .options { grid-template-columns: 1fr 1fr; column-gap: 3rem; } }
.editorial .options li {
  font-family: var(--sans); font-size: 1rem; color: #b9c6d4;
  border-top: 1px solid var(--rule-dark); padding: .8rem 0 .8rem 1.8rem; position: relative;
}
.editorial .options li::before {
  content: ""; position: absolute; left: 0; top: 1.28em; width: .5rem; height: .5rem;
  border: 1px solid var(--gold); transform: rotate(45deg);
}
.editorial .band--parchment .options li, .editorial .band--paper .options li { color: var(--ink-soft); border-top-color: var(--rule-light); }

/* --- page variants --- */
.editorial .hero-cinematic--short { padding-block: clamp(4rem, 9vw, 7rem) clamp(2.5rem, 5vw, 4rem); }
.editorial .utility-head h1 { max-width: 24ch; }
.editorial .contact-direct { margin-top: 1.6rem; font-family: var(--sans); font-size: .95rem; }
.editorial .contact-direct a { color: var(--gold-soft); }
.editorial .sub-statement { font-size: clamp(1.25rem, 2vw, 1.7rem); margin: 0 0 1rem; }
.editorial .seal-moment { display: flex; justify-content: center; }
@media (min-width: 900px) { .editorial .seal-moment { justify-content: flex-start; position: sticky; top: 7rem; } }
/* report page: the document sits on a light ground for reading and printing */
.editorial .report-toolbar { padding-top: clamp(2rem, 4vw, 3rem); }
.editorial #report-mount { padding-bottom: clamp(3rem, 6vw, 5rem); }
.editorial .report-doc h1 { max-width: 22ch; }

/* the private report page is a reading document on the default light ground */
.editorial .report-toolbar .rule-label { margin-bottom: 0; }
.editorial #report-mount { color: var(--ink); }

/* ============================================================
   QA PASS — contrast regressions
   Buttons and light-surface components must carry their own
   color regardless of the band they sit in.
   ============================================================ */

/* the global a{color:accent-dark} was beating band inheritance on outlined buttons */
.editorial .btn { color: inherit; }
.editorial .hero-cinematic .btn { color: var(--parchment); }
.editorial .hero-cinematic .btn:hover { background: rgba(244,239,228,.12); color: #fff; }

/* solid buttons: band rules must not override their own foreground */
.editorial .btn--solid,
.editorial .hero-cinematic .btn--solid,
.editorial .band--navy .btn--solid,
.editorial .band--navy-800 .btn--solid {
  background: var(--parchment); color: var(--navy-900); border-color: var(--parchment);
}
.editorial .hero-cinematic .btn--solid:hover,
.editorial .band--navy .btn--solid:hover,
.editorial .band--navy-800 .btn--solid:hover { background: #fff; color: var(--navy-900); }
.editorial .band--parchment .btn--solid,
.editorial .band--paper .btn--solid,
.editorial .band--parchment-2 .btn--solid {
  background: var(--navy-900); color: var(--parchment); border-color: var(--navy-900);
}

/* light-surface components inside dark bands keep their own ink */
.editorial .intake-step,
.editorial .guide-shell,
.editorial .report-inline,
.editorial .report-doc { color: var(--ink); }
.editorial .intake-step h1, .editorial .intake-step h2, .editorial .intake-step h3,
.editorial .intake-step label, .editorial .intake-step legend,
.editorial .intake-step .choice span,
.editorial .guide-shell strong, .editorial .guide-shell p,
.editorial .report-inline h2, .editorial .report-inline h3, .editorial .report-inline h4,
.editorial .report-doc h1, .editorial .report-doc h2, .editorial .report-doc h3, .editorial .report-doc h4 {
  color: var(--ink);
}

/* definition lists are light-ground components; give them a dark-band variant */
.editorial .band--navy .definition-list li,
.editorial .band--navy-800 .definition-list li { border-top-color: var(--rule-dark); }
.editorial .band--navy .definition-list strong,
.editorial .band--navy-800 .definition-list strong { color: var(--parchment); }
.editorial .band--navy .definition-list p,
.editorial .band--navy-800 .definition-list p { color: #a8b7c6; }

/* the report page sits outside the band system: use the light-ground eyebrow */
.editorial .report-toolbar .rule-label { color: var(--oxblood); }

/* ==================================================================
   GLOBAL SITE SHELL (#72)
   One masthead and one footer, rendered into every page from
   templates/ by scripts/build_shell.py. These rules come last and
   deliberately supersede the earlier .site-header / .site-footer
   declarations for pages using the editorial system.
   ================================================================== */

:root {
  --header-h: 4.5rem;
  --shell-pad: clamp(1.1rem, 3.2vw, 2.4rem);
}

/* --- masthead ----------------------------------------------------- */
.editorial .site-header {
  position: sticky;
  top: 0;
  z-index: 60;
  width: 100%;
  max-width: none;
  margin: 0;
  background: var(--navy-900);
  /* The rule is always present so engaging the scrolled state changes
     color only — it can never change the header's height. */
  border-bottom: 1px solid transparent;
  box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
}
@media (prefers-reduced-motion: no-preference) {
  .editorial .site-header { transition: border-color .25s ease, box-shadow .25s ease; }
}
.editorial .site-header.is-scrolled {
  border-bottom-color: var(--rule-dark);
  box-shadow: 0 14px 34px -22px rgba(0, 0, 0, .95);
}

.editorial .header-inner {
  width: min(calc(100% - 3rem), 1280px);
  max-width: none;
  margin-inline: auto;
  min-height: var(--header-h);
  height: var(--header-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 0;
}

/* --- identity: the real seal plus the wordmark --------------------- */
.editorial .site-header .brand {
  display: inline-flex;
  align-items: center;
  gap: .8rem;
  color: var(--parchment);
  text-decoration: none;
  flex: 0 0 auto;
}
.editorial .brand-seal {
  flex: 0 0 auto;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background-image: url("/assets/visual/brand/seal-96.png");
  background-image: image-set(
    url("/assets/visual/brand/seal-96.webp") type("image/webp"),
    url("/assets/visual/brand/seal-96.png") type("image/png")
  );
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}
.editorial .brand-word {
  display: flex;
  flex-direction: column;
  line-height: 1.05;
}
.editorial .brand-word-a {
  font-family: var(--serif);
  font-size: 1.16rem;
  font-weight: 600;
  letter-spacing: .005em;
}
.editorial .brand-word-b {
  font-family: var(--sans);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .21em;
  text-transform: uppercase;
  color: #9fb2c4;
  margin-top: .18rem;
}
.editorial .site-header .brand:hover .brand-word-b { color: var(--gold-soft); }

/* --- primary navigation: three clusters, one row ------------------- */
.editorial .primary-nav {
  display: flex;
  align-items: center;
  gap: 0;
  flex-wrap: nowrap;
}
.editorial .nav-group { display: flex; align-items: center; }
.editorial .nav-group + .nav-group {
  margin-left: 1.35rem;
  padding-left: 1.35rem;
  border-left: 1px solid var(--rule-dark);
}
.editorial .nav-group-label { display: none; }
.editorial .primary-nav ul {
  display: flex;
  align-items: center;
  gap: 1.35rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.editorial .primary-nav a {
  display: block;
  color: #c8d4e0;
  text-decoration: none;
  font-family: var(--sans);
  font-size: .88rem;
  font-weight: 600;
  letter-spacing: .012em;
  white-space: nowrap;
  padding-block: .35rem;
  border-bottom: 2px solid transparent;
}
.editorial .primary-nav a:hover { color: var(--gold-soft); }
.editorial .primary-nav a[aria-current="page"] {
  color: var(--gold-soft);
  border-bottom-color: var(--gold);
  text-decoration: none;
}

/* --- the disclosure control (mobile only) -------------------------- */
.editorial .nav-toggle {
  display: none;
  align-items: center;
  gap: .55rem;
  background: none;
  border: 1px solid var(--rule-dark);
  color: var(--parchment);
  font: inherit;
  font-family: var(--sans);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: .6rem .85rem;
  min-height: 44px;
  cursor: pointer;
}
.editorial .nav-toggle-bars {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 1.05rem;
  height: .62rem;
}
.editorial .nav-toggle-bars span {
  display: block;
  height: 2px;
  background: currentColor;
}
.editorial .nav-toggle[aria-expanded="true"] .nav-toggle-bars span:nth-child(2) { opacity: 0; }

/* --- mobile: a designed panel, not a wrapped row ------------------- */
@media (max-width: 1259px) {
  .editorial .header-inner {
    width: min(calc(100% - 2rem), 1280px);
    flex-direction: row;
    align-items: center;
  }
  .editorial .nav-toggle { display: inline-flex; }

  /* The panel is a single state: display none/block, driven by one class
     the toggle sets. Nothing else in the cascade can leave it half-open. */
  .editorial .primary-nav {
    display: none;
    position: fixed;
    top: var(--header-h);
    left: 0;
    right: 0;
    bottom: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--navy-900);
    border-top: 1px solid var(--rule-dark);
    padding: 1.6rem max(1rem, calc((100% - 1280px) / 2 + 1rem)) 3rem;
  }
  .editorial.nav-open .primary-nav { display: block; }
  .editorial.nav-open { overflow: hidden; }
  @media (prefers-reduced-motion: no-preference) {
    .editorial.nav-open .primary-nav { animation: nav-panel-in .2s ease both; }
    @keyframes nav-panel-in {
      from { opacity: 0; transform: translateY(-.5rem); }
      to { opacity: 1; transform: none; }
    }
  }

  .editorial .nav-group,
  .editorial .nav-group + .nav-group {
    display: block;
    margin: 0;
    padding: 0;
    border-left: 0;
  }
  .editorial .nav-group + .nav-group { margin-top: 2rem; }
  .editorial .nav-group-label {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-family: var(--sans);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--gold);
    margin: 0 0 .35rem;
  }
  .editorial .nav-group-label::after {
    content: "";
    flex: 1;
    height: 1px;
    background: currentColor;
    opacity: .34;
  }
  .editorial .primary-nav ul { display: block; }
  .editorial .primary-nav li + li { border-top: 1px solid var(--rule-dark); }
  .editorial .primary-nav a {
    font-family: var(--serif);
    font-size: 1.35rem;
    font-weight: 600;
    letter-spacing: -.01em;
    padding: .85rem 0 .85rem .9rem;
    border-bottom: 0;
    border-left: 3px solid transparent;
    white-space: normal;
  }
  .editorial .primary-nav a[aria-current="page"] {
    border-bottom: 0;
    border-left-color: var(--gold);
  }
}

/* Without JavaScript the panel cannot be opened, so it stays in flow
   below the masthead and every destination remains reachable. */
@media (max-width: 1259px) {
  html:not(.has-nav-js) .editorial .header-inner { height: auto; flex-wrap: wrap; padding-block: .8rem; }
  html:not(.has-nav-js) .editorial .nav-toggle { display: none; }
  html:not(.has-nav-js) .editorial .primary-nav {
    position: static;
    display: block;
    flex-basis: 100%;
    padding: 0 0 1rem;
    background: none;
    border-top: 0;
    overflow: visible;
  }
}

/* --- footer as information architecture ---------------------------- */
.editorial .site-footer {
  background: var(--navy-900);
  color: var(--parchment);
  border-top: 1px solid var(--rule-dark);
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(3rem, 6vw, 5rem) 0 clamp(2.5rem, 4vw, 3.5rem);
  display: block;
}
.editorial .footer-inner {
  width: min(calc(100% - 3rem), 1280px);
  margin-inline: auto;
  display: grid;
  gap: clamp(2.2rem, 4vw, 3.5rem);
  align-items: start;
}
@media (min-width: 900px) {
  .editorial .footer-inner { grid-template-columns: minmax(15rem, 1fr) 3fr; }
}
.editorial .footer-identity {
  display: flex;
  align-items: center;
  gap: 1.1rem;
}
.editorial .footer-name { display: flex; flex-direction: column; gap: .25rem; }
.editorial .footer-name strong { font-family: var(--serif); font-size: 1.08rem; letter-spacing: .01em; }
.editorial .footer-name .muted { font-family: var(--sans); font-size: .82rem; letter-spacing: .04em; }

.editorial .footer-nav {
  display: grid;
  gap: 2rem clamp(1.5rem, 3vw, 3rem);
  grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr));
}
.editorial .footer-group-label {
  font-family: var(--sans);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 .9rem;
}
.editorial .footer-nav ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.editorial .footer-nav a {
  font-family: var(--sans);
  font-size: .92rem;
  color: #c8d4e0;
  text-decoration: none;
  line-height: 1.4;
  display: inline-block;
}
.editorial .footer-nav a:hover { color: var(--gold-soft); text-decoration: underline; text-underline-offset: .25rem; }

/* focus stays visible everywhere in the shell */
.editorial .site-header a:focus-visible,
.editorial .nav-toggle:focus-visible,
.editorial .site-footer a:focus-visible {
  outline: 2px solid var(--gold-soft);
  outline-offset: 3px;
}

/* the skip link must clear the sticky masthead */
.editorial .skip-link { z-index: 80; }

@media print {
  .editorial .site-header { position: static; }
}

/* index-list ordinals: full gold measures 4.35:1 on navy, just under AA */
.editorial .band--navy .index-list .n,
.editorial .band--navy-800 .index-list .n,
.editorial .hero-cinematic .index-list .n { color: var(--gold-soft); }

/* in-page anchors must not land under the sticky masthead */
html { scroll-padding-top: calc(var(--header-h) + 1rem); }

/* ==================================================================
   COMPOSITION REFINEMENT (#71)
   Judged against rendered pages at 1920/1440/1280/768/390, not by
   moving one global variable. The bands were carrying genuine dead
   space at wide viewports: 9.5rem of padding on each side of every
   band put ~300px of nothing between adjacent arguments, and the tall
   bands nearly 420px. Negative space is intentional here; that was
   not.
   ================================================================== */

.editorial .band { padding-block: clamp(4rem, 6.6vw, 7.5rem); }
.editorial .band--tight { padding-block: clamp(2.6rem, 3.8vw, 4.25rem); }
.editorial .band--tall { padding-block: clamp(5rem, 8.6vw, 10rem); }
.editorial .drop { margin-top: clamp(1.8rem, 4.4vw, 4.75rem); }
.editorial .hero-cinematic { padding-block: clamp(4.5rem, 10.5vw, 9.5rem) clamp(2.75rem, 5vw, 4.5rem); }
.editorial .gii-figure { margin-block: clamp(2.25rem, 4.6vw, 4rem); }

@media (max-width: 899px) {
  .editorial .band { padding-block: clamp(3.25rem, 9.5vw, 5rem); }
  .editorial .band--tall { padding-block: clamp(4rem, 12vw, 6.25rem); }
  .editorial .band--tight { padding-block: clamp(2.25rem, 6vw, 3rem); }
}

/* The footer is part of the page composition, not a separate object
   bolted on: relate its opening space to the band rhythm. */
.editorial .site-footer { padding-block: clamp(3.25rem, 5.5vw, 4.75rem) clamp(2.5rem, 3.5vw, 3.25rem); }

/* The Guide intake shell spanned the full column while its content was
   capped at 46rem, leaving a large empty white field to the right. */
.editorial .guide-shell { max-width: 52rem; }

/* The engraved seal was set to a HIGHER opacity on phones than on
   desktop, so it read busiest exactly where it sits behind body copy. */
@media (max-width: 899px) {
  .editorial .hero-seal { opacity: .16; right: -42vw; width: 108vw; }
}

/* Long eyebrows wrapped to three lines on phones because the trailing
   rule keeps claiming a share of the line. */
.editorial .rule-label .qualifier::before { content: "· "; }
@media (max-width: 640px) {
  .editorial .rule-label { display: block; }
  .editorial .rule-label::after { display: none; }
  .editorial .rule-label .qualifier { display: block; }
  .editorial .rule-label .qualifier::before { content: none; }
}

/* ==================================================================
   GUIDED INTAKE (#73)
   Join Masters and Contact reuse the Guide's interaction vocabulary
   (.intake, .intake-step, .field, .choice, .review-list) so the three
   flows read as one institution. Only the pieces the Guide did not
   already need are added here.
   ================================================================== */

/* the review list's "Change this" affordance */
.linkish {
  display: inline-block;
  margin-top: .5rem;
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  font-size: .85rem;
  font-weight: 650;
  color: var(--oxblood);
  text-decoration: underline;
  text-underline-offset: .25rem;
  cursor: pointer;
}
.linkish:hover { color: var(--navy-900); }
.linkish:focus-visible { outline: 2px solid var(--oxblood); outline-offset: 3px; }

.editorial .review-list li { border-left-color: var(--oxblood); }
.editorial .review-list .label {
  font-family: var(--sans);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--oxblood);
  margin-bottom: .35rem;
}
.editorial .review-list p { margin: 0; }
.editorial .review-list .muted { color: var(--ink-dim); font-style: italic; }
.editorial .review-list textarea,
.editorial .review-list input[type="text"] {
  font: inherit;
  color: var(--ink);
  padding: .6rem .7rem;
  border: 1px solid var(--rule-light);
  border-radius: 4px;
  background: #fff;
}

/* the intake shell sits on a light band, so its own ink is explicit */
.editorial .intake-step h2 {
  font-family: var(--serif);
  letter-spacing: -.015em;
  margin: 0 0 .6rem;
}
.editorial .intake-step h2:focus-visible { outline: 2px solid var(--oxblood); outline-offset: 4px; }
.editorial .intake-progress { font-family: var(--sans); letter-spacing: .04em; }
.editorial .intake-progress .bar > span { background: var(--oxblood); }
.editorial .intake-step .help { font-family: var(--sans); line-height: 1.6; }
.editorial .field > label,
.editorial .fieldset > legend { font-family: var(--sans); font-size: .98rem; }
.editorial .field .hint { font-family: var(--sans); }
.editorial .field > label .hint {
  display: inline;
  margin-left: .5rem;
  font-size: .8rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.editorial .field input:focus-visible,
.editorial .field textarea:focus-visible,
.editorial .choice:focus-within {
  outline: 3px solid var(--oxblood);
  outline-offset: 1px;
  border-color: var(--oxblood);
}
.editorial .field .error { color: var(--oxblood); font-family: var(--sans); }
.editorial .field[aria-invalid="true"] input,
.editorial .field[aria-invalid="true"] textarea { border-color: var(--oxblood); }
.editorial .intake-error { color: var(--oxblood); font-family: var(--sans); }
.editorial .mic-btn { border-color: var(--navy-900); }
.editorial .mic-btn[aria-pressed="true"] {
  background: var(--oxblood);
  border-color: var(--oxblood);
  color: #fff;
}

/* the completed state */
.editorial .intake-done { border-color: var(--oxblood); border-left-width: 3px; }
.editorial .intake-done h2 { color: var(--navy-900); }
.editorial .intake-done p { font-family: var(--sans); line-height: 1.65; max-width: 58ch; }
.editorial .intake-done .reference {
  font-family: var(--sans);
  font-size: .88rem;
  letter-spacing: .06em;
  color: var(--ink-dim);
  border-top: 1px solid var(--rule-light);
  padding-top: 1rem;
  margin-top: 1.4rem;
}

@media (prefers-reduced-motion: reduce) {
  .editorial .intake-progress .bar > span { transition: none; }
}

/* Masters received the submission, but the courtesy confirmation did not go
   out. This is a caveat on a success, not a failure. */
.editorial .intake-done .confirm-warning {
  border-left: 3px solid var(--gold);
  padding-left: 1rem;
  color: var(--ink-dim);
}

/* Shown only when the submission service answered outside our contract. */
.editorial .diagnostic-ref {
  font-family: var(--sans);
  font-size: .8rem;
  letter-spacing: .04em;
  color: var(--ink-dim);
  margin-top: .5rem;
}

/* ==================================================================
   ASK MASTERS (#74)
   An institutional reference desk, not a chat widget. No orb, no
   bubble, no typing animation, no personality — it looks like the
   rest of the site because it is the rest of the site, searched.
   ================================================================== */

/* The trigger is inserted by script, so it exists only where it works. */
.editorial .ask-slot { display: inline-flex; margin-left: auto; }
.editorial .ask-trigger {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: none;
  border: 1px solid var(--rule-dark);
  color: #c8d4e0;
  font-family: var(--sans);
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: .5rem .8rem;
  min-height: 40px;
  cursor: pointer;
  white-space: nowrap;
}
.editorial .ask-trigger:hover { color: var(--gold-soft); border-color: var(--gold); }
.editorial .ask-trigger:focus-visible { outline: 2px solid var(--gold-soft); outline-offset: 3px; }
.editorial .ask-trigger-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.15rem;
  height: 1.15rem;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: .7rem;
  font-weight: 700;
}

/* Desktop: the trigger sits between the wordmark and the navigation.
   Mobile: it stays visible beside the menu control, because a question is
   as likely on a phone as anywhere. */
@media (min-width: 1260px) {
  .editorial .ask-slot { margin-left: 0; margin-right: 1.5rem; }
  .editorial .header-inner { gap: 1rem; }
}
@media (max-width: 1259px) {
  .editorial .ask-slot { margin-left: auto; margin-right: .6rem; }
  .editorial .ask-trigger { letter-spacing: .06em; padding: .5rem .65rem; }
}
/* On phones the masthead carries the wordmark, the desk trigger and the menu
   control. Measured at 390px, all three at full width overflow by 32px and push
   the menu control off-screen, so the desk trigger becomes its mark alone —
   still a real labelled control, just not a labelled-in-print one. */
@media (max-width: 560px) {
  .editorial .ask-slot { margin-right: .4rem; }
  .editorial .ask-trigger {
    padding: .5rem;
    width: 40px;
    justify-content: center;
  }
  .editorial .ask-trigger span:not(.ask-trigger-mark) {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
  .editorial .header-inner { gap: .5rem; }
  .editorial .nav-toggle { padding: .6rem .7rem; }
}

/* The desk itself: a document panel, anchored under the masthead. */
.editorial .ask-panel {
  position: fixed;
  top: var(--header-h);
  right: 0;
  z-index: 55;
  width: min(38rem, 100%);
  max-height: calc(100vh - var(--header-h));
  overflow-y: auto;
  overscroll-behavior: contain;
  background: var(--parchment);
  color: var(--ink);
  border-left: 1px solid var(--rule-light);
  border-bottom: 3px solid var(--oxblood);
  box-shadow: 0 24px 60px -30px rgba(0, 0, 0, .55);
  padding: clamp(1.4rem, 3vw, 2.2rem);
}
@media (prefers-reduced-motion: no-preference) {
  .editorial .ask-panel { animation: ask-in .18s ease both; }
  @keyframes ask-in { from { opacity: 0; transform: translateY(-.4rem); } to { opacity: 1; transform: none; } }
}

.editorial .ask-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.editorial .ask-title {
  font-family: var(--serif);
  font-size: 1.5rem;
  letter-spacing: -.01em;
  margin: 0;
}
.editorial .ask-title:focus-visible { outline: 2px solid var(--oxblood); outline-offset: 4px; }
.editorial .ask-close {
  background: none; border: 0; padding: .4rem .2rem;
  font-family: var(--sans); font-size: .78rem; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--oxblood); cursor: pointer;
}
.editorial .ask-close:focus-visible { outline: 2px solid var(--oxblood); outline-offset: 3px; }

.editorial .ask-form { margin-top: 1.2rem; }
.editorial .ask-label {
  display: block; font-family: var(--sans); font-size: .72rem; font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase; color: var(--oxblood); margin-bottom: .45rem;
}
.editorial .ask-input {
  width: 100%; font: inherit; font-family: var(--sans); color: var(--ink);
  padding: .7rem .8rem; border: 1px solid var(--rule-light); border-radius: 4px; background: #fff;
}
.editorial .ask-input:focus-visible { outline: 3px solid var(--oxblood); outline-offset: 1px; border-color: var(--oxblood); }
.editorial .ask-submit { margin-top: .8rem; }

.editorial .ask-status {
  font-family: var(--sans); font-size: .82rem; color: var(--ink-dim);
  margin: .8rem 0 0; min-height: 1.2em;
}

.editorial .ask-lede { font-family: var(--sans); font-size: .98rem; line-height: 1.6; margin: 0 0 .6rem; }
.editorial .ask-boundary {
  font-family: var(--sans); font-size: .85rem; line-height: 1.55; color: var(--ink-dim);
  border-left: 3px solid var(--gold); padding-left: .9rem; margin: 0 0 1.2rem;
}
.editorial .ask-suggested-label {
  font-family: var(--sans); font-size: .72rem; font-weight: 700; letter-spacing: .16em;
  text-transform: uppercase; color: var(--oxblood); margin: 0 0 .5rem;
}
.editorial .ask-suggested { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.editorial .ask-suggestion {
  background: none; border: 0; padding: .35rem 0; text-align: left;
  font: inherit; font-family: var(--sans); font-size: .92rem; color: var(--navy-900);
  text-decoration: underline; text-underline-offset: .25rem;
  text-decoration-color: var(--rule-light); cursor: pointer;
}
.editorial .ask-suggestion:hover { color: var(--oxblood); text-decoration-color: var(--oxblood); }
.editorial .ask-suggestion:focus-visible { outline: 2px solid var(--oxblood); outline-offset: 2px; }

.editorial .ask-lead {
  font-family: var(--sans); font-size: .82rem; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--oxblood); margin: 1.2rem 0 .8rem;
}
.editorial .ask-result { margin: 0 0 1.4rem; }
.editorial .ask-passage {
  font-family: var(--serif); font-size: 1.02rem; line-height: 1.6;
  margin: 0 0 .6rem; padding-left: 1rem; border-left: 3px solid var(--navy-900);
}
.editorial .ask-source { font-family: var(--sans); font-size: .84rem; margin: 0; }
.editorial .ask-source-label { color: var(--ink-dim); }
.editorial .ask-source a { color: var(--oxblood); text-underline-offset: .2rem; }
.editorial .ask-source-page { color: var(--ink-dim); }
.editorial .ask-note {
  font-family: var(--sans); font-size: .82rem; line-height: 1.55; color: var(--ink-dim); margin: .8rem 0 0;
}
.editorial .ask-next { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .5rem; }
.editorial .ask-next a { color: var(--oxblood); font-family: var(--sans); font-weight: 650; }
.editorial .ask-next span { font-family: var(--sans); font-size: .85rem; color: var(--ink-dim); }

@media (max-width: 640px) {
  .editorial .ask-panel { width: 100%; border-left: 0; }
}

/* Every control in the desk stays comfortably tappable. */
.editorial .ask-close,
.editorial .ask-suggestion { min-height: 32px; }

/* The desk trigger takes width the masthead did not previously spend. Between
   the nav's collapse point and the wide layout, the nine destinations plus the
   trigger need tighter setting or the row overflows — measured at 1280. */
@media (min-width: 1260px) and (max-width: 1439px) {
  .editorial .primary-nav ul { gap: 1rem; }
  .editorial .nav-group + .nav-group { margin-left: 1rem; padding-left: 1rem; }
  .editorial .primary-nav a { font-size: .85rem; }
  .editorial .ask-slot { margin-right: 1rem; }
  .editorial .ask-trigger { padding: .45rem .7rem; letter-spacing: .06em; }
}

/* Smallest phones: the wordmark's tracking is the last thing to give. */
@media (max-width: 400px) {
  .editorial .brand-word-b { letter-spacing: .14em; font-size: .58rem; }
  .editorial .brand { gap: .6rem; }
}

/* Additional sources are offered, not asserted: search rank is not evidence
   that a second passage adds anything, so the visitor chooses to look. */
.editorial .ask-more { margin: 1rem 0 0; }
.editorial .ask-more summary {
  font-family: var(--sans);
  font-size: .85rem;
  color: var(--oxblood);
  cursor: pointer;
  padding: .35rem 0;
  min-height: 32px;
}
.editorial .ask-more summary:focus-visible { outline: 2px solid var(--oxblood); outline-offset: 3px; }
.editorial .ask-more-list {
  list-style: none;
  margin: .6rem 0 0;
  padding: 0 0 0 1rem;
  border-left: 1px solid var(--rule-light);
  display: grid;
  gap: .45rem;
}
.editorial .ask-more-list a { font-family: var(--sans); font-size: .9rem; color: var(--oxblood); }

/* ==================================================================
   FINDINGS (#87)
   Generated pages under /research/findings/. These reuse the editorial
   band system; the rules here cover only what a long-form record needs
   and the existing pages did not: running prose inside a band, and a
   wide comparison table that must scroll rather than break the page.
   ================================================================== */

.editorial .prose > section { margin-top: 3.2rem; }
.editorial .prose > section:first-child { margin-top: 0; }
.editorial .prose h2 {
  font-family: var(--serif);
  font-size: clamp(1.5rem, 2.6vw, 2.1rem);
  line-height: 1.2;
  margin: 0 0 1rem;
}
.editorial .prose h3 {
  font-size: 1.1rem;
  margin: 2rem 0 .6rem;
}
.editorial .prose p { margin: 0 0 1.1rem; }
.editorial .prose ul, .editorial .prose ol { margin: 0 0 1.2rem; padding-left: 1.25rem; }
.editorial .prose li { margin-bottom: .45rem; }
.editorial .prose blockquote {
  margin: 1.6rem 0;
  padding: .2rem 0 .2rem 1.2rem;
  border-left: 3px solid var(--oxblood);
  font-family: var(--serif);
  font-size: 1.05rem;
}
.editorial .prose blockquote p { margin: 0; }
.editorial .prose hr { border: 0; border-top: 1px solid var(--rule-light); margin: 2.4rem 0; }
.editorial .prose pre {
  overflow-x: auto;
  padding: 1rem 1.1rem;
  background: var(--navy-900);
  color: var(--parchment);
  font-size: .85rem;
  line-height: 1.5;
}
.editorial .prose code { font-size: .9em; }
.editorial .prose .options { margin-bottom: 1.2rem; }

/* A record's comparison table is often wider than the measure. Let the
   table scroll inside its own box so the page itself never does. */
.editorial .table-scroll { overflow-x: auto; margin: 0 0 1.4rem; }
.editorial .table-scroll table { border-collapse: collapse; width: 100%; min-width: 34rem; }
.editorial .table-scroll th,
.editorial .table-scroll td {
  font-family: var(--sans);
  font-size: .88rem;
  text-align: left;
  vertical-align: top;
  padding: .6rem .8rem;
  border-bottom: 1px solid var(--rule-light);
}
.editorial .table-scroll th { font-weight: 700; letter-spacing: .02em; }

/* Findings index cards carry a link in the heading; keep it quiet. */
.editorial .pub h3 a { color: inherit; text-decoration-color: var(--rule-light); }
.editorial .pub h3 a:hover { text-decoration-color: currentColor; }

/* Record footers sit on the navy band; the default link colour is an
   oxblood tuned for parchment and disappears there. */
.editorial .band--navy .note a,
.editorial .band--navy-800 .note a { color: var(--gold); }
