/* Design tokens. Single source of truth for color, type, spacing and layout. */

:root {
  /* Brand palette (brief, slide 14) */
  --ivory: #f7f1e7;
  --charcoal: #1b2829;
  --clay: #a6572f;
  --clay-deep: #8a4423;
  --sage: #6e7856;
  --sage-deep: #545c42;

  /* Derived neutrals (solid values so contrast can be audited) */
  --ink-soft: #3f4c4d; /* secondary text on ivory, 8.9:1 */
  --on-dark-soft: #b9b9b2; /* secondary text on charcoal, 8.5:1 */
  --rule: rgba(27, 40, 41, 0.16);
  --rule-strong: rgba(27, 40, 41, 0.32);
  --rule-on-dark: rgba(247, 241, 231, 0.18);
  --field-line: #6f7b7c; /* 3.9:1 on ivory, WCAG 1.4.11 */

  /* Type families */
  --font-display: "Cormorant Garamond", "Cormorant", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --font-body: "Jost", "Helvetica Neue", Arial, sans-serif;

  /* Fluid type scale (min at 360px, max at 1440px) */
  --step--2: clamp(0.6875rem, 0.67rem + 0.05vw, 0.75rem);
  --step--1: clamp(0.75rem, 0.73rem + 0.08vw, 0.8125rem);
  --step-0: clamp(1rem, 0.96rem + 0.14vw, 1.0625rem);
  --step-1: clamp(1.125rem, 1.06rem + 0.28vw, 1.3125rem);
  --step-2: clamp(1.375rem, 1.2rem + 0.65vw, 1.75rem);
  --step-3: clamp(1.75rem, 1.4rem + 1.3vw, 2.5rem);
  --step-4: clamp(2.5rem, 1.6rem + 3.3vw, 4.5rem);
  --step-5: clamp(2.5rem, 1.25rem + 4.6vw, 5.25rem);
  --step-6: clamp(3rem, 1.4rem + 6vw, 6.5rem);

  /* Tracking presets for the small uppercase Jost labels */
  --track-label: 0.18em;
  --track-nav: 0.14em;
  --track-button: 0.16em;

  /* Spacing scale */
  --space-3xs: 0.25rem;
  --space-2xs: 0.5rem;
  --space-xs: 0.75rem;
  --space-s: 1rem;
  --space-m: 1.5rem;
  --space-l: 2rem;
  --space-xl: 3rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;
  --space-4xl: 8rem;
  --space-section: clamp(4.5rem, 2.6rem + 6.6vw, 10rem);
  --space-block: clamp(2.5rem, 1.6rem + 3vw, 4.5rem);

  /* Layout */
  --container: 1240px;
  --gutter: clamp(20px, 5vw, 80px);
  --col-gap: clamp(16px, 2vw, 28px);
  --measure: 60ch;
  --utility-h: 38px;
  --header-h: 88px;
  --header-h-compact: 64px;

  /* Shape: one radius for the whole site */
  --radius: 2px;

  /* Motion */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --dur-s: 0.25s;
  --dur-m: 0.6s;
  --dur-l: 1.1s;

  /* Layers */
  --z-header: 40;
  --z-menu: 60;
  --z-skip: 100;
}
