/* Hallmark · macrostructure: Narrative Workflow · genre: editorial · theme: Newsprint · tone: austere legal dossier · anchor hue: seal red · enrichment: none · nav: N6 · footer: Ft4
 * contrast: pass (40–41) · slop: pass (42–45) · honest: pass (46) · chrome: pass (47) · tokens: pass (48) · icons: pass (30) · mobile: pass (34, 49, 50–57)
 */
/* Hallmark · pre-emit critique: P5 H5 E5 S5 R5 V5 */
@import url("tokens.css");

* { box-sizing: border-box; }
html { color-scheme: light dark; overflow-x: clip; scroll-behavior: smooth; }
body { margin: 0; min-width: 0; overflow-x: clip; background: var(--color-paper); color: var(--color-ink); font-family: var(--font-body); font-size: var(--text-base); line-height: 1.72; }
a { color: var(--color-accent); text-decoration-thickness: var(--rule-hair); text-underline-offset: var(--space-2xs); }
a:hover { text-decoration-thickness: var(--rule-heavy); }
a:focus-visible, button:focus-visible { outline: var(--rule-heavy) solid var(--color-focus); outline-offset: var(--space-2xs); }
button { font: inherit; }
button:disabled { opacity: 0.48; cursor: not-allowed; }
button[aria-busy="true"] { cursor: wait; }
button[data-state="error"] { border-color: var(--color-danger); }
button[data-state="success"] { border-color: var(--color-success); }
img, svg { max-width: 100%; }
dfn { font-style: normal; font-weight: 700; text-decoration: underline; text-decoration-color: var(--color-accent); text-decoration-thickness: var(--rule-hair); text-underline-offset: var(--space-2xs); }

.skip-link { position: absolute; inset-block-start: var(--space-xs); inset-inline-start: var(--space-xs); z-index: var(--z-sticky); padding: var(--space-sm) var(--space-md); background: var(--color-ink); color: var(--color-paper); transform: translateY(-180%); white-space: nowrap; }
.skip-link:focus { transform: translateY(0); }

.nav-mast { padding: var(--space-md) var(--page-gutter) 0; text-align: center; background: var(--color-paper); }
.mast-line { margin: 0; color: var(--color-muted); font-family: var(--font-outlier); font-size: var(--text-xs); letter-spacing: 0.1em; text-transform: uppercase; }
.mast-name { margin: var(--space-xs) auto; max-width: 18ch; font-family: var(--font-display); font-size: clamp(1.9rem, 6vw, 3.4rem); font-style: normal; font-weight: 900; letter-spacing: -0.035em; line-height: 1.06; overflow-wrap: anywhere; min-width: 0; }
.mast-controls { display: flex; justify-content: center; align-items: center; gap: var(--space-xs); margin-block: var(--space-sm); }
.menu-toggle, .theme-toggle { min-height: 2.75rem; padding: var(--space-xs) var(--space-md); border: var(--rule-hair) solid var(--color-ink); border-radius: var(--radius-control); background: var(--color-paper-raised); color: var(--color-ink); cursor: pointer; white-space: nowrap; }
.menu-toggle:hover, .theme-toggle:hover { background: var(--color-ink); color: var(--color-paper); }
.menu-toggle:active, .theme-toggle:active { transform: translateY(var(--rule-hair)); }
.mast-nav { display: none; }
.mast-nav[data-open="true"] { display: block; }
.mast-nav ul { display: flex; flex-direction: column; align-items: stretch; gap: 0; margin: 0; padding: 0; list-style: none; border-block-start: var(--rule-hair) solid var(--color-rule); }
.mast-nav a { display: block; min-height: 2.75rem; padding: var(--space-xs) var(--space-sm); border-block-end: var(--rule-hair) solid var(--color-rule-soft); color: var(--color-ink); font-weight: 700; text-decoration: none; white-space: nowrap; }
.mast-nav a[aria-current="page"] { color: var(--color-accent); }
.mast-nav a:hover { background: var(--color-paper-soft); }
.mast-rule { height: var(--space-xs); margin: 0; border: 0; border-block-start: var(--rule-hair) solid var(--color-ink); border-block-end: var(--rule-heavy) solid var(--color-ink); }

.breadcrumb { display: flex; gap: var(--space-xs); align-items: center; max-width: 76rem; margin-inline: auto; padding: var(--space-md) var(--page-gutter) 0; color: var(--color-muted); font-size: var(--text-sm); overflow-x: auto; }
.breadcrumb a { color: var(--color-muted); white-space: nowrap; }
.breadcrumb span { white-space: nowrap; }

.page-shell { max-width: 76rem; margin-inline: auto; padding: var(--space-xl) var(--page-gutter) var(--space-3xl); }
.hero { display: grid; gap: var(--space-lg); padding-block: var(--space-lg) var(--space-2xl); border-block-end: var(--rule-heavy) solid var(--color-ink); }
.hero-copy { min-width: 0; }
.folio { margin: 0 0 var(--space-sm); color: var(--color-accent); font-family: var(--font-outlier); font-size: var(--text-sm); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.hero h1 { max-width: 12ch; margin: 0; font-family: var(--font-display); font-size: var(--text-display); font-style: normal; font-weight: 900; letter-spacing: -0.045em; line-height: 1.08; overflow-wrap: anywhere; min-width: 0; }
.hero .lede { max-width: 46ch; margin: 0; align-self: end; color: var(--color-ink-soft); font-family: var(--font-display); font-size: var(--text-md); font-weight: 600; line-height: 1.55; }
.docket { align-self: start; padding: var(--space-md); border-block: var(--rule-hair) solid var(--color-rule); font-family: var(--font-body); font-size: var(--text-sm); }
.docket p { margin: 0; }
.docket p + p { margin-block-start: var(--space-xs); }
.docket strong { color: var(--color-accent); }

.reading-body { display: grid; gap: var(--space-2xl); padding-block-start: var(--space-2xl); }
.prose-section { min-width: 0; }
.prose-section h2 { max-width: 18ch; margin: 0 0 var(--space-lg); font-family: var(--font-display); font-size: var(--text-2xl); font-style: normal; font-weight: 900; letter-spacing: -0.025em; line-height: 1.18; overflow-wrap: anywhere; }
.prose-section h3 { margin: var(--space-xl) 0 var(--space-md); font-family: var(--font-display); font-size: var(--text-lg); font-style: normal; font-weight: 900; line-height: 1.28; }
.prose-section p, .prose-section ul, .prose-section ol { max-width: var(--measure); margin-inline: 0; }
.prose-section p { margin-block: 0 var(--space-md); }
.prose-section li + li { margin-block-start: var(--space-sm); }
.prose-section > p:first-of-type::first-letter { float: inline-start; margin-inline-end: var(--space-xs); color: var(--color-accent); font-family: var(--font-display); font-size: 3.45rem; font-weight: 900; line-height: 0.82; }
.section-rule { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-md); align-items: center; margin-block-end: var(--space-lg); color: var(--color-muted); font-family: var(--font-body); font-size: var(--text-xs); letter-spacing: 0.08em; text-transform: uppercase; }
.section-rule::after { content: ""; border-block-start: var(--rule-hair) solid var(--color-rule); }

.case-note { max-width: 62ch; margin-block: var(--space-xl); padding: var(--space-lg); border: var(--rule-hair) solid var(--color-rule); border-block-start-width: var(--rule-heavy); background: var(--color-paper-raised); box-shadow: var(--shadow-paper); }
.case-note h3 { margin-block-start: 0; }
.case-note p:last-child { margin-block-end: 0; }
.stamp { display: inline-block; margin-block-end: var(--space-md); padding: var(--space-2xs) var(--space-xs); border: var(--rule-heavy) double var(--color-accent); color: var(--color-accent); font-family: var(--font-body); font-size: var(--text-xs); font-weight: 700; letter-spacing: 0.08em; transform: rotate(-1deg); }

.evidence-chain { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-md); max-width: 72rem; margin: var(--space-xl) 0; padding: 0; list-style: none; counter-reset: chain; }
.evidence-chain li { position: relative; padding: var(--space-md) 0 var(--space-md) 3.25rem; border-block-start: var(--rule-hair) solid var(--color-rule); counter-increment: chain; }
.evidence-chain li::before { content: counter(chain, decimal-leading-zero); position: absolute; inset-inline-start: 0; inset-block-start: var(--space-md); color: var(--color-accent); font-family: var(--font-body); font-size: var(--text-md); font-weight: 700; }
.evidence-chain strong { display: block; margin-block-end: var(--space-xs); font-family: var(--font-display); font-size: var(--text-md); }

.ledger-wrap { max-width: 72rem; margin-block: var(--space-xl); overflow-x: auto; border-block: var(--rule-heavy) solid var(--color-ink); }
.ledger { width: 100%; border-collapse: collapse; min-width: 40rem; }
.ledger th, .ledger td { padding: var(--space-sm) var(--space-md); border-block-end: var(--rule-hair) solid var(--color-rule); text-align: start; vertical-align: top; }
.ledger th { font-family: var(--font-body); font-size: var(--text-xs); letter-spacing: 0.06em; text-transform: uppercase; }
.ledger tr:last-child td { border-block-end: 0; }

.verdict-scale { display: grid; gap: var(--space-sm); max-width: 64ch; margin-block: var(--space-xl); }
.verdict-scale div { display: grid; grid-template-columns: 6rem minmax(0, 1fr); gap: var(--space-md); padding-block: var(--space-sm); border-block-start: var(--rule-hair) solid var(--color-rule); }
.verdict-scale strong { font-family: var(--font-body); color: var(--color-accent); }

.source-list { max-width: 72rem; margin: 0; padding: 0; list-style: none; }
.source-list li { padding-block: var(--space-lg); border-block-start: var(--rule-hair) solid var(--color-rule); }
.source-list h2 { max-width: none; margin: 0 0 var(--space-xs); font-size: var(--text-lg); }
.source-list p { margin: 0 0 var(--space-sm); }
.source-meta { color: var(--color-muted); font-family: var(--font-body); font-size: var(--text-xs); }

.chapter-nav { display: grid; gap: var(--space-sm); margin-block-start: var(--space-2xl); padding-block-start: var(--space-lg); border-block-start: var(--rule-heavy) solid var(--color-ink); }
.chapter-nav a { display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); min-height: 2.75rem; padding: var(--space-sm) 0; color: var(--color-ink); font-family: var(--font-display); font-size: var(--text-md); font-weight: 900; text-decoration: none; white-space: nowrap; }
.chapter-nav a:hover { color: var(--color-accent); }

.site-footer { padding: var(--space-xl) var(--page-gutter); border-block-start: var(--rule-heavy) double var(--color-ink); background: var(--color-paper-soft); }
.colophon { display: grid; gap: var(--space-sm); max-width: 76rem; margin-inline: auto; font-family: var(--font-body); font-size: var(--text-xs); line-height: 1.6; }
.colophon p { margin: 0; }
.colophon a { white-space: nowrap; }

@media (min-width: 40rem) {
  .hero { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); align-items: end; }
  .docket { grid-column: 2; }
  .evidence-chain { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .chapter-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .chapter-nav a:last-child { text-align: end; }
  .colophon { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
}

@media (min-width: 60rem) {
  .menu-toggle { display: none; }
  .mast-controls { position: absolute; inset-block-start: var(--space-md); inset-inline-end: var(--page-gutter); margin: 0; }
  .mast-nav, .mast-nav[data-open="false"] { display: block; }
  .mast-nav ul { flex-direction: row; justify-content: center; flex-wrap: wrap; border: 0; }
  .mast-nav a { border: 0; }
  .hero { grid-template-columns: minmax(0, 5fr) minmax(16rem, 2fr); gap: var(--space-3xl); }
  .hero .lede { max-width: 38ch; }
  .reading-body { grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); column-gap: var(--space-3xl); }
  .prose-section { grid-column: 2; }
  .prose-section:nth-child(even) { grid-column: 1 / -1; width: 75%; justify-self: end; }
  .evidence-chain { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .evidence-chain li { padding: var(--space-2xl) var(--space-md) var(--space-md) 0; }
  .evidence-chain li::before { inset-block-start: var(--space-md); }
}

@media (pointer: coarse) {
  .mast-nav a, .menu-toggle, .theme-toggle, .chapter-nav a { min-height: 2.75rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: var(--dur-micro) !important; animation-iteration-count: 1 !important; transition-duration: var(--dur-micro) !important; }
}

@media print {
  .skip-link, .mast-controls { display: none; }
  .nav-mast, .site-footer { background: var(--color-paper); }
  a { color: var(--color-ink); }
  .page-shell { max-width: none; padding: 0; }
  .case-note { box-shadow: none; break-inside: avoid; }
}
