/*
 * FLO — self-hosted fonts (no request leaves the site).
 *
 * Files come from the Fontsource packages (same binaries Google Fonts serves,
 * SIL Open Font License — see assets/fonts/LICENSE-*.txt):
 *
 *   Bricolage Grotesque  variable, axes opsz 12–96 + wght 200–800
 *                        (the "opsz" build; the optical-size axis changes letter
 *                        shapes at display sizes and must be present)
 *   Hanken Grotesk       static 400 / 500 / 600 / 700 / 800
 *
 * Subsets: latin and latin-ext. Noto Sans Khmer lives in khmer.css and is only
 * loaded on pages with Khmer text.
 */

/* Bricolage Grotesque — latin */
@font-face {
	font-family: 'Bricolage Grotesque';
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	src: url('../fonts/bricolage-grotesque-latin-opsz-normal.woff2') format('woff2-variations'),
		url('../fonts/bricolage-grotesque-latin-opsz-normal.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;
}

/* Bricolage Grotesque — latin-ext */
@font-face {
	font-family: 'Bricolage Grotesque';
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	src: url('../fonts/bricolage-grotesque-latin-ext-opsz-normal.woff2') format('woff2-variations'),
		url('../fonts/bricolage-grotesque-latin-ext-opsz-normal.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;
}

/* Hanken Grotesk — latin, 400–800 */
@font-face {
	font-family: 'Hanken Grotesk';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/hanken-grotesk-latin-400-normal.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;
}
@font-face {
	font-family: 'Hanken Grotesk';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('../fonts/hanken-grotesk-latin-500-normal.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;
}
@font-face {
	font-family: 'Hanken Grotesk';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('../fonts/hanken-grotesk-latin-600-normal.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;
}
@font-face {
	font-family: 'Hanken Grotesk';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('../fonts/hanken-grotesk-latin-700-normal.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;
}
@font-face {
	font-family: 'Hanken Grotesk';
	font-style: normal;
	font-weight: 800;
	font-display: swap;
	src: url('../fonts/hanken-grotesk-latin-800-normal.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;
}

/* Hanken Grotesk — latin-ext, 400–800 */
@font-face {
	font-family: 'Hanken Grotesk';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/hanken-grotesk-latin-ext-400-normal.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: 'Hanken Grotesk';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('../fonts/hanken-grotesk-latin-ext-500-normal.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: 'Hanken Grotesk';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('../fonts/hanken-grotesk-latin-ext-600-normal.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: 'Hanken Grotesk';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('../fonts/hanken-grotesk-latin-ext-700-normal.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: 'Hanken Grotesk';
	font-style: normal;
	font-weight: 800;
	font-display: swap;
	src: url('../fonts/hanken-grotesk-latin-ext-800-normal.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;
}

/*
 * Fallback faces (WP-10b, perf-06): until a web font has arrived the text is
 * drawn with a local font scaled to the web font's widths and given its
 * vertical metrics, so the swap does not move the layout. Measured with
 * fontTools on the font files: size-adjust is the advance width of the
 * site's headings / a body paragraph in the web font against the local
 * face; the overrides are hhea ascent and descent over unitsPerEm (Hanken
 * 1000 / 303, Bricolage 930 / 270, no line gap) divided by size-adjust.
 * Georgia Bold stands in for Bricolage, not Arial Bold: the headings are
 * limited in ch, and Georgia's "0" keeps those boxes the same width (ratio
 * 1.02; Arial Bold 0.87 re-wraps them). Georgia is also what the display
 * stack fell back to before. The families go right after the web fonts in
 * the --font-sans and --font-display stacks (tokens.css).
 */
@font-face {
	font-family: 'Hanken Grotesk Fallback';
	font-style: normal;
	font-weight: 100 500;
	src: local('Arial'), local('ArialMT');
	size-adjust: 100.7%;
	ascent-override: 99.31%;
	descent-override: 30.09%;
	line-gap-override: 0%;
}
@font-face {
	font-family: 'Hanken Grotesk Fallback';
	font-style: normal;
	font-weight: 600 900;
	src: local('Arial Bold'), local('Arial-BoldMT');
	size-adjust: 93.5%; /* mixed case wants 95.5, the uppercase menu and eyebrows 91.7: the midpoint */
	ascent-override: 106.95%;
	descent-override: 32.41%;
	line-gap-override: 0%;
}
@font-face {
	font-family: 'Bricolage Grotesque Fallback';
	font-style: normal;
	font-weight: 100 500;
	src: local('Georgia');
	size-adjust: 105.7%;
	ascent-override: 87.98%;
	descent-override: 25.54%;
	line-gap-override: 0%;
}
@font-face {
	font-family: 'Bricolage Grotesque Fallback';
	font-style: normal;
	font-weight: 600 900;
	src: local('Georgia Bold'), local('Georgia-Bold');
	size-adjust: 91.9%;
	ascent-override: 101.19%;
	descent-override: 29.38%;
	line-gap-override: 0%;
}
