/* =====================================================================
   Levier Investor Portal — self-hosted webfonts (zero third-party requests)
   Replaces the Google Fonts stylesheet: investor IPs no longer reach
   Google on every page view. Faces are served from /assets/fonts/*.woff2
   (same origin), so the CSP holds style-src 'self' / font-src 'self'.
   font-display:swap keeps text visible while a face loads (or if a face is
   momentarily absent — the CSS stack falls back to Georgia/system/monospace).
   Family names + weights below MUST match the stacks in portal.css exactly.
   ===================================================================== */

/* --- Cormorant Garamond (headings, KPI values, wordmark): weights 300–600 --- */
/* ONE face over the 300–600 range instead of four separate loads: the four placed weight files were
   byte-identical, so four <link>s fetched the same bytes 4× (~70 KB/page wasted). A single face with
   a weight RANGE serves any weight the CSS asks for from one file. cormorant-garamond.woff2 IS the
   Cormorant Garamond VARIABLE face (App Manager verified the WOFF2 table directory: fvar, 19 tables),
   so this range renders REAL interpolated weights, not synthesized ones. Efficiency only — the
   rendering was already correct on live once the v2 build was placed. */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300 600;font-display:swap;
  src:url('/assets/fonts/cormorant-garamond.woff2') format('woff2')}

/* --- Tenor Sans (body / inputs / buttons): single weight 400 --- */
@font-face{font-family:'Tenor Sans';font-style:normal;font-weight:400;font-display:swap;
  src:url('/assets/fonts/tenor-sans-400.woff2') format('woff2')}

/* DM Mono was removed in Portal 1.3.0 (owner 2026-10-09): its zero is slashed. Levier's two faces only. */
