/* GENERATED by tools/build-tokens.js from design/tokens.json (DTCG 2025.10).
   Do not hand-edit — change the tokens and re-run the script. */

/* Self-hosted variable fonts (latin subsets; display=swap behavior via
   font-display: swap). DM Sans = structural headings, Inter = body,
   JetBrains Mono = money and figures, Source Serif 4 = statements only
   (Direction v1 §2, OFL 1.1). */
@font-face {
  font-family: 'DM Sans';
  src: url('/assets/fonts/dm-sans-var.woff2') format('woff2');
  font-weight: 400 1000;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('/assets/fonts/inter-var.woff2') format('woff2');
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'JetBrains Mono';
  src: url('/assets/fonts/jetbrains-mono-var.woff2') format('woff2');
  font-weight: 400 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Source Serif 4';
  src: url('/assets/fonts/source-serif-4-var.woff2') format('woff2');
  font-weight: 200 900;
  font-style: normal;
  font-display: swap;
}
/* No italic face: Direction §2 ships the italic variable file only if pull
   quotes ship. None do (Integration Report §5, Blog) — the full italic file
   is preserved at research/fonts/source-serif-4-italic-var-full.woff2. */

:root {
  --color-ink: #1A4331;
  --color-ink-20: #CDD4CC;
  --color-ink-40: #A0B0A5;
  --color-ink-60: #748B7F;
  --color-ink-80: #476758;
  --color-paper: #FAF8F3;
  --color-paper-70: #B7C2B9;
  --color-rust: #B85C1E;
  --font-display: 'DM Sans', Inter, system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --font-sans: Inter, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-serif: 'Source Serif 4', Georgia, 'Times New Roman', serif;
  --text-blog-headline: 2rem;
  --text-blog-headline-lg: 2.5rem;
  --text-body: 1rem;
  --text-caption: 0.75rem;
  --text-eyebrow: 0.6875rem;
  --text-figure: 0.875rem;
  --text-h1: 1.75rem;
  --text-h1-lg: 2.5rem;
  --text-h2: 1.25rem;
  --text-h2-lg: 1.5rem;
  --text-hero: 2.5rem;
  --text-hero-lg: 3.5rem;
  --text-lede: 1.125rem;
  --text-mono-note: 0.75rem;
  --text-statement: 1.75rem;
  --text-statement-lg: 2rem;
  --text-worked-figure: 2rem;
  --text-worked-figure-lg: 2.5rem;
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;
  --space-row: 1rem;
  --space-row-lg: 1.25rem;
  --space-section: 4rem;
  --space-section-lg: 6rem;
  --radius-none: 0;
  --layout-container: 1200px;
  --layout-gutter: 20px;
  --layout-gutter-lg: 24px;
  --layout-prose: 44rem;
  --layout-touch: 48px;
}
