:root {
  /* surfaces */
  --paper-50:  #FAF8F4;   /* page background */
  --paper-100: #F1EDE6;   /* alternate section */
  --ink-950:   #101418;   /* headlines, dark sections */
  --ink-900:   #181E25;   /* card on dark */
  --ink-850:   #22282F;   /* rule on dark */
  --ink-800:   #2C333C;   /* border on dark */
  /* text */
  --ink-700:   #3A424C;   /* body */
  --ink-500:   #5B646E;   /* footer labels */
  --ink-400:   #8A94A0;   /* muted heading, eyebrow on dark */
  --ink-350:   #9BA3AD;   /* footer text */
  --ink-250:   #C4CAD2;   /* body on dark */
  /* accents */
  --accent-600: #E8590C;   /* decoration: dots, nodes, rules, eyebrows on dark */
  --accent-700: #C2410C;   /* AA-safe: interactive fills, accent text on light.
                              accent-600 is only 3.38:1 against paper-50, which
                              fails WCAG AA for normal text. This is 4.88:1 in
                              both directions. Do not use it on dark surfaces
                              (3.57:1 on ink-950). */
  --accent-050: #FDF0E7;
  --positive-600: #2F9E44;
  --line-300:  #D8D2C8;
  /* type */
  --font-sans: 'Geist', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, 'SF Mono', monospace;
  /* geometry */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;
  --gutter: clamp(20px, 6vw, 120px);
  --measure: 68ch;
  --max-width: 1600px;

  /* type scale, responsive: clamp(mobile floor, fluid, desktop max) */
  --fs-h1-home: clamp(40px, 6vw, 84px);
  --fs-h1-sub: clamp(36px, 4.4vw, 64px);
  --fs-h2: clamp(30px, 3.6vw, 52px);
  --fs-h2-cta: clamp(32px, 4.2vw, 60px);
  --fs-lede: clamp(17px, 1.4vw, 20px);
  --fs-body: clamp(16px, 1.2vw, 18px);
  --fs-eyebrow: 12.5px;
  --fs-price: clamp(32px, 3vw, 48px);
}
