/* Type scale. Display tiers are tight & optically negative-tracked; body tiers are
   loose-leading because agents emit long-form prose. Never set generated text below 15px. */
:root{
--fs-display-2xl:72px; /* @kind font */
--lh-display-2xl:0.96; /* @kind font */
--ls-display-2xl:-0.032em; /* @kind font */
--fs-display-xl:56px; /* @kind font */
--lh-display-xl:1.0; /* @kind font */
--ls-display-xl:-0.028em; /* @kind font */
--fs-display-lg:44px; /* @kind font */
--lh-display-lg:1.06; /* @kind font */
--ls-display-lg:-0.024em; /* @kind font */
--fs-title-xl:34px; /* @kind font */
--lh-title-xl:1.14; /* @kind font */
--ls-title-xl:-0.02em; /* @kind font */
--fs-title-lg:28px; /* @kind font */
--lh-title-lg:1.2; /* @kind font */
--ls-title-lg:-0.018em; /* @kind font */
--fs-title-md:22px; /* @kind font */
--lh-title-md:1.28; /* @kind font */
--ls-title-md:-0.014em; /* @kind font */
--fs-title-sm:18px; /* @kind font */
--lh-title-sm:1.36; /* @kind font */
--ls-title-sm:-0.01em; /* @kind font */
--fs-body-lg:17px; /* @kind font */
--lh-body-lg:1.65; /* @kind font */
--ls-body-lg:-0.004em; /* @kind font */
--fs-body-md:15px; /* @kind font */
--lh-body-md:1.6; /* @kind font */
--ls-body-md:0em; /* @kind font */
--fs-body-sm:13.5px; /* @kind font */
--lh-body-sm:1.55; /* @kind font */
--ls-body-sm:0em; /* @kind font */
--fs-caption:12px; /* @kind font */
--lh-caption:1.45; /* @kind font */
--ls-caption:0.005em; /* @kind font */
--fs-micro:11px; /* @kind font */
--lh-micro:1.4; /* @kind font */
--ls-micro:0.06em; /* @kind font */
--fs-code:13px; /* @kind font */
--lh-code:1.62; /* @kind font */
--ls-code:0em; /* @kind font */

--fw-regular:400; /* @kind font */
--fw-medium:500; /* @kind font */
--fw-semibold:600; /* @kind font */
--fw-bold:700; /* @kind font */

/* Semantic roles */
--text-hero:var(--fs-display-xl);
--text-section:var(--fs-title-xl);
--text-body:var(--fs-body-md);
--text-generated:var(--fs-body-lg);   /* long-form agent output reads one step up */
--text-label:var(--fs-body-sm);
--text-eyebrow:var(--fs-micro);

/* Measure: generated prose is capped so streaming lines stay scannable */
--measure-prose:66ch; /* @kind spacing */
--measure-generated:72ch; /* @kind spacing */
--measure-narrow:46ch; /* @kind spacing */
}
.v-eyebrow{font:var(--fw-semibold) var(--fs-micro)/var(--lh-micro) var(--font-sans);letter-spacing:var(--ls-micro);text-transform:uppercase;color:var(--text-tertiary)}
.v-display{font:var(--fw-regular) var(--fs-display-xl)/var(--lh-display-xl) var(--font-display);letter-spacing:var(--ls-display-xl);color:var(--text-primary)}
.v-title{font:var(--fw-semibold) var(--fs-title-lg)/var(--lh-title-lg) var(--font-display);letter-spacing:var(--ls-title-lg);color:var(--text-primary)}
.v-body{font:var(--fw-regular) var(--fs-body-md)/var(--lh-body-md) var(--font-body);color:var(--text-secondary)}
.v-generated{font:var(--fw-regular) var(--fs-body-lg)/var(--lh-body-lg) var(--font-body);color:var(--text-primary);max-width:var(--measure-generated);text-wrap:pretty}
.v-code{font:var(--fw-regular) var(--fs-code)/var(--lh-code) var(--font-mono)}
