/* Bordr (getbordr.com) — the naira sign (U+20A6).

   ══ MEASURED, NOT ASSUMED ════════════════════════════════════════════════════
   Every font subset Bordr loads was read with fontTools on 17 Oct 2026 and NONE
   of them carries U+20A6:

     Outfit          latin: 223 glyphs, currency block = U+20AC only
     DM Sans         latin: 222 glyphs, currency block = U+20AC only
     JetBrains Mono  latin: 229 glyphs, currency block = U+20AC only

   DM Sans does carry U+20A8 U+20B9 U+20BA U+20BD in latin-ext, and JetBrains
   Mono U+20AB U+20AE U+20BD U+20BF — every currency mark except the one Nigeria
   uses.

   ══ WHY IT LOOKS FINE ON A LAPTOP AND BREAKS ON A PHONE ══════════════════════
   The latin-ext @font-face Google serves still declares
   `unicode-range: U+20A0-20AB`, which COVERS U+20A6. So the browser picks a file
   that has no such glyph and falls through to whatever the device happens to
   have. On Windows that is usually a serif naira sitting beside sans digits; on
   Android it is frequently a tofu box. NEVER trust `unicode-range` — or
   `document.fonts.check()`, which returns true whenever a range merely declares
   a codepoint — as evidence a glyph exists. Read the font file.

   Bordr prices in naira on its pricing page and on its billing screen, so this
   is not cosmetic: it is the product being unable to draw its own currency.

   ══ WHAT THESE FILES ARE ════════════════════════════════════════════════════
   Built by `tools/make-naira-font.py` from each family's OWN capital N plus two
   bars, so the sign carries the same stems, the same weight and the same optical
   size as the digits beside it. Each face answers for EXACTLY ONE codepoint
   (verified: cmap == {U+20A6}) and weighs 632-720 bytes, so a weight is fetched
   only if a page actually renders money at it.

   ⚠ THIS FILE MUST LOAD LAST — after the Google Fonts <link>. When two faces of
   one family both cover a codepoint, THE LAST DECLARATION WINS, and that overlap
   is the entire mechanism. Moving this above the font link silently restores the
   bug.

   ⚠ THE CSP MUST ALLOW `font-src 'self'` or the browser blocks these quietly and
   the fallback comes back. firebase.json already sends
   `font-src 'self' https://fonts.gstatic.com data:`.

   THE FONT URLS CARRY ?v= DELIBERATELY. These files are served with a one-year
   `immutable` cache header, so a corrected outline under the same filename would never
   reach a browser that had already cached the old one. The first build shipped bars that
   punched holes in Outfit's N instead of crossing it (a contour-winding bug); without a
   version in the URL that broken glyph would have been permanent for anyone who loaded
   it. Bump it whenever tools/make-naira-font.py changes an outline, and bump the
   matching entries in public/sw.js SHELL with it.

   Sources are SIL OFL 1.1, which permits modification. The derivatives are
   renamed ("Bordr Naira Display/Sans/Mono") so they carry no Reserved Font Name;
   the licence is in tools/fontsrc/LICENSE.txt.
*/

/* Outfit */
@font-face {
  font-family: "Outfit";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/fonts/outfit-naira-300.woff2?v=2") format("woff2");
  unicode-range: U+20A6;
}
@font-face {
  font-family: "Outfit";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/outfit-naira-400.woff2?v=2") format("woff2");
  unicode-range: U+20A6;
}
@font-face {
  font-family: "Outfit";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/fonts/outfit-naira-500.woff2?v=2") format("woff2");
  unicode-range: U+20A6;
}
@font-face {
  font-family: "Outfit";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/outfit-naira-600.woff2?v=2") format("woff2");
  unicode-range: U+20A6;
}
@font-face {
  font-family: "Outfit";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/outfit-naira-700.woff2?v=2") format("woff2");
  unicode-range: U+20A6;
}
@font-face {
  font-family: "Outfit";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/fonts/outfit-naira-800.woff2?v=2") format("woff2");
  unicode-range: U+20A6;
}
@font-face {
  font-family: "Outfit";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/fonts/outfit-naira-900.woff2?v=2") format("woff2");
  unicode-range: U+20A6;
}

/* DM Sans */
@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/fonts/dmsans-naira-300.woff2?v=2") format("woff2");
  unicode-range: U+20A6;
}
@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/dmsans-naira-400.woff2?v=2") format("woff2");
  unicode-range: U+20A6;
}
@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/fonts/dmsans-naira-500.woff2?v=2") format("woff2");
  unicode-range: U+20A6;
}
@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/dmsans-naira-600.woff2?v=2") format("woff2");
  unicode-range: U+20A6;
}

/* JetBrains Mono */
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/jetbrains-naira-400.woff2?v=2") format("woff2");
  unicode-range: U+20A6;
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/fonts/jetbrains-naira-500.woff2?v=2") format("woff2");
  unicode-range: U+20A6;
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/jetbrains-naira-600.woff2?v=2") format("woff2");
  unicode-range: U+20A6;
}
