/**
 * Press Midnight design tokens.
 *
 * Every colour, size, radius and duration used anywhere in the theme is
 * declared here. Nothing downstream hard codes a value.
 */

/* ---------- Faces ---------- */

@font-face {
	font-family: "Space Grotesk";
	font-style: normal;
	font-weight: 500 700;
	font-display: swap;
	src: url("../fonts/space-grotesk-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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Space Grotesk";
	font-style: normal;
	font-weight: 500 700;
	font-display: swap;
	src: url("../fonts/space-grotesk-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: "Manrope";
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url("../fonts/manrope-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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Manrope";
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url("../fonts/manrope-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;
}

:root {
	/* ---------- Colour ---------- */
	--bg: #070b1e;
	--surface: #101a3d;
	--surface-alt: #0b1230;
	--surface-hi: #16224b;
	--ink: #eceffb;
	--ink-muted: #98a3c9;
	--ink-faint: #808dbb;
	--accent: #19d4f0;
	--accent-ink: #04122b;
	--accent-soft: rgba(25, 212, 240, 0.14);
	--magenta: #f2359d;
	--blue: #2b7ff0;
	--yellow: #ffd447;
	--border: #222e5c;
	--border-soft: rgba(34, 46, 92, 0.6);

	/* Ink flow: cyan to electric blue to magenta, the C and M of the process
	   set bridged by the brand's own blue. Reserved for hero washes, section
	   edges, the process spine and 2px rules. Never a button fill, never a card
	   background. */
	--grad-ink: linear-gradient(118deg, #19d4f0 0%, #2b7ff0 48%, #f2359d 100%);
	--grad-deep: linear-gradient(180deg, #0b1230 0%, #070b1e 100%);

	/* ---------- Type ---------- */
	--font-display: "Space Grotesk", "Segoe UI", system-ui, sans-serif;
	--font-body: "Manrope", "Segoe UI", system-ui, sans-serif;

	--fs-display: clamp(2.5rem, 1.15rem + 4.3vw, 4rem);
	--fs-h1: clamp(2.2rem, 1.45rem + 3.3vw, 3.9rem);
	--fs-h2: clamp(1.85rem, 1.3rem + 2.3vw, 2.95rem);
	--fs-h3: clamp(1.2rem, 1.05rem + 0.75vw, 1.55rem);
	--fs-lead: clamp(1.05rem, 1rem + 0.4vw, 1.25rem);
	--fs-body: clamp(1rem, 0.97rem + 0.15vw, 1.0625rem);
	--fs-small: 0.9rem;
	--fs-kicker: 0.8125rem;

	--lh-display: 1.02;
	--lh-heading: 1.1;
	--lh-title: 1.22;
	--lh-body: 1.65;
	--measure: 64ch;

	/* ---------- Space. Density 0.35, so the scale runs generous. ---------- */
	--sp-xs: 8px;
	--sp-sm: 14px;
	--sp-md: 24px;
	--sp-lg: 48px;
	--sp-xl: 88px;
	--sp-section: clamp(72px, 8vw, 128px);
	--gutter: clamp(20px, 4vw, 40px);
	--container: 1280px;

	/* ---------- Shape. One scale, held everywhere. ---------- */
	--r-sm: 10px;
	--r-md: 18px;
	--r-lg: 28px;
	--r-pill: 999px;

	/* ---------- Depth. Shadows are tinted to the ground, never black. ---------- */
	--shadow-sm: 0 2px 8px rgba(4, 8, 26, 0.4);
	--shadow-md: 0 18px 40px -18px rgba(4, 8, 26, 0.85);
	--shadow-lg: 0 40px 80px -32px rgba(4, 8, 26, 0.95);
	--ring: 0 0 0 2px var(--accent);

	/* ---------- Motion. Dial 0.55: present, never theatrical. ---------- */
	--ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--t-fast: 160ms;
	--t-base: 320ms;
	--t-slow: 620ms;

	--header-h: 76px;
}

@media (prefers-reduced-motion: reduce) {
	:root {
		--t-fast: 1ms;
		--t-base: 1ms;
		--t-slow: 1ms;
	}
}
