/* Self-hosted fonts (Latin subset). Same-origin, font-display: swap. */
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 400; font-display: swap; src: url('/assets/fonts/playfair-display-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 600; font-display: swap; src: url('/assets/fonts/playfair-display-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 700; font-display: swap; src: url('/assets/fonts/playfair-display-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 400; font-display: swap; src: url('/assets/fonts/playfair-display-latin-400-italic.woff2') format('woff2'); }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-weight: 400; font-display: swap; src: url('/assets/fonts/source-sans-3-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-weight: 600; font-display: swap; src: url('/assets/fonts/source-sans-3-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-weight: 700; font-display: swap; src: url('/assets/fonts/source-sans-3-latin-700-normal.woff2') format('woff2'); }

:root {
  --bg-canvas: #F6FBF9; 
  --bg-tint: #D5EDE2; 
  --card-light: #FFFFFF; 
  --border-light: #C2D7CE; 
  --ink-dark: #011C12; 
  --ink-muted: #546A61; 
  --bg-deep: #022319; 
  --card-deep: #0C3326; 
  --border-deep: #23483A; 
  --ink-light: #EEF8F3; 
  --ink-muted-deep: #ABBEB6; 
  --brand-primary: #163E30; 
  --brand-on-deep: #62C7A3; 
  --accent-secondary: #B84322; 
  --cta-fill: #163E30; 
  --cta-ink: #FFFFFF; 
  --wa-pill-bg: #F5F5F7;
  --wa-pill-text: #1D1D1F;
  --wa-icon: #25D366;
  --font-display: 'Playfair Display', Georgia, serif;
  --font-sans: 'Source Sans 3', system-ui, sans-serif;
  --font-mono: 'Source Sans 3', system-ui, sans-serif;
  --step-0: clamp(1rem, 0.954rem + 0.190vw, 1.125rem);
  --step-1: clamp(1.2rem, 1.089rem + 0.457vw, 1.5rem);
  --step-2: clamp(1.44rem, 1.232rem + 0.852vw, 1.999rem);
  --step-3: clamp(1.728rem, 1.380rem + 1.427vw, 2.665rem);
  --step-4: clamp(2.074rem, 1.524rem + 2.253vw, 3.552rem);
  --step-5: clamp(2.488rem, 1.654rem + 3.423vw, 4.735rem);
  --lh-body: 1.5;
  --lh-heading: 1.05;
  --measure: 66ch;
  --measure-min: 45ch;
  --measure-max: 75ch;
  --display-case: none;
  --tracking-display: -0.025em;
  --tracking-heading: -0.01em;
  --tracking-eyebrow: 0.08em;
  --num-data: lining-nums tabular-nums;
  --num-display: lining-nums proportional-nums;
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --dur-fast: 150ms;
  --dur-base: 250ms;
  --dur-slow: 400ms;
  --dur-reveal: 700ms;
}
@media (prefers-reduced-motion: reduce) {
  :root { --dur-fast: 1ms; --dur-base: 1ms; --dur-slow: 1ms; --dur-reveal: 1ms; }
}
