/* ==========================================================================
   本地字体（全部来自 assets/fonts，无 CDN 依赖）
   --------------------------------------------------------------------------
   Bricolage Grotesque   品牌标题 / 区块标题
   Inter                 正文 / 界面
   LXGW Neo XiHei Plus   中文（霞鹜新晰黑，OFL；已按常用字子集化）
   Liberation Mono       公式
   --------------------------------------------------------------------------
   为什么用「静态实例」而不是可变字体：
     原始文件是多轴可变 TTF/WOFF2。网页里显示正常，但 Chrome 的
     「打印为 PDF」**不会嵌入可变字体**，导出的 PDF 会退回 Times/Arial。
     用 fontTools 实例化成固定字重后就能正常嵌入。
     见 tools/build-fonts.py

   为什么中文要单独子集化：
     完整霞鹜新晰黑 8.6 MB，网页首屏太重。子集只保留
     ASCII + GB2312 常用字 + 中文标点 + 项目实际用字，871 KB（woff2）。
     生僻字会依次回落到 PingFang SC / Microsoft YaHei。
   ========================================================================== */

/* ---------------- Bricolage Grotesque（品牌） ---------------- */
@font-face {
  font-family: 'Bricolage Grotesque';
  src: url('/fonts/brand/Bricolage-600.ttf') format('truetype');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Bricolage Grotesque';
  src: url('/fonts/brand/Bricolage-700.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* ---------------- Inter（正文） ---------------- */
@font-face {
  font-family: 'Inter';
  src: url('/fonts/ui/Inter-400.ttf') format('truetype');
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('/fonts/ui/Inter-500.ttf') format('truetype');
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('/fonts/ui/Inter-600.ttf') format('truetype');
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('/fonts/ui/Inter-700.ttf') format('truetype');
  font-weight: 700;
  font-display: swap;
}

/* ---------------- Geist（备用正文字体） ---------------- */
@font-face {
  font-family: 'Geist';
  src: url('/fonts/ui/Geist-400.ttf') format('truetype');
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: 'Geist';
  src: url('/fonts/ui/Geist-600.ttf') format('truetype');
  font-weight: 600;
  font-display: swap;
}

/* ---------------- 中文：霞鹜新晰黑（子集） ---------------- */
@font-face {
  font-family: 'LXGW Neo XiHei Plus';
  src: url('/fonts/cjk/LXGWNeoXiHeiPlus-Subset.woff2') format('woff2'),
       url('/fonts/cjk/LXGWNeoXiHeiPlus-Subset.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  /* 只覆盖中文区，拉丁字母仍交给前面的字体 */
  unicode-range: U+2E80-9FFF, U+F900-FAFF, U+FF00-FFEF, U+3000-303F;
}

/* ---------------- 公式等宽 ---------------- */
@font-face {
  font-family: 'Liberation Mono';
  src: url('/fonts/liberation-mono/LiberationMono-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Liberation Mono';
  src: url('/fonts/liberation-mono/LiberationMono-Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* ---------------------------------------------------------------- 字体栈 */

:root {
  --font-brand: 'Bricolage Grotesque', 'Inter', 'LXGW Neo XiHei Plus',
    'PingFang SC', 'Microsoft YaHei', sans-serif;

  --font-ui: 'Inter', 'LXGW Neo XiHei Plus', 'PingFang SC',
    'Microsoft YaHei', sans-serif;

  --font-mono: 'Liberation Mono', 'Consolas', 'SF Mono', 'Cascadia Mono',
    monospace;

  --font-cjk: 'LXGW Neo XiHei Plus', 'PingFang SC', 'Microsoft YaHei', sans-serif;
}
