/* ============================================================
 * user_ui — self-hosted web fonts
 * ============================================================
 *
 * Phase 7 Package B. @font-face declarations for the three font
 * families used across the user-facing site:
 *
 *   - Saira Semi Condensed (weights 500 / 600 / 700 / 800)
 *       Headlines, eyebrows, stat numerals, nav, buttons.
 *   - Work Sans (weight 400 only — see note below)
 *       All running text, UI labels, paragraph copy.
 *   - JetBrains Mono (weight 500)
 *       Stats, code, metadata captions.
 *
 * Why self-hosted (not Google Fonts CDN):
 *   Hitting fonts.googleapis.com at every page load is the
 *   single largest contributor to first-paint latency and the
 *   most common cause of the theme-toggle FOUC (the page paints
 *   in fallback fonts, the variables flip, then the real font
 *   loads and the whole layout re-flows). Self-hosting front-
 *   loads the fix that Phase 8.5 would otherwise have had to
 *   retro-fit. Files live next to this file in `../../fonts/`
 *   and are served from the user_ui static namespace.
 *
 * Subsets are split exactly the way Google Fonts splits them —
 * unicode-range tells the browser to download only the subsets
 * it actually needs to render the current page. The latin subset
 * is by far the largest single file; the other subsets are tiny
 * and rarely fetched.
 *
 * KNOWN GAP — Work Sans only carries weight 400 here. The design
 * system specifies Work Sans 500 for "Small" body text. The
 * landing mockup did not bundle 500/600, so we self-host what
 * the mockup specified; weights 500 and 600 are currently
 * synthesized by the browser from 400 (the result looks fine in
 * the mockup but is technically a fallback). When a future
 * package needs the real 500/600 cuts, add the woff2 files to
 * `user_ui/static/user_ui/fonts/` and append @font-face blocks
 * below — do NOT change this file's existing blocks.
 *
 * Adding a font: stage the woff2 in `user_ui/static/user_ui/
 * fonts/<family>-<weight>-<subset>.woff2`, append an @font-face
 * block referencing it with the matching unicode-range from
 * fonts.googleapis.com, and update DESIGN_SYSTEM.md.
 * ============================================================ */

/* ------------ JetBrains Mono 500 ------------ */
/* cyrillic-ext */
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../../fonts/jetbrains-mono-500-cyrillic-ext.24fc306f6175.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../../fonts/jetbrains-mono-500-cyrillic.af752ba91433.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../../fonts/jetbrains-mono-500-greek.eed865ab0191.woff2") format("woff2");
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../../fonts/jetbrains-mono-500-vietnamese.a026792141f5.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../../fonts/jetbrains-mono-500-latin-ext.311b1217e9b0.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;
}
/* latin */
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../../fonts/jetbrains-mono-500-latin.a21e038a03f7.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;
}

/* ------------ Saira Semi Condensed 500 ------------ */
/* vietnamese */
@font-face {
  font-family: "Saira Semi Condensed";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../../fonts/saira-semicondensed-500-vietnamese.88249bbf2b2a.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: "Saira Semi Condensed";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../../fonts/saira-semicondensed-500-latin-ext.42a53d989f84.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;
}
/* latin */
@font-face {
  font-family: "Saira Semi Condensed";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../../fonts/saira-semicondensed-500-latin.a676f503a804.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;
}

/* ------------ Saira Semi Condensed 600 ------------ */
/* vietnamese */
@font-face {
  font-family: "Saira Semi Condensed";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../../fonts/saira-semicondensed-600-vietnamese.e5a07bd53bac.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: "Saira Semi Condensed";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../../fonts/saira-semicondensed-600-latin-ext.05f852098290.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;
}
/* latin */
@font-face {
  font-family: "Saira Semi Condensed";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../../fonts/saira-semicondensed-600-latin.16d5d3eec1fe.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;
}

/* ------------ Saira Semi Condensed 700 ------------ */
/* vietnamese */
@font-face {
  font-family: "Saira Semi Condensed";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../../fonts/saira-semicondensed-700-vietnamese.0f0d677acd05.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: "Saira Semi Condensed";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../../fonts/saira-semicondensed-700-latin-ext.8bd4effd2036.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;
}
/* latin */
@font-face {
  font-family: "Saira Semi Condensed";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../../fonts/saira-semicondensed-700-latin.ef86dd42eb0e.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;
}

/* ------------ Saira Semi Condensed 800 ------------ */
/* vietnamese */
@font-face {
  font-family: "Saira Semi Condensed";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../../fonts/saira-semicondensed-800-vietnamese.232d78f2a0bb.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: "Saira Semi Condensed";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../../fonts/saira-semicondensed-800-latin-ext.3038c91fd0c5.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;
}
/* latin */
@font-face {
  font-family: "Saira Semi Condensed";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../../fonts/saira-semicondensed-800-latin.b8c2e619a4aa.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;
}

/* ------------ Work Sans 400 ------------ */
/* vietnamese */
@font-face {
  font-family: "Work Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../../fonts/worksans-400-vietnamese.d6fbcb078b2c.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: "Work Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../../fonts/worksans-400-latin-ext.9c3fdbf06f3b.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;
}
/* latin */
@font-face {
  font-family: "Work Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../../fonts/worksans-400-latin.97b33529e13b.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;
}

