/* tokens.css — GENERATED by tools/palette.mjs. Do not edit by hand.
   Every value below was solved in OKLCh and proved as a PAIR: each surface
   against the photograph it sits on (at the dark and the bright end of the
   picture, composited in GAMMA space the way the compositor does it), and each
   ink against the thinnest glass it is ever set on. Run
   `node tools/palette.mjs --check` to re-prove it and
   `node tools/palette.mjs --control` to prove the check still fails when it
   should.

   The ground measured here: p10 rgb(74 106 150), p50 rgb(199 137 169), p90 rgb(203 200 172). */
:root {
  /* inks — hue 55, a warm near-black drawn from the weave's own shadow */
  --ink: #2c1d12;
  --ink-2: #493629;
  --ink-3: #614a3c;
  --line: rgba(44, 29, 18, .13);
  --line-2: rgba(44, 29, 18, .075);

  /* russet — IN KIND. The mark, every primary button, and the two operations
     that involve no price at all: hand the units in, take the units back. */
  --russet: #6e3220;
  --russet-2: #a94c2e;
  --clay: #f4c5b2;
  --clay-ink: #6a3622;
  --russet-wash: rgba(110, 50, 32, .12);

  /* indigo — PRICED. The pools, the feeds, the dollars: everything outside the
     creel, where a price exists and can be wrong. */
  --indigo: #234b6e;
  --indigo-2: #386d9d;
  --haze: #c1d8f3;
  --indigo-wash: rgba(35, 75, 110, .10);

  /* gold — the ground's own dominant, as a chip tint and its ink */
  --gold: #f0d19e;
  --gold-ink: #5f4117;
  --gold-wash: rgba(95, 65, 23, .10);

  --bright: #f6e5cf;
  --sage: #9be19c;
  --up: #295a2c;
  --down: #94221f;
  --wash: rgba(44, 29, 18, .06);
  --wash-2: rgba(44, 29, 18, .11);

  /* the same colours as r,g,b triples, so the stylesheet can set an alpha on one
     of them without ever typing a chromatic literal of its own (tools/validate.mjs
     refuses those: a brand hue typed into CSS is the thing that drifts). */
  --ink-rgb: 44, 29, 18;
  --russet-rgb: 110, 50, 32;
  --indigo-rgb: 35, 75, 110;
  --clay-rgb: 244, 197, 178;
  --gold-rgb: 240, 209, 158;
  --haze-rgb: 193, 216, 243;
  --sage-rgb: 155, 225, 156;
  --bright-rgb: 246, 229, 207;
  --up-rgb: 41, 90, 44;
  --down-rgb: 148, 34, 31;

  /* glass: rgb(253 250 242) is white warmed toward the cream strands */
  --glass: 253, 250, 242;
  --head: rgba(var(--glass), 0.46);
  --surface: rgba(var(--glass), 0.54);
  --surface-2: rgba(var(--glass), 0.66);
  --surface-3: rgba(var(--glass), 0.82);
  --panel: var(--surface);

  /* Blur stays light on purpose: at 18-22px it erases the photograph under every
     card and the page measures busy ~0 where the reference reads 2-7. The ground
     is already softened by 2px in tools/make-ground.mjs, so 2px more is enough. */
  --blur: saturate(150%) blur(2px);
  --blur-lite: saturate(140%) blur(1.5px);

  --shadow-sm: 0 1px 2px rgba(44, 29, 18, .06), 0 4px 14px rgba(44, 29, 18, .07);
  --shadow: 0 16px 44px rgba(44, 29, 18, .16);
  --shadow-lg: 0 30px 80px rgba(44, 29, 18, .24);

  /* the ground behind everything, for the flash before the jpeg paints */
  --ground-fill: rgb(199 137 169);
}
