/* Local webfont bundle for first-paint consistency */

@font-face {
  font-family: "Muxing HY ChaoCuYuan";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src:
    local("HYChaoCuYuanJ"),
    local("汉仪超粗圆简"),
    url("/assets/fonts/HYChaoCuYuanJ-wordmark.woff2?v=20260622wordmarksubset1") format("woff2");
}

/* DM Sans variable */
@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 100 1000;
  src:
    local("DM Sans"),
    url("/assets/fonts/dm-sans-latin-ext-wght-normal.woff2") format("woff2-variations");
  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: "DM Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 100 1000;
  src:
    local("DM Sans"),
    url("/assets/fonts/dm-sans-latin-wght-normal.woff2") format("woff2-variations");
  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;
}

/* Fraunces variable */
@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src:
    local("Fraunces"),
    url("/assets/fonts/fraunces-latin-ext-wght-normal.woff2") format("woff2-variations");
  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: "Fraunces";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src:
    local("Fraunces"),
    url("/assets/fonts/fraunces-latin-wght-normal.woff2") format("woff2-variations");
  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;
}

/* DM Mono */
@font-face {
  font-family: "DM Mono";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src:
    local("DM Mono"),
    url("/assets/fonts/dm-mono-latin-400-normal.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: "DM Mono";
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src:
    local("DM Mono Medium"),
    local("DM Mono"),
    url("/assets/fonts/dm-mono-latin-500-normal.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;
}

/* Noto Serif SC — self-hosted subset for CJK headings/citations.
   Regenerate after new Chinese copy: python scripts/subset-cjk-serif.py
   Trimmed to the declared unicode-range below (the 95 unreachable Basic-Latin
   glyphs Latin sans serves were dropped: 300KB -> 230KB), variable axis kept.
   Bump the ?v= token whenever the subset is regenerated — the file is served
   immutable, so cached visitors otherwise keep the stale copy. */
@font-face {
  font-family: "Noto Serif SC";
  font-style: normal;
  font-display: swap;
  font-weight: 200 900;
  src:
    url("/assets/fonts/noto-serif-sc-subset.woff2?v=20260621notrim1") format("woff2-variations");
  unicode-range:
    U+2014, U+2018-201D, U+2026, U+00B7, U+2027,
    U+3000-303F, U+3400-4DBF, U+4E00-9FFF, U+FF00-FFEF;
}
