@charset "utf-8";
/*!
 * fonts.css —— 阿里巴巴普惠体 3.0 Web 字体（子集化）
 * ===========================================================================
 * 【为什么不是直接引用原始 TTF】
 *   空间里的「阿里巴巴普惠体3.0」原始 TTF 单个字重约 8MB（85 Bold 8.0MB、
 *   55 Regular 8.1MB …），中文字体包含全部汉字与符号，体积天然巨大。
 *   移动端 H5 直接引用 4 个字重 = 32MB+，首屏会被字体下载拖死，
 *   与「页面不引入多余大资源」的要求冲突。
 *
 *   因此这里用 fontTools 把字体**子集化**为 WOFF2：只保留
 *     1) ASCII 可见字符（数字 / 英文 / 半角符号）
 *     2) GB2312 全集（6763 汉字 + 682 标点符号）
 *     3) 页面源码中实际出现的全部字符
 *   共约 7550 字，单字重由 ~8MB 压到 ~950KB，功能覆盖不变。
 *
 * 【重新生成方法】
 *   python .workbuddy/scripts/mkfonts.py
 *   源字体更新后重跑该脚本即可覆盖 fonts/ 下的产物。
 *   （依赖 fontTools + brotli：pip install fonttools brotli）
 *
 * 【字重映射】（阿里巴巴普惠体 3.0 的字重编号 → CSS font-weight）
 *   55 Regular  → 400   正文字体
 *   65 Medium   → 500   字段标签 / 徽章文字
 *   75 SemiBold → 600   按钮文字 / 弹窗标题
 *   85 Bold     → 700   日程表日期与会议名
 *
 * 【加载策略】
 *   - 仅声明 4 个真正用到的字重，其余（Thin/Light/ExtraBold/Heavy/Black）不引入
 *   - font-display: swap —— 字体未就绪时先用系统字体渲染，就绪后无缝替换，
 *     保证中文页面任何情况下都不会出现「白字」或长时间空白
 *   - 浏览器按需下载：某个字重没被实际用到就不会发起请求
 * =========================================================================== */

/* 55 Regular → 400 */
@font-face {
  font-family: "Alibaba PuHuiTi 3.0";
  src: url("../fonts/AlibabaPuHuiTi-3-55-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* 65 Medium → 500 */
@font-face {
  font-family: "Alibaba PuHuiTi 3.0";
  src: url("../fonts/AlibabaPuHuiTi-3-65-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

/* 75 SemiBold → 600 */
@font-face {
  font-family: "Alibaba PuHuiTi 3.0";
  src: url("../fonts/AlibabaPuHuiTi-3-75-SemiBold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

/* 85 Bold → 700 */
@font-face {
  font-family: "Alibaba PuHuiTi 3.0";
  src: url("../fonts/AlibabaPuHuiTi-3-85-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
