/* typography.css — type system */

body {
	font-family: var(--v-font-body);
	font-size: var(--v-body);
	line-height: 1.65;
	font-weight: 400;
	letter-spacing: -0.005em;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--v-font-display);
	color: var(--v-text);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.035em;
}

h1 { font-size: var(--v-h1); font-weight: 600; }
h2 { font-size: var(--v-h2); }
h3 { font-size: var(--v-h3); }
h4 { font-size: var(--v-h4); }

p {
	font-size: var(--v-body);
	color: var(--v-text-dim);
	line-height: 1.7;
}

.lead {
	font-size: clamp(1.1rem, 1.35vw, 1.35rem);
	line-height: 1.6;
	color: var(--v-text-dim);
	max-width: 60ch;
}

.small { font-size: var(--v-small); }
.micro { font-size: var(--v-micro); }
.mono { font-family: var(--v-font-mono); font-weight: 500; letter-spacing: -0.01em; }

.eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	font-family: var(--v-font-mono);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--v-primary);
	margin-bottom: var(--v-space-3);
}

.eyebrow::before {
	content: "";
	display: inline-block;
	width: 28px;
	height: 1px;
	background: currentColor;
	opacity: 0.7;
}

.eyebrow--center {
	margin-inline: auto;
	justify-content: center;
}

.text-primary { color: var(--v-primary); }
.text-accent { color: var(--v-accent); }
.text-muted { color: var(--v-muted); }
.text-dim { color: var(--v-text-dim); }

.section-title {
	font-size: var(--v-h2);
	font-weight: 600;
	line-height: 1.04;
	letter-spacing: -0.04em;
	margin-bottom: var(--v-space-3);
}

.section-title em {
	font-style: normal;
	color: var(--v-primary);
}

.section-title .accent {
	color: var(--v-primary);
}

.display {
	font-family: var(--v-font-display);
	font-weight: 600;
	line-height: 0.95;
	letter-spacing: -0.045em;
}

/* Hero supersize headline */
.hero-headline {
	font-family: var(--v-font-display);
	font-weight: 500;
	font-size: clamp(3rem, 9.5vw, 8rem);
	line-height: 0.92;
	letter-spacing: -0.05em;
	text-transform: none;
}

.hero-headline .word {
	display: inline-block;
	white-space: nowrap;
}

.hero-headline .char {
	display: inline-block;
	will-change: transform, opacity;
}

/* Stat numbers */
.stat-number {
	font-family: var(--v-font-display);
	font-weight: 600;
	font-size: clamp(2.5rem, 4.5vw, 4rem);
	line-height: 1;
	letter-spacing: -0.04em;
}

.stat-label {
	font-family: var(--v-font-mono);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--v-muted);
}

::placeholder {
	color: var(--v-faint);
	opacity: 1;
}
