/* Flat local font library. PDF export keeps using the existing static instances. */
@font-face {
  font-family: 'Bricolage Grotesque';
  src: url('/fonts/library/BricolageGrotesque-Variable.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Geist';
  src: url('/fonts/library/Geist-Variable.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Geist';
  src: url('/fonts/library/GeistItalic-Variable.woff2') format('woff2');
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Inter';
  src: url('/fonts/library/Inter-Variable.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('/fonts/library/Inter-Variable-Italic.woff2') format('woff2');
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}

@font-face { font-family: 'Inter Display'; src: url('/fonts/library/InterDisplay-Thin.woff2') format('woff2'); font-weight: 100; font-style: normal; font-display: swap; }
@font-face { font-family: 'Inter Display'; src: url('/fonts/library/InterDisplay-ExtraLight.woff2') format('woff2'); font-weight: 200; font-style: normal; font-display: swap; }
@font-face { font-family: 'Inter Display'; src: url('/fonts/library/InterDisplay-Light.woff2') format('woff2'); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: 'Inter Display'; src: url('/fonts/library/InterDisplay-Regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Inter Display'; src: url('/fonts/library/InterDisplay-Medium.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Inter Display'; src: url('/fonts/library/InterDisplay-SemiBold.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Inter Display'; src: url('/fonts/library/InterDisplay-Bold.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Inter Display'; src: url('/fonts/library/InterDisplay-ExtraBold.woff2') format('woff2'); font-weight: 800; font-style: normal; font-display: swap; }
@font-face { font-family: 'Inter Display'; src: url('/fonts/library/InterDisplay-Black.woff2') format('woff2'); font-weight: 900; font-style: normal; font-display: swap; }
@font-face { font-family: 'Inter Display'; src: url('/fonts/library/InterDisplay-ThinItalic.woff2') format('woff2'); font-weight: 100; font-style: italic; font-display: swap; }
@font-face { font-family: 'Inter Display'; src: url('/fonts/library/InterDisplay-ExtraLightItalic.woff2') format('woff2'); font-weight: 200; font-style: italic; font-display: swap; }
@font-face { font-family: 'Inter Display'; src: url('/fonts/library/InterDisplay-LightItalic.woff2') format('woff2'); font-weight: 300; font-style: italic; font-display: swap; }
@font-face { font-family: 'Inter Display'; src: url('/fonts/library/InterDisplay-Italic.woff2') format('woff2'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'Inter Display'; src: url('/fonts/library/InterDisplay-MediumItalic.woff2') format('woff2'); font-weight: 500; font-style: italic; font-display: swap; }
@font-face { font-family: 'Inter Display'; src: url('/fonts/library/InterDisplay-SemiBoldItalic.woff2') format('woff2'); font-weight: 600; font-style: italic; font-display: swap; }
@font-face { font-family: 'Inter Display'; src: url('/fonts/library/InterDisplay-BoldItalic.woff2') format('woff2'); font-weight: 700; font-style: italic; font-display: swap; }
@font-face { font-family: 'Inter Display'; src: url('/fonts/library/InterDisplay-ExtraBoldItalic.woff2') format('woff2'); font-weight: 800; font-style: italic; font-display: swap; }
@font-face { font-family: 'Inter Display'; src: url('/fonts/library/InterDisplay-BlackItalic.woff2') format('woff2'); font-weight: 900; font-style: italic; font-display: swap; }

@font-face { font-family: 'Manrope'; src: url('/fonts/library/Manrope-Thin.otf') format('opentype'); font-weight: 100; font-style: normal; font-display: swap; }
@font-face { font-family: 'Manrope'; src: url('/fonts/library/Manrope-Light.otf') format('opentype'); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: 'Manrope'; src: url('/fonts/library/Manrope-Regular.otf') format('opentype'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Manrope'; src: url('/fonts/library/Manrope-Medium.otf') format('opentype'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Manrope'; src: url('/fonts/library/Manrope-SemiBold.otf') format('opentype'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Manrope'; src: url('/fonts/library/Manrope-Bold.otf') format('opentype'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Manrope'; src: url('/fonts/library/Manrope-ExtraBold.otf') format('opentype'); font-weight: 800; font-style: normal; font-display: swap; }

@font-face {
  font-family: 'Playfair Display';
  src: url('/fonts/library/PlayfairDisplay-Variable.ttf') format('truetype');
  font-weight: 400 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Playfair Display';
  src: url('/fonts/library/PlayfairDisplay-Italic-Variable.ttf') format('truetype');
  font-weight: 400 900;
  font-style: italic;
  font-display: swap;
}
/*
 * MiSans（中文黑体）
 * ------------------------------------------------------------------
 * 用**子集版**而不是 fonts/library/MiSans-VF.ttf：
 *   · 完整可变字体 19 MB，网页首屏代价太大
 *   · 可变字体在 Chrome 打印 PDF 时不会被嵌入
 * 子集覆盖 ASCII + GB2312 常用字 + 项目用字，约 959 KB（woff2）。
 * 生僻字依次回落 PingFang / 微软雅黑。
 */
@font-face {
  font-family: 'MiSans';
  src: url('/fonts/cjk/MiSans-Subset.woff2') format('woff2'),
       url('/fonts/cjk/MiSans-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: 'LXGW Neo XiHei Plus Full';
  src: url('/fonts/library/LXGWNeoXiHeiPlus.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face { font-family: 'Liberation Mono'; src: url('/fonts/library/LiberationMono-Regular.ttf') format('truetype'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Liberation Mono'; src: url('/fonts/library/LiberationMono-Bold.ttf') format('truetype'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Liberation Mono'; src: url('/fonts/library/LiberationMono-Italic.ttf') format('truetype'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'Liberation Mono'; src: url('/fonts/library/LiberationMono-BoldItalic.ttf') format('truetype'); font-weight: 700; font-style: italic; font-display: swap; }

:root {
  --font-brand: 'Bricolage Grotesque', 'Inter', 'MiSans',
    'PingFang SC', 'Microsoft YaHei', sans-serif;
  --font-ui: 'Inter', 'MiSans', 'PingFang SC',
    'Microsoft YaHei', sans-serif;
  --font-mono: 'Liberation Mono', 'Consolas', 'SF Mono', 'Cascadia Mono',
    monospace;
  --font-cjk: 'MiSans', 'LXGW Neo XiHei Plus', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  --font-geist: 'Geist', 'Inter', sans-serif;
  --font-inter-display: 'Inter Display', 'Inter', sans-serif;
  --font-manrope: 'Manrope', 'Inter', sans-serif;
  --font-playfair: 'Playfair Display', Georgia, serif;
  --font-misans: 'MiSans', 'Microsoft YaHei', sans-serif;
  --font-cjk-full: 'LXGW Neo XiHei Plus Full', 'PingFang SC', 'Microsoft YaHei', sans-serif;
}
