/**
 * VMaster — fonty self-hosted.
 *
 * Arkusz jest ładowany TYLKO gdy w assets/fonts/ znajduje się choć jeden plik
 * .woff2 (sprawdza vmaster_has_local_fonts() w inc/assets.php). Bez nich motyw
 * używa stosów systemowych i działa bez jednego dodatkowego requestu.
 *
 * CZTERY ROLE, CZTERY GŁOSY
 *
 *   display — TYTUŁY. Wąski, ciężki grotesk, kapitaliki, ujemne światło.
 *             To on nadaje stronie charakter. Fallback szuka najpierw krojów
 *             zwężonych (Archivo Narrow, Roboto Condensed, Arial Narrow), bo
 *             one dają „prasowy” nagłówek; dopiero potem Inter.
 *   text    — interfejs i treść ciągła.
 *   dek     — standfirst, lead karty, cytat. Szeryf w tej jednej roli jest
 *             podpisem redakcyjnym. Stos systemowy: Charter → Sitka → Georgia.
 *   mono    — dane liczbowe, wersje, daty, kod.
 *
 * Rozdzielenie ról to sedno projektu. Jeden krój na wszystkim (typowo Inter)
 * jest jednym z najsilniejszych sygnałów, że układ powstał automatycznie.
 *
 * DLACZEGO SELF-HOSTING, A NIE GOOGLE FONTS
 *   1. RODO — wywołanie fonts.googleapis.com przesyła IP użytkownika do
 *      Google. Wyrok LG München I (3 O 17493/20) uznał to za naruszenie.
 *   2. Wydajność — obce DNS + TLS, a cache jest partycjonowany per domena,
 *      więc „wspólny cache CDN” nie istnieje od 2020 r.
 *   3. Stabilność — zero zależności od zewnętrznego hosta.
 *
 * === INSTRUKCJA ===
 *
 * Krój tytułów (opcjonalny, ale to on robi największą różnicę):
 *   Pobierz wąski, ciężki grotesk na licencji otwartej, np.
 *     Archivo Narrow    → https://fonts.google.com/specimen/Archivo+Narrow
 *     Oswald            → https://fonts.google.com/specimen/Oswald
 *     Anton             → https://fonts.google.com/specimen/Anton
 *   Zapisz jako:  assets/fonts/display.woff2
 *
 * Interfejs i kod (opcjonalne):
 *     Inter             → https://github.com/rsms/inter/releases
 *       zapisz jako:  assets/fonts/inter-variable.woff2
 *     JetBrains Mono    → https://github.com/JetBrains/JetBrainsMono/releases
 *       zapisz jako:  assets/fonts/jetbrains-mono-variable.woff2
 *
 * Wszystkie wymienione kroje są na SIL Open Font License 1.1 — użycie
 * komercyjne dozwolone. Motyw sam wykryje pliki i doda preload dla display
 * oraz Inter. Nic nie trzeba zmieniać w kodzie.
 *
 * Subsetting (zalecany): glyphhanger / pyftsubset z zakresem latin +
 * latin-ext. Bez latin-ext znikną ą ć ę ł ń ó ś ź ż.
 */

/* --------------------------------------------------------------------------
   Krój tytułów
   -------------------------------------------------------------------------- */

@font-face {
	font-family: "VMaster Display";
	font-style: normal;
	/* Zakres wag: obsługuje zarówno font zmienny, jak i statyczny bold. */
	font-weight: 400 900;
	font-display: swap;
	src: url("../fonts/display.woff2") format("woff2 supports variations"),
		url("../fonts/display.woff2") format("woff2-variations"),
		url("../fonts/display.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0100-017F, U+0180-024F, U+2000-206F,
		U+20AC, U+2122, U+FEFF, U+FFFD;
}

/* --------------------------------------------------------------------------
   Inter — interfejs i treść
   -------------------------------------------------------------------------- */

@font-face {
	font-family: "Inter var";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/inter-variable.woff2") format("woff2 supports variations"),
		url("../fonts/inter-variable.woff2") format("woff2-variations");
	unicode-range: U+0000-00FF, U+0100-017F, U+0180-024F, U+0259, U+1E00-1EFF,
		U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
		U+FEFF, U+FFFD;
	/* Metryki zbliżone do fallbacku — ogranicza przeskok layoutu (CLS). */
	ascent-override: 90%;
	descent-override: 22%;
	line-gap-override: 0%;
}

/* --------------------------------------------------------------------------
   JetBrains Mono — dane i kod
   Wyraźnie rozróżnia 0/O oraz 1/l/I, co ma znaczenie przy przepisywaniu
   poleceń z artykułu do konsoli.
   -------------------------------------------------------------------------- */

@font-face {
	font-family: "JetBrains Mono var";
	font-style: normal;
	font-weight: 100 800;
	font-display: swap;
	src: url("../fonts/jetbrains-mono-variable.woff2") format("woff2 supports variations"),
		url("../fonts/jetbrains-mono-variable.woff2") format("woff2-variations");
	unicode-range: U+0000-00FF, U+0100-017F, U+2000-206F, U+2190-21BB, U+2500-257F;
}

/* --------------------------------------------------------------------------
   Ustawienia OpenType
   -------------------------------------------------------------------------- */

body {
	font-kerning: normal;
	font-variant-ligatures: common-ligatures;
	/* cv05 — pojedyncza kreska w „l”, mniejsze ryzyko pomyłki z „1” */
	font-feature-settings: "cv05" 1, "calt" 1;
}

/* Kod i etykiety: ligatury programistyczne WYŁĄCZONE — złączone „=>” bywa
   nieczytelne, a polecenia z instrukcji VMware przepisuje się znak po znaku.
   zero 1 — zero z kreską, żeby nie pomylić 0 z O w identyfikatorach UUID. */
code,
pre,
kbd,
samp,
.vm-code,
.vm-meta,
.vm-updates__date,
.vm-lab__fact dd,
.vm-breadcrumbs__list,
.vm-card__foot,
.vm-cover__meta,
.vm-hero__meta {
	font-variant-ligatures: none;
	font-feature-settings: "calt" 0, "liga" 0, "zero" 1;
}

/* Liczby o stałej szerokości wszędzie, gdzie porównuje się je w kolumnie. */
.vm-prose table,
.vm-meta,
.vm-card__foot,
.vm-updates__date,
.vm-pagination,
.vm-lab__fact dd,
.vm-hero__meta,
.vm-cover__meta {
	font-variant-numeric: tabular-nums;
}
