/* Self-hosted web fonts (legal audit 2026-10-06): no request leaves the site for type.
   Files are the OFFICIAL, UNMODIFIED woff2 builds; each family's SIL OFL 1.1 license sits
   beside its files, as the license requires.
     IBM Plex Sans  github.com/IBM/plex, release @ibm/plex-sans@1.1.0, fonts/complete/woff2
     IBM Plex Mono  github.com/IBM/plex, release @ibm/plex-mono@2.5.0, fonts/complete/woff2
   Weights are exactly those the retired Google Fonts request served; the fallback stacks
   stay in the tokens (--dl-font-sans / --dl-font-mono / --dl-font-serif). */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/ibm-plex-sans/IBMPlexSans-Regular.woff2') format('woff2');
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/ibm-plex-sans/IBMPlexSans-Medium.woff2') format('woff2');
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/ibm-plex-sans/IBMPlexSans-SemiBold.woff2') format('woff2');
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/ibm-plex-sans/IBMPlexSans-Bold.woff2') format('woff2');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/ibm-plex-mono/IBMPlexMono-Regular.woff2') format('woff2');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/ibm-plex-mono/IBMPlexMono-Medium.woff2') format('woff2');
}
