/* =========================================================================
   自架字體

   原本從 fonts.googleapis.com 載入。換掉的理由不是「不想用 CDN」，
   是實測出來的數字：

     中文字元散布在整個 Unicode 頻率分布上，Google 的 unicode-range
     分片對中文幾乎沒有幫助 —— 首頁的 464 個字元橫跨 104 個分片，
     一頁就要下載約 7 MB 字體，而且換一頁又是另一批分片。

   改成「用全站實際字元做子集」之後：

     Noto Sans TC   382 KB（可變字體，字重 100–900 全含）
     Noto Serif TC  511 KB（可變字體，字重 200–900 全含）
     IBM Plex Mono   29 KB（拉丁字兩個字重）
     ────────────────────────────
     合計約 922 KB，而且是全站快取一次，不是每頁重抓。

   用可變字體是關鍵：一個檔案涵蓋所有字重，不必為了 900 再多下載一份。

   ⚠ 子集只含全站現有內容的字元（見 部署/build-fonts.py）。
     Mark 之後寫新文章若出現子集外的字，該字會落回系統中文字型 ——
     不會變成豆腐方塊，但字型會不一致。
     內容有大幅增加時要重跑 build-fonts.py 重新產生子集。
   ========================================================================= */

/* 可變字體：font-weight 寫成範圍，瀏覽器會在該範圍內插值 */
@font-face {
	font-family: "Noto Sans TC";
	src: url("../fonts/noto-sans-tc.woff2") format("woff2-variations"),
	     url("../fonts/noto-sans-tc.woff2") format("woff2");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Noto Serif TC";
	src: url("../fonts/noto-serif-tc.woff2") format("woff2-variations"),
	     url("../fonts/noto-serif-tc.woff2") format("woff2");
	font-weight: 200 900;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "IBM Plex Mono";
	src: url("../fonts/ibm-plex-mono-500.woff2") format("woff2");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
	/* 只含基本拉丁：等寬字在本站只用於眉標、日期、數字 */
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
	               U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122,
	               U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "IBM Plex Mono";
	src: url("../fonts/ibm-plex-mono-600.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
	               U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122,
	               U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
