/* Self-hosted brand faces. Generated by tools/brand/build_fonts.py.
 * font-display: swap, metric-adjusted fallback stack, no third-party host. */

@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/_site/fonts/bricolage-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/_site/fonts/bricolage-700.woff2') format('woff2');
}

@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/_site/fonts/publicsans-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/_site/fonts/publicsans-600.woff2') format('woff2');
}

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

/* Metric-adjusted fallbacks, tuned so swap does not shift the layout. */
@font-face {
  font-family: 'Bricolage Grotesque Fallback';
  src: local('Trebuchet MS'), local('Arial');
  size-adjust: 100.8%;
  ascent-override: 96%;
  descent-override: 24%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Public Sans Fallback';
  src: local('Arial'), local('Helvetica Neue');
  size-adjust: 100.2%;
  ascent-override: 95%;
  descent-override: 23%;
  line-gap-override: 0%;
}
:root {
  --font-display: 'Bricolage Grotesque', 'Bricolage Grotesque Fallback', 'Trebuchet MS', system-ui, sans-serif;
  --font-body: 'Public Sans', 'Public Sans Fallback', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, 'SFMono-Regular', monospace;
}
