/* fonts generated with https://gwfh.mranftl.com/fonts */

/* source-code-pro-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Source Code Pro';
  font-style: normal;
  font-weight: 400;
  src: url('/fonts/source-code-pro/source-code-pro-v23-latin-regular.woff2?v=15057fef797f') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* source-sans-3-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  src: url('/fonts/source-sans-3/source-sans-3-v10-latin-regular.woff2?v=78e2217793fe') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* source-sans-3-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  src: url('/fonts/source-sans-3/source-sans-3-v10-latin-700.woff2?v=37ea272797ac') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* lato-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Lato';
  font-style: normal;
  font-weight: 400;
  src: url('/fonts/lato/lato-v24-latin-regular.woff2?v=918b7dc3e2e2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* lato-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Lato';
  font-style: normal;
  font-weight: 700;
  src: url('/fonts/lato/lato-v24-latin-700.woff2?v=c447dd7677b4') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* ==========================================================================
   METRIC-MATCHED FALLBACKS (claude_audit/fonts-cls-v1.md)
   Until a web face above has arrived, text is drawn with the visitor's own
   Arial-metric sans (Arial, Arimo = Tor Browser's bundled sans on Linux,
   Liberation Sans, Helvetica), resized so it takes the space the web face
   will take. The swap then changes the letterforms but, in all but a few
   lines (see the report), not the line breaks, so the page does not move
   when the fonts land (over a Tor-like link the 700 weights land 0.3-1.5 s
   after the first paint). No download: local() only.
   font-display stays swap: optional removed the last shifts but, without
   also preloading the 700s on phones, cost Lato its first paint even on
   broadband, and those preloads cost ~120 ms of LCP on Slow 4G phones
   (measured, see the report).

   Each fallback family comes AFTER its web family in every stack
   (assets/scss/config.scss, and the ko/hi stacks below), so once the web
   face has loaded nothing changes: its unicode-range is exactly the web
   face's own character set, so a character the web face lacks (Cyrillic,
   Devanagari, Polish ł, …) skips the fallback and reaches the same system
   font as before.

   Two faces per weight: one for the space (U+0020/U+00A0) and one for
   everything else. Arial's space is 0.278 em against Lato's 0.193 and Source
   Sans 3's 0.200, and spaces are ~18% of the text, so no single scale fits
   both the words and the gaps between them.

   Values computed from the font files, not copied: size-adjust = the web
   face's advance widths / the fallback's (hmtx via cmap, the woff2 files
   here vs Liberation Sans 2, which has Arial's widths), weighted by the
   characters of the site's own text rendered in that face (9 pages × 25
   locales, each locale weighted equally); the space face's size-adjust is
   the exact ratio of the two space advances. ascent/descent-override = the
   web face's hhea ascender/descender ÷ size-adjust (the descriptors are
   scaled by size-adjust), line-gap-override 0 = the web faces' line gap.
   If the web font files change, recompute (method in the audit report).
   ========================================================================== */
@font-face {
  font-family: 'Source Sans 3 Fallback';
  font-style: normal;
  font-weight: 400;
  src: local('Arial'), local('ArialMT'), local('Arimo'), local('Arimo Regular'), local('Arimo-Regular'), local('Liberation Sans'), local('LiberationSans'), local('Helvetica');
  size-adjust: 94.00%;
  ascent-override: 108.94%;
  descent-override: 42.56%;
  line-gap-override: 0%;
  unicode-range: U+0021-007E, U+00A1-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+2009, U+200B, U+2013-2014, U+2018-201A, U+201C-201E, U+2022, U+2026, U+2032-2033, U+2039-203A, U+2044, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}
@font-face {
  font-family: 'Source Sans 3 Fallback';
  font-style: normal;
  font-weight: 400;
  src: local('Arial'), local('ArialMT'), local('Arimo'), local('Arimo Regular'), local('Arimo-Regular'), local('Liberation Sans'), local('LiberationSans'), local('Helvetica');
  size-adjust: 71.99%;
  ascent-override: 142.25%;
  descent-override: 55.57%;
  line-gap-override: 0%;
  unicode-range: U+0020, U+00A0;
}
@font-face {
  font-family: 'Source Sans 3 Fallback';
  font-style: normal;
  font-weight: 700;
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Arimo Bold'), local('Arimo-Bold'), local('Liberation Sans Bold'), local('LiberationSans-Bold'), local('Helvetica Bold'), local('Helvetica-Bold');
  size-adjust: 93.18%;
  ascent-override: 109.90%;
  descent-override: 42.93%;
  line-gap-override: 0%;
  unicode-range: U+0021-007E, U+00A1-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+2009, U+200B, U+2013-2014, U+2018-201A, U+201C-201E, U+2022, U+2026, U+2032-2033, U+2039-203A, U+2044, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}
@font-face {
  font-family: 'Source Sans 3 Fallback';
  font-style: normal;
  font-weight: 700;
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Arimo Bold'), local('Arimo-Bold'), local('Liberation Sans Bold'), local('LiberationSans-Bold'), local('Helvetica Bold'), local('Helvetica-Bold');
  size-adjust: 71.99%;
  ascent-override: 142.25%;
  descent-override: 55.57%;
  line-gap-override: 0%;
  unicode-range: U+0020, U+00A0;
}
@font-face {
  font-family: 'Lato Fallback';
  font-style: normal;
  font-weight: 400;
  src: local('Arial'), local('ArialMT'), local('Arimo'), local('Arimo Regular'), local('Arimo-Regular'), local('Liberation Sans'), local('LiberationSans'), local('Helvetica');
  size-adjust: 99.83%;
  ascent-override: 98.87%;
  descent-override: 21.34%;
  line-gap-override: 0%;
  unicode-range: U+0021-007E, U+00A1-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2013-2014, U+2018-201A, U+201C-201E, U+2022, U+2026, U+2039-203A, U+2044, U+20AC, U+2122, U+2212;
}
@font-face {
  font-family: 'Lato Fallback';
  font-style: normal;
  font-weight: 400;
  src: local('Arial'), local('ArialMT'), local('Arimo'), local('Arimo Regular'), local('Arimo-Regular'), local('Liberation Sans'), local('LiberationSans'), local('Helvetica');
  size-adjust: 69.47%;
  ascent-override: 142.08%;
  descent-override: 30.66%;
  line-gap-override: 0%;
  unicode-range: U+0020, U+00A0;
}
@font-face {
  font-family: 'Lato Fallback';
  font-style: normal;
  font-weight: 700;
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Arimo Bold'), local('Arimo-Bold'), local('Liberation Sans Bold'), local('LiberationSans-Bold'), local('Helvetica Bold'), local('Helvetica-Bold');
  size-adjust: 93.92%;
  ascent-override: 105.09%;
  descent-override: 22.68%;
  line-gap-override: 0%;
  unicode-range: U+0021-007E, U+00A1-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2013-2014, U+2018-201A, U+201C-201E, U+2022, U+2026, U+2039-203A, U+2044, U+20AC, U+2122, U+2212;
}
@font-face {
  font-family: 'Lato Fallback';
  font-style: normal;
  font-weight: 700;
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Arimo Bold'), local('Arimo-Bold'), local('Liberation Sans Bold'), local('LiberationSans-Bold'), local('Helvetica Bold'), local('Helvetica-Bold');
  size-adjust: 69.47%;
  ascent-override: 142.08%;
  descent-override: 30.66%;
  line-gap-override: 0%;
  unicode-range: U+0020, U+00A0;
}

/* ==========================================================================
   PER-LANGUAGE SCRIPT FALLBACKS
   The Latin body/heading fonts above (Source Sans 3, Lato) carry NO Devanagari,
   Hangul, CJK or Arabic glyphs. Rather than self-host those (huge files), each
   non-Latin locale points at fonts that ship natively on Windows/macOS/Linux/
   Android/iOS, so the correct script renders with zero downloads. Latin runs
   (brand, numbers) are kept in 'Lato' by listing it FIRST, so only the missing
   glyphs fall through to the system script font. Scoped by html[lang="…"] (set
   in baseof.html) so no other locale is affected. !important is required to
   beat the Latin base var, and this file loads last in the cascade.
   ========================================================================== */
/* --- 1. JAPONAIS (lang="ja") --- */
/* Mac: Hiragino | Win: Meiryo / Yu Gothic */
html[lang="ja"] body, 
html[lang="ja"] h1, html[lang="ja"] h2, html[lang="ja"] h3, html[lang="ja"] h4, html[lang="ja"] h5, html[lang="ja"] h6,
html[lang="ja"] .navbar-brand, 
html[lang="ja"] .btn {
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, "Yu Gothic", "MS PGothic", sans-serif !important;
}

/* --- 2. CORÉEN (lang="ko") --- */
/* Win: Malgun Gothic | Mac: Apple SD Gothic | Linux/Android/ChromeOS: Noto Sans CJK KR / Noto Sans KR */
html[lang="ko"] body,
html[lang="ko"] h1, html[lang="ko"] h2, html[lang="ko"] h3, html[lang="ko"] h4, html[lang="ko"] h5, html[lang="ko"] h6,
html[lang="ko"] .navbar-brand,
html[lang="ko"] .btn {
  font-family: 'Lato', 'Lato Fallback', 'Malgun Gothic', 'Apple SD Gothic Neo', 'Noto Sans CJK KR', 'Noto Sans KR', sans-serif !important;
}

/* --- 3. HINDI (lang="hi") --- */
/* Win: Nirmala UI | Mac: Kohinoor | Linux/Android/ChromeOS: Noto Sans Devanagari */
html[lang="hi"] body,
html[lang="hi"] h1, html[lang="hi"] h2, html[lang="hi"] h3, html[lang="hi"] h4, html[lang="hi"] h5, html[lang="hi"] h6,
html[lang="hi"] .navbar-brand,
html[lang="hi"] .btn {
  font-family: 'Lato', 'Lato Fallback', 'Nirmala UI', 'Kohinoor Devanagari', 'Noto Sans Devanagari', sans-serif !important;
}

/* --- 4. CHINOIS SIMPLIFIÉ (lang="zh-cn" ou code générique) --- */
/* Mac: PingFang SC | Win: Microsoft YaHei */
html[lang="zh-cn"] body, html[lang="zh-hans"] body,
html[lang="zh-cn"] h1, html[lang="zh-cn"] h2, html[lang="zh-cn"] h3,
html[lang="zh-cn"] .navbar-brand {
  font-family: "PingFang SC", "Lantinghei SC", "Microsoft YaHei", "SimHei", sans-serif !important;
}

/* --- 5. CHINOIS TRADITIONNEL (lang="zh-tw" ou "zh-hant") --- */
/* Mac: PingFang TC | Win: Microsoft JhengHei */
html[lang="zh-tw"] body, html[lang="zh-hant"] body,
html[lang="zh-tw"] h1, html[lang="zh-tw"] h2, html[lang="zh-tw"] h3,
html[lang="zh-tw"] .navbar-brand {
  font-family: "PingFang TC", "Microsoft JhengHei", sans-serif !important;
}

/* --- ARABE (lang="ar") --- */
/* Mac: Geeza Pro | Win: Arial / Tahoma | Linux: Noto Naskh Arabic */
html[lang="ar"] body,
html[lang="ar"] h1, html[lang="ar"] h2, html[lang="ar"] h3, html[lang="ar"] h4, html[lang="ar"] h5, html[lang="ar"] h6,
html[lang="ar"] .navbar-brand,
html[lang="ar"] .btn {
  font-family: "Geeza Pro", "Droid Arabic Naskh", "Noto Naskh Arabic", "Arial", "Tahoma", sans-serif !important;
}

/* --- FARSI / PERSAN (lang="fa") --- */
/* Mac: Geeza Pro | Win: Arial / Tahoma | Linux: Vazir / Noto Naskh Arabic */
html[lang="fa"] body,
html[lang="fa"] h1, html[lang="fa"] h2, html[lang="fa"] h3, html[lang="fa"] h4, html[lang="fa"] h5, html[lang="fa"] h6,
html[lang="fa"] .navbar-brand,
html[lang="fa"] .btn {
  font-family: "Vazir", "Vazirmatn", "Geeza Pro", "Noto Naskh Arabic", "Arial", "Tahoma", sans-serif !important;
}