/* 由 tools/bb_subset_fonts.py 生成，别手改——重跑它。

   照《汉字 PUA + 扩展区字符显示方案》：
     PUA 私用区  U+E000–U+F8FF  变形构件      → KaiXinSong
     CJK 扩展 B+ U+20000 以上    罕用部件本字  → BabelStone Han

   **顺序不能动**：KaiXinSong 排最前。它只含 PUA，主区字自动 fallback；
   反过来的话 PUA 字会被前面字体的空 glyph 占住，照样是空框。
   （文档踩坑清单第 1 条。）

   原版两个字体合计 75 MB。这里只裁了库里真正用到的码位。 */

@font-face {
  font-family: 'KaiXinSong';
  src: url('/bb/kaixinsong-sub.ttf') format('truetype');
  unicode-range: U+E405, U+E40E, U+E415, U+E420, U+E422, U+E42D, U+E42F, U+E440-E441, U+E448-E449, U+E44B-E44C, U+E45A, U+E45E, U+E48A, U+E4B5, U+E4B9, U+E4BC-E4BD, U+E4C0, U+E4C7-E4C8, U+E4CC, U+E4D0, U+E507, U+E509, U+E50F, U+E51E, U+E527, U+E52D, U+E534, U+E53F-E540, U+E545, U+E54A, U+E554, U+E55D-E55E, U+E561, U+E56D, U+E572, U+E57D-E57E, U+E580, U+E585-E586, U+E591, U+E598-E59B, U+E5A1, U+E5A6, U+E5B2, U+E5BD, U+E5C5, U+E5C8-E5C9, U+E815-E818, U+E81E, U+E826, U+E82B-E82C, U+E830, U+E833, U+E843, U+E854;
  /* 71 个字形 */
  font-display: swap;
}

@font-face {
  font-family: 'BabelStone Han';
  src: url('/bb/babelstone-sub.ttf') format('truetype');
  unicode-range: U+20010, U+20087, U+2008B, U+20094, U+200A2, U+200A4, U+200D3, U+200DC, U+20207, U+20479, U+2053C, U+20628, U+20835, U+2090E, U+20915, U+20AD4, U+20B1D, U+20B24, U+20B2A, U+20B36, U+20BA5-20BA6, U+20BB7, U+20CCB, U+2123C, U+21569, U+215D7, U+21A04, U+21B74, U+21CFE, U+22016, U+22189, U+221B6, U+221C7, U+22398, U+223A5, U+223A8, U+226F3, U+2298F, U+22A92, U+22F38, U+23386, U+233B5, U+233DF, U+2389F, U+23942, U+239BC, U+23B09, U+23C96, U+24C08, U+24D13, U+24F44, U+250F2, U+2574C, U+26222, U+2634C, U+26407, U+268FB, U+2696F, U+26B07, U+26B2B, U+27607, U+27FB7, U+2A9F7, U+2B0B1, U+2B1E6, U+2B823, U+2B825, U+2B94E, U+2BA4F, U+2C72F, U+2CCA6, U+2D530, U+2D546, U+2E155, U+3065C, U+320BB;
  /* 77 个字形 */
  font-display: swap;
}

/* 显示构件的元素都用这个栈。tokens.css 里的 --cb-font-components
   是同一串，两边要一起改。 */
.comp, .hanzi-component {
  font-family: 'KaiXinSong', 'BabelStone Han', 'Noto Serif SC', serif;
}
