/* ================================================================
   SF Pro — self-hosted webfonts (.otf in /static/fonts/).
   Files subset from Apple's official SF Pro pack (Latin + Cyrillic +
   punctuation/currency/figures, ~200-240 KB each). SF Pro is © Apple;
   hosting is the user's licensing decision. See fonts/README.txt for
   the source .dmg + the subset recipe.

   Two families, exactly like iOS:
     "SF Pro Text"    — body / small UI (≤ ~19px). Apple uses Text for
                        small sizes; it's optically sized for them.
     "SF Pro Display" — large titles / headings (≥ ~20px) + italics.

   --- Why this file exists (the "looks like iPhone" fix) ---
   The original pack had only 3 upright Display weights (Regular 400,
   Medium 500, Bold 700) + italics — NO upright Semibold (600), which
   the whole UI uses. Without real faces the browser SYNTHESIZES 600
   from 500/700 — that "faux bold" is what made the type look soft /
   "not like iPhone". Now the real Semibold is present (Display + Text),
   and SF Pro Text drives body text so small UI reads like iOS.

   Every upright weight 100-900 still resolves to a REAL .otf file
   (aliases fill the gaps), so zero synthetic bold anywhere.
     Display & Text: 400→Reg, 500→Med, 600→Semibold(real), 700→Bold,
                     800/900→Bold(alias), 200/300→Reg(alias)
   Italics are declared at their true weights.
   ================================================================ */

/* ---- SF Pro Display — upright ---- */
@font-face { font-family: "SF Pro Display"; font-style: normal; font-weight: 100; font-display: swap;
  src: url("/static/fonts/SFPRODISPLAYREGULAR.OTF") format("opentype"); }
@font-face { font-family: "SF Pro Display"; font-style: normal; font-weight: 200; font-display: swap;
  src: url("/static/fonts/SFPRODISPLAYREGULAR.OTF") format("opentype"); }
@font-face { font-family: "SF Pro Display"; font-style: normal; font-weight: 300; font-display: swap;
  src: url("/static/fonts/SFPRODISPLAYREGULAR.OTF") format("opentype"); }
@font-face { font-family: "SF Pro Display"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("/static/fonts/SFPRODISPLAYREGULAR.OTF") format("opentype"); }
@font-face { font-family: "SF Pro Display"; font-style: normal; font-weight: 500; font-display: swap;
  src: url("/static/fonts/SFPRODISPLAYMEDIUM.OTF") format("opentype"); }
@font-face { font-family: "SF Pro Display"; font-style: normal; font-weight: 600; font-display: swap;
  src: url("/static/fonts/SFPRODISPLAYSEMIBOLD.OTF") format("opentype"); } /* real Semibold */
@font-face { font-family: "SF Pro Display"; font-style: normal; font-weight: 700; font-display: swap;
  src: url("/static/fonts/SFPRODISPLAYBOLD.OTF") format("opentype"); }
@font-face { font-family: "SF Pro Display"; font-style: normal; font-weight: 800; font-display: swap;
  src: url("/static/fonts/SFPRODISPLAYBOLD.OTF") format("opentype"); } /* alias: Bold */
@font-face { font-family: "SF Pro Display"; font-style: normal; font-weight: 900; font-display: swap;
  src: url("/static/fonts/SFPRODISPLAYBOLD.OTF") format("opentype"); } /* alias: Bold */

/* ---- SF Pro Text — upright (body / small UI). On iOS SF Pro Text is
   used for small sizes (≤ ~19pt) and Display for large; the body stack
   below uses Text first, large titles keep Display. ---- */
@font-face { font-family: "SF Pro Text"; font-style: normal; font-weight: 100; font-display: swap;
  src: url("/static/fonts/SFPROTEXTREGULAR.OTF") format("opentype"); }
@font-face { font-family: "SF Pro Text"; font-style: normal; font-weight: 200; font-display: swap;
  src: url("/static/fonts/SFPROTEXTREGULAR.OTF") format("opentype"); }
@font-face { font-family: "SF Pro Text"; font-style: normal; font-weight: 300; font-display: swap;
  src: url("/static/fonts/SFPROTEXTREGULAR.OTF") format("opentype"); }
@font-face { font-family: "SF Pro Text"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("/static/fonts/SFPROTEXTREGULAR.OTF") format("opentype"); }
@font-face { font-family: "SF Pro Text"; font-style: normal; font-weight: 500; font-display: swap;
  src: url("/static/fonts/SFPROTEXTMEDIUM.OTF") format("opentype"); }
@font-face { font-family: "SF Pro Text"; font-style: normal; font-weight: 600; font-display: swap;
  src: url("/static/fonts/SFPROTEXTSEMIBOLD.OTF") format("opentype"); } /* real Semibold */
@font-face { font-family: "SF Pro Text"; font-style: normal; font-weight: 700; font-display: swap;
  src: url("/static/fonts/SFPROTEXTBOLD.OTF") format("opentype"); }
@font-face { font-family: "SF Pro Text"; font-style: normal; font-weight: 800; font-display: swap;
  src: url("/static/fonts/SFPROTEXTBOLD.OTF") format("opentype"); } /* alias: Bold */
@font-face { font-family: "SF Pro Text"; font-style: normal; font-weight: 900; font-display: swap;
  src: url("/static/fonts/SFPROTEXTBOLD.OTF") format("opentype"); } /* alias: Bold */

/* ---- italic (true weights) ---- */
@font-face { font-family: "SF Pro Display"; font-style: italic; font-weight: 100; font-display: swap;
  src: url("/static/fonts/SFPRODISPLAYULTRALIGHTITALIC.OTF") format("opentype"); }
@font-face { font-family: "SF Pro Display"; font-style: italic; font-weight: 200; font-display: swap;
  src: url("/static/fonts/SFPRODISPLAYTHINITALIC.OTF") format("opentype"); }
@font-face { font-family: "SF Pro Display"; font-style: italic; font-weight: 300; font-display: swap;
  src: url("/static/fonts/SFPRODISPLAYLIGHTITALIC.OTF") format("opentype"); }
@font-face { font-family: "SF Pro Display"; font-style: italic; font-weight: 600; font-display: swap;
  src: url("/static/fonts/SFPRODISPLAYSEMIBOLDITALIC.OTF") format("opentype"); }
@font-face { font-family: "SF Pro Display"; font-style: italic; font-weight: 800; font-display: swap;
  src: url("/static/fonts/SFPRODISPLAYHEAVYITALIC.OTF") format("opentype"); }
@font-face { font-family: "SF Pro Display"; font-style: italic; font-weight: 900; font-display: swap;
  src: url("/static/fonts/SFPRODISPLAYBLACKITALIC.OTF") format("opentype"); }

/* No synthetic bold anywhere — every weight resolves to a real face
   above, so never let the browser fake a stroke. Italic synthesis is
   left on as a harmless fallback for any unexpected italic weight.   */
*, *::before, *::after { font-synthesis: weight none; }
