/* ============================================================================
 * 365Lab 分享卡片 · 自托管字体（合并自 @fontsource，基于 SIL Open Font License 免费授权）
 * 字体清单（均在 OFL 协议下可免费商用、修改、再分发）：
 *   中文：Noto Sans SC（思源黑体）、Noto Serif SC（思源宋体）、Ma Shan Zheng（马善政楷书）、
 *         Zhi Mang Xing（志莽行书）、Long Cang（龙藏体）
 *   英文：Inter、Playfair Display、Poppins、Montserrat、Dancing Script、Bebas Neue、
 *         Space Grotesk、JetBrains Mono、Lobster、Caveat
 * 许可：SIL Open Font License 1.1（https://scripts.sil.org/OFL）
 * 构建：tools/build_fonts.cjs（仅抽取用到的字重切片，浏览器按 unicode-range 按需加载）
 * ========================================================================== */
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/noto-sans-sc/files/noto-sans-sc-chinese-simplified-400-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/noto-sans-sc/files/noto-sans-sc-chinese-simplified-700-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/noto-serif-sc/files/noto-serif-sc-chinese-simplified-400-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/noto-serif-sc/files/noto-serif-sc-chinese-simplified-700-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Ma Shan Zheng';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/ma-shan-zheng/files/ma-shan-zheng-chinese-simplified-400-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Zhi Mang Xing';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/zhi-mang-xing/files/zhi-mang-xing-chinese-simplified-400-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Long Cang';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/long-cang/files/long-cang-chinese-simplified-400-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'ZCOOL XiaoWei';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/zcool-xiaowei/files/zcool-xiaowei-chinese-simplified-400-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'ZCOOL QingKe HuangYou';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/zcool-qingke-huangyou/files/zcool-qingke-huangyou-chinese-simplified-400-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'ZCOOL KuaiLe';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/zcool-kuaile/files/zcool-kuaile-chinese-simplified-400-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Liu Jian Mao Cao';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/liu-jian-mao-cao/files/liu-jian-mao-cao-chinese-simplified-400-normal.woff2) format('woff2');
}

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

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(../fonts/inter/files/inter-latin-600-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/inter/files/inter-latin-700-normal.woff2) format('woff2');
}

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

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(../fonts/inter/files/inter-latin-ext-600-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/inter/files/inter-latin-ext-700-normal.woff2) format('woff2');
}

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

@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/playfair-display/files/playfair-display-latin-700-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/playfair-display/files/playfair-display-latin-ext-400-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/playfair-display/files/playfair-display-latin-ext-700-normal.woff2) format('woff2');
}

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

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(../fonts/poppins/files/poppins-latin-600-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/poppins/files/poppins-latin-700-normal.woff2) format('woff2');
}

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

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(../fonts/poppins/files/poppins-latin-ext-600-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/poppins/files/poppins-latin-ext-700-normal.woff2) format('woff2');
}

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

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/montserrat/files/montserrat-latin-700-normal.woff2) format('woff2');
}

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

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/montserrat/files/montserrat-latin-ext-700-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Dancing Script';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/dancing-script/files/dancing-script-latin-400-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Dancing Script';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/dancing-script/files/dancing-script-latin-700-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Dancing Script';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/dancing-script/files/dancing-script-latin-ext-400-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Dancing Script';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/dancing-script/files/dancing-script-latin-ext-700-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Bebas Neue';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/bebas-neue/files/bebas-neue-latin-400-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Bebas Neue';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/bebas-neue/files/bebas-neue-latin-ext-400-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/space-grotesk/files/space-grotesk-latin-400-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/space-grotesk/files/space-grotesk-latin-700-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/space-grotesk/files/space-grotesk-latin-ext-400-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/space-grotesk/files/space-grotesk-latin-ext-700-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/jetbrains-mono/files/jetbrains-mono-latin-400-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/jetbrains-mono/files/jetbrains-mono-latin-700-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/jetbrains-mono/files/jetbrains-mono-latin-ext-400-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/jetbrains-mono/files/jetbrains-mono-latin-ext-700-normal.woff2) format('woff2');
}

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

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

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

@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/caveat/files/caveat-latin-700-normal.woff2) format('woff2');
}

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

@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/caveat/files/caveat-latin-ext-700-normal.woff2) format('woff2');
}

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

@font-face {
  font-family: 'Merriweather';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/merriweather/files/merriweather-latin-700-normal.woff2) format('woff2');
}

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

@font-face {
  font-family: 'Merriweather';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/merriweather/files/merriweather-latin-ext-700-normal.woff2) format('woff2');
}

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

@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/oswald/files/oswald-latin-700-normal.woff2) format('woff2');
}

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

@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/oswald/files/oswald-latin-ext-700-normal.woff2) format('woff2');
}

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

@font-face {
  font-family: 'Raleway';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/raleway/files/raleway-latin-700-normal.woff2) format('woff2');
}

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

@font-face {
  font-family: 'Raleway';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/raleway/files/raleway-latin-ext-700-normal.woff2) format('woff2');
}

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

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

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

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

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

@font-face {
  font-family: 'Quicksand';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/quicksand/files/quicksand-latin-700-normal.woff2) format('woff2');
}

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

@font-face {
  font-family: 'Quicksand';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/quicksand/files/quicksand-latin-ext-700-normal.woff2) format('woff2');
}

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

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

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

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

@font-face {
  font-family: 'Archivo Black';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/archivo-black/files/archivo-black-latin-400-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'Archivo Black';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/archivo-black/files/archivo-black-latin-ext-400-normal.woff2) format('woff2');
}
