/* FUSEON typography tokens (landing; reusable by the PWA later).
 *
 * Families and roles
 *   Hero ................ PP Neue Machina Plain 500
 *   Headings ............ PP Neue Montreal 500/600
 *   Body, navigation .... PP Neue Montreal 400/500
 *   Descriptions ........ PP Neue Montreal Text 400
 *   Figures ............. Geist Mono 400/500, tabular lining numerals
 *   Editorial accent .... PP Editorial New Italic 400 (optional)
 *
 * Geist Mono is SIL OFL 1.1 and self-hosted here (assets/fonts, licence included).
 * The PP families are commercial (Pangram Pangram). Their @font-face rules live in
 * shared/fuseon-fonts-pp.css, which is linked from index.html only once licensed
 * WOFF2 files with web-embedding rights are in assets/fonts/licensed/. Until then
 * each PP role renders with the declared system fallback below: an explicit,
 * documented fallback, not a substitute family. No local() sources are used, so a
 * visitor's installed fonts never change the render.
 *
 * The fallback is the platform UI face (SF Pro on Apple, Segoe UI on Windows, Roboto
 * on Android). Helvetica and Helvetica Neue are deliberately not named: on a Windows
 * machine with a partial Helvetica Neue install (only Bold, MediumItalic, BlackItalic)
 * Chrome rendered every 400-weight description in MediumItalic.
 */
@font-face{font-family:'FUSEON Geist Mono';src:url('../assets/fonts/GeistMono-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'FUSEON Geist Mono';src:url('../assets/fonts/GeistMono-Medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}

:root{
  --fx-system:-apple-system,BlinkMacSystemFont,system-ui,'Segoe UI',Roboto,Arial,sans-serif;
  --fx-font-hero:'FUSEON Neue Machina',var(--fx-system);
  --fx-font-heading:'FUSEON Neue Montreal',var(--fx-system);
  --fx-font-body:'FUSEON Neue Montreal',var(--fx-system);
  --fx-font-description:'FUSEON Neue Montreal Text',var(--fx-system);
  --fx-font-mono:'FUSEON Geist Mono',ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;
  --fx-font-accent:'FUSEON Editorial New',Georgia,'Times New Roman',serif;

  /* Fluid scale: 320px phone to 1440px desktop, inside the DESIGN.md ranges
     (hero 40-52 / 64-88px, sections 28-34 / 36-48px). */
  --fx-size-hero:clamp(2.5rem,1.6rem + 4.6vw,5.5rem);
  --fx-size-section:clamp(1.875rem,1.3rem + 2.4vw,3rem);
  --fx-size-title:clamp(1.25rem,1.1rem + .6vw,1.625rem);
  --fx-size-lede:clamp(1.0625rem,.98rem + .45vw,1.3125rem);
  --fx-size-body:clamp(1rem,.97rem + .15vw,1.0625rem);
  --fx-size-small:.875rem;
  --fx-size-label:.8125rem;
  --fx-lh-hero:1.04;--fx-lh-heading:1.12;--fx-lh-body:1.6;
}
.fx-figure{font-family:var(--fx-font-mono);font-variant-numeric:tabular-nums lining-nums;font-feature-settings:'tnum' 1,'lnum' 1;font-weight:500;letter-spacing:-.01em;white-space:nowrap}
