/* Forest Field Notes: approved primitives → semantic roles → components. */
:root {
  --paper: #f4f1e8;
  --forest: #213d2f;
  --moss: #798f49;
  --olive-dark: #526337;
  --lime: #d9df8b;
  --ink: #171e19;
  --line: #c9cfbe;
  --forest-scrim: rgb(12 26 19 / 70%);
  --surface-hover: #e5e8dc;
  --modal-scrim: rgb(12 26 19 / 58%);
  --hero-divider: rgb(244 241 232 / 45%);
  --surface: var(--paper);
  --text: var(--forest);
  --text-muted: var(--olive-dark);
  --action: var(--forest);
  --on-action: var(--paper);
  --font-display: "Bodoni Moda", Georgia, serif;
  --font-body: "Instrument Sans", Arial, sans-serif;
  --content-max: 1280px;
  --gutter: clamp(20px, 4.5vw, 72px);
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --space-section: clamp(64px, 9vw, 128px);
  --button-bg: var(--action);
  --button-fg: var(--on-action);
  --button-radius: 0px;
  --button-hover-bg: var(--olive-dark);
  --feedback-surface: var(--surface-hover);
  --control-selected-edge: var(--forest);
  --duration-fast: 180ms;
  --hero-scrim: var(--forest-scrim);
  --hero-text: var(--paper);
  --wildlife-grade: saturate(0.82) brightness(0.94) contrast(1.04);
  --duration-reveal: 550ms;
  --ease-out: cubic-bezier(0.2, 0.7, 0.2, 1);
  /* Editorial motion: distance, pace, then component roles. */
  --motion-distance: 14px;
  --motion-stagger: 60ms;
  --motion-short: 500ms;
  --motion-medium: 700ms;
  --motion-long: 900ms;
  --motion-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --motion-heading: var(--motion-medium);
  --motion-photo: var(--motion-long);
  --motion-copy: var(--motion-short);
  --motion-chart: 360ms;
}
