:root {
  --c-purple: #3b1f73;
  --c-purple-mid: #b683f1;
  --c-lavender: #d3b5f6;
  --c-lavender-light: #ddc1fe;
  --c-yellow: #ffd000;
  --c-magenta: #95519b;
  --c-cream: #f7edeb;
  --c-ink: #362138;
  --c-white: #ffffff;
  --c-text: var(--c-purple);
  --c-text-card: var(--c-ink);
  --c-text-invert: var(--c-white);
  --c-bg: var(--c-white);
  --c-bg-alt: var(--c-lavender);
  --c-bg-dark: var(--c-purple);
  --c-border: var(--c-purple);
  --c-focus: var(--c-purple);
  --c-stat: var(--c-magenta);
  --ff-base: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --ff-secondary: var(--ff-base);
  --fw-regular: 400;
  --fw-bold: 700;
  --fs-h1: 90px;
  --lh-h1: 100px;
  --fs-h2: 50px;
  --lh-h2: 62px;
  --fs-h3: 36px;
  --lh-h3: 44px;
  --fs-h4: 24px;
  --lh-h4: 30px;
  --fs-subhead: 22px;
  --lh-subhead: 1.2;
  --fs-lead: 22px;
  --lh-lead: 30px;
  --fs-body: 16px;
  --lh-body: 22px;
  --fs-small: 14px;
  --lh-small: 20px;
  --fs-button: 20px;
  --fs-h1-fluid: clamp(40px, 6.25vw, var(--fs-h1));
  --fs-h2-fluid: clamp(32px, 3.47vw, var(--fs-h2));
  --fs-h3-fluid: clamp(26px, 2.5vw, var(--fs-h3));
  --fs-h4-fluid: clamp(20px, 1.67vw, var(--fs-h4));
  --fs-lead-fluid: clamp(18px, 1.53vw, var(--fs-lead));
  --sp-2: 2px;
  --sp-4: 4px;
  --sp-8: 8px;
  --sp-12: 12px;
  --sp-15: 15px;
  --sp-16: 16px;
  --sp-20: 20px;
  --sp-24: 24px;
  --sp-32: 32px;
  --sp-40: 40px;
  --sp-48: 48px;
  --sp-64: 64px;
  --sp-80: 80px;
  --sp-96: 96px;
  --sp-120: 120px;
  --section-space: clamp(var(--sp-64), 7vw, var(--sp-120));
  --section-space-tight: clamp(var(--sp-40), 4vw, var(--sp-64));
  --section-space-loose: clamp(var(--sp-80), 10vw, 160px);
  --canvas: 1440px;
  --hero-h: 627px;
  --hero-h-secondary: 489px;
  --card-event-w: 717px;
  --card-event-pad: 40px;
  --card-event-gap: 168px;
  --container: 1248px;
  --container-narrow: 1100px;
  --container-text: 800px;
  --gutter: clamp(var(--sp-20), 4vw, var(--sp-96));
  --radius-button: 10px;
  --radius-card: 20px;
  --radius-pill: 999px;
  --border-width: 2px;
  --border-hair: 1px;
  --shadow-card: 0 4px 24px rgb(59 31 115 / 0.08);
  --ease: cubic-bezier(0.4, 0, 0.2, 1);
  --duration-fast: 150ms;
  --duration: 250ms;
  --duration-slow: 400ms;
  --z-base: 1;
  --z-raised: 10;
  --z-sticky: 100;
  --z-header: 200;
  --z-overlay: 300;
  --z-modal: 400;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-fast: 0ms;
    --duration: 0ms;
    --duration-slow: 0ms;
  }
}
