/* Self-hosted fonts — Session 53A Phase 2 Commit 7 step 2.

   Replaces the Google Fonts CSS that landing.html / login.html /
   register.html previously loaded from fonts.googleapis.com — that
   was a render-blocking external request that hurt FCP/LCP. Local
   WOFF2 files in /static/fonts/ are loaded with font-display: swap
   so the page paints with the system fallback first and re-paints
   with the brand fonts as soon as they arrive.

   Weights audited from actual class usage in the templates:
     DM Sans:        400 (body), 400-italic (tagline), 700 (font-bold),
                     900 (H1 hero), 900-italic (.hero-quote class)
     JetBrains Mono: 400 (body mono), 700 (mono bold)

   Latin-subset only (U+0000–00FF) — avoids shipping Cyrillic /
   Vietnamese / etc. ranges we don't need. Total font payload ~253 KB
   across all 7 files. Browser only fetches the weights actually
   needed on the rendered page (subset + display=swap behaviour).

   Two preload links live in each template's <head> (DM Sans 400 +
   900) so the critical-text fonts start downloading in parallel
   with the CSS bundle, not after.
*/

@font-face {
    font-family: 'DM Sans';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('/static/fonts/dm-sans-400.woff2') format('woff2');
}
@font-face {
    font-family: 'DM Sans';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('/static/fonts/dm-sans-400-italic.woff2') format('woff2');
}
@font-face {
    font-family: 'DM Sans';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('/static/fonts/dm-sans-700.woff2') format('woff2');
}
@font-face {
    font-family: 'DM Sans';
    font-style: normal;
    font-weight: 900;
    font-display: swap;
    src: url('/static/fonts/dm-sans-900.woff2') format('woff2');
}
@font-face {
    font-family: 'DM Sans';
    font-style: italic;
    font-weight: 900;
    font-display: swap;
    src: url('/static/fonts/dm-sans-900-italic.woff2') format('woff2');
}

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

/* Inter Medium — LOGO WORDMARK ONLY (the 2026 logo arc). The brand
   wordmark "MacroSonar" is set in Inter 500 to match the owner's source
   artwork. Inter is deliberately NOT a site font: it is scoped to
   `.brand-wordmark` and used nowhere else — body + headings stay DM Sans.
   font-display: swap; the lockup is fixed-size so the swap does not shift
   layout. Latin-subset woff2 (~24 KB). */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('/static/fonts/inter-medium.woff2') format('woff2');
}
.brand-wordmark {
    font-family: 'Inter', 'DM Sans', system-ui, sans-serif;
    font-weight: 500;
    letter-spacing: -0.01em;
}
