/* ============================================================================
   fonts.css — self-hosted consumer type ramp (Nexus mock faithful pass,
   2026-07-05).

   The founder-ratified mock (docs/design/nexus-extracted/core-components.jsx)
   declares exactly three families:
       FONT_DISP = 'Fraunces', Georgia, serif          (editorial display)
       FONT_UI   = 'Inter Tight', system-ui            (UI text)
       FONT_MONO = 'JetBrains Mono', ui-monospace      (kickers, numerals)

   Loaded by public.html (consumer shell) ONLY — the admin shell
   (index.html) keeps its Google-hosted Inter + JetBrains Mono untouched.

   SERVING NOTE: the backend mounts /css, /js, /img — there is NO /fonts
   static mount. The woff2 files therefore live in css/fonts/ and are
   referenced RELATIVE to this stylesheet (→ /css/fonts/<file>) so the
   existing /css mount serves them with zero backend change.

   Files are latin subsets; each variable file covers weights 400-700, so
   one @font-face per weight points at the same file (mirrors the mock
   _template.html pattern, minus the non-latin subsets we don't ship).
   ============================================================================ */

/* ── Fraunces — display serif ─────────────────────────────────────────── */
@font-face {
    font-family: 'Fraunces';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('fonts/fraunces-latin.woff2') format('woff2');
}
@font-face {
    font-family: 'Fraunces';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('fonts/fraunces-latin.woff2') format('woff2');
}
@font-face {
    font-family: 'Fraunces';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('fonts/fraunces-latin.woff2') format('woff2');
}
@font-face {
    font-family: 'Fraunces';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('fonts/fraunces-latin.woff2') format('woff2');
}

/* ── Inter Tight — UI text ────────────────────────────────────────────── */
@font-face {
    font-family: 'Inter Tight';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('fonts/inter-tight-latin.woff2') format('woff2');
}
@font-face {
    font-family: 'Inter Tight';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('fonts/inter-tight-latin.woff2') format('woff2');
}
@font-face {
    font-family: 'Inter Tight';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('fonts/inter-tight-latin.woff2') format('woff2');
}
@font-face {
    font-family: 'Inter Tight';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('fonts/inter-tight-latin.woff2') format('woff2');
}

/* ── JetBrains Mono — kickers, numerals, chips ────────────────────────── */
@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('fonts/jetbrains-mono-latin.woff2') format('woff2');
}
@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('fonts/jetbrains-mono-latin.woff2') format('woff2');
}
@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('fonts/jetbrains-mono-latin.woff2') format('woff2');
}
@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('fonts/jetbrains-mono-latin.woff2') format('woff2');
}

/* ── Family utilities (mock FONT_UI; FONT_DISP lives in tokens.css as
      .font-display-serif; FONT_MONO maps to the existing Tailwind
      `font-mono` whose first family is 'JetBrains Mono') ───────────────── */
.font-ui {
    font-family: 'Inter Tight', 'Inter', system-ui, -apple-system,
        'Segoe UI', sans-serif;
}

/* Legacy-container harmonization RETIRED 2026-07-05 (founder: «старе не
   треба використовувати») — every #<page>-legacy wrapper was eliminated in
   the de-legacy pass; the pages render the Nexus idiom natively, so no
   scoped retyping remains. */
