/* Tokens v4. Colour values of spec-cro section 1 unchanged; v4 adds the dark hero palette.
   Contrasts (WCAG 2.1, calculated by hand - CEO to measure, CR-06):
   - #ffffff on --c-ink #0b0b0c ............ ~19.4:1
   - --c-on-dark-2 #c7c7cc on #0b0b0c ...... ~11.6:1 (only on solid ink, never over the image)
   - #ffffff over image under --c-veil (black .65): worst case (white pixel) -> #595959 -> 7.0:1
   - --c-accent #0f766e on #ffffff 5.47:1; white on accent 5.47:1; accent vs ink (button edge) ~3.5:1 (>=3 non-text)
   - --c-accent-soft #ccfbf1: text 15.3:1, accent 4.8:1 (unchanged from v3)
   Single accent: teal #0f766e. No BMW/M colours. */
:root{
 --c-bg:#ffffff; --c-surface:#f4f4f5; --c-text:#1a1a1a; --c-text-2:#595959;
 --c-accent:#0f766e; --c-accent-hover:#115e59; --c-border-ui:#8a8a8a; --c-border-deco:#e4e4e7;
 --c-info-bg:#f0fdfa; --c-warn:#b45309; --c-warn-bg:#fff4e5; --c-err:#b91c1c; --c-err-bg:#fdecec;
 --c-footer-bg:#1a1a1a; --c-footer-text:#f4f4f5; --c-focus:#0f766e;
 --c-accent-soft:#ccfbf1;
 --c-ink:#0b0b0c; --c-on-dark:#ffffff; --c-on-dark-2:#c7c7cc; --c-veil:rgba(0,0,0,.65); --c-focus-dark:#ffffff;
 --ff-sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
 --ff-mono:ui-monospace,"SF Mono",Consolas,monospace;
 /* Display: system fonts with thin weights (decision v4/M3). No font files shipped; OFL webfont pending. */
 --ff-display:"Segoe UI Variable Display","Segoe UI","Helvetica Neue","Roboto",system-ui,sans-serif;
 --fw-thin:200; --fw-light:300; --fw-mid:500;
 --fs-sm:.875rem; --fs-base:1.0625rem; /* 17px mobile, 18px from 768 */
 --fs-lg:1.25rem; --fs-xl:clamp(1.75rem,1.3rem + 1.6vw,2.5rem); --fs-h1:clamp(1.5rem,1.2rem + 1.2vw,2.125rem);
 --fs-code:clamp(4rem,2rem + 9vw,10rem); --fs-spec:clamp(2rem,1.4rem + 2.4vw,3.5rem);
 --lh-body:1.6; --lh-head:1.1; --measure:66ch;
 --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px; --s-6:32px; --s-7:48px; --s-8:64px; --s-9:96px;
 --section-gap:var(--s-8); /* 64px mobile, 96px desktop */
 --r-1:2px; --r-2:2px; --r-3:2px; --tap:48px; --container:76rem; --subnav-h:52px;
 --ease-out:cubic-bezier(0.23,1,0.32,1); --ease-in-out:cubic-bezier(0.77,0,0.175,1);
 --d-press:140ms; --d-hover:200ms; --d-enter:280ms;
}
/* breakpoints min-width: 360 · 768 · 1366 (base 320) */
@media (min-width:768px){ :root{ --fs-base:1.125rem; --section-gap:var(--s-9); } }
