:root {
  --ink: #162029;
  --muted: #59656d;
  --paper: #f4f0e7;
  --panel: #fffdf8;
  --line: #c9c2b5;
  --signal: #ef5b2a;
  --mint: #b8efdc;
  --blue: #1f4c67;
  --rail: 15rem;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background:
    linear-gradient(90deg, rgba(31, 76, 103, .05) 1px, transparent 1px) 0 0 / 42px 42px,
    var(--paper);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.62;
}
a { color: #0b526f; text-underline-offset: .18em; }
a:hover { color: #b43e19; }
a:focus-visible, summary:focus-visible { outline: 3px solid var(--signal); outline-offset: 4px; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 20; background: var(--ink); color: white; padding: .7rem 1rem; }
.skip-link:focus { top: 1rem; }
.dossier-frame { max-width: 90rem; margin: 0 auto; display: grid; grid-template-columns: var(--rail) minmax(0, 1fr); }
.signal-rail { min-height: 100vh; position: sticky; top: 0; align-self: start; border-right: 1px solid var(--line); padding: 1.8rem 1.2rem; background: rgba(244, 240, 231, .94); }
.rail-mark { width: 4rem; display: block; margin-bottom: 2rem; }
.rail-label { text-transform: uppercase; letter-spacing: .14em; font-size: .72rem; color: var(--muted); }
.signal-rail nav a { display: block; padding: .4rem 0; font-size: .9rem; text-decoration: none; border-bottom: 1px dotted var(--line); }
.rail-foot { margin-top: 3rem; font-size: .75rem; color: var(--muted); }
.dossier { min-width: 0; }
.mast { min-height: 38rem; display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(17rem, .8fr); gap: 2rem; align-items: end; padding: clamp(2rem, 6vw, 6rem); border-bottom: 8px solid var(--ink); }
.kicker, .section-code { font: 700 .74rem/1.3 ui-monospace, SFMono-Regular, Menlo, monospace; text-transform: uppercase; letter-spacing: .14em; color: #a63616; }
h1 { max-width: 16ch; margin: .5rem 0 1.5rem; font: 800 clamp(2.6rem, 6.5vw, 6.8rem)/.92 Georgia, serif; letter-spacing: -.045em; }
.deck { max-width: 50rem; font-size: clamp(1.05rem, 2vw, 1.35rem); }
.decision-stamp { background: var(--ink); color: white; padding: 1.5rem; border-radius: 50% 50% 5% 5%; min-height: 19rem; display: grid; place-content: center; text-align: center; transform: rotate(2deg); }
.decision-stamp strong { display: block; color: var(--mint); font: 800 2.8rem/1 Georgia, serif; }
.decision-stamp span { display: block; margin-top: .7rem; font-size: .82rem; }
.ledger-section { padding: clamp(2rem, 5vw, 5rem) clamp(1.3rem, 6vw, 6rem); border-bottom: 1px solid var(--line); }
.ledger-section > header { display: grid; grid-template-columns: 8rem minmax(0, 52rem); gap: 1rem; align-items: start; margin-bottom: 2rem; }
.ledger-section h2 { margin: 0; font: 750 clamp(1.9rem, 4vw, 3.8rem)/1.02 Georgia, serif; letter-spacing: -.025em; }
.brief-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--ink); background: var(--panel); }
.brief-grid div { padding: 1.4rem; border-right: 1px solid var(--ink); }
.brief-grid div:last-child { border-right: 0; }
.brief-grid dt { font: 700 .74rem/1.3 ui-monospace, monospace; text-transform: uppercase; color: var(--muted); }
.brief-grid dd { margin: .55rem 0 0; }
.table-wrap { overflow-x: auto; border: 1px solid var(--ink); background: var(--panel); }
.table-wrap:focus { outline: 3px solid var(--signal); }
table { width: 100%; min-width: 64rem; border-collapse: collapse; }
caption { text-align: left; padding: 1rem; font-weight: 700; background: var(--mint); }
th, td { padding: .8rem .75rem; vertical-align: top; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: left; }
th { font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; background: #e9e4d9; }
tbody tr:first-child { background: #fff0e9; }
.company-ledger { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--ink); }
.company-ledger > li { display: grid; grid-template-columns: 5rem minmax(12rem, .8fr) minmax(0, 2fr); gap: 1.4rem; padding: 1.6rem 0; border-bottom: 1px solid var(--ink); }
.rank-token { font: 800 2.7rem/1 Georgia, serif; color: var(--signal); }
.company-ledger h3 { margin: 0 0 .4rem; font: 750 1.45rem/1.15 Georgia, serif; }
.company-ledger p { margin: 0 0 .7rem; }
.source-chip { display: inline-block; padding: .2rem .5rem; background: var(--blue); color: white; font: 700 .7rem/1.2 ui-monospace, monospace; text-transform: uppercase; }
.proof-pane { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--ink); border: 1px solid var(--ink); }
.proof-pane article { background: var(--panel); padding: 1.4rem; }
.proof-pane h3 { margin-top: 0; }
.method-track { display: grid; grid-template-columns: 3fr 3fr 2fr 1fr 1fr; min-height: 8rem; border: 1px solid var(--ink); }
.method-track div { padding: 1rem; border-right: 1px solid var(--ink); display: flex; flex-direction: column; justify-content: space-between; }
.method-track div:last-child { border-right: 0; }
.method-track strong { font-size: 1.6rem; color: var(--signal); }
.question-stack { border-top: 1px solid var(--ink); }
.question-stack details { border-bottom: 1px solid var(--ink); padding: 1rem 0; }
.question-stack summary { cursor: pointer; display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 1rem; font: 700 1.1rem/1.35 Georgia, serif; }
.question-stack summary::before { content: attr(data-index); color: var(--signal); font-family: ui-monospace, monospace; }
.question-stack [data-scenario-answer] { max-width: 58rem; margin: 1rem 0 .3rem 4rem; }
.source-register { columns: 2; column-gap: 3rem; padding-left: 1.2rem; }
.source-register li { break-inside: avoid; margin-bottom: .8rem; }
.site-foot { padding: 2rem clamp(1.3rem, 6vw, 6rem) 3rem; font-size: .83rem; color: var(--muted); }

@media (max-width: 820px) {
  .dossier-frame { display: block; }
  .signal-rail { position: static; min-height: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .signal-rail nav { display: flex; gap: 1rem; overflow-x: auto; }
  .signal-rail nav a { white-space: nowrap; }
  .mast, .proof-pane { grid-template-columns: 1fr; }
  .decision-stamp { border-radius: 1rem; min-height: 10rem; transform: none; }
  .ledger-section > header, .company-ledger > li { grid-template-columns: 1fr; }
  .brief-grid { grid-template-columns: 1fr; }
  .brief-grid div { border-right: 0; border-bottom: 1px solid var(--ink); }
  .method-track { grid-template-columns: 1fr; }
  .method-track div { border-right: 0; border-bottom: 1px solid var(--ink); }
  .source-register { columns: 1; }
}

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