/* =====================================================================================
   ZF.Life — page-exact CJK subsets
   ---------------------------------------------------------------------------------------
   These exist because of a specific, silent failure.

   `_shared/fossil.css` ships notoseriftc-{500,600}-subset.woff2 — subsets cut for the copy
   of the FIRST demos — but declares them `unicode-range: U+4E00-9FFF`, the entire Han block.
   The browser therefore believes those files cover every Chinese character, downloads them,
   and for every character NOT actually inside them falls through to the next family in the
   stack. It does not draw a missing-glyph box, which somebody would notice. It renders the
   page in TWO typefaces interleaved character by character.

   So each face below carries a unicode-range listing exactly the glyphs it really contains,
   generated with the font itself. A character outside that range is a build-time question,
   not a silent visual defect.

   Faces are HK, not TC: this is a Hong Kong brand, and Noto's HK cut uses Hong Kong standard
   glyph forms (香港標準字形), which differ from the Taiwan forms in characters the copy
   actually uses.

   REGENERATE whenever the Chinese copy changes. A new character falls back silently.
   Generator: scratchpad fetch-fonts.mjs — Google Fonts css2 `text=` subsetting.
   ===================================================================================== */

@font-face {
  font-family: 'ZF Serif HK';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/zf-serif-600.woff2') format('woff2');
  unicode-range: U+3002, U+4e00, U+4e09, U+4e0d, U+4e16, U+4e4b, U+4e5f, U+4e73, U+4e7e, U+4e86, U+4e8c, U+4eba, U+4ec0, U+4ef6, U+4f4f, U+4fee, U+5019, U+505a, U+5148-5149, U+516d, U+51dd, U+523b, U+5291, U+52a0, U+5316, U+53e5, U+53ea, U+554f, U+55ce, U+5674, U+5718, U+5728, U+591a, U+591c, U+5920, U+5982, U+59cb, U+5b78, U+5b98, U+5c0f, U+5c11, U+5c31, U+5de5, U+5e38, U+5e8f, U+5e95, U+5f37, U+5f8c, U+5f97, U+5fa9, U+601d, U+60a8, U+610f, U+611f, U+6210, U+624b, U+624d, U+6279, U+628a, U+63a5, U+643d, U+64fe, U+652f, U+6536, U+654f, U+6578, U+65b9, U+65e5, U+662f, U+6642, U+6696, U+66f2, U+66f4, U+6700, U+6709, U+670d, U+6771, U+67d4, U+689d, U+690d, U+695a, U+6a5f, U+6b65, U+6bcf, U+6bd4, U+6c1b, U+6c34, U+6c57, U+6c92, U+6cc9, U+6d41, U+6e05, U+6e1b, U+6eab, U+6ef2, U+6f64, U+6fa4, U+706b, U+70ba, U+7121, U+71c3, U+723d, U+7269, U+7406, U+7528, U+7531, U+754c, U+7684, U+76ae, U+76de, U+76f4, U+770b, U+7720, U+7761, U+77ac, U+7acb, U+7c21, U+7cbe, U+7d14, U+7d1b, U+7dda, U+7de9, U+7e37, U+7fa9, U+7ffb, U+808c, U+818f, U+819a, U+8212, U+82b1, U+83ef, U+8403, U+842c, U+8655, U+888b, U+88dc, U+88e1, U+897f, U+8981, U+8a71, U+8a9e, U+8aaa, U+8b1b, U+8b6f, U+8b77, U+8b93, U+8cfc, U+8d77, U+8d8a, U+9019, U+9032, U+90a3, U+90e8, U+90fd, U+914d, U+91ab, U+91cd, U+91cf, U+91d1, U+932f, U+958b, U+9593, U+967d, U+96ea, U+971c, U+9727, U+9732, U+9748, U+975c, U+97f3, U+9806, U+984c, U+9858, U+9999, U+9a5a, U+9b42, U+9ebc, U+9ed1, U+9ede, U+ff0c, U+ff1f;
}

@font-face {
  font-family: 'ZF Sans HK';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/zf-sans-400.woff2') format('woff2');
  unicode-range: U+3001-3002, U+300c-300d, U+4e00, U+4e03, U+4e09-4e0b, U+4e0d, U+4e16, U+4e26, U+4e2d, U+4e32, U+4e3b, U+4e4b, U+4e5f, U+4e73, U+4e7e, U+4e86, U+4e8b-4e8c, U+4e94, U+4eba, U+4ec0, U+4ed6, U+4ee3, U+4ee5, U+4ef6, U+4efb, U+4eff, U+4f46, U+4f4e-4f4f, U+4f55, U+4f5c, U+4f60, U+4f75, U+4f7f, U+4f86, U+4f8b, U+4fbf, U+4fdd, U+4fee, U+500b, U+5011-5012, U+5019, U+505a, U+505c, U+5065, U+5074, U+50cf, U+50f9, U+5148-5149, U+5152, U+5165, U+5167-5169, U+516d, U+5176, U+518a, U+518d, U+51b7, U+51dd, U+51fa, U+5206-5207, U+5217, U+5225, U+5230, U+523a-523b, U+524d, U+5269, U+5272, U+5291, U+529b, U+52a0, U+52d5, U+52ff, U+5305, U+5316, U+5341, U+537b, U+539f, U+53bb, U+53ca, U+53cd, U+53d6, U+53e5, U+53ea-53eb, U+53ef, U+5404, U+540c, U+5411, U+542b, U+5473, U+547d, U+548c, U+54c1, U+554f, U+55ae, U+55ce, U+5668, U+5674, U+56ca, U+56db, U+56de, U+56fa, U+5718, U+5728, U+5730, U+57fa, U+58d3, U+5916, U+591a, U+591c, U+5920, U+5927, U+5929, U+5957, U+597d, U+5982, U+59cb, U+5b50, U+5b57-5b58, U+5b78, U+5b83, U+5b89, U+5b8c, U+5b98, U+5b9a, U+5ba2, U+5bb6, U+5bb9, U+5be6, U+5beb, U+5bf5, U+5c07, U+5c0d, U+5c0f, U+5c11, U+5c31, U+5c3f, U+5c45, U+5c4f, U+5c64, U+5c6c, U+5de5, U+5dee, U+5df2, U+5e03, U+5e2b, U+5e33, U+5e36, U+5e38, U+5e6b, U+5e73, U+5e8f, U+5e95, U+5e97, U+5ea6, U+5eb7, U+5efa, U+5f04, U+5f31, U+5f35, U+5f37, U+5f80, U+5f85, U+5f88, U+5f8c, U+5f97, U+5fa9, U+5fae, U+5fc3, U+5fc5, U+5fd9, U+600e, U+601d, U+6027, U+60a8, U+60c5, U+60f3, U+610f, U+611f, U+614b, U+616e, U+6210-6211, U+6216, U+6236, U+6240, U+624b, U+624d, U+6253, U+6279, U+627e, U+628a, U+6293, U+62b9, U+62ff, U+6301, U+6309, U+6389, U+638c, U+6392, U+63a5, U+63a8, U+63cf, U+63db, U+63ee, U+643d, U+6469, U+6490, U+64ab, U+64ad, U+64e6, U+64fe, U+652f, U+6536, U+653e, U+654f, U+6559, U+6574, U+6578, U+6587, U+6599, U+65b0, U+65b9, U+65bc, U+65e5, U+660e, U+662f, U+6642, U+6676, U+6696, U+66ab, U+66f2, U+66f4, U+66f8, U+6700, U+6703, U+6709, U+670d, U+6728, U+672a, U+672c, U+6750, U+676f, U+6771, U+679c, U+67b6, U+67d4, U+683c, U+689d, U+68c9, U+690d, U+695a, U+6975, U+69cb, U+6a23, U+6a44, U+6a5f, U+6b16, U+6b21, U+6b3e, U+6b62-6b65, U+6bb5, U+6bcf, U+6bd4, U+6c1b, U+6c23, U+6c27, U+6c34, U+6c57, U+6c7a, U+6c89, U+6c92, U+6cb9, U+6cc9, U+6cd5, U+6ce1, U+6ce5, U+6d0b, U+6d17, U+6d41, U+6d6e, U+6d78, U+6dbc, U+6de8, U+6dfb, U+6e05, U+6e1b, U+6e2f, U+6eab, U+6ec5, U+6ef2, U+6ef4, U+6f64, U+6f6e, U+6fa4, U+6fc0, U+6fd5, U+7051, U+706b, U+70ba, U+70f7, U+7110, U+7121, U+7126, U+7136, U+7167, U+7184, U+71b1, U+71c3, U+71d2, U+71e5, U+71ed, U+723d, U+7248, U+724c, U+725b, U+7269, U+7279, U+72c0, U+73ab, U+73bb, U+73e0, U+7406, U+7455, U+7470, U+7483, U+74b0, U+74f6, U+7518, U+751c, U+751f, U+7522, U+7528, U+7531, U+754c, U+7559, U+7565, U+7570, U+758a, U+75b5, U+7642, U+767c, U+7684, U+76ae, U+76d2, U+76db, U+76de, U+76ee, U+76f4, U+7701, U+770b, U+771f-7720, U+7761, U+77ac, U+77e5, U+77ed, U+77f3, U+786c, U+78ba, U+793a, U+79d2, U+79fb, U+7a00, U+7a0b, U+7a2e, U+7a4d, U+7a69, U+7a76, U+7a7a, U+7a97, U+7acb, U+7ad9, U+7ae5, U+7b2c, U+7b49, U+7ba1, U+7bc4, U+7c21, U+7c3e, U+7c73, U+7c92, U+7cbe, U+7cfb, U+7d04, U+7d14, U+7d19, U+7d1b, U+7d20, U+7d30, U+7d42, U+7d50, U+7d66, U+7d71, U+7d81, U+7d93, U+7dad, U+7db2, U+7dca, U+7dda, U+7de9, U+7e37, U+7e41, U+7e43, U+7e5e, U+7e8c, U+7f6e, U+7fa9, U+7ffb, U+8001, U+8005, U+800c, U+8010, U+8033, U+805a, U+805e, U+807d, U+808c, U+80aa, U+80fd, U+8102, U+8150, U+818f, U+819a, U+819c, U+81c9, U+81ea, U+81f3-81f4, U+8207, U+8212, U+822c, U+8272, U+82af, U+82b1, U+8349, U+83ca, U+83dc, U+83ef, U+8403, U+842c, U+843d, U+8457, U+8461, U+84b8, U+84cb, U+8584, U+85a6, U+85b0, U+85e5, U+864e, U+8655, U+8702, U+878d, U+881f, U+8863, U+8868, U+888b, U+88ab, U+88dc-88dd, U+88e1, U+88fd, U+8907, U+897f, U+8981, U+8986, U+898b, U+898f, U+89ba, U+89d2, U+89e3, U+8a08, U+8a2d, U+8a3b, U+8a55, U+8a62, U+8a71, U+8a73, U+8a8d, U+8a9e, U+8aa4, U+8aaa, U+8abf, U+8acb, U+8aee, U+8b02, U+8b1b, U+8b49, U+8b58, U+8b6f-8b70, U+8b77, U+8b8a, U+8b93, U+8c46, U+8ca0, U+8cac, U+8cb7, U+8ce3, U+8cea, U+8cfc, U+8d70, U+8d77, U+8d81, U+8d85, U+8d8a, U+8db3, U+8ddd, U+8e64, U+8eab, U+8f03, U+8f15, U+8f49, U+8fd4, U+8ff0, U+8ffd, U+9001, U+9019-901a, U+9032, U+904e, U+9060, U+9069, U+906e, U+9078, U+907f, U+90a3, U+90e8, U+90fd, U+914d, U+9152, U+9178, U+9187, U+91a3, U+91ab, U+91cb, U+91cd, U+91cf, U+91d1, U+92c5, U+9304, U+932f, U+934b, U+9396, U+9589, U+958b, U+9593, U+95dc, U+9632, U+9644, U+9650, U+9664, U+967d, U+969c, U+96d9, U+96e2, U+96ea, U+96f6-96f7, U+9700, U+971c, U+9727, U+9732, U+9748, U+975c, U+975e, U+9762, U+97f3, U+9801, U+9806, U+9838, U+984c, U+9858, U+985e, U+9918, U+993e, U+9996, U+9999, U+9a5a, U+9a5f, U+9ad4, U+9ad8, U+9b42, U+9bca, U+9be8, U+9e7c, U+9ebc, U+9ec3, U+9ed1, U+9ede, U+ff08-ff09, U+ff0b-ff0c, U+ff1a, U+ff1f, U+ff5c;
}

@font-face {
  font-family: 'ZF Sans HK';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/zf-sans-500.woff2') format('woff2');
  unicode-range: U+4e09, U+4e4b, U+4eba, U+5011, U+5148, U+5165, U+5168, U+5206, U+5217, U+52a0, U+554f, U+5730, U+5b89, U+5df2, U+5e33, U+600e, U+60f3, U+6210-6211, U+65bc, U+66f2, U+672c, U+683c, U+695a, U+6cc9, U+6cd5, U+6e05, U+71c3, U+71ed, U+7248, U+7528, U+76ee, U+770b, U+7720, U+7761, U+7cfb, U+7d50, U+881f, U+898f, U+8a71, U+8abf, U+8b1b, U+8cfc, U+8e64, U+8ffd, U+9078, U+90e8, U+9304, U+95dc, U+96f7, U+9999, U+9ebc, U+9ede, U+ff1f;
}
