:root {
  /* Color */
  --color-ink: #0D2133;
  --color-ink-deep: #07141F;
  --color-ink-soft: #16324A;
  --color-bg: #F6EFE2;
  --color-bg-elevated: #FBF7EF;
  --color-fg: #0D2133;
  --color-fg-on-ink: #F4EDDF;
  --color-muted: #5A6875;
  --color-muted-on-ink: #A9B6BF;
  --color-sand: #C9B27F;
  --color-sand-deep: #A88F5A;
  --color-lagoon: #7FB7AE;
  --color-accent: var(--color-sand);
  --color-accent-fg: var(--color-ink-deep);
  --color-border: #E0D4BE;
  --color-border-ink: rgba(201, 178, 127, 0.24);
  --color-ring: var(--color-lagoon);

  /* Type */
  --font-display: "Fraunces", "Iowan Old Style", Georgia, serif;
  --font-body: "Jost", "Futura", "Century Gothic", sans-serif;
  --font-mono: "DM Mono", ui-monospace, "SFMono-Regular", monospace;
  --weight-display: 500;
  /* Fraunces gets hairline-thin at large optical sizes; pin a sturdy cut. */
  --display-variation: "opsz" 48, "SOFT" 0, "WONK" 0;

  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1.0625rem;
  --text-lg: 1.25rem;
  --text-xl: clamp(1.4rem, 1.1rem + 1vw, 1.75rem);
  --text-2xl: clamp(1.9rem, 1.3rem + 2.2vw, 2.9rem);
  --text-3xl: clamp(2.4rem, 1.4rem + 3.6vw, 4.4rem);
  --text-hero: clamp(2.6rem, 1.2rem + 5.4vw, 6rem);

  --tracking-label: 0.22em;
  --tracking-wordmark: 0.42em;

  /* Space (8px base) */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-24: 6rem;
  --space-32: 8rem;
  --section-y: clamp(4.5rem, 3rem + 6vw, 9rem);
  --gutter: clamp(1.25rem, 0.5rem + 3vw, 3.5rem);
  --container: 1320px;

  /* Shape */
  --radius-sm: 2px;
  --radius-md: 4px;
  --radius-lg: 8px;
  --radius-full: 9999px;

  /* Motion */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.45, 0, 0.55, 1);
  --duration-fast: 160ms;
  --duration-med: 320ms;
  --duration-slow: 700ms;

  /* Elevation */
  --shadow-menu: 0 24px 60px -24px rgba(7, 20, 31, 0.35);
}
