/* Web fonts for sms.glassesgallery.ge, self-hosted from ./fonts/ (licences next to the files).
   Adapted from the moacere.ge set. Composite families split by script with unicode-range:
     "GG Sans"    Inter (Latin, digits, ₾ №) + BPG Glaho (Mkhedruli 300–500) + Noto Sans Georgian (600–900, Mtavruli)
     "GG Display" Noto Sans Georgian (Mkhedruli + Mtavruli via "case") + Inter (Latin), 600–800
     "GG Nav"     BPG LE Studio 02 Caps (Georgian + Latin) + Noto (Mtavruli) + Inter (₾, №, arrows)
   Inside one family every face shares the same weight band, or Chrome sends bold Latin to the system font.
   FiraGO is only the last fallback of every stack. */

/* ---- GG Sans: band 300–500 (body, labels) ------------------------------------------------------ */
@font-face {
  font-family: "GG Sans";
  font-style: normal;
  font-weight: 300 500;
  font-display: swap;
  src: url("fonts/Inter-VF.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-200B,
    U+2010-2027, U+202F-205F, U+20AC, U+20BE, U+2116, U+2122, U+2190-2193, U+2212, U+2248, U+2260,
    U+2264-2265, U+25CF;
}
@font-face {
  font-family: "GG Sans";
  font-style: normal;
  font-weight: 300 500;
  font-display: swap;
  src: url("fonts/BPGGlaho.woff2") format("woff2");
  unicode-range: U+10D0-10FC;
}
@font-face {
  font-family: "GG Sans";
  font-style: normal;
  font-weight: 300 500;
  font-display: swap;
  src: url("fonts/NotoSansGeorgian-VF.woff2") format("woff2");
  unicode-range: U+10FD-10FF, U+1C90-1CBF;
}
/* ---- GG Sans: band 600–900 (titles, strong) ----------------------------------------------------- */
@font-face {
  font-family: "GG Sans";
  font-style: normal;
  font-weight: 600 900;
  font-display: swap;
  src: url("fonts/Inter-VF.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-200B,
    U+2010-2027, U+202F-205F, U+20AC, U+20BE, U+2116, U+2122, U+2190-2193, U+2212, U+2248, U+2260,
    U+2264-2265, U+25CF;
}
@font-face {
  font-family: "GG Sans";
  font-style: normal;
  font-weight: 600 900;
  font-display: swap;
  src: url("fonts/NotoSansGeorgian-VF.woff2") format("woff2");
  unicode-range: U+10D0-10FF, U+1C90-1CBF;
}

/* ---- GG Display: headlines (Mtavruli through Noto "case") --------------------------------------- */
@font-face {
  font-family: "GG Display";
  font-style: normal;
  font-weight: 600 800;
  font-display: swap;
  src: url("fonts/Inter-VF.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-200B,
    U+2010-2027, U+202F-205F, U+20AC, U+20BE, U+2116, U+2122, U+2190-2193, U+2212, U+2248, U+2260,
    U+2264-2265, U+25CF;
}
@font-face {
  font-family: "GG Display";
  font-style: normal;
  font-weight: 600 800;
  font-display: swap;
  src: url("fonts/NotoSansGeorgian-VF.woff2") format("woff2");
  unicode-range: U+10D0-10FF, U+1C90-1CBF;
}

/* ---- GG Nav: navigation + buttons (BPG LE Studio 02 Caps draws capital-style letterforms) -------- */
@font-face {
  font-family: "GG Nav";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("fonts/Inter-VF.woff2") format("woff2");
  unicode-range: U+0000-001F, U+007F-009F, U+00A2-00A5, U+00A8, U+00AA, U+00B2-00B3, U+00B5, U+00B8-00B9,
    U+00BC-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-200B, U+2011-2012,
    U+2015-2017, U+201B, U+201F-2025, U+2027, U+202F-205F, U+20AC, U+20BE, U+2116, U+2122, U+2190-2193,
    U+2212, U+2248, U+2260, U+2264-2265, U+25CF;
}
@font-face {
  font-family: "GG Nav";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("fonts/BPGLEStudio02Caps.woff2") format("woff2");
  unicode-range: U+0020-007E, U+00A0-00A1, U+00A6-00A7, U+00A9, U+00AB-00B1, U+00B4, U+00B6-00B7,
    U+00BA-00BB, U+10D0-10F0, U+2010, U+2013-2014, U+2018-201A, U+201C-201E, U+2026;
}
@font-face {
  font-family: "GG Nav";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("fonts/NotoSansGeorgian-VF.woff2") format("woff2");
  unicode-range: U+10F1-10FF, U+1C90-1CBF;
}

/* ---- Metric-matched local stand-ins for the swap period (CLS ≈ 0) ------------------------------------
   Numbers from `scripts/build_design_assets.py --metrics` (fontTools; advances weighted by moacere.ge's
   letter frequencies): size-adjust = web face ÷ local face average advance; ascent/descent/line-gap
   overrides = the web face's hhea metrics ÷ size-adjust (the overrides scale with size-adjust). The primary
   (line-box) font of "GG Sans" / "GG Display" is Inter (it holds U+0020): 0.9688 / 0.2415 / 0.
     Inter 400 0.5055 em vs Arial 0.4667 → 108.3 %, vs Roboto 0.4605 → 109.8 %; Inter 700 0.5307 vs Arial Bold 0.5069 → 104.7 %
     BPG Glaho 0.5647 em vs Helvetica Neue 0.6131 → 92.1 %, vs Noto Sans Georgian 400 0.6611 → 85.4 %
     Noto Sans Georgian 700 0.6921 em vs Helvetica Neue Bold 0.6448 → 107.3 %; its Mtavruli 0.7289 em → 113.1 % (Display)
     BPG LE Studio 02 Caps: Mkhedruli 0.7837 vs Helvetica Neue → 127.8 %, Latin 0.5245 vs Arial → 112.4 %
   Sylfaen / Segoe UI (Windows) could not be measured on the build machine → size-adjust 100 %.
   A face whose local() font is absent simply fails and the next family in the stack is tried. */
@font-face {
  font-family: "GG Sans Fallback";
  font-weight: 300 500;
  src: local("Arial"), local("ArialMT");
  size-adjust: 108.3%;
  ascent-override: 89.45%;
  descent-override: 22.3%;
  line-gap-override: 0%;
  unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2116, U+2122;
}
@font-face {
  font-family: "GG Sans Fallback";
  font-weight: 300 500;
  src: local("Helvetica Neue"), local("HelveticaNeue");
  size-adjust: 92.1%;
  ascent-override: 92.78%;
  descent-override: 38.18%;
  line-gap-override: 5.3%;
  unicode-range: U+10D0-10FF;
}
@font-face {
  font-family: "GG Sans Fallback";
  font-weight: 600 900;
  src: local("Arial Bold"), local("Arial-BoldMT");
  size-adjust: 104.7%;
  ascent-override: 92.53%;
  descent-override: 23.07%;
  line-gap-override: 0%;
  unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2116, U+2122;
}
@font-face {
  font-family: "GG Sans Fallback";
  font-weight: 600 900;
  src: local("Helvetica Neue Bold"), local("HelveticaNeue-Bold");
  size-adjust: 107.3%;
  ascent-override: 99.53%;
  descent-override: 27.21%;
  line-gap-override: 0%;
  unicode-range: U+10D0-10FF;
}
@font-face {
  font-family: "GG Sans Fallback Android";
  font-weight: 300 500;
  src: local("Roboto"), local("Roboto-Regular");
  size-adjust: 109.8%;
  ascent-override: 88.23%;
  descent-override: 21.99%;
  line-gap-override: 0%;
  unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2116, U+2122;
}
@font-face {
  font-family: "GG Sans Fallback Android";
  font-weight: 300 500;
  src: local("Noto Sans Georgian"), local("NotoSansGeorgian-Regular"), local("NotoSansGeorgian");
  size-adjust: 85.4%;
  ascent-override: 100.06%;
  descent-override: 41.17%;
  line-gap-override: 5.71%;
  unicode-range: U+10D0-10FF;
}
@font-face {
  font-family: "GG Sans Fallback Win";
  src: local("Sylfaen"), local("Segoe UI"), local("SegoeUI");
  ascent-override: 96.88%;
  descent-override: 24.15%;
  line-gap-override: 0%;
  unicode-range: U+10D0-10FF;
}
@font-face {
  font-family: "GG Display Fallback";
  font-weight: 600 800;
  src: local("Arial Bold"), local("Arial-BoldMT");
  size-adjust: 104.7%;
  ascent-override: 92.53%;
  descent-override: 23.07%;
  line-gap-override: 0%;
  unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2116, U+2122;
}
@font-face {
  font-family: "GG Display Fallback";
  font-weight: 600 800;
  src: local("Helvetica Neue Bold"), local("HelveticaNeue-Bold");
  /* headlines are Mtavruli: Noto 700 capitals 0.7289 em vs Helvetica Neue Bold 0.6447 = 113.1 %, calibrated
     in Chromium against 8 real site headlines (fallback came out 1.7 % wider: spaces + punctuation) → 111.4 % */
  size-adjust: 111.4%;
  ascent-override: 95.87%;
  descent-override: 26.21%;
  line-gap-override: 0%;
  unicode-range: U+10D0-10FF;
}
@font-face {
  font-family: "GG Nav Fallback";
  src: local("Arial"), local("ArialMT");
  size-adjust: 112.4%;
  ascent-override: 65.84%;
  descent-override: 23.13%;
  line-gap-override: 10.68%;
  unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2116, U+2122;
}
@font-face {
  font-family: "GG Nav Fallback";
  src: local("Helvetica Neue"), local("HelveticaNeue");
  size-adjust: 127.8%;
  ascent-override: 57.9%;
  descent-override: 20.34%;
  line-gap-override: 9.39%;
  unicode-range: U+10D0-10FF;
}

/* ---- FiraGO: the last fallback of every stack (never preloaded; downloaded only if a character reaches it)
   Georgian + Latin subsets of the official bBox Type FiraGO 1.001 (OFL, fonts/FiraGO-OFL.txt). The
   unicode-range must stay identical to UNICODE_RANGE_CSS in the build script. FiraGO has no Mtavruli. */
@font-face {
  font-family: "FiraGO";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/FiraGO-Regular.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+10D0-10FF, U+2000-206F, U+20A0-20CF, U+2116, U+2122, U+2190-2199, U+2202, U+2206,
    U+2211-2212, U+2215, U+2219-221A, U+221E, U+2248, U+2260, U+2264-2265, U+25CF, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "FiraGO";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/FiraGO-Medium.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+10D0-10FF, U+2000-206F, U+20A0-20CF, U+2116, U+2122, U+2190-2199, U+2202, U+2206,
    U+2211-2212, U+2215, U+2219-221A, U+221E, U+2248, U+2260, U+2264-2265, U+25CF, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "FiraGO";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/FiraGO-SemiBold.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+10D0-10FF, U+2000-206F, U+20A0-20CF, U+2116, U+2122, U+2190-2199, U+2202, U+2206,
    U+2211-2212, U+2215, U+2219-221A, U+221E, U+2248, U+2260, U+2264-2265, U+25CF, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "FiraGO";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/FiraGO-Bold.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+10D0-10FF, U+2000-206F, U+20A0-20CF, U+2116, U+2122, U+2190-2199, U+2202, U+2206,
    U+2211-2212, U+2215, U+2219-221A, U+221E, U+2248, U+2260, U+2264-2265, U+25CF, U+FEFF, U+FFFD;
}

/* ---- Code: JetBrains Mono (OFL), Latin only — Georgian inside code falls through to "GG Sans" -------- */
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/JetBrainsMono-Regular.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,
    U+20A0-20CF, U+2116, U+2122, U+2190-2199, U+21D2, U+2212, U+2215, U+221E, U+2248, U+2260,
    U+2264-2265, U+2500-257F, U+25CF, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/JetBrainsMono-Bold.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,
    U+20A0-20CF, U+2116, U+2122, U+2190-2199, U+21D2, U+2212, U+2215, U+221E, U+2248, U+2260,
    U+2264-2265, U+2500-257F, U+25CF, U+FEFF, U+FFFD;
}
