:root {
  /* Brand colours */
  --plum: #321C2B;
  --plum-deep: #1E1119;
  --burgundy: #6E3046;
  --ivory: #F7F2EA;
  --gold: #C7A45B;
  --gold-light: #E4CD98;
  --gold-deep: #7A5E2E;
  --charcoal: #242124;
  --white: #FFFFFF;

  /* Gold-on-light text. --gold itself is 2.1:1 on --ivory — fine for fills,
     rules and dots, but fails WCAG for text. Every gold *text* usage on a
     light background should use this instead; --gold stays reserved for
     text on dark backgrounds (where it is ~6.7:1). */
  --gold-ink: #7E6229;

  /* Muted text on light backgrounds — 3 fixed steps instead of the 8 ad-hoc
     charcoal alphas this replaces. All three clear 4.5:1 on --ivory/--white. */
  --ink-1: var(--charcoal);   /* primary text (~14.3:1) */
  --ink-2: #5C5760;           /* standard secondary/muted text (~6.3:1) */
  --ink-3: #6E696D;           /* lowest-emphasis text that still reads (~4.8:1) */

  /* Muted text on dark (plum) backgrounds — 3 fixed steps instead of the 12
     ad-hoc ivory alphas this replaces. All three clear 4.5:1 on --plum. */
  --on-dark-1: rgba(247,242,234,0.86);
  --on-dark-2: rgba(247,242,234,0.65);
  --on-dark-3: rgba(247,242,234,0.5);

  /* Derived */
  --ivory-deep: #EFE7D8;
  --gold-soft: rgba(199, 164, 91, 0.14);
  --line: rgba(36, 33, 36, 0.12);       /* hairline on light backgrounds */
  --hairline-dark: rgba(247,242,234,0.15); /* hairline on dark (plum) backgrounds */

  --shadow-card: 0 24px 40px -20px rgba(50,28,43,0.25);
  --shadow-panel: 0 30px 60px -30px rgba(50,28,43,0.25);

  /* Typography */
  --font-display: "DM Serif Display", Georgia, serif;
  --font-body: "Manrope", -apple-system, BlinkMacSystemFont, sans-serif;

  /* Type scale */
  --fs-hero: clamp(2.6rem, 6vw, 5.4rem);
  --fs-h1: clamp(2.2rem, 4.5vw, 3.6rem);
  --fs-h2: clamp(1.8rem, 3.2vw, 2.6rem);
  --fs-h3: clamp(1.3rem, 2vw, 1.7rem);
  --fs-lead: clamp(1.1rem, 1.6vw, 1.35rem);
  --fs-body: 1.05rem;
  --fs-body-sm: 0.92rem;
  --fs-caption: 0.85rem;
  --fs-eyebrow: 0.8rem;
  --fs-micro: 0.72rem;
  --fs-num-lg: 2.5rem;   /* large decorative step numerals */
  --fs-num-sm: 1.1rem;   /* small inline decorative numerals */

  /* Spacing */
  --space-xs: 0.5rem;
  --space-sm: 1rem;
  --space-md: 2rem;
  --space-lg: 4rem;
  --space-xl: 7rem;

  /* Layout */
  --container: 1240px;
  --container-narrow: 780px;
  --radius: 4px;
  --radius-lg: 12px;
  --radius-pill: 100px;

  /* Motion */
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --dur: 0.6s;
}
