/* The one place this product chooses its typefaces.
 *
 * This pair used to be declared six times -- styles.css, admin.css,
 * landing.html's inline <style>, legalPages.mjs's inline <style>, and hardcoded
 * families in consumer.css and bannerView.css -- and three of those carried a
 * comment asking whoever edits one to remember the other five. That is a rule
 * with no home, and it is why changing the heading face was a six-file job
 * instead of a one-line one.
 *
 * Every page that renders chrome links this file, so the chain below is the
 * whole answer. Mobile keeps its own copy because apps/mobile ships inside the
 * APK and cannot reach this origin's stylesheet; tests/brandAssets.mjs fails if
 * the two disagree.
 */

/* Inter, for headings and body both -- 2026-08-05, replacing Recolla for
 * headings and Space Grotesk for body.
 *
 * The brief was "like Facebook and Instagram". Those apps' own faces (Meta's
 * Optimistic, Instagram Sans) are proprietary and cannot be licensed, and their
 * product UI does not use them anyway: it falls to the device's system font --
 * San Francisco, Segoe UI, Roboto. That native-UI look is most of what reads as
 * "quality", and Inter was drawn as an open face for exactly that job.
 *
 * One family for everything, with weight doing the work a second family used to
 * do. That is also how those apps are built, and it is the half of the effect
 * that is not about letterforms at all.
 *
 * The fallback is the real system stack rather than a jump to Arial, so a font
 * file that fails to load degrades to the native UI face instead of to
 * something twenty years older.
 */

/* SELF-HOSTED -- 2026-09-07, replacing the <link> to fonts.googleapis.com that
 * seven pages carried (the four panels, the landing page, /musteri, and the
 * legal pages built in legalPages.mjs), plus the Android shell.
 *
 * Not a performance change. A <link> to Google's CDN makes the VISITOR'S
 * browser open a connection to a US server on every first paint, and what
 * arrives there is their IP address and user-agent -- a transfer to a third
 * party that the visitor never chose and that happened before any consent
 * banner could be answered. Serving the same bytes from this origin removes the
 * transfer outright rather than disclosing it, which is why the Google Fonts
 * clause is gone from the privacy notice; the notice and this file have to move
 * together, and tests/legal.mjs is what forces that.
 *
 * PROVENANCE. These are Google's own files, byte-for-byte, from Inter v20 as
 * served on 2026-09-07 for
 *   https://fonts.googleapis.com/css2?family=Inter:wght@400..800&display=swap
 * to a Chrome user-agent -- the exact request the removed <link> used to make.
 * Same axis range, same subsetting, so nothing about the rendering changed.
 * To refresh: re-request that URL with a modern UA, and save each src to the
 * matching name below. The unicode-range values must come from the same
 * response as the files; they are what makes the split work.
 *
 * All seven subsets are kept even though the product is Turkish. A subset is
 * only downloaded when the page actually contains a character in its range, so
 * the six a Turkish page never touches cost nothing -- while dropping them
 * would silently render a Cyrillic or Greek business name in the fallback face.
 * Turkish itself needs two: latin carries ı, ç, ö, ü; latin-ext carries ğ, ş
 * and İ.
 *
 * The file is under the SIL Open Font License 1.1 and fonts/OFL.txt ships
 * beside it -- that copy IS the licence compliance, not documentation of it.
 * The last self-hosted face here (Recolla) shipped "All Rights Reserved" with
 * no grant at all, which is the mistake this file is not allowed to repeat.
 */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("/fonts/inter-cyrillic-ext.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("/fonts/inter-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("/fonts/inter-greek-ext.woff2") format("woff2");
  unicode-range: U+1F00-1FFF;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("/fonts/inter-greek.woff2") format("woff2");
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("/fonts/inter-vietnamese.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("/fonts/inter-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: "Inter";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("/fonts/inter-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;
}

:root {
  --font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI Variable Display", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-heading: var(--font-ui);
  --font-body: var(--font-ui);
}
