/* ============================================================
   CB CODE — SELF-HOSTED WEB FONTS
   ============================================================

   Replaces the Google Fonts CDN imports that used to live in
   app.php and login.php as of v0.9.433. Single stylesheet,
   both font families, no external requests.

   Sources & licenses:
     IBM Plex Sans v23 (latin subset) — SIL Open Font License 1.1
       https://github.com/IBM/plex
     Sora v17 (latin subset)          — SIL Open Font License 1.1
       https://fonts.google.com/specimen/Sora

   Subset/coverage:
     latin only — matches the original CDN import. Add latin-ext
     if Slavic / Vietnamese accents start landing in user content.

   Weights shipped (driven by what the CSS in app/frontend/assets/
   actually requests, not by what's available upstream):
     IBM Plex Sans:  400 / 600 / 700  (each: roman + italic)
     Sora:           300 / 400 / 500 / 600 / 700

   font-display: swap — text renders in the system fallback during
   the brief font fetch, then swaps in the webfont. Matches the
   original Google CSS behaviour (`&display=swap` query param).

   Adding a weight later: drop the woff2 into the matching vendor
   subfolder and add a new @font-face block here. No code changes
   anywhere else.
   ============================================================ */


/* ------------------------------------------------------------
   IBM Plex Sans — body / chrome base font
   ------------------------------------------------------------ */

@font-face {
	font-family: 'IBM Plex Sans';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('./ibm-plex-sans/ibm-plex-sans-v23-latin-regular.woff2') format('woff2');
}

@font-face {
	font-family: 'IBM Plex Sans';
	font-style: italic;
	font-weight: 400;
	font-display: swap;
	src: url('./ibm-plex-sans/ibm-plex-sans-v23-latin-italic.woff2') format('woff2');
}

@font-face {
	font-family: 'IBM Plex Sans';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('./ibm-plex-sans/ibm-plex-sans-v23-latin-600.woff2') format('woff2');
}

@font-face {
	font-family: 'IBM Plex Sans';
	font-style: italic;
	font-weight: 600;
	font-display: swap;
	src: url('./ibm-plex-sans/ibm-plex-sans-v23-latin-600italic.woff2') format('woff2');
}

@font-face {
	font-family: 'IBM Plex Sans';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('./ibm-plex-sans/ibm-plex-sans-v23-latin-700.woff2') format('woff2');
}

@font-face {
	font-family: 'IBM Plex Sans';
	font-style: italic;
	font-weight: 700;
	font-display: swap;
	src: url('./ibm-plex-sans/ibm-plex-sans-v23-latin-700italic.woff2') format('woff2');
}


/* ------------------------------------------------------------
   Sora — display / heading font
   ------------------------------------------------------------ */

@font-face {
	font-family: 'Sora';
	font-style: normal;
	font-weight: 300;
	font-display: swap;
	src: url('./sora/sora-v17-latin-300.woff2') format('woff2');
}

@font-face {
	font-family: 'Sora';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('./sora/sora-v17-latin-regular.woff2') format('woff2');
}

@font-face {
	font-family: 'Sora';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('./sora/sora-v17-latin-500.woff2') format('woff2');
}

@font-face {
	font-family: 'Sora';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('./sora/sora-v17-latin-600.woff2') format('woff2');
}

@font-face {
	font-family: 'Sora';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('./sora/sora-v17-latin-700.woff2') format('woff2');
}
