:root {
  /* Colour — warm luxury */
  --color-primary: #0E1210;
  --color-secondary: #1A211E;
  --color-ivory: #F7F3EB;
  --color-neutral: #EDE7DC;
  --color-bronze: #B8915A;
  --color-gold: #C9A66B;
  --color-bronze-soft: rgba(184, 145, 90, 0.14);
  --color-white: #FFFFFF;
  --color-text: #1A1F1C;
  --color-text-muted: #5C655F;
  --color-text-light: rgba(247, 243, 235, 0.82);
  --color-border: rgba(14, 18, 16, 0.1);
  --color-border-light: rgba(247, 243, 235, 0.14);
  --color-overlay: rgba(14, 18, 16, 0.55);
  --color-overlay-strong: rgba(14, 18, 16, 0.72);
  --color-success: #2D5A45;
  --color-error: #8B3A3A;
  --color-glass: rgba(247, 243, 235, 0.12);
  --color-glass-border: rgba(247, 243, 235, 0.22);

  /* Typography */
  --font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --font-body: "Inter", system-ui, -apple-system, sans-serif;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 600;
  --lh-tight: 1.1;
  --lh-snug: 1.25;
  --lh-body: 1.8;
  --tracking-tight: -0.01em;
  --tracking-body: 0.0125em; /* ~0.2px at 16px */
  --tracking-wide: 0.06em;
  --tracking-wider: 0.12em;
  --color-body-text: #4A4A4A;

  /* Type scale — mobile first, desktop stepped in typography.css */
  --fs-caption: 0.875rem;
  --fs-sm: 0.9375rem;
  --fs-base: 1.0625rem;
  --fs-md: 1.125rem;
  --fs-lg: 1.25rem;
  --fs-btn: 1rem;
  --fs-nav: 1rem;
  --fs-h5: 1.5rem;
  --fs-h4: 1.75rem;
  --fs-h3: 1.75rem;
  --fs-h2: 2.125rem;
  --fs-2xl: var(--fs-h2);
  --fs-3xl: 2.375rem;
  --fs-hero: 2.5rem;
  --fs-xs: var(--fs-caption);
  --fs-xl: 1.5rem;
  /* Restrained titles inside cards / grids */
  --fs-card-title: clamp(1.125rem, 1.05rem + 0.3vw, 1.3125rem);

  /* Spacing — 8px system */
  --space-2xs: 0.5rem;   /* 8 */
  --space-xs: 1rem;      /* 16 */
  --space-sm: 1.5rem;    /* 24 */
  --space-md: 2rem;      /* 32 */
  --space-lg: 3rem;      /* 48 */
  --space-xl: 4rem;      /* 64 */
  --space-2xl: 5rem;     /* 80 */
  --space-3xl: 6rem;     /* 96 */
  --space-4xl: 7.5rem;   /* 120 */
  --space-5xl: 7.5rem;   /* 120 */
  --section-y: 4rem;     /* 64 — mobile */
  --card-pad: 2rem;      /* 32 */
  --grid-gap: 2rem;      /* 32 */
  --measure: 43.75rem;   /* 700px — reading measure only */

  /* Layout */
  --container: 80rem;       /* 1280px */
  --container-wide: 80rem;  /* align to same content rail */
  --container-narrow: 42rem;
  --gutter: 1.5rem;         /* 24 mobile */
  --header-h: 4.5rem;       /* 72 */
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 20px;
  --radius-pill: 999px;
  --border-thin: 1px solid var(--color-border);
  --border-bronze: 1px solid rgba(184, 145, 90, 0.45);

  /* Shadows — soft luxury */
  --shadow-sm: 0 4px 16px rgba(14, 18, 16, 0.04);
  --shadow-md: 0 12px 40px rgba(14, 18, 16, 0.08);
  --shadow-lg: 0 24px 64px rgba(14, 18, 16, 0.12);
  --shadow-glow: 0 8px 32px rgba(184, 145, 90, 0.22);

  /* Motion */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --duration-fast: 200ms;
  --duration: 380ms;
  --duration-slow: 800ms;
  --duration-hero: 9s;

  /* Z-index */
  --z-base: 1;
  --z-header: 1000;
  --z-dropdown: 1010;
  --z-overlay: 1100;
  --z-modal: 1200;
  --z-float: 900;
  --z-skip: 1300;
}

@media (min-width: 480px) {
  :root {
    --section-y: 5rem; /* 80 */
  }
}

@media (min-width: 768px) {
  :root {
    --section-y: 6rem; /* 96 */
    --gutter: 2rem;    /* 32 */
    --header-h: 5rem;  /* 80 */
    --grid-gap: 2rem;
  }
}

@media (min-width: 992px) {
  :root {
    --section-y: 7.5rem; /* 120 */
    --gutter: 2.5rem;    /* 40 */
  }
}

@media (min-width: 1200px) {
  :root {
    --section-y: 7.5rem; /* 120 */
    --gutter: 3rem;      /* 48 */
  }
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-fast: 0ms;
    --duration: 0ms;
    --duration-slow: 0ms;
    --duration-hero: 0ms;
  }
}
