/*
 * fonts.css — loaded non-blocking via:
 *   <link rel="stylesheet" href="/fonts.css" media="print" onload="this.media='all'" />
 *
 * Contains ONLY IBM Plex Sans and IBM Plex Mono @font-face declarations.
 * Fraunces @font-face declarations are in the render-blocking global.css
 * because Fraunces is preloaded and the @font-face declaration must be
 * parsed before first paint for the preload to take effect.
 *
 * With these declarations in a non-blocking stylesheet, the browser never
 * discovers IBM Plex Sans or Mono URLs during the critical path.
 * font-display:optional then works correctly — no swap on first visit,
 * no CLS from body text or footer links.
 *
 * IBM Plex Sans (1000 UPM): ascent=1025, descent=275, lineGap=0
 * Arial fallback: size-adjust=113.2% brings Arial's line-height to match IBM Plex Sans
 */
@font-face {
  font-family: 'IBM Plex Sans Fallback';
  src: local('Arial'), local('Helvetica Neue'), local('sans-serif');
  size-adjust: 113.2%;
  ascent-override: 102%;
  descent-override: 28%;
  line-gap-override: 0%;
}

/* IBM Plex Sans — UI sans-serif */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url('/fonts/ibmplexsans-400.woff2') format('woff2');
  unicode-range: U+0020-007E, U+00A0-00FF, U+0100-017F, U+2013-2014, U+2018-201D, U+2026, U+00B7, U+00D7, U+0131, U+0152-0153, U+02BB-02BC, U+2122, U+FEFF;
}

@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-display: optional;
  src: url('/fonts/ibmplexsans-500.woff2') format('woff2');
  unicode-range: U+0020-007E, U+00A0-00FF, U+0100-017F, U+2013-2014, U+2018-201D, U+2026, U+00B7, U+00D7, U+0131, U+0152-0153, U+02BB-02BC, U+2122, U+FEFF;
}

@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-display: optional;
  src: url('/fonts/ibmplexsans-600.woff2') format('woff2');
  unicode-range: U+0020-007E, U+00A0-00FF, U+0100-017F, U+2013-2014, U+2018-201D, U+2026, U+00B7, U+00D7, U+0131, U+0152-0153, U+02BB-02BC, U+2122, U+FEFF;
}

@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 700;
  font-display: optional;
  src: url('/fonts/ibmplexsans-700.woff2') format('woff2');
  unicode-range: U+0020-007E, U+00A0-00FF, U+0100-017F, U+2013-2014, U+2018-201D, U+2026, U+00B7, U+00D7, U+0131, U+0152-0153, U+02BB-02BC, U+2122, U+FEFF;
}

/* IBM Plex Mono — code/mono */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url('/fonts/ibmplexmono-400.woff2') format('woff2');
  unicode-range: U+0020-007E, U+00A0-00FF, U+0100-017F, U+2013-2014, U+2018-201D, U+2026, U+00B7, U+00D7, U+0131, U+0152-0153, U+02BB-02BC, U+2122, U+FEFF;
}

@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: optional;
  src: url('/fonts/ibmplexmono-600.woff2') format('woff2');
  unicode-range: U+0020-007E, U+00A0-00FF, U+0100-017F, U+2013-2014, U+2018-201D, U+2026, U+00B7, U+00D7, U+0131, U+0152-0153, U+02BB-02BC, U+2122, U+FEFF;
}

@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 700;
  font-display: optional;
  src: url('/fonts/ibmplexmono-700.woff2') format('woff2');
  unicode-range: U+0020-007E, U+00A0-00FF, U+0100-017F, U+2013-2014, U+2018-201D, U+2026, U+00B7, U+00D7, U+0131, U+0152-0153, U+02BB-02BC, U+2122, U+FEFF;
}
