/*
 * Self-hosted fonts, subset to Latin — byte-identical copies of the app's
 * subsets (app/src/assets/fonts). JetBrains Mono 400 (SIL OFL) for text;
 * Oxanium 600 (SIL OFL) for display, labels and buttons. No CDN, ever.
 * Local fallback faces are width-matched (from the app's fonts.css) so the
 * swap does not reflow the page.
 */

@font-face {
  font-family: 'JetBrains Mono';
  src: url('../assets/fonts/JetBrainsMono-Regular-subset.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Oxanium';
  src: url('../assets/fonts/Oxanium-SemiBold-subset.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

/* JetBrains Mono fallbacks (monospace). */
@font-face {
  font-family: 'JetBrains Mono Fallback 1';
  src: local('Menlo'), local('Menlo-Regular'), local('DejaVu Sans Mono'), local('DejaVuSansMono');
  font-weight: 400;
  size-adjust: 99.7%;
  ascent-override: 102.3%;
  descent-override: 30.1%;
  line-gap-override: 0%;
}

@font-face {
  font-family: 'JetBrains Mono Fallback 2';
  src: local('Liberation Mono'), local('LiberationMono'), local('Noto Sans Mono'), local('NotoSansMono-Regular'),
    local('Droid Sans Mono'), local('DroidSansMono'), local('Cousine'), local('Roboto Mono'), local('Courier New');
  font-weight: 400;
  size-adjust: 100%;
  ascent-override: 102%;
  descent-override: 30%;
  line-gap-override: 0%;
}

@font-face {
  font-family: 'JetBrains Mono Fallback 3';
  src: local('Consolas');
  font-weight: 400;
  size-adjust: 109.1%;
  ascent-override: 93.5%;
  descent-override: 27.5%;
  line-gap-override: 0%;
}

/* Oxanium fallbacks (sans), matched on average advance. */
@font-face {
  font-family: 'Oxanium Fallback 1';
  src: local('Arial'), local('Liberation Sans'), local('Roboto'), local('Helvetica Neue'), local('Segoe UI');
  font-weight: 600;
  size-adjust: 97.6%;
  ascent-override: 81%;
  descent-override: 21.5%;
  line-gap-override: 25.6%;
}

@font-face {
  font-family: 'Oxanium Fallback 2';
  src: local('Noto Sans'), local('NotoSans');
  font-weight: 600;
  size-adjust: 94%;
  ascent-override: 84.1%;
  descent-override: 22.4%;
  line-gap-override: 26.6%;
}

@font-face {
  font-family: 'Oxanium Fallback 3';
  src: local('DejaVu Sans'), local('DejaVuSans');
  font-weight: 600;
  size-adjust: 82.3%;
  ascent-override: 96%;
  descent-override: 25.5%;
  line-gap-override: 30.4%;
}
