/* GENERATED from design/tokens.json — do not edit by hand.
   Run: python3 scripts/gen_design_tokens.py
   Rucks Field Journal tokens (DECISION-185). */

:root {
  /* color */
  --color-bg: #f0e8d8; /* warm sand ground */
  --color-bg-mid: #e4d8c4; /* raised surface */
  --color-fg: #281e12; /* ink */
  --color-fg-muted: #685e4b; /* muted ink — ≥4.5:1 on bg AND bgMid (WCAG AA body text; was #7a6e58 at 4.1:1, DECISION-220) */
  --color-accent: #8b4a24; /* rust */
  --color-dark-bg: rgba(22,14,7,0.97); /* Dark contexts (full-bleed heroes, Ask Rucks sheet) */
  --color-dark-scrim: rgba(28,18,8,0.55);
  --color-cream: #f0e8d8;
  --color-cream-muted: rgba(240,232,216,0.58); /* muted cream for TEXT on the dark band — 5.7:1 (was 0.45 at 3.9:1, DECISION-220) */
  --color-cream-faint: rgba(240,232,216,0.25); /* decoration only — never text (2:1) */
  --color-hairline: rgba(40,30,18,0.07);
  --color-hairline-strong: rgba(40,30,18,0.12);
  --color-border: rgba(40,30,18,0.22);

  /* type (family + weight per role; style only when italic) */
  --font-serif: 'Libre Baskerville', Georgia, serif;
  --font-serif-weight: 400;
  --font-serif-bold: 'Libre Baskerville', Georgia, serif;
  --font-serif-bold-weight: 700;
  --font-serif-italic: 'Libre Baskerville', Georgia, serif;
  --font-serif-italic-weight: 400;
  --font-serif-italic-style: italic;
  --font-sans-light: 'Source Sans 3', -apple-system, 'Segoe UI', sans-serif;
  --font-sans-light-weight: 300;
  --font-sans: 'Source Sans 3', -apple-system, 'Segoe UI', sans-serif;
  --font-sans-weight: 400;
  --font-sans-semi: 'Source Sans 3', -apple-system, 'Segoe UI', sans-serif;
  --font-sans-semi-weight: 600;

  /* spacing (iOS-only tokens omitted; s1–s9 + gutters are the web scale, DECISION-220) */
  --space-page: 28px; /* universal horizontal gutter (app) */
  --space-s1: 4px;
  --space-s2: 8px;
  --space-s3: 12px;
  --space-s4: 16px;
  --space-s5: 24px;
  --space-s6: 32px;
  --space-s7: 48px;
  --space-s8: 64px;
  --space-s9: 96px;
  --space-gutter-desktop: 28px; /* ≥ 1024px */
  --space-gutter-tablet: 24px; /* 600–1023px */
  --space-gutter-mobile: 20px; /* ≤ 599px */

  /* geometry — Square geometry: no border radii anywhere */
  --radius: 0px;

  /* Tracked-uppercase label grammar (the prototype's 9px/0.22em eyebrow) */
  --label-size: 9px;
  --label-tracking: 0.22em;
  --label-font: var(--font-sans-light);
  --label-weight: var(--font-sans-light-weight);
  --label-color: var(--color-fg-muted);

  /* Type scale (Session 271, DECISION-192; TestFlight feedback 'fonts are really small') */
  --type-eyebrow-size: 11px;
  --type-eyebrow-lh: 14px;
  --type-caption-size: 12px;
  --type-caption-lh: 16px;
  --type-ui-size: 14px;
  --type-ui-lh: 18px;
  --type-body-size: 16px;
  --type-body-lh: 24px;
  --type-body-lg-size: 18px;
  --type-body-lg-lh: 27px;
  --type-lead-size: 21px;
  --type-lead-lh: 30px;
  --type-title-size: 26px;
  --type-title-lh: 32px;
  --type-display-size: 32px;
  --type-display-lh: 40px;
  --type-hero-size: 40px;
  --type-hero-lh: 46px;

  /* Control padding tiers (vertical) and the minimum tap target */
  --control-bar-pad: 11px;
  --control-action-pad: 15px;
  --control-cta-pad: 17px;
  --control-min-tap: 48px;
}
