/* BEGIN GENERATED :root — do not edit; run scripts/sync.py */
:root {
  /* -- Colours -- */
  --uep-green: #069550;
  --uep-green-dark: #058046;
  --uep-green-darker: #046137;
  --uep-green-light: #0ab361;
  --uep-green-tint: #e6f6ee;
  --uep-gold: #fbbf24;
  --uep-gold-dark: #d99b0a;
  --uep-gold-legacy: #ffcc00;
  --uep-ink: #0c1320;
  --uep-navy: #2c3345;
  --uep-navy-deep: #171c28;
  --uep-slate: #4b5563;
  --uep-muted: #8c8c8c;
  --uep-line: #e5e7eb;
  --uep-surface: #ffffff;
  --uep-surface-alt: #fbfbfb;
  --uep-surface-warm: #f6f4ef;
  --uep-on-dark: #ffffff;
  --uep-on-dark-muted: #cdd3de;
  --uep-on-dark-faint: #8892a6;
  --uep-on-dark-divider: #e8ecf2;
  --uep-pink: #b23d6a;
  --uep-danger: #c8322e;

  /* -- Overlays -- */
  --uep-overlay: rgba(12, 19, 32, 0.72);
  --uep-overlay-soft: rgba(12, 19, 32, 0.45);
  --uep-overlay-ink-95: rgba(12, 19, 32, 0.95);
  --uep-overlay-ink-55: rgba(12, 19, 32, 0.55);
  --uep-overlay-ink-35: rgba(12, 19, 32, 0.35);
  --uep-overlay-gold-28: rgba(251, 191, 36, 0.28);
  --uep-overlay-white-02: rgba(255, 255, 255, 0.02);
  --uep-overlay-white-04: rgba(255, 255, 255, 0.04);
  --uep-overlay-white-06: rgba(255, 255, 255, 0.06);
  --uep-overlay-white-08: rgba(255, 255, 255, 0.08);
  --uep-overlay-white-10: rgba(255, 255, 255, 0.10);
  --uep-overlay-white-15: rgba(255, 255, 255, 0.15);
  --uep-overlay-white-18: rgba(255, 255, 255, 0.18);
  --uep-overlay-white-90: rgba(255, 255, 255, 0.90);
  --uep-overlay-white-96: rgba(255, 255, 255, 0.96);
  --uep-overlay-green-glow: rgba(6, 149, 80, 0.30);
  --uep-overlay-gold-glow: rgba(251, 191, 36, 0.14);

  /* -- Font families -- */
  --font-headline: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-body: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  /* -- Font sizes -- */
  --fs-overline: 0.75rem;
  --fs-small: 0.875rem;
  --fs-body: 1rem;
  --fs-lead: 1.125rem;
  --fs-h6: 1.125rem;
  --fs-h5: 1.25rem;
  --fs-h4: 1.5rem;
  --fs-h3: 1.875rem;
  --fs-h2: 2.25rem;
  --fs-h1: 2.75rem;
  --fs-display: 3.5rem;

  /* -- Line heights -- */
  --lh-tight: 1.12;
  --lh-snug: 1.25;
  --lh-body: 1.6;
  --lh-loose: 1.75;

  /* -- Font weights -- */
  --fw-reg: 400;
  --fw-med: 500;
  --fw-sbd: 600;
  --fw-bld: 700;
  --fw-blk: 800;

  /* -- Tracking -- */
  --tracking-tight: -0.015em;
  --tracking-normal: 0;
  --tracking-wide: 0.08em;
  --tracking-xwide: 0.14em;

  /* -- Spacing (8pt rhythm) -- */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;
  --space-9: 6rem;
  --space-10: 8rem;

  /* -- Layout widths -- */
  --max-w-narrow: 720px;
  --max-w-body: 960px;
  --max-w-wide: 1200px;
  --max-w-xwide: 1360px;

  /* -- Radius -- */
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-pill: 999px;

  /* -- Shadow -- */
  --shadow-sm: 0 1px 2px rgba(12,19,32,0.06);
  --shadow-md: 0 6px 18px rgba(12,19,32,0.08);
  --shadow-lg: 0 18px 44px rgba(12,19,32,0.12);
  --shadow-xl: 0 32px 80px rgba(12,19,32,0.18);
  --shadow-inset: inset 0 0 0 1px rgba(255,255,255,0.08);

  /* -- Motion -- */
  --ease-out: cubic-bezier(0.2, 0.8, 0.2, 1);
  --ease-io: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast: 150ms;
  --dur-med: 280ms;
  --dur-slow: 520ms;

  /* -- Breakpoints -- */
  --bp-sm: 480px;
  --bp-md: 768px;
  --bp-lg: 1024px;
  --bp-xl: 1440px;
}
@media (min-width: 768px) {
  :root {
    --fs-h3: 2.25rem;
    --fs-h2: 3rem;
    --fs-h1: 3.75rem;
    --fs-display: 4.5rem;
  }
}
@media (min-width: 1200px) {
  :root {
    --fs-h1: 4.25rem;
    --fs-display: 5.5rem;
  }
}
/* END GENERATED :root */

/* -------- Base element resets that every page imports -------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--uep-ink);
  background: var(--uep-surface);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-headline);
  font-weight: var(--fw-bld);
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-tight);
  margin: 0 0 var(--space-4);
  color: var(--uep-ink);
}
h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); }
h4 { font-size: var(--fs-h4); }
h5 { font-size: var(--fs-h5); font-weight: var(--fw-sbd); }
h6 { font-size: var(--fs-h6); font-weight: var(--fw-sbd); letter-spacing: var(--tracking-wide); text-transform: uppercase; }

p { margin: 0 0 var(--space-4); }
a { color: var(--uep-green); text-decoration: none; transition: color var(--dur-fast) var(--ease-out); }
a:hover { color: var(--uep-green-dark); }
img, video { max-width: 100%; height: auto; display: block; }

:focus-visible {
  outline: 3px solid var(--uep-gold);
  outline-offset: 2px;
  border-radius: 4px;
}

::selection { background: var(--uep-green); color: #fff; }
