:root {
  --primary: #254D3C; --secondary: #E6EBDD; --background: #F8F5ED;
  --surface: #FFFFFF; --text: #202C25; --muted: #59645B; --accent: #963F50;
  --hover: #1C3D2F; --active: #143025; --divider: #D4D9CE; --cta: var(--primary);
  --display: 'Lora', Georgia, serif; --body: 'Source Sans 3', system-ui, sans-serif;
  --s1: .25rem; --s2: .5rem; --s3: .75rem; --s4: 1rem; --s5: 1.25rem;
  --s6: 1.5rem; --s8: 2rem; --s10: 2.5rem; --s12: 3rem; --s16: 4rem;
  --s20: 5rem; --s24: 6rem;
  --h1: 2.5rem; --h1-leading: 1.15; --h2: 1.875rem; --h2-leading: 1.267;
  --h3: 1.375rem; --h3-leading: 1.318; --body-size: 1rem; --body-leading: 1.625;
  --lead: 1.125rem; --lead-leading: 1.556; --small: .875rem;
  --section-space: 3.5rem; --compact-space: 2.5rem; --gutter: 1rem; --gap: 1rem;
  --container: 75rem; --prose: 42.5rem; --tablet-media: 40rem;
  --radius-button: .5rem; --radius-media: .75rem; --radius-panel: 1rem;
  --shadow: 0 8px 24px rgba(32,44,37,.08);
  --feedback: 240ms; --transition: 280ms; --ease: cubic-bezier(.22, 1, .36, 1);
  --reveal-duration: 800ms; --reveal-distance: 40px; --float-distance: -10px;
  --header-size: 4rem; --header-offset: var(--header-size); --thumb: 5rem;
}
/* Breakpoints intentionally match the approved 360 / 768 / 1024 / 1440px system. */
@media (min-width: 360px) { :root { --gutter: 1.25rem; --thumb: 6rem; } }
@media (min-width: 768px) {
  :root { --gutter: 2rem; --gap: 1.5rem; --section-space: 4.5rem; --compact-space: 3.5rem;
    --h1: 3.25rem; --h1-leading: 1.1154; --h2: 2.25rem; --h2-leading: 1.2223;
    --h3: 1.5rem; --h3-leading: 1.292; --body-size: 1.125rem; --body-leading: 1.556;
    --lead: 1.25rem; --lead-leading: 1.5; }
}
@media (min-width: 1024px) {
  :root { --reveal-distance: 60px; --gutter: 3rem; --section-space: 6rem; --compact-space: 4rem;
    --h1: 4rem; --h1-leading: 1.09375; --h2: 2.75rem; --h2-leading: 1.182;
    --header-size: 5rem; }
}
@media (min-width: 1440px) { :root { --h1: 4.5rem; --h1-leading: 1.0834; } }
@media (prefers-reduced-motion: reduce) { :root { --feedback: 0ms; --transition: 0ms; } }
