/* 自托管字体 —— 由 _build/fonts_build.py 生成，请勿手改。
 *
 * 不请求任何外部 CDN。Google Fonts 把中文拆成上百个 unicode-range
 * 分片，任何一片加载失败就掉字（表现为「字体显示不全」），
 * 国内访问 fonts.googleapis.com 极不稳定。此处改为全站用字子集自托管。
 *
 * 注意：这里的中文字体不是只取「简体中文」主包。主包只覆盖 GB2312
 * 级常用字，《月令七十二候》里的生僻字（晡 溽 鴠 雊 鵙 …）和
 * 一批符号（℃ ← → ① ┌ ┼ ⌘ ✓）全都不在里面，缺了就掉字。
 * 完整字形在编号分片里（noto-serif-sc-1..119-400-normal.woff2），
 * 此处按需下载命中的分片并合并进主字体。
 *
 * 字符数: 1916
 * 生成: 2026-10-04 02:20
 *
 * 加载策略：400（正文主字重）用 swap 并由页面 preload，首屏不被字体阻塞。
 */

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/latin-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/hei-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Noto Sans Symbols';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/sym-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  /* optional（V2.1 修正）：全量字库 317KB，等它一定会重排一次；
     而它只是给 373 个常用字之外的生僻字兜底。
     用 optional：100ms 内没到就本次用系统宋体，**不重排**；
     下次访问有缓存，自然用上。
     代价是首访的生僻字可能不是我们的宋体——比"页面抖一下"轻。 */
  src: url('fonts/song-400.woff2') format('woff2');
}

/* ------------------------------------------------------------------
 * 以下字符不在任何开源中文字体的字库里，交给系统字体兜底：
 *   hei: ⅠⅡⅢⅣⅤ⏻☲✕筤雊鴠鴽
 *   song: ⅠⅡⅢⅣⅤ⏻☲✕筤雊鴠鴽
 * 它们多为 GB18030 之外的古籍用字与卦象符，Noto Serif SC 本身就没有。
 * 页面里保留了原字（内容真实，不改数据），只是字形由系统接手。
 * ------------------------------------------------------------------ */

/* 常用字子集（V2.1 #1 · 2026-10-28）
 *
 * song-400.woff2 是 1916 字 / 317 KB，首屏为了它等 1.8 秒。
 * 这里另出一份 song-c.woff2：全站出现次数最多的 373 字（覆盖 85%），62.8 KB。
 *
 * 🔴 不用 unicode-range 分片，而是**两个 font-family**，靠字体栈回退：
 *      --font-song: 'Song-C', 'Noto Serif SC', ...
 *    有字就用 Song-C（62 KB 早到），缺字自动落到全量（晚到但 swap 不挡首屏）。
 *    比写 350 段 unicode-range 省 3 KB CSS，行为还更好懂。
 */
@font-face {
  font-family: 'Song-C';
  src: url('fonts/song-c.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
