:root {
  /* Colours — Core */
  --color-bg: #FDFBF7;
  --color-sage: #C5CFC0;
  --color-rose: #D4A5A5;
  --color-lavender: #C8B8D4;
  --color-gold: #9E7C54;
  --color-gold-light: #B8976A;
  --color-text: #5A4A3A;
  --color-spark: #3B5EFF;
  --color-rose-dark: #8F5A5A;

  /* Colours — Wash variants (pigment-cloud effect) */
  --color-sage-wash: rgba(197, 207, 192, 0.2);
  --color-sage-soft: rgba(197, 207, 192, 0.3);
  --color-rose-wash: rgba(212, 165, 165, 0.2);
  --color-rose-soft: rgba(212, 165, 165, 0.3);
  --color-lavender-wash: rgba(200, 184, 212, 0.2);
  --color-lavender-soft: rgba(200, 184, 212, 0.3);
  --color-spark-glow: rgba(59, 94, 255, 0.12);
  --color-gold-wash: rgba(184, 151, 106, 0.15);

  /* Typography — Families */
  --font-heading: 'Cormorant Garamond', Georgia, serif;
  --font-body: 'Jost', system-ui, sans-serif;

  /* Typography — Fluid sizes */
  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.8125rem);
  --text-sm: clamp(0.875rem, 0.83rem + 0.22vw, 0.9375rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --text-md: clamp(1.125rem, 1.05rem + 0.37vw, 1.25rem);
  --text-lg: clamp(1.25rem, 1.1rem + 0.75vw, 1.5rem);

  /* Typography — Heading sizes */
  --text-h6: clamp(1.125rem, 1rem + 0.5vw, 1.25rem);
  --text-h5: clamp(1.25rem, 1.1rem + 0.75vw, 1.5rem);
  --text-h4: clamp(1.5rem, 1.3rem + 1vw, 1.875rem);
  --text-h3: clamp(1.875rem, 1.6rem + 1.37vw, 2.375rem);
  --text-h2: clamp(2.25rem, 1.85rem + 2vw, 3rem);
  --text-h1: clamp(2.75rem, 2.2rem + 2.75vw, 4rem);

  /* Spacing */
  --space-unit: 4px;
  --space-xs: calc(var(--space-unit) * 2);   /* 8px */
  --space-sm: calc(var(--space-unit) * 3);   /* 12px */
  --space-md: calc(var(--space-unit) * 4);   /* 16px */
  --space-lg: calc(var(--space-unit) * 6);   /* 24px */
  --space-xl: calc(var(--space-unit) * 8);   /* 32px */
  --space-2xl: calc(var(--space-unit) * 12); /* 48px */
  --space-3xl: calc(var(--space-unit) * 16); /* 64px */

  /* Section spacing */
  --section-padding-y: clamp(3rem, 5vw, 6rem);
  --section-padding-x: clamp(1.25rem, 4vw, 2.5rem);

  /* Container widths */
  --container-sm: 640px;
  --container-md: 768px;
  --container-lg: 1024px;
  --container-xl: 1200px;
  --container-max: 1440px;

  /* Breakpoints (for reference — used in media queries) */
  --bp-mobile: 375px;
  --bp-tablet: 768px;
  --bp-desktop: 1024px;
  --bp-wide: 1440px;

  /* Transitions */
  --ease-default: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-soft: cubic-bezier(0.22, 0.61, 0.36, 1);
  --duration-fast: 200ms;
  --duration-base: 350ms;
  --duration-slow: 700ms;
  --transition-default: var(--duration-base) var(--ease-default);
  --transition-slow: var(--duration-slow) var(--ease-soft);

  /* Borders & Radii */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-full: 9999px;

  /* Shadows */
  --shadow-sm: 0 1px 3px rgba(90, 74, 58, 0.06);
  --shadow-md: 0 4px 12px rgba(90, 74, 58, 0.08);
  --shadow-lg: 0 8px 30px rgba(90, 74, 58, 0.1);
  --shadow-lift: 0 12px 40px rgba(90, 74, 58, 0.12);
}
