:root {
  /* ---- Color (hex; OKLCH noted in DESIGN.md). AA-corrected. ---- */
  --gsh-cream: #FAF6EE;     /* body ground (paper) */
  --gsh-cream-2: #FDFDF1;   /* raised paper */
  --gsh-forest: #2F3A28;    /* headings / strong ink */
  --gsh-forest-2: #39442B;  /* body text (~9.5:1 on cream) */
  --gsh-sage: #7E8C6A;      /* section bands (decorative) */
  --gsh-sage-2: #9AA886;    /* tints */
  --gsh-sage-700: #586547;  /* dark band for reversed white text (~6.3:1) */
  --gsh-clay: #C77B53;      /* warm accent — large/bold/decorative only */
  --gsh-clay-btn: #A8623F;  /* interactive: button bg + white text (~4.7:1) */
  --gsh-clay-deep: #7C4426; /* clay TEXT on blush/tint surfaces: >=4.9:1 on blush, >=6.4:1 on tints (clay-btn only clears cream) */
  --gsh-blush: #E8C9A8;     /* warm highlight */
  --gsh-sand: #E7DFD0;      /* dividers / hairlines / cards */
  --gsh-gold: #B8923C;      /* rare premium accent — certificate only (decorative) */
  /* tint steps — flat card-tint grounds (trio panels, quote cards) */
  --gsh-sage-tint: #EEF0E4;
  --gsh-blush-tint: #F6E8DC;
  --gsh-sand-tint: #F1EADB;

  /* Semantic roles */
  --gsh-bg: var(--gsh-cream);
  --gsh-surface: var(--gsh-cream-2);
  --gsh-ink: var(--gsh-forest-2);
  --gsh-ink-strong: var(--gsh-forest);
  --gsh-muted: #515b45;      /* secondary text — verified ~5.8:1 on cream */
  --gsh-line: var(--gsh-sand);
  --gsh-on-dark: #FDFDF1;    /* reversed text on sage-700/forest */
  --gsh-on-dark-muted: #DCE0D2; /* >=4.5:1 on sage-700 — replaces opacity-muting */
  --gsh-btn-bg: var(--gsh-clay-btn);
  --gsh-btn-ink: #ffffff;

  /* ---- Type ---- */
  --gsh-font-display: 'Fredoka', system-ui, sans-serif; /* was Literata */
  --gsh-font-body: 'Hanken Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --gsh-font-mono: ui-monospace, 'SFMono-Regular', monospace; /* system mono — no webfont is loaded for this stack */
  /* Arabic (future RTL build): pair Fredoka -> Baloo Bhaijaan 2; body -> Noto Sans Arabic. Tokens fork here when the locale ships. */

  --gsh-text: clamp(1rem, 0.96rem + 0.2vw, 1.0625rem); /* body 16–17px */
  --gsh-lh: 1.6;
  --gsh-h1: clamp(2.2rem, 1.45rem + 3.1vw, 3.5rem);
  --gsh-h2: clamp(1.75rem, 1.3rem + 1.9vw, 2.6rem);
  --gsh-h3: clamp(1.35rem, 1.12rem + 1.0vw, 1.85rem);
  --gsh-h4: clamp(1.12rem, 1.02rem + 0.45vw, 1.35rem);
  --gsh-measure: 65ch;

  /* ---- Space ---- */
  --gsh-sp-1: 0.25rem; --gsh-sp-2: 0.5rem; --gsh-sp-3: 0.75rem; --gsh-sp-4: 1rem;
  --gsh-sp-5: 1.5rem; --gsh-sp-6: 2rem; --gsh-sp-7: 3rem; --gsh-sp-8: 5rem; --gsh-sp-9: 8rem;
  --gsh-section-y: clamp(3.2rem, 6vw + 1rem, 6.2rem);
  --gsh-container: 1140px;
  --gsh-container-narrow: 760px;

  /* ---- Radii (varied, organic) ---- */
  --gsh-r-sm: 0.5rem; --gsh-r-md: 1rem; --gsh-r-lg: 1.5rem; --gsh-r-pill: 999px;
  --gsh-r-arch: 50% 50% 16px 16px / 34% 34% 16px 16px; /* signature doorway arch */

  /* ---- Shadows (sage-tinted, layered) ---- */
  --gsh-shadow-sm: 0 1px 2px rgba(60,80,55,.05), 0 2px 8px rgba(60,80,55,.06);
  --gsh-shadow-md: 0 1px 2px rgba(60,80,55,.05), 0 6px 18px rgba(60,80,55,.08), 0 16px 40px rgba(60,80,55,.07);
  --gsh-shadow-clay: 0 6px 18px rgba(168,98,63,.26);

  /* ---- Z-index scale ---- */
  --gsh-z-dropdown: 100; --gsh-z-sticky: 200; --gsh-z-backdrop: 300;
  --gsh-z-modal: 400; --gsh-z-toast: 500; --gsh-z-tooltip: 600;

  /* ---- Motion ---- */
  --gsh-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --gsh-dur: 0.5s;

  /* ---- Feel-redesign additions ---- */
  --gsh-r-card: 1.125rem;
  --gsh-text-floor: 0.75rem; /* 12px micro-type floor */
}
