/* ace:oklch v1 - two-layer token system (Slice 3), operator decision 2026-07-29.

   RENDERING layer: bare sRGB channels. Bare, not a colour function, so Tailwind's
   <alpha-value> placeholder can inject the opacity modifier - 1,039 utilities across
   the live pages carry one, and they break silently under an opaque var().

   AUTHORING layer: the OKLCH value from DESIGN.md section 3. Perceptually uniform,
   so a token can be lightened or darkened without a hue shift.

   Why two layers instead of rendering straight from OKLCH: Chrome's OKLCH-to-sRGB
   conversion is not bit-identical to the source hex. Rendering from OKLCH shifted
   Warm Paper by one unit site-wide (#f6f1e8 -> #f7f1e9, deltaE 0.63) - invisible to a
   viewer, but a real unintended change to every background pixel, caught by
   tools/pixel_diff.py. sRGB channels render byte-exact. */
:root {
  /* rendering */
  --warm-paper: 246 241 232;
  --card: 255 254 250;
  --brand-navy: 12 15 70;
  --deep-ink: 10 24 40;
  --hero-mid: 12 42 72;
  --terracotta: 196 93 62;
  --trust-bronze: 138 74 47;
  --premium-gold: 201 162 39;
  --body-text: 30 30 30;
  --muted: 106 102 96;
  --hairline: 232 227 218;
  /* Dark surfaces hold the original logo's 271.862-degree OKLCH hue. */
  --reading-ink: 8 13 46;
  --reading-card: 21 28 68;
  --reading-paper: 252 248 254;
  --reading-body: 183 180 186;
  --reading-hair: 49 59 95;
  --success: 47 110 62;
  --warning: 154 122 31;
  --critical: 154 58 31;

  /* authoring reference - DESIGN.md section 3 */
  --warm-paper-oklch: oklch(96.0% 0.013 82.4);
  --card-oklch: oklch(99.7% 0.005 95.1);
  --brand-navy-oklch: oklch(21.4% 0.100 271.9);
  --deep-ink-oklch: oklch(20.6% 0.038 252.9);
  --hero-mid-oklch: oklch(28.0% 0.066 251.4);
  --terracotta-oklch: oklch(59.9% 0.140 37.4);
  --trust-bronze-oklch: oklch(48.1% 0.096 43.0);
  --premium-gold-oklch: oklch(72.8% 0.138 89.7);
  --body-text-oklch: oklch(23.5% 0.000 89.9);
  --muted-oklch: oklch(51.2% 0.011 78.2);
  --hairline-oklch: oklch(91.7% 0.013 82.4);
  --reading-ink-oklch: oklch(18% 0.065 271.862);
  --reading-card-oklch: oklch(24.5% 0.075 271.862);
  --reading-paper-oklch: oklch(98.4% 0.009 314.8);
  --reading-body-oklch: oklch(77.4% 0.009 308.3);
  --reading-hair-oklch: oklch(36% 0.065 271.862);
  --success-oklch: oklch(48.4% 0.100 149.1);
  --warning-oklch: oklch(59.5% 0.111 88.1);
  --critical-oklch: oklch(47.9% 0.135 36.3);
}
