/* ============================== assets/fonts/fonts.css ==============================
   The ONE place typography is defined. Injected into <head> on every page by the
   middleware in Program.cs (next to the error bootstrap), so no page template can
   forget it — and every @font-face that used to live scattered across five stylesheets
   is deleted from them, so nothing can override what is declared here.

   The strategy is aliasing, not search-and-replace. The site's CSS asks for fonts under
   FIFTEEN different names — 'Montserrat-Medium', 'Merriweather-Regular', 'Fraunces'
   (which used to arrive from fonts.googleapis.com), 'DM Serif Display', and more.
   Chasing every declaration across 500KB of stylesheets would miss one, and that one
   would fall back to Times. Instead, every name any stylesheet can possibly ask for is
   DECLARED here, and every one of them points at the Montserrat files in this folder.
   A rule that asks for 'Fraunces' gets Montserrat; a rule that asks for
   'Merriweather-SemiBold' gets Montserrat SemiBold. One font family on screen,
   whatever the CSS says — which is exactly the instruction.

   woff2 is listed before ttf wherever a woff2 exists: same glyphs at a third of the
   bytes. font-display:swap everywhere: text renders immediately in the fallback and
   swaps, rather than being invisible while a font downloads on mobile data.

   tabler-icons is deliberately ABSENT from this file. It is a glyph font, not a text
   font — remapping it would turn every icon on the site into random letters. Its own
   stylesheet keeps owning it.

   Cache note: /assets/fonts/ is served with the site's long-cache static rules. If this
   file is ever edited, bump the ?v= on the <link> in Program.cs, or the change will sit
   behind a year of browser cache. */

/* ---------- The real family: Montserrat, with proper weights ---------- */
@font-face{font-family:'Montserrat';src:url('/assets/fonts/monserat/Montserrat-Thin.ttf') format('truetype');font-weight:100;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat';src:url('/assets/fonts/monserat/Montserrat-Light.ttf') format('truetype');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat';src:url('/assets/fonts/monserat/Montserrat-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat';src:url('/assets/fonts/monserat/Montserrat-Medium.woff2') format('woff2'),url('/assets/fonts/monserat/Montserrat-Medium.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat';src:url('/assets/fonts/monserat/Montserrat-SemiBold.woff2') format('woff2'),url('/assets/fonts/monserat/Montserrat-SemiBold.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat';src:url('/assets/fonts/monserat/Montserrat-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat';src:url('/assets/fonts/monserat/Montserrat-ExtraBold.ttf') format('truetype');font-weight:800;font-style:normal;font-display:swap}

/* Marcellus ships in the same folder — available by name for headings if ever wanted,
   but nothing maps to it by default: the instruction was one global font. */
@font-face{font-family:'Marcellus';src:url('/assets/fonts/Marcellus-Regular.woff2') format('woff2'),url('/assets/fonts/Marcellus-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}

/* ---------- Legacy aliases: the names the site's CSS actually asks for ----------
   Each maps to the Montserrat file of the matching weight. The old per-stylesheet
   declarations of these names are deleted; these are now the only definitions, so
   cascade order against other files cannot flip them back. */
@font-face{font-family:'Montserrat-Thin';src:url('/assets/fonts/monserat/Montserrat-Thin.ttf') format('truetype');font-display:swap}
@font-face{font-family:'Montserrat-Light';src:url('/assets/fonts/monserat/Montserrat-Light.ttf') format('truetype');font-display:swap}
@font-face{font-family:'Montserrat-Regular';src:url('/assets/fonts/monserat/Montserrat-Regular.ttf') format('truetype');font-display:swap}
@font-face{font-family:'Montserrat-Medium';src:url('/assets/fonts/monserat/Montserrat-Medium.woff2') format('woff2'),url('/assets/fonts/monserat/Montserrat-Medium.ttf') format('truetype');font-display:swap}
@font-face{font-family:'Montserrat-SemiBold';src:url('/assets/fonts/monserat/Montserrat-SemiBold.woff2') format('woff2'),url('/assets/fonts/monserat/Montserrat-SemiBold.ttf') format('truetype');font-display:swap}
@font-face{font-family:'Montserrat-Bold';src:url('/assets/fonts/monserat/Montserrat-Bold.ttf') format('truetype');font-display:swap}
@font-face{font-family:'Montserrat-ExtraBold';src:url('/assets/fonts/monserat/Montserrat-ExtraBold.ttf') format('truetype');font-display:swap}

/* The serif names. These used to be Merriweather TTFs and a Google-hosted Fraunces —
   the fonts.googleapis.com / fonts.gstatic.com entries in DevTools were Fraunces'
   @import. All of them now resolve to Montserrat at a sympathetic weight, which is what
   removes both the third-party request and the second typeface. */
@font-face{font-family:'Merriweather-Regular';src:url('/assets/fonts/monserat/Montserrat-Regular.ttf') format('truetype');font-display:swap}
@font-face{font-family:'Merriweather-SemiBold';src:url('/assets/fonts/monserat/Montserrat-SemiBold.woff2') format('woff2'),url('/assets/fonts/monserat/Montserrat-SemiBold.ttf') format('truetype');font-display:swap}
@font-face{font-family:'Merriweather';src:url('/assets/fonts/monserat/Montserrat-SemiBold.woff2') format('woff2'),url('/assets/fonts/monserat/Montserrat-SemiBold.ttf') format('truetype');font-display:swap}
@font-face{font-family:'Fraunces';src:url('/assets/fonts/monserat/Montserrat-SemiBold.woff2') format('woff2'),url('/assets/fonts/monserat/Montserrat-SemiBold.ttf') format('truetype');font-display:swap}
@font-face{font-family:'DM Serif Display';src:url('/assets/fonts/monserat/Montserrat-SemiBold.woff2') format('woff2'),url('/assets/fonts/monserat/Montserrat-SemiBold.ttf') format('truetype');font-display:swap}

/* ---------- The global default ----------
   Belt on top of the aliases: anything that never asked for a font at all — or asked
   for bare 'serif'/'Georgia' — still lands on Montserrat via inheritance. The CSS
   variables some pages define for their heading/body stacks are re-pointed too; this
   file loads FIRST, so a page's own :root wins for its variables — which is fine,
   because every family those variables can name is aliased above anyway. */
html,body{font-family:'Montserrat','Montserrat-Medium',system-ui,-apple-system,'Segoe UI',Arial,sans-serif !important}
:root{
  --fh:'Montserrat',system-ui,sans-serif;
  --sans:'Montserrat',system-ui,sans-serif;
  --ff:'Montserrat',system-ui,sans-serif;
  --ffd:'Montserrat',system-ui,sans-serif;
  --font-d:'Montserrat',system-ui,sans-serif;
}
