/**
 * Shared type layer for the three front-end surfaces.
 *
 * Two self-hosted faces, subset to the glyphs we actually render:
 *
 *   Anton          8.6 KB  display figures, section titles, movie names
 *   JetBrains Mono 8.9 KB  every number in every table
 *
 * Body and UI text deliberately stays on the system stack. Inter was measured
 * at 35 KB subset — two thirds of the total font cost for the least visible
 * gain, on a page that shipped zero webfonts before this. The plugin already
 * rendered its UI text in this same stack, so nothing there changes and, more
 * usefully, nothing there ever swaps: the FOUT is confined to headings and
 * figures.
 *
 * Why a separate file rather than three copies of @font-face: the archive, the
 * movie hub and the daily article all need these faces, and a browser must not
 * be told to fetch the same woff2 under three different rules. Each surface
 * stylesheet still owns its own colour tokens, as it does today.
 *
 * AMP note: daily articles are AMP (transitional, tt_daily_update is in
 * supported_post_types), so this file has to survive being inlined into
 * <style amp-custom> — no @import, no !important, and the @font-face src stays
 * a plain same-origin URL, which AMP permits.
 */

@font-face {
	font-family: 'TT Display';
	font-style: normal;
	font-weight: 400;
	/* swap, not optional: the hero figure is the point of the page, and we would
	   rather it arrive late than never render in Anton at all. */
	font-display: swap;
	src: url('../fonts/anton-latin.woff2') format('woff2');
	/* Latin-1 kept whole. This face sets film and city names, which are not a
	   closed set — trimming to ASCII would drop a glyph the moment a title
	   carries an accent. */
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2013-2014,
		U+2018-201D, U+2026, U+20B9, U+2122, U+25B2, U+25BC;
}

@font-face {
	font-family: 'TT Mono';
	font-style: normal;
	/* Variable weight axis — one file covers every weight the tables use. */
	font-weight: 100 800;
	font-display: swap;
	src: url('../fonts/jetbrains-mono-latin.woff2') format('woff2');
	/* Numbers, currency, and the handful of fixed labels ("Day 4", "running",
	   "Upd 18 Aug 2026"). Never arbitrary user text, which is what made a 71%
	   subset safe here and not on the display face. */
	unicode-range: U+0020-007E, U+00A0, U+00D7, U+2013-2014, U+2018-201D,
		U+2026, U+20B9, U+25B2, U+25BC;
}

:root {
	--tt-display: 'TT Display', 'Anton', Impact, 'Haettenschweiler', sans-serif;
	--tt-mono: 'TT Mono', ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;
	/* The stack the plugin already renders in on production. Named here so the
	   three surface stylesheets stop each declaring their own copy of it. */
	--tt-ui: -apple-system, 'system-ui', 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
}

/* Tabular figures everywhere a number can end up in a column. Anton has no
   tnum feature and does not need one — it is only ever used at display sizes
   where nothing has to line up vertically. */
.tt-ac-table,
.tt-ac-daily-stat-value,
.tt-ac-highlight-value {
	font-variant-numeric: tabular-nums;
}
