/* ─────────────────────────────────────────────────────────────────────────
 * Self-hosted @font-face declarations (fonts mirrored from lovart.ai).
 *
 * This file intentionally lives in /public and is loaded via
 * <link href="/fonts.css"> in app/[locale]/layout.tsx instead of being
 * bundled into globals.css: in production the bundled CSS is served from
 * the CDN (assetPrefix), and a root-relative url("/fonts/…") inside CSS
 * resolves against the CSS file's origin — the CDN host, where /fonts/*
 * 404s. Served same-origin from /public, the URLs always resolve to this
 * site's /fonts/*.
 *
 * Each web font ships a paired `… Fallback` face that maps local(Arial)
 * with metric overrides — copied verbatim from lovart — so the swap from
 * fallback → web font causes no layout shift (CLS≈0). Override values are
 * intentionally not "round". The @theme `--font-*` tokens referencing these
 * families stay in app/globals.css.
 * ───────────────────────────────────────────────────────────────────────── */

/* Inter — body / UI (variable) */
@font-face {
  font-family: inter;
  src: url("/fonts/Inter-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "inter Fallback";
  src: local("Arial");
  ascent-override: 89.79%;
  descent-override: 22.36%;
  line-gap-override: 0%;
  size-adjust: 107.89%;
}

/* Playfair Display — serif display (hero title) */
@font-face {
  font-family: playfairDisplay;
  src: url("/fonts/PlayfairDisplay-Variable.woff2") format("woff2");
  font-weight: 400 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: playfairDisplay;
  src: url("/fonts/PlayfairDisplay-Italic-Variable.woff2") format("woff2");
  font-weight: 400 900;
  font-style: italic;
  font-display: swap;
}

/* Noto Sans SC / TC / JP — CJK fallback chain (variable). Same metric
 * overrides for all three, exactly as lovart ships them. */
@font-face {
  font-family: notoSansSC;
  src: url("/fonts/NotoSansSC-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: notoSansTC;
  src: url("/fonts/NotoSansTC-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: notoSansJP;
  src: url("/fonts/NotoSansJP-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "notoSans Fallback";
  src: local("Arial");
  ascent-override: 117.61%;
  descent-override: 29.2%;
  line-gap-override: 0%;
  size-adjust: 98.63%;
}

/* Inter italic (variable) */
@font-face {
  font-family: inter;
  src: url("/fonts/Inter-Italic-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}

/* Noto Serif SC / TC / JP — CJK serif chain that pairs with the serif display
 * faces (variable). Shared metric overrides, exactly as lovart ships. */
@font-face {
  font-family: notoSerifSC;
  src: url("/fonts/NotoSerifSC-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: notoSerifTC;
  src: url("/fonts/NotoSerifTC-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: notoSerifJP;
  src: url("/fonts/NotoSerifJP-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "notoSerif Fallback";
  src: local("Arial");
  ascent-override: 105.89%;
  descent-override: 26.31%;
  line-gap-override: 0%;
  size-adjust: 108.7%;
}
