:root {
  /* Palette */
  --cream:        #F7F2EE;
  --cream-dark:   #F8E8F2;
  --ink:          #111111;
  --ink-soft:     #333333;
  --ink-muted:    #777777;
  --ink-faint:    #AAAAAA;
  --pink:         #EDA0BE;
  --pink-light:   #F8E8F2;
  --pink-page:    #FCF0F9;
  --pink-mid:     #D87AA4;
  --pink-dark:    #A04870;
  --blue:         #9BBAD8;
  --blue-light:   #D8E8F4;
  --blue-mid:     #6A96C0;
  --blue-dark:    #3A6490;
  --sage:         #7A9C6A;
  --sage-light:   #C0D8B4;
  --sage-dark:    #4A6A38;
  --white:        #FFFFFF;

  /* Typography */
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body:    'DM Sans', system-ui, -apple-system, sans-serif;

  /* Type scale — fluid */
  --text-hero:       clamp(3.5rem, 9vw, 8rem);
  --text-display:    clamp(2.5rem, 6vw, 5.5rem);
  --text-heading:    clamp(1.75rem, 4vw, 3.5rem);
  --text-subheading: clamp(1.25rem, 2.5vw, 2rem);
  --text-body-lg:    1.125rem;
  --text-body:       1rem;
  --text-sm:         0.875rem;
  --text-xs:         0.75rem;
  --text-caption:    0.6875rem;

  /* Line heights */
  --leading-tight:  1.05;
  --leading-snug:   1.25;
  --leading-normal: 1.65;
  --leading-loose:  1.85;

  /* Letter spacing */
  --tracking-tight:   -0.03em;
  --tracking-normal:   0;
  --tracking-wide:     0.08em;
  --tracking-widest:   0.16em;

  /* Spacing scale */
  --space-1:  0.25rem;
  --space-2:  0.5rem;
  --space-3:  0.75rem;
  --space-4:  1rem;
  --space-5:  1.25rem;
  --space-6:  1.5rem;
  --space-8:  2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-32: 8rem;
  --space-40: 10rem;
  --space-48: 12rem;

  /* Layout */
  --nav-height:     56px;
  --container-max:  1280px;
  --container-pad:  clamp(1.25rem, 5vw, 4rem);
  --grid-gap:       clamp(1rem, 3vw, 2.5rem);

  /* Borders */
  --border-thin:   0.5px solid rgba(17, 17, 17, 0.12);
  --border-mid:    1px solid rgba(17, 17, 17, 0.2);
  --border-strong: 1.5px solid var(--ink);

  /* Radius */
  --radius-sm: 3px;
  --radius-md: 8px;
  --radius-lg: 16px;

  /* Transitions */
  --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --ease-inout:  cubic-bezier(0.85, 0, 0.15, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --dur-fast:    180ms;
  --dur-base:    350ms;
  --dur-slow:    600ms;
  --dur-crawl:   900ms;

  /* Z-index stack */
  --z-base:    0;
  --z-raised:  10;
  --z-nav:     100;
  --z-overlay: 200;
  --z-cursor:  400;
}
