/* ═══════════════════════════════════════════════════════════════
   自架字型 fonts.css
   ───────────────────────────────────────────────────────────────
   取代 Google Fonts（fonts.googleapis.com），移除對外相依。

   設計取捨：
   1. 【拉丁字型自架】Roboto、Oswald、Space Mono、Share Tech Mono
      僅取 latin 子集，共 10 檔 192 KB。來源為 Fontsource（SIL OFL 1.1），
      授權允許自行託管，授權檔同置於本目錄。

   2. 【中文字型改用系統內建】原本載入 Noto Sans TC / Noto Serif TC /
      Noto Sans JP / Noto Sans KR，完整字集達 8–12 MB／種。
      Google 以 unicode-range 分片供應，自架若不做同等分片處理，
      使用者需下載完整檔案，反而更慢。改用作業系統內建的對應字型：
        - macOS / iOS : PingFang TC、Hiragino、Apple SD Gothic Neo
        - Windows     : 微軟正黑體、Yu Gothic、Malgun Gothic
        - Android     : Noto Sans CJK（系統內建）
      三大平台皆有高品質中文字型，無需下載即可正確顯示，
      且完全消除對 Google 的請求。

   3. font-display: swap —— 字型載入期間先以系統字型顯示，避免文字空白。
   ═══════════════════════════════════════════════════════════════ */

/* ── Roboto（介面主要拉丁字型）── */
@font-face {
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('roboto-latin-400-normal.woff2') format('woff2');
}
@font-face {
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('roboto-latin-500-normal.woff2') format('woff2');
}
@font-face {
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('roboto-latin-700-normal.woff2') format('woff2');
}

/* ── Oswald（vision2026 專用標題字）── */
@font-face {
    font-family: 'Oswald';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('oswald-latin-400-normal.woff2') format('woff2');
}
@font-face {
    font-family: 'Oswald';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('oswald-latin-500-normal.woff2') format('woff2');
}
@font-face {
    font-family: 'Oswald';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('oswald-latin-600-normal.woff2') format('woff2');
}
@font-face {
    font-family: 'Oswald';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('oswald-latin-700-normal.woff2') format('woff2');
}

/* ── Space Mono（FileArea 時刻表等等寬用途）── */
@font-face {
    font-family: 'Space Mono';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('space-mono-latin-400-normal.woff2') format('woff2');
}
@font-face {
    font-family: 'Space Mono';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('space-mono-latin-700-normal.woff2') format('woff2');
}

/* ── Share Tech Mono（vision2026 專用）── */
@font-face {
    font-family: 'Share Tech Mono';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('share-tech-mono-latin-400-normal.woff2') format('woff2');
}

/* ═══════════════════════════════════════════════════════════════
   中文字型別名
   ───────────────────────────────────────────────────────────────
   既有樣式大量使用 'Noto Sans TC' / 'Noto Serif TC' 等名稱。
   為避免逐一改寫數百處 font-family 宣告，此處將這些名稱對應到
   系統內建字型：當本機沒有安裝 Noto 時，瀏覽器會依序回退到
   下列 local() 來源，效果等同於直接指定系統字型堆疊。
   ═══════════════════════════════════════════════════════════════ */

@font-face {
    font-family: 'Noto Sans TC';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: local('Noto Sans TC'), local('Noto Sans CJK TC'),
         local('PingFang TC'), local('Microsoft JhengHei'),
         local('微軟正黑體'), local('Heiti TC');
}
@font-face {
    font-family: 'Noto Serif TC';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: local('Noto Serif TC'), local('Noto Serif CJK TC'),
         local('Songti TC'), local('PMingLiU'), local('新細明體'),
         local('MingLiU'), local('細明體');
}
@font-face {
    font-family: 'Noto Sans JP';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: local('Noto Sans JP'), local('Noto Sans CJK JP'),
         local('Hiragino Sans'), local('Hiragino Kaku Gothic ProN'),
         local('Yu Gothic'), local('Meiryo');
}
@font-face {
    font-family: 'Noto Sans KR';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: local('Noto Sans KR'), local('Noto Sans CJK KR'),
         local('Apple SD Gothic Neo'), local('Malgun Gothic'),
         local('맑은 고딕');
}
