/* Neue Machina (Pangram Pangram): display / grotesk face. Files live next to this stylesheet in fonts/. */
@font-face { font-family: "Neue Machina"; src: url("fonts/NeueMachina-light.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "Neue Machina"; src: url("fonts/NeueMachina-regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Neue Machina"; src: url("fonts/NeueMachina-ultrabold.woff2") format("woff2"); font-weight: 800; font-style: normal; font-display: swap; }
/* Imaginarium Codex — generated from tokens.json */
:root, [data-theme="paper"] {
  --paper: #ece8df;
  --sheet: #f6f3ec;
  --ink: #161513;
  --ink-muted: #5a564e;
  --ink-fixed: #161513;
  --on-bar: #ece8df;
  --rule: #161513;
  --rule-soft: #bdb6a8;
  --kraft: #cbb894;
  --index-card: #f0e27a;
  --card-muted: #5c5631;
  --card-hand: #a02e14;
  --field: #46634d;
  --field-tint: #cad5c3;
  --eye: #2440c0;
  --signal: #b8361a;
  --term-bg: #0f0f0d;
  --term-ink: #e9e5db;
  --term-muted: #a39e92;
  --term-ok: #9dbba3;
  --term-alert: #ff7452;
  --win-face: #c3c1b9;
  --win-light: #f4f3ef;
  --win-shadow: #7d7b75;
  --code-bg: #272724;
  --code-ink: #e9e5db;
  --code-muted: #a39e92;
  --code-const: #f0e27a;
  --code-field: #9dbba3;
  --code-eye: #93a6ff;
  --code-hand: #ff7452;
  --plate-paper: #efebe2;
  --riso-black: #1d1c1a;
  --riso-green: #407060;
  --riso-blue: #3255a4;
  --riso-red: #f15060;
  --paper-origin: #cfd6c0;
  --paper-preface: #dcdcd6;
  --paper-epilogue: #f1d9d5;
  --paper-bonus: #cde2e8;
  --paper-appendix: #f0e4a0;
}
[data-theme="terminal"], .t-terminal {
  --paper: #0f0f0d;
  --sheet: #1a1a17;
  --ink: #e9e5db;
  --ink-muted: #a39e92;
  --ink-fixed: #161513;
  --on-bar: #0f0f0d;
  --rule: #e9e5db;
  --rule-soft: #3a3832;
  --kraft: #cbb894;
  --index-card: #f0e27a;
  --card-muted: #5c5631;
  --card-hand: #a02e14;
  --field: #9dbba3;
  --field-tint: #2c3a30;
  --eye: #93a6ff;
  --signal: #ff7452;
  --term-bg: #0f0f0d;
  --term-ink: #e9e5db;
  --term-muted: #a39e92;
  --term-ok: #9dbba3;
  --term-alert: #ff7452;
  --win-face: #c3c1b9;
  --win-light: #f4f3ef;
  --win-shadow: #7d7b75;
  --code-bg: #272724;
  --code-ink: #e9e5db;
  --code-muted: #a39e92;
  --code-const: #f0e27a;
  --code-field: #9dbba3;
  --code-eye: #93a6ff;
  --code-hand: #ff7452;
  --plate-paper: #efebe2;
  --riso-black: #1d1c1a;
  --riso-green: #407060;
  --riso-blue: #3255a4;
  --riso-red: #f15060;
  --paper-origin: #cfd6c0;
  --paper-preface: #dcdcd6;
  --paper-epilogue: #f1d9d5;
  --paper-bonus: #cde2e8;
  --paper-appendix: #f0e4a0;
}
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --space-16: 64px;
  --radius-0: 0px;
  --radius-tab: 6px;
  --radius-pill: 999px;
  --page-width: 600px;
  --page-height: 900px;
  --margin-outer: 48px;
  --margin-inner: 56px;
  --margin-note: 112px;
  --stroke-hairline: 1px;
  --stroke-rule: 2px;
  --stroke-bar: 8px;
  --font-grotesk: "Neue Machina", "Archivo", "Arial Narrow", system-ui, sans-serif;
  --font-serif: "Newsreader", Georgia, "Times New Roman", serif;
  --font-mono: "IBM Plex Mono", ui-monospace, "Courier New", monospace;
}
.numeral { font-family: var(--font-grotesk); font-size: 180px; line-height: 0.82; font-weight: 800; letter-spacing: -0.03em; }
.chapter-title { font-family: var(--font-grotesk); font-size: 54px; line-height: 0.94; font-weight: 800; letter-spacing: -0.01em; }
.section-head { font-family: var(--font-grotesk); font-size: 26px; line-height: 1.05; font-weight: 700; }
.stamp { font-family: var(--font-grotesk); font-size: 15px; line-height: 1; font-weight: 800; letter-spacing: 0.06em; }
.lede { font-family: var(--font-serif); font-size: 21px; line-height: 29px; font-weight: 400; }
.body { font-family: var(--font-serif); font-size: 16px; line-height: 25px; font-weight: 400; }
.transmission { font-family: var(--font-serif); font-size: 28px; line-height: 35px; font-weight: 400; font-style: italic; }
.footnote { font-family: var(--font-serif); font-size: 12.5px; line-height: 18px; font-weight: 400; }
.label { font-family: var(--font-mono); font-size: 10px; line-height: 13px; font-weight: 500; letter-spacing: 0.08em; }
.meta { font-family: var(--font-mono); font-size: 12px; line-height: 16px; font-weight: 400; letter-spacing: 0.02em; }
.data { font-family: var(--font-mono); font-size: 13px; line-height: 19px; font-weight: 400; }
.annotation { font-family: var(--font-mono); font-size: 11px; line-height: 15px; font-weight: 500; }
