/* Self-hosted faces, copied from extensions-portal: Inter (body), Manrope
   (headlines), Cairo (Arabic), Roboto (accented Latin Inter omits).

   Inter is THREE REAL CUTS, not one file with a weight range. It used to be a
   single `Inter-Latin.woff2` declared `font-weight: 400` — a static face (no
   `fvar`, usWeightClass 400). Against it, weight 500 rendered PIXEL-IDENTICAL
   to 400, and 600 was synthesised: 1.42x the ink at an IDENTICAL advance
   width, which is the browser dilating outlines with no optical correction.
   34 rules in main.css ask for 500 or 600 and got neither, so the app's whole
   type hierarchy was authored and never painted. The cuts are byte-identical
   to slack-connect's and cost +47.6 KB on Latin sessions and ZERO on Arabic
   ones, where unicode-range plus [dir=rtl] mean Inter never loads at all.

   The declared `400` was RIGHT for a static file — a weight range on one
   suppresses synthesis and kills every weight, which is what the portal still
   does. The fix was never to widen the range; it was to ship the faces.

   No Latin Inter 700 ships, and nothing asks for one. Two rules request 700:
   .metric .n, which is --font-headline and therefore Manrope (declared
   400 800, so it is covered), and #langLabel in index.html, whose glyph
   resolves to Cairo in both languages. .grp was a third and rendered
   synthesised bold for it; it now takes the shared overline role at 600.
   Wanting Latin bold means ADDING Inter-Latin-700.woff2 (slack-connect has
   the cut) — it never means widening a range here.

   Verify a face with fontTools, never with document.fonts.check(): that reports
   the DECLARED range and will lie to you. Measure ink at two weights and check
   the advance width differs.

   Manrope and Cairo ARE variable (wght 200-800 and 200-1000). A declared range
   on those is correct, but it must cover every weight the CSS asks for or
   lighter requests clamp up silently; Manrope shipped `600 800` against
   500-weight rules and did exactly that. */

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/Inter-Latin-400.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: 500;
  font-display: swap;
  src: url(/fonts/Inter-Latin-500.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: 600;
  font-display: swap;
  src: url(/fonts/Inter-Latin-600.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: 'Manrope';
  font-style: normal;
  /* 400 800, not 600 800: the file is variable over wght 200–800, and a range
     starting at 600 silently clamps every lighter request up to 600 — which is
     what .empty h3 (500) was getting. The range also has to reach UP far
     enough: .metric .n asks for 700. */
  font-weight: 400 800;
  font-display: swap;
  src: url(/fonts/Manrope-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: 'Roboto';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/Roboto-LatinExt.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;
}

/* Cairo — Arabic. Declaring it costs nothing; the woff2 downloads only when
   something resolves to font-family: Cairo, which main.css does under
   [dir="rtl"]. Kept in this file rather than its own so there is one
   render-blocking stylesheet instead of two. */
@font-face {
  font-family: 'Cairo';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/Cairo-Arabic.woff2) format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}

@font-face {
  font-family: 'Cairo';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/Cairo-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;
}
