:root {
  /* Typography */
  --font-display: "DM Serif Display", serif;
  --font-body: "DM Sans", sans-serif;

  --text-display: 52px; /* weight 400, tracking -0.02em, lh 1.1 */
  --text-h1: 36px;      /* weight 400, tracking -0.015em, lh 1.2 */
  --text-h2: 26px;      /* weight 400, lh 1.3 */
  --text-body-lg: 18px; /* weight 300, lh 1.7 */
  --text-body: 15px;    /* weight 300, lh 1.7 */
  --text-label: 13px;   /* weight 400, lh 1.5 */
  --text-eyebrow: 14px; /* weight 500, tracking 0.08em, uppercase — 14px minimum for WCAG AA on ruby badge */

  /* Spacing — 4px base grid */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;
  --space-32: 128px;
  --space-40: 160px;

  /* Semantic spacing */
  --page-margin: 40px;
  --max-width: 1120px;

  /* Border radius — 4px increments */
  --radius-none: 0px;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-2xl: 24px;
  --radius-full: 9999px;

  /* Border widths */
  --border-subtle: 0.5px;
  --border-default: 1px;
  --border-strong: 2px;
  --border-accent: 3px;

  /* Motion */
  --duration-instant: 100ms;
  --duration-fast: 200ms;
  --duration-base: 300ms;
  --duration-slow: 500ms;
  --duration-slower: 800ms;
  --duration-slowest: 1200ms;

  --ease-default: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
  --ease-in: cubic-bezier(0.4, 0, 1, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-linear: linear;

  /* Color */
  --color-bg: #f5f5f5;
  --color-surface: #ebebeb;
  --color-text: #1c1c1c;
  --color-text-muted: #636363;
  --color-border: rgba(28, 26, 24, 0.12);
  --color-ruby: #f71010;
  --color-cyan: #56CCF2;
  --ruby-blend: multiply;
}
