/* Mhomentum — self-hosted webfonts v1.1 (2026-09-06)
   Replaces the Google Fonts @import that shipped in v1.0.

   Why self-hosted, and this is a decision, not a preference:
   1. An @import inside a stylesheet is render-blocking AND chained — the browser
      must fetch typography.css before it even learns the fonts exist, then do two
      more DNS lookups and TLS handshakes. That is three round trips before a
      montor on 4G in a van sees a word.
   2. It is a request to a US endpoint on every page load. A DSO procurement
      questionnaire will ask about that. We do not need the conversation.
   3. Variable fonts: one file per family covers every weight we use. Six files
      instead of sixteen.

   Weight of the whole thing, measured:
     Norwegian and English pages only ever need the `latin` files.
       Inter var latin ............ 48.3 KB   (400-700)
       Space Grotesk var latin .... 22.3 KB   (500-700)
       JetBrains Mono var latin ... 31.4 KB   (400-500)  — not used on the landing page
     Landing page critical path: 70.6 KB. Full app: 102.0 KB.
     The `latin-ext` files (115.6 KB total) only download if a page actually
     contains a latin-ext character — a Polish or Czech name in a crew list.
     ae, o-slash and a-ring all live in `latin`, so ordinary Norwegian never
     touches latin-ext.

   HOW TO SHIP THIS
   ---------------------------------------------------------------------------
   1. Copy `fonts/` next to this file, keeping the relative path
      (`./fonts/` alongside this file). If your build puts CSS and fonts in different
      directories, fix the url() here — do not rename the files.
   2. Load it FIRST, before palette.css and typography.css:
        <link rel="stylesheet" href="/assets/brand/fonts.css">
   3. Preload only the two the first paint actually needs. Two, not six —
      preloading everything is the same mistake in a different hat:
        <link rel="preload" as="font" type="font/woff2" crossorigin
              href="/assets/brand/fonts/inter-var-latin.woff2">
        <link rel="preload" as="font" type="font/woff2" crossorigin
              href="/assets/brand/fonts/space-grotesk-var-latin.woff2">
   4. Serve woff2 with `Cache-Control: public, max-age=31536000, immutable`.
      The filenames are stable; if a font is ever updated, change the filename.
   5. DELETE the fonts.googleapis.com and fonts.gstatic.com <link rel=preconnect>
      tags. Nothing points there any more and a preconnect to nowhere costs a
      connection.

   `font-display: swap` on all three: the fallback stack is metrically close
   enough that the reflow is a shrug, and a montor reading a job address would
   rather have it late-styled than not at all.

   Licences: Inter and Space Grotesk are SIL OFL 1.1. JetBrains Mono is
   SIL OFL 1.1. Self-hosting is permitted; attribution lives in fonts/OFL.md.
   Files are the Google Fonts latin / latin-ext subsets, unmodified.

   NOTE: the mho glyph (U+2127) is in none of these subsets, and that is fine —
   the mark is an SVG path, never a text character. Never set it as type. */

/* ---- Inter — UI and body, 400-700 -------------------------------------- */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('./fonts/inter-var-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('./fonts/inter-var-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ---- Space Grotesk — display, 500-700 ---------------------------------- */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
  src: url('./fonts/space-grotesk-var-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
  src: url('./fonts/space-grotesk-var-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ---- JetBrains Mono — identifiers, 400-500 -----------------------------
   Job numbers, malernummer, EFO numbers, coordinates. Not needed by the
   landing page — if you are building a marketing surface, you may skip these
   two files entirely. */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url('./fonts/jetbrains-mono-var-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url('./fonts/jetbrains-mono-var-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
