/* Moved out of src/client/common/styles/GlobalStyle.tsx: that file is an
   Emotion <Global> block rendered by the React island, so these faces could
   not be requested until the JS bundle downloaded and hydrated. As a static
   stylesheet linked from Layout.astro, the browser can request them as soon
   as it parses <head>, on every route, independent of hydration.

   font-display: swap avoids a blocking FOIT while the file downloads. */

/* Regular */
@font-face {
	font-family: 'Leitura';
	src: url('/fonts/leitura-italic.woff2') format('woff2');
	font-style: italic;
	font-weight: 400;
	font-display: swap;
}

/* Regular */
@font-face {
	font-family: 'Olivetta';
	src: url('/fonts/olivetta-regular.woff2') format('woff2');
	font-style: normal;
	font-weight: 400;
	font-display: swap;
}

/* Semibold — theme.ts's `subtitleE`/`subtitleF` Text variants request
   fontWeight: '600' ("// Semibold"), but no 600 face was ever declared, so
   the browser synthesized/faux-bolded it. The asset already ships in
   public/fonts/, just unused; this wires it up. */
@font-face {
	font-family: 'Olivetta';
	src: url('/fonts/olivetta-semi-bold.woff2') format('woff2');
	font-style: normal;
	font-weight: 600;
	font-display: swap;
}

/* Bold */
@font-face {
	font-family: 'Olivetta';
	src: url('/fonts/olivetta-bold.woff2') format('woff2');
	font-style: normal;
	font-weight: 700;
	font-display: swap;
}

/* Black */
@font-face {
	font-family: 'Olivetta';
	src: url('/fonts/olivetta-black.woff2') format('woff2');
	font-style: normal;
	font-weight: 900;
	font-display: swap;
}
