/* Tier 1 · typography primitives + 15 fluid composite styles. */
:root{
--font-family-display:Manrope,'Noto Sans',system-ui,sans-serif;
--font-family-body:Inter,'Noto Sans',system-ui,-apple-system,sans-serif;
--font-family-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,monospace;
--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;
--type-display-xl-size:clamp(2.5rem,1.6rem + 3.6vw,4.5rem); /* @kind spacing */--type-display-xl-line:1.02;--type-display-xl-tracking:-0.03em;--type-display-xl-weight:800;--type-display-xl-family:var(--font-family-display);
--type-display-lg-size:clamp(2rem,1.4rem + 2.6vw,3.25rem); /* @kind spacing */--type-display-lg-line:1.06;--type-display-lg-tracking:-0.028em;--type-display-lg-weight:800;--type-display-lg-family:var(--font-family-display);
--type-h1-size:clamp(1.75rem,1.3rem + 1.8vw,2.5rem); /* @kind spacing */--type-h1-line:1.12;--type-h1-tracking:-0.024em;--type-h1-weight:800;--type-h1-family:var(--font-family-display);
--type-h2-size:clamp(1.5rem,1.2rem + 1.1vw,2rem); /* @kind spacing */--type-h2-line:1.18;--type-h2-tracking:-0.022em;--type-h2-weight:700;--type-h2-family:var(--font-family-display);
--type-h3-size:clamp(1.25rem,1.1rem + 0.6vw,1.5rem); /* @kind spacing */--type-h3-line:1.26;--type-h3-tracking:-0.018em;--type-h3-weight:700;--type-h3-family:var(--font-family-display);
--type-h4-size:1.125rem;--type-h4-line:1.34;--type-h4-tracking:-0.014em;--type-h4-weight:700;--type-h4-family:var(--font-family-display);
--type-body-lg-size:1.0625rem;--type-body-lg-line:1.62;--type-body-lg-tracking:0;--type-body-lg-weight:400;--type-body-lg-family:var(--font-family-body);
--type-body-size:0.9375rem;--type-body-line:1.62;--type-body-tracking:0;--type-body-weight:400;--type-body-family:var(--font-family-body);
--type-body-sm-size:0.875rem;--type-body-sm-line:1.56;--type-body-sm-tracking:0;--type-body-sm-weight:400;--type-body-sm-family:var(--font-family-body);
--type-label-size:0.8125rem;--type-label-line:1.4;--type-label-tracking:0.005em;--type-label-weight:600;--type-label-family:var(--font-family-body);
--type-caption-size:0.75rem;--type-caption-line:1.45;--type-caption-tracking:0.01em;--type-caption-weight:400;--type-caption-family:var(--font-family-body);
--type-overline-size:0.6875rem;--type-overline-line:1.3;--type-overline-tracking:0.14em;--type-overline-weight:600;--type-overline-family:var(--font-family-body);
--type-data-lg-size:2rem;--type-data-lg-line:1.1;--type-data-lg-tracking:-0.02em;--type-data-lg-weight:800;--type-data-lg-family:var(--font-family-display);
--type-data-size:0.875rem;--type-data-line:1.45;--type-data-tracking:0;--type-data-weight:500;--type-data-family:var(--font-family-mono);
--type-code-size:0.8125rem;--type-code-line:1.55;--type-code-tracking:0;--type-code-weight:400;--type-code-family:var(--font-family-mono);
}
.type-display-xl{font-family:var(--type-display-xl-family);font-size:var(--type-display-xl-size);line-height:var(--type-display-xl-line);letter-spacing:var(--type-display-xl-tracking);font-weight:var(--type-display-xl-weight)}
.type-display-lg{font-family:var(--type-display-lg-family);font-size:var(--type-display-lg-size);line-height:var(--type-display-lg-line);letter-spacing:var(--type-display-lg-tracking);font-weight:var(--type-display-lg-weight)}
.type-h1{font-family:var(--type-h1-family);font-size:var(--type-h1-size);line-height:var(--type-h1-line);letter-spacing:var(--type-h1-tracking);font-weight:var(--type-h1-weight)}
.type-h2{font-family:var(--type-h2-family);font-size:var(--type-h2-size);line-height:var(--type-h2-line);letter-spacing:var(--type-h2-tracking);font-weight:var(--type-h2-weight)}
.type-h3{font-family:var(--type-h3-family);font-size:var(--type-h3-size);line-height:var(--type-h3-line);letter-spacing:var(--type-h3-tracking);font-weight:var(--type-h3-weight)}
.type-h4{font-family:var(--type-h4-family);font-size:var(--type-h4-size);line-height:var(--type-h4-line);letter-spacing:var(--type-h4-tracking);font-weight:var(--type-h4-weight)}
.type-body-lg{font-family:var(--type-body-lg-family);font-size:var(--type-body-lg-size);line-height:var(--type-body-lg-line);letter-spacing:var(--type-body-lg-tracking);font-weight:var(--type-body-lg-weight)}
.type-body{font-family:var(--type-body-family);font-size:var(--type-body-size);line-height:var(--type-body-line);letter-spacing:var(--type-body-tracking);font-weight:var(--type-body-weight)}
.type-body-sm{font-family:var(--type-body-sm-family);font-size:var(--type-body-sm-size);line-height:var(--type-body-sm-line);letter-spacing:var(--type-body-sm-tracking);font-weight:var(--type-body-sm-weight)}
.type-label{font-family:var(--type-label-family);font-size:var(--type-label-size);line-height:var(--type-label-line);letter-spacing:var(--type-label-tracking);font-weight:var(--type-label-weight)}
.type-caption{font-family:var(--type-caption-family);font-size:var(--type-caption-size);line-height:var(--type-caption-line);letter-spacing:var(--type-caption-tracking);font-weight:var(--type-caption-weight)}
.type-overline{font-family:var(--type-overline-family);font-size:var(--type-overline-size);line-height:var(--type-overline-line);letter-spacing:var(--type-overline-tracking);font-weight:var(--type-overline-weight);text-transform:uppercase}
.type-data-lg{font-family:var(--type-data-lg-family);font-size:var(--type-data-lg-size);line-height:var(--type-data-lg-line);letter-spacing:var(--type-data-lg-tracking);font-weight:var(--type-data-lg-weight);font-variant-numeric:tabular-nums}
.type-data{font-family:var(--type-data-family);font-size:var(--type-data-size);line-height:var(--type-data-line);letter-spacing:var(--type-data-tracking);font-weight:var(--type-data-weight);font-variant-numeric:tabular-nums}
.type-code{font-family:var(--type-code-family);font-size:var(--type-code-size);line-height:var(--type-code-line);letter-spacing:var(--type-code-tracking);font-weight:var(--type-code-weight)}
