/* ============================================================
   FLIBBR TYPOGRAPHY
   12 type-role utility classes lifted from canonicals (locked
   from Stage 2 typography pass). Used across every surface.
   Tokens (--serif, --sans, --ink*, --accent, --measure) are
   defined in tokens.css.
   ============================================================ */

.t-display-hero {
	font-family: var(--serif); font-weight: 300;
	font-size: clamp(36px, 5vw, 64px);
	line-height: 1.04; letter-spacing: -0.018em; color: var(--ink);
	text-wrap: balance;
}
.t-display-hero em { font-style: italic; font-weight: 400; }

.t-display-1 {
	font-family: var(--serif); font-weight: 400;
	font-size: clamp(32px, 4vw, 52px);
	line-height: 1.1; letter-spacing: -0.012em; color: var(--ink);
}
.t-display-1 em { font-style: italic; font-weight: 400; }

.t-display-2 {
	font-family: var(--serif); font-weight: 400;
	font-size: clamp(26px, 2.8vw, 36px);
	line-height: 1.18; letter-spacing: -0.008em; color: var(--ink);
}
.t-display-2 em { font-style: italic; }

.t-h1 {
	font-family: var(--serif); font-weight: 600;
	font-size: clamp(22px, 1.9vw, 26px);
	line-height: 1.25; letter-spacing: -0.005em; color: var(--ink);
}
.t-h1 em { font-style: italic; font-weight: 400; }

.t-h2 {
	font-family: var(--serif); font-weight: 600;
	font-size: clamp(19px, 1.4vw, 21px);
	line-height: 1.3; color: var(--ink);
}

.t-h3 {
	font-family: var(--sans); font-weight: 600;
	font-size: 14px; line-height: 1.3;
	letter-spacing: 0.03em; color: var(--ink);
}

.t-body {
	font-family: var(--serif); font-weight: 400;
	font-size: 18px; line-height: 1.65;
	color: var(--ink-soft);
	max-width: var(--measure);
}
.t-body em { font-style: italic; }
.t-body strong { font-weight: 600; color: var(--ink); }

.t-body-small {
	font-family: var(--serif); font-weight: 400;
	font-size: 15px; line-height: 1.55;
	color: var(--ink-quiet);
}
.t-body-small em { font-style: italic; }

.t-kicker {
	font-family: var(--sans); font-weight: 600;
	font-size: 12px; line-height: 1;
	letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--accent);
}

.t-meta {
	font-family: var(--sans); font-weight: 400;
	font-size: 13px; line-height: 1.4;
	color: var(--ink-quiet);
}
.t-meta strong { font-weight: 500; color: var(--ink-soft); }

.t-ui {
	font-family: var(--sans); font-weight: 500;
	font-size: 14px; line-height: 1.3;
	color: var(--ink);
}

.t-fine {
	font-family: var(--sans); font-weight: 400;
	font-size: 12px; line-height: 1.4;
	color: var(--ink-quiet);
}
