:root{
--font-display:"Bricolage Grotesque","Plus Jakarta Sans",system-ui,sans-serif;
--font-ui:"Plus Jakarta Sans",system-ui,-apple-system,sans-serif;
--font-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;

/* Type scale — mobile-first, outdoor legible. Nothing below 13px ships. */
--fs-hero:44px;   --lh-hero:0.94; /* @kind other */
--fs-d1:34px;     --lh-d1:1.02; /* @kind other */
--fs-d2:27px;     --lh-d2:1.08; /* @kind other */
--fs-h1:22px;     --lh-h1:1.18; /* @kind other */
--fs-h2:18px;     --lh-h2:1.25; /* @kind other */
--fs-h3:16px;     --lh-h3:1.3; /* @kind other */
--fs-body:15px;   --lh-body:1.45; /* @kind other */
--fs-body-lg:17px;--lh-body-lg:1.42; /* @kind other */
--fs-label:13px;  --lh-label:1.3; /* @kind other */
--fs-micro:11px;  --lh-micro:1.2; /* @kind other */
/* Data readouts (distance, time, GPS age) use mono at these sizes */
--fs-metric-xl:40px;--fs-metric:22px;--fs-metric-sm:14px;

--fw-regular:400; /* @kind other */
--fw-medium:500; /* @kind other */
--fw-semibold:600; /* @kind other */
--fw-bold:700; /* @kind other */
--fw-black:800; /* @kind other */
--ls-hero:-.03em;--ls-display:-.02em;--ls-tight:-.01em;--ls-normal:0em;--ls-caps:.10em;--ls-caps-wide:.16em; /* @kind other */

/* Composed semantic roles */
--type-hero:var(--fw-black) var(--fs-hero)/var(--lh-hero) var(--font-display);
--type-display:var(--fw-bold) var(--fs-d1)/var(--lh-d1) var(--font-display);
--type-title:var(--fw-bold) var(--fs-h1)/var(--lh-h1) var(--font-display);
--type-heading:var(--fw-bold) var(--fs-h2)/var(--lh-h2) var(--font-ui);
--type-body:var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-ui);
--type-body-strong:var(--fw-semibold) var(--fs-body)/var(--lh-body) var(--font-ui);
--type-label:var(--fw-semibold) var(--fs-label)/var(--lh-label) var(--font-ui);
--type-eyebrow:var(--fw-bold) var(--fs-micro)/var(--lh-micro) var(--font-ui);
--type-metric:var(--fw-semibold) var(--fs-metric)/1 var(--font-mono);
}
