/* ===========================================================================
 * Runline brand fonts — shared bundle
 * Served from:  https://artifacts.runlineai.com/fonts/fonts.css
 *               https://assets.runlineai.com/fonts/fonts.css   (same CDN)
 *
 * Load once per app, then reference the families by name:
 *
 *   <link rel="preconnect" href="https://artifacts.runlineai.com" crossorigin>
 *   <link rel="stylesheet" href="https://artifacts.runlineai.com/fonts/fonts.css">
 *
 *   --font-sans: 'PP Mori', ui-sans-serif, system-ui, sans-serif;
 *   --font-mono: 'IBM Plex Mono', ui-monospace, monospace;
 *
 * Families: 'PP Mori' (200/350/400/600/800) · 'Geist' (400/500/600/700) ·
 *           'Geist Mono' (400/500) · 'IBM Plex Mono' (400/500/600).
 *
 * URLs are relative to this file, so both CDN aliases resolve. woff2 are
 * immutable (cache 1y); this CSS has a short TTL so new weights surface fast.
 *
 * Licensing: PP Mori is a Pangram Pangram commercial face, licensed to Runline
 * (web-embedding covered). Geist / Geist Mono / IBM Plex Mono are OFL-1.1.
 * ======================================================================== */

/* --- PP Mori (product sans) ---------------------------------------------- */
@font-face {
  font-family: 'PP Mori';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url('./pp-mori/PPMori-Extralight.woff2') format('woff2');
}
@font-face {
  font-family: 'PP Mori';
  font-style: normal;
  font-weight: 350;
  font-display: swap;
  src: url('./pp-mori/PPMori-Book.woff2') format('woff2');
}
@font-face {
  font-family: 'PP Mori';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./pp-mori/PPMori-Regular.woff2') format('woff2');
}
@font-face {
  font-family: 'PP Mori';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('./pp-mori/PPMori-SemiBold.woff2') format('woff2');
}
@font-face {
  font-family: 'PP Mori';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('./pp-mori/PPMori-ExtraBold.woff2') format('woff2');
}

/* --- Geist (alt sans) ----------------------------------------------------- */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./geist/Geist-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('./geist/Geist-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('./geist/Geist-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('./geist/Geist-700.woff2') format('woff2');
}

/* --- Geist Mono ----------------------------------------------------------- */
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./geist-mono/GeistMono-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('./geist-mono/GeistMono-500.woff2') format('woff2');
}

/* --- IBM Plex Mono (product mono) ---------------------------------------- */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./ibm-plex-mono/IBMPlexMono-400.woff2') format('woff2');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('./ibm-plex-mono/IBMPlexMono-500.woff2') format('woff2');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('./ibm-plex-mono/IBMPlexMono-600.woff2') format('woff2');
}
