:root {
  /* Colors */
  --black:        #0a0a0a;
  --white:        #ffffff;
  --gray-50:      #f7f7f5;
  --gray-100:     #ebebea;
  --gray-300:     #b8b8b4;
  --gray-500:     #6e6e6a;
  --gray-800:     #1e1e1c;
  --accent:       #1a5c3a;
  --accent-mid:   #3d7a5c;
  --accent-light: #5c9e7e;
  --sage:         #a8c5b5;
  --bg-green:     #f0f4f2;
  --dark-ink:     #0f1f18;

  /* Typography */
  --font-sans: 'DM Sans', system-ui, -apple-system, sans-serif;
  --weight-light:   300;
  --weight-regular: 400;

  /* Type scale */
  --text-xs:   0.6875rem;   /* 11px */
  --text-sm:   0.8125rem;   /* 13px */
  --text-base: 1rem;        /* 16px */
  --text-md:   1.125rem;    /* 18px */
  --text-lg:   1.25rem;     /* 20px */
  --text-xl:   1.5rem;      /* 24px */
  --text-2xl:  2rem;        /* 32px */
  --text-3xl:  2.625rem;    /* 42px */
  --text-4xl:  3.25rem;     /* 52px */
  --text-5xl:  4rem;        /* 64px */

  /* Line heights */
  --lh-tight:   1.1;
  --lh-snug:    1.25;
  --lh-heading: 1.35;
  --lh-body:    1.65;
  --lh-relaxed: 1.8;

  /* Letter spacing */
  --ls-label: 0.2em;
  --ls-wide:  0.05em;

  /* Spacing */
  --sp-1:  0.25rem;
  --sp-2:  0.5rem;
  --sp-3:  0.75rem;
  --sp-4:  1rem;
  --sp-5:  1.25rem;
  --sp-6:  1.5rem;
  --sp-8:  2rem;
  --sp-10: 2.5rem;
  --sp-12: 3rem;
  --sp-16: 4rem;
  --sp-20: 5rem;
  --sp-24: 6rem;

  /* Section rhythm */
  --section-py:        6.25rem;  /* 100px */
  --section-py-mobile: 4rem;     /* 64px */
  --hero-pt:           8.75rem;  /* 140px */

  /* Layout */
  --max-w: 1100px;
  --px:    clamp(1.25rem, 5vw, 3rem);

  /* Radii */
  --r-sm:   6px;
  --r-md:   10px;
  --r-card: 16px;
  --r-pill: 100px;

  /* Nav */
  --nav-h: 72px;

  /* Motion */
  --dur-fast: 0.18s;
  --dur-base: 0.5s;
  --ease:     cubic-bezier(0.16, 1, 0.3, 1);
}
