/* tokens.css: the land framework's own look, restored 2026-10-07 after the "Catchment" redesign was reverted at Gustaf's request.
   Light only (the pre-upgrade site had no dark mode). Palette, type and spacing are the pre-upgrade values (git 6bce1a3); a few
   tokens exist only so the new components (Land standing, legal pathway, bioregion label, gap state, compare) can be styled in the
   old language. scripts/check_contrast.py parses this file: keep every colour token as `--name: #rrggbb;`. */
:root{
  color-scheme: light;

  /* ---- surfaces (the old site painted cards on --paper, divided by 1px rules) ---- */
  --paper:      #f6f2eb;
  --paper-2:    #efe9df;
  --paper-3:    #e6dfd0;
  --sheet:      #f6f2eb;
  --ground-out: #efe9df;

  /* ---- ink ---- */
  --ink:        #1a1a1a;
  --ink-2:      #3a3a3a;
  --ink-3:      #6b6258;
  --ink-4:      #675e52;   /* old value #9a9082 failed AA on paper-2/3; nudged to read as the same warm grey */

  /* ---- lines ---- */
  --rule:        #d8d0c2;
  --rule-soft:   #e6dfd0;
  --rule-strong: #857b6a;  /* control borders, plot axes: >= 3:1 */
  --hatch:       #8f8372;

  /* ---- meaning inks ---- */
  --accent:      #8a3a2a;
  --accent-soft: #c97a5a;
  --accent-wash: #f3ece6;
  --pass:        #3a6a4a;
  --fail:        #a05050;
  --host:        #3a5a3a;  /* whose land (Land standing only; never a pass colour) */
  --host-wash:   #e6e8dd;
  --river:       #2c5f7c;  /* bioregion labels, the threshold line */
  --river-wash:  #e4ebeb;
  --gap:         #7a5413;  /* "not yet verified": neither within nor outside */
  --gap-line:    #a97c2a;
  --gap-wash:    #f4ecd9;
  --art:         #a4502e;

  /* ---- buttons ---- */
  --btn-bg:      #1a1a1a;
  --btn-ink:     #f6f2eb;
  --btn-hover:   #8a3a2a;

  --region:      #8a3a2a;

  /* ---- space, shape, elevation, motion (old: square corners, hairlines, one soft shadow) ---- */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px; --s8:72px; --s9:112px;
  --r-leaf:   0;
  --r-leaf-s: 0;
  --r-btn:    0;
  --lift:     0 1px 0 var(--rule), 0 6px 18px rgba(26,26,26,0.05);
  --ease:     ease;
  --rail-w:   232px;
  --wrap:     1180px;
  --gutter:   32px;

  /* ---- type families: Spectral for the serif voice, Inter for UI (Fraunces is gone) ---- */
  --f-display: 'Spectral', Georgia, 'Times New Roman', serif;
  --f-text:    'Spectral', Georgia, 'Times New Roman', serif;
  --f-ui:      'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --f-display-xl: 'Spectral', Georgia, 'Times New Roman', serif;

  /* ---- type scale (old sizes) ---- */
  --t-hero:    clamp(48px, 8vw, 96px);
  --t-h2:      clamp(28px, 3.4vw, 40px);
  --t-h3:      22px;
  --t-place:   22px;
  --t-num:     clamp(30px, 3.4vw, 44px);
  --t-readout: 24px;
  --t-subtitle:clamp(19px, 2.2vw, 26px);
  --t-lede:    17px;
  --t-body:    16px;
  --t-read:    18px;
  --t-ui:      13px;
  --t-meta:    12px;
  --t-label:   10.5px;

  --ripple: none;
}

/* kept so markup that still sets --region inline resolves a non-text mark colour */
[style*="--region"] { --region-ui: var(--region); }

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
