/* OT60 首屏"合并子集"字体（每字重一个文件，~60KB），preload 后首屏文字一次性换上正体，
   不再逐片拉取 unicode-range 子集（首屏文案命中16片/字重）。
   生成：tools/ot60-landing-font.py（fonttools：把 ibm-plex-sans-sc.css 里命中首屏文案的
   分片合并 → 按首屏字符集子集化，脚本内置首屏文案并会重写本文件）。首屏文案变更后
   重新运行该脚本即可（woff2 与 unicode-range 一并更新）。
   必须在 ibm-plex-sans-sc.css 之后加载：字符重叠时后声明的 face 生效，保证首屏只拉本文件。 */

@font-face {
  font-family: 'IBM Plex Sans SC OT60';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("IBMPlexSansSC-OT60-Medium-landing.woff2") format("woff2");
  unicode-range: U+0020-007E, U+00A9, U+00B7, U+3001-3002, U+4E00, U+4E0B, U+4E2D, U+4E3A-4E3B, U+4E49, U+4E5F-4E60, U+4E86, U+4E8E, U+4E92, U+4EA4, U+4EA7, U+4EBA, U+4EC5, U+4EE3, U+4EE5, U+4EEC, U+4EF6, U+4F4E, U+4F53, U+4F5C, U+4F60, U+4F7F, U+4FA7, U+4FDD, U+5148-5149, U+5165, U+5174, U+5177, U+5229, U+5230, U+524D, U+529F-52A0, U+52A8, U+52B3, U+534F, U+53CD, U+53EF-53F0, U+53F3, U+540C, U+5426, U+548C, U+54C1, U+56DE, U+5728, U+573A, U+57FA, U+591A, U+592E, U+59FF, U+5B66, U+5B8C, U+5B8F, U+5B9A, U+5BF9, U+5BFC, U+5C40, U+5DE5, U+5E03, U+5E73, U+5E76, U+5E94-5E95, U+5EA6, U+5F0F, U+5FC3, U+6001, U+611F, U+6211, U+6240, U+624B, U+6253, U+62A5, U+6309, U+635F, U+63A5, U+63D0, U+642D, U+6548, U+6574, U+65B0, U+65E0, U+65F6, U+660E, U+662F, U+666F, U+6700, U+6709, U+673A, U+6743, U+6765, U+680F, U+683C, U+68B0, U+6B22, U+6B63-6B64, U+6C42, U+6CBF, U+6DFB, U+6EDA, U+6EE1, U+6F14, U+72B6, U+73B0, U+751F, U+7528, U+7559, U+7684, U+76D8, U+76F4, U+77EE, U+786C, U+793A, U+79BB, U+7A7A, U+7AD6, U+7AE0, U+7B49, U+7CFB, U+7EAF, U+7EBF, U+7EDD, U+7EDF, U+7F13, U+800C, U+80CC, U+80FD, U+8155, U+81EA, U+81F4, U+8282, U+8981, U+89D2, U+89E3, U+89E6, U+8BA1, U+8BBA, U+8BBE, U+8BF8, U+8DA3, U+8DB3, U+8DDD, U+8DF3, U+8EAB, U+8F6C, U+8F6E, U+8F74, U+8F93, U+8FB9, U+8FC7, U+8FCE, U+8FD0, U+8FDB, U+900F, U+901A, U+9020, U+90E8, U+90FD, U+914D, U+952E, U+957F, U+95F4, U+9875, U+9897, U+9988, U+9AD8, U+FF08-FF09, U+FF0C, U+FF1A;
}

@font-face {
  font-family: 'IBM Plex Sans SC OT60';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("IBMPlexSansSC-OT60-SemiBold-landing.woff2") format("woff2");
  unicode-range: U+0020-007E, U+00A9, U+00B7, U+3001-3002, U+4E00, U+4E0B, U+4E2D, U+4E3A-4E3B, U+4E49, U+4E5F-4E60, U+4E86, U+4E8E, U+4E92, U+4EA4, U+4EA7, U+4EBA, U+4EC5, U+4EE3, U+4EE5, U+4EEC, U+4EF6, U+4F4E, U+4F53, U+4F5C, U+4F60, U+4F7F, U+4FA7, U+4FDD, U+5148-5149, U+5165, U+5174, U+5177, U+5229, U+5230, U+524D, U+529F-52A0, U+52A8, U+52B3, U+534F, U+53CD, U+53EF-53F0, U+53F3, U+540C, U+5426, U+548C, U+54C1, U+56DE, U+5728, U+573A, U+57FA, U+591A, U+592E, U+59FF, U+5B66, U+5B8C, U+5B8F, U+5B9A, U+5BF9, U+5BFC, U+5C40, U+5DE5, U+5E03, U+5E73, U+5E76, U+5E94-5E95, U+5EA6, U+5F0F, U+5FC3, U+6001, U+611F, U+6211, U+6240, U+624B, U+6253, U+62A5, U+6309, U+635F, U+63A5, U+63D0, U+642D, U+6548, U+6574, U+65B0, U+65E0, U+65F6, U+660E, U+662F, U+666F, U+6700, U+6709, U+673A, U+6743, U+6765, U+680F, U+683C, U+68B0, U+6B22, U+6B63-6B64, U+6C42, U+6CBF, U+6DFB, U+6EDA, U+6EE1, U+6F14, U+72B6, U+73B0, U+751F, U+7528, U+7559, U+7684, U+76D8, U+76F4, U+77EE, U+786C, U+793A, U+79BB, U+7A7A, U+7AD6, U+7AE0, U+7B49, U+7CFB, U+7EAF, U+7EBF, U+7EDD, U+7EDF, U+7F13, U+800C, U+80CC, U+80FD, U+8155, U+81EA, U+81F4, U+8282, U+8981, U+89D2, U+89E3, U+89E6, U+8BA1, U+8BBA, U+8BBE, U+8BF8, U+8DA3, U+8DB3, U+8DDD, U+8DF3, U+8EAB, U+8F6C, U+8F6E, U+8F74, U+8F93, U+8FB9, U+8FC7, U+8FCE, U+8FD0, U+8FDB, U+900F, U+901A, U+9020, U+90E8, U+90FD, U+914D, U+952E, U+957F, U+95F4, U+9875, U+9897, U+9988, U+9AD8, U+FF08-FF09, U+FF0C, U+FF1A;
}
