/* 自架字型。
 *
 * 原本從 fonts.googleapis.com 載，有兩個問題：
 *
 *   效能 —— 要多解析一個網域、多握一次 TLS，而且字型檔在第三方 CDN 上，
 *   我們自己的邊緣快取管不到。
 *
 *   隱私 —— Google Fonts 的 CDN 會拿到每一位訪客的 IP。privacy.html 聲稱
 *   依 GDPR 正當利益處理資料，卻同時把 IP 送給第三方，前後矛盾。德國法院
 *   已有判例認定這種用法違法。
 *
 * 改成自架在 OSS，走自己的 CDN（一年 immutable）。三件事值得知道：
 *
 *   1. Google 對每個 font-weight 都回同一個可變字型檔。照抄它的 CSS 會讓
 *      同一份檔案被宣告七次 —— 這裡去重成一個 (family, style, subset) 一份。
 *   2. 可變字型預設帶 wght 200–800，站上只用到 Newsreader 200–400、
 *      Karla 300–600。用 fontTools 砍掉用不到的區間能省下實際位元組。
 *   3. latin-ext 保留但靠 unicode-range 控制 —— 英文內容不會去下載它。
 *
 * font-display:swap 維持原樣：字型沒載完先用系統字，不要留白。
 *
 * 要重新產生：python3 build-fonts.py
 */

@font-face{
  font-family:'Karla';
  font-style:normal;
  font-weight:300 600;
  font-display:swap;
  src:url('fonts/Karla-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Karla';
  font-style:normal;
  font-weight:300 600;
  font-display:swap;
  src:url('fonts/Karla-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Newsreader';
  font-style:italic;
  font-weight:200 400;
  font-display:swap;
  src:url('fonts/Newsreader-italic-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Newsreader';
  font-style:italic;
  font-weight:200 400;
  font-display:swap;
  src:url('fonts/Newsreader-italic-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Newsreader';
  font-style:normal;
  font-weight:200 400;
  font-display:swap;
  src:url('fonts/Newsreader-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Newsreader';
  font-style:normal;
  font-weight:200 400;
  font-display:swap;
  src:url('fonts/Newsreader-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
