/* GENERATED by pad/tools/subset-fonts.py — do not edit by hand; re-run the tool after copy changes.
   Type table and the --font-* / --bn-* variables: top of /css/app.css. Licence: /fonts/LICENSE-OFL.txt.
   BSI Sans = IBM Plex Sans and BSI Mono = IBM Plex Mono, renamed ("Plex" is a Reserved Font Name);
   BSI Oblique = 得意黑 Smiley Sans, renamed. On-demand Chinese slices: /fonts/noto-slices.css (async). */

/* Latin UI + body + numbers (Plex digits are tabular by default) */
@font-face { font-family: 'BSI Sans'; src: url(/fonts/bsi-sans-400.woff2) format('woff2'); font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+20-7E, U+A3, U+A5, U+A7, U+A9, U+AB, U+AE, U+B0-B3, U+B7, U+B9, U+BB, U+D7, U+F7, U+2013-2014, U+2018-2019, U+201C-201D, U+2022, U+2026, U+2030, U+2032-2033, U+2039-203A, U+2080-2089, U+20AC, U+2122, U+2190-2193, U+2196-2199, U+2212, U+221E, U+2248, U+2260, U+2264-2265, U+2713; }
@font-face { font-family: 'BSI Sans'; src: url(/fonts/bsi-sans-500.woff2) format('woff2'); font-weight: 500; font-style: normal; font-display: swap; unicode-range: U+20-7E, U+A3, U+A5, U+A7, U+A9, U+AB, U+AE, U+B0-B3, U+B7, U+B9, U+BB, U+D7, U+F7, U+2013-2014, U+2018-2019, U+201C-201D, U+2022, U+2026, U+2030, U+2032-2033, U+2039-203A, U+2080-2089, U+20AC, U+2122, U+2190-2193, U+2196-2199, U+2212, U+221E, U+2248, U+2260, U+2264-2265, U+2713; }
@font-face { font-family: 'BSI Sans'; src: url(/fonts/bsi-sans-600.woff2) format('woff2'); font-weight: 600; font-style: normal; font-display: swap; unicode-range: U+20-7E, U+A3, U+A5, U+A7, U+A9, U+AB, U+AE, U+B0-B3, U+B7, U+B9, U+BB, U+D7, U+F7, U+2013-2014, U+2018-2019, U+201C-201D, U+2022, U+2026, U+2030, U+2032-2033, U+2039-203A, U+2080-2089, U+20AC, U+2122, U+2190-2193, U+2196-2199, U+2212, U+221E, U+2248, U+2260, U+2264-2265, U+2713; }
@font-face { font-family: 'BSI Sans'; src: url(/fonts/bsi-sans-700.woff2) format('woff2'); font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+20-7E, U+A3, U+A5, U+A7, U+A9, U+AB, U+AE, U+B0-B3, U+B7, U+B9, U+BB, U+D7, U+F7, U+2013-2014, U+2018-2019, U+201C-201D, U+2022, U+2026, U+2030, U+2032-2033, U+2039-203A, U+2080-2089, U+20AC, U+2122, U+2190-2193, U+2196-2199, U+2212, U+221E, U+2248, U+2260, U+2264-2265, U+2713; }
/* the same files for Chinese pages: “ ” ‘ ’ … — come from the CJK face (full width) */
@font-face { font-family: 'BSI Sans ZH'; src: url(/fonts/bsi-sans-400.woff2) format('woff2'); font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+0-2013, U+2015-2017, U+201A-201B, U+201E-2025, U+2027-2E7F, U+FB00-FB06, U+FEFF, U+FFFD; }
@font-face { font-family: 'BSI Sans ZH'; src: url(/fonts/bsi-sans-500.woff2) format('woff2'); font-weight: 500; font-style: normal; font-display: swap; unicode-range: U+0-2013, U+2015-2017, U+201A-201B, U+201E-2025, U+2027-2E7F, U+FB00-FB06, U+FEFF, U+FFFD; }
@font-face { font-family: 'BSI Sans ZH'; src: url(/fonts/bsi-sans-600.woff2) format('woff2'); font-weight: 600; font-style: normal; font-display: swap; unicode-range: U+0-2013, U+2015-2017, U+201A-201B, U+201E-2025, U+2027-2E7F, U+FB00-FB06, U+FEFF, U+FFFD; }
@font-face { font-family: 'BSI Sans ZH'; src: url(/fonts/bsi-sans-700.woff2) format('woff2'); font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+0-2013, U+2015-2017, U+201A-201B, U+201E-2025, U+2027-2E7F, U+FB00-FB06, U+FEFF, U+FFFD; }
/* legacy alias: stacks and canvas strings that still name Inter draw Plex (no Inter file ships) */
@font-face { font-family: 'Inter'; src: url(/fonts/bsi-sans-400.woff2) format('woff2'); font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+20-7E, U+A3, U+A5, U+A7, U+A9, U+AB, U+AE, U+B0-B3, U+B7, U+B9, U+BB, U+D7, U+F7, U+2013-2014, U+2018-2019, U+201C-201D, U+2022, U+2026, U+2030, U+2032-2033, U+2039-203A, U+2080-2089, U+20AC, U+2122, U+2190-2193, U+2196-2199, U+2212, U+221E, U+2248, U+2260, U+2264-2265, U+2713; }
@font-face { font-family: 'Inter'; src: url(/fonts/bsi-sans-500.woff2) format('woff2'); font-weight: 500; font-style: normal; font-display: swap; unicode-range: U+20-7E, U+A3, U+A5, U+A7, U+A9, U+AB, U+AE, U+B0-B3, U+B7, U+B9, U+BB, U+D7, U+F7, U+2013-2014, U+2018-2019, U+201C-201D, U+2022, U+2026, U+2030, U+2032-2033, U+2039-203A, U+2080-2089, U+20AC, U+2122, U+2190-2193, U+2196-2199, U+2212, U+221E, U+2248, U+2260, U+2264-2265, U+2713; }
@font-face { font-family: 'Inter'; src: url(/fonts/bsi-sans-600.woff2) format('woff2'); font-weight: 600; font-style: normal; font-display: swap; unicode-range: U+20-7E, U+A3, U+A5, U+A7, U+A9, U+AB, U+AE, U+B0-B3, U+B7, U+B9, U+BB, U+D7, U+F7, U+2013-2014, U+2018-2019, U+201C-201D, U+2022, U+2026, U+2030, U+2032-2033, U+2039-203A, U+2080-2089, U+20AC, U+2122, U+2190-2193, U+2196-2199, U+2212, U+221E, U+2248, U+2260, U+2264-2265, U+2713; }
@font-face { font-family: 'Inter'; src: url(/fonts/bsi-sans-700.woff2) format('woff2'); font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+20-7E, U+A3, U+A5, U+A7, U+A9, U+AB, U+AE, U+B0-B3, U+B7, U+B9, U+BB, U+D7, U+F7, U+2013-2014, U+2018-2019, U+201C-201D, U+2022, U+2026, U+2030, U+2032-2033, U+2039-203A, U+2080-2089, U+20AC, U+2122, U+2190-2193, U+2196-2199, U+2212, U+221E, U+2248, U+2260, U+2264-2265, U+2713; }
/* addresses, hashes, model ids */
@font-face { font-family: 'BSI Mono'; src: url(/fonts/bsi-mono-500.woff2) format('woff2'); font-weight: 400 700; font-style: normal; font-display: swap; unicode-range: U+20-7E, U+B7, U+2013-2014, U+2026; }
/* Chinese: Noto Sans SC core (all site + API copy); weights 400-700, heavier requests clamp to 700 */
@font-face { font-family: 'Noto SC'; src: url(/fonts/noto-sans-sc.core.woff2) format('woff2'); font-weight: 400 700; font-style: normal; font-display: swap; unicode-range: U+2014-2015, U+2018-2019, U+201C-201D, U+2026, U+25A0-25A1, U+25B2, U+25B6, U+25BC, U+25C0, U+25C6-25C7, U+25CB, U+25CF, U+2605-2606, U+2665, U+2E80-2FDF, U+3000-33FF, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FE10-FE1F, U+FE30-FE4F, U+FF00-FFEF; }
/* comic SFX accents only (叮！ 孵化！ BOOM!): anything outside this subset falls through to the next family */
@font-face { font-family: 'BSI Oblique'; src: url(/fonts/bsi-oblique.sfx.woff2) format('woff2'); font-weight: 100 900; font-style: normal; font-display: swap; size-adjust: 104%; unicode-range: U+20-7E, U+B7, U+D7, U+2014, U+201C-201D, U+2026, U+5316, U+53EE, U+5494-5495, U+565C, U+5693, U+56E0, U+57FA, U+5B75, U+65B0, U+699C, U+72D7, U+7A7A, U+91D1, U+FF01, U+FF1F; }
