@font-face {
  font-family: Montserrat;
  src: url('/fonts/montserrat-latin.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
:root {
  --font-body: Montserrat, Arial, sans-serif;
  --font-heading: var(--font-body);
  --light-sage: #C4C4A7;
  --pale-sage: #E2E2D3;
  --paper: #F5F5F0;
  --stone: #E9E9E5;
  --ink: #000000;
  --white: #FFFFFF;
  --muted: var(--ink);
  --olive: #919161;
  --sage-dark: #72714B;
  --sage-hover: var(--sage-dark);
  --line: var(--olive);
  --on-dark: var(--white);
  --on-dark-muted: var(--white);
  --on-dark-line: var(--light-sage);
  --focus: var(--ink);
  --error: var(--ink);
  --success: var(--ink);
  --status-bg: var(--pale-sage);
  --status-ink: var(--ink);
  --header-bg: var(--paper);
  --shadow-soft: 0 14px 30px rgb(0 0 0 / .05);
  --shadow-strong: 0 5px 24px rgb(0 0 0 / .18);
  --type-body: 20px;
  --type-small: 16px;
  --type-nav: 18px;
  --type-card: 28px;
  --type-card-body: 18px;
  --type-h1: clamp(40px, 7cqw, 76px);
  --type-h2: clamp(32px, 6cqw, 52px);
  --type-quote: clamp(28px, 3.2vw, 44px);
  --type-legal: 14px;
  --line-body: 1.5;
  --line-heading: 1.1;
  --weight-body: 400;
  --weight-heading: 350;
  --radius: 24px;
  --max: 1200px;
  --section-space: 96px;
  --hero-space: 96px;
  --space-gap: 32px;
}
@media (max-width: 800px) {
  :root { --type-body: 18px; --type-card: 26px; }
}
@media (prefers-reduced-motion: reduce) {
  :root { scroll-behavior: auto; }
}

/* Transitional tokens for inherited component surfaces and display sizes. */
:root {
  --surface-1: var(--ink);
  --surface-2: var(--pale-sage);
  --surface-3: var(--pale-sage);
  --surface-4: var(--olive);
  --surface-5: var(--ink);
  --surface-6: var(--olive);
  --surface-7: var(--stone);
  --surface-8: var(--stone);
  --surface-9: var(--stone);
  --surface-10: var(--pale-sage);
  --surface-11: var(--stone);
  --surface-12: var(--olive);
  --surface-13: var(--olive);
  --surface-14: var(--ink);
  --surface-15: var(--stone);
  --surface-16: var(--ink);
  --surface-17: var(--stone);
  --surface-18: var(--pale-sage);
  --surface-19: var(--pale-sage);
  --surface-20: var(--ink);
  --surface-21: rgb(0 0 0 / .06);
  --surface-22: var(--pale-sage);
  --surface-23: var(--pale-sage);
  --surface-24: rgb(0 0 0 / .06);
  --surface-25: var(--stone);
  --surface-26: var(--pale-sage);
  --surface-27: var(--olive);
  --surface-28: var(--ink);
  --surface-29: var(--stone);
  --surface-30: var(--pale-sage);
  --surface-31: var(--stone);
  --surface-32: var(--pale-sage);
  --surface-33: var(--olive);
  --surface-34: var(--olive);
  --surface-35: var(--stone);
  --surface-36: var(--stone);
  --surface-37: var(--olive);
  --surface-38: var(--ink);
  --surface-39: var(--stone);
  --surface-40: var(--ink);
  --surface-41: var(--olive);
  --surface-42: var(--pale-sage);
  --surface-43: var(--pale-sage);
  --surface-44: var(--ink);
  --surface-45: var(--olive);
  --surface-46: rgb(0 0 0 / .06);
  --surface-47: rgb(0 0 0 / .18);
  --surface-48: var(--stone);
  --surface-49: var(--stone);
  --surface-50: var(--stone);
  --surface-51: var(--olive);
  --surface-52: var(--olive);
  --surface-53: var(--ink);
  --surface-54: var(--ink);
  --surface-55: var(--pale-sage);
  --type-detail-1: clamp(42px,4.65vw,66px);
  --type-detail-2: clamp(34px,3.55vw,50px);
  --type-detail-3: 23px;
  --type-detail-4: clamp(44px,4.5vw,64px);
  --type-detail-5: 17px;
  --type-detail-6: 22px;
  --type-detail-7: 68px;
  --type-detail-8: 36px;
  --type-detail-9: 13px!important;
  --type-detail-10: 48px;
  --type-detail-11: 21px;
  --type-detail-12: 24px;
  --type-detail-13: 10px!important;
  --type-detail-14: 28px;
  --type-detail-15: 16px!important;
  --type-detail-16: 25px;
  --type-detail-17: clamp(44px,5vw,70px);
  --type-detail-18: 29px;
  --type-detail-19: 37px;
  --type-detail-20: 30px;
  --type-detail-21: 56px;
  --type-detail-22: 35px;
  --type-detail-23: 32px;
  --type-detail-24: 50px;
  --type-detail-25: 65px;
  --type-detail-26: 49px;
  --type-detail-27: 57px;
  --type-detail-28: 42px;
  --type-detail-29: 47px;
  --type-detail-30: 11px!important;
  --type-detail-31: 34px;
  --type-detail-32: 54px;
  --type-detail-33: 43px;
  --type-detail-34: 45px;
  --type-detail-35: 14px!important;
  --type-detail-36: 27px;
  --type-detail-37: 31px;
  --type-detail-38: clamp(44px, 3.6vw, 52px);
  --type-detail-39: clamp(40px, 6.6vw, 58px);
  --type-detail-40: clamp(32px, 8.8vw, 38px);
}

/* October 27 Home hero and audience strip. */
:root {
  --hero-max: 1320px;
  --hero-bg: var(--paper);
  --hero-panel: var(--pale-sage);
  --hero-wire: var(--olive);
  --hero-pulse: var(--light-sage);
  --hero-card-hover: var(--light-sage);
  --type-hero-h1: clamp(68px, 6.65vw, 96px);
  --type-hero-h1-mobile: clamp(48px, 12.8vw, 76px);
  --type-hero-subhead: 26px;
  --type-hero-action: 20px;
  --type-hero-note: 18px;
  --type-hero-card: 30px;
  --type-hero-caption: 20px;
  --type-hero-tag: 14px;
}
