/* COSMOLABE — the theme, declared once (docs/brand/COSMOLABE_BRAND.md §2–§4).

   Every platform page links this file, and keeps its own variable names as
   aliases onto these tokens; a white-label page never links it
   (scripts/check_naming.py). A colour on a platform surface is one of these
   tokens or a color-mix() of them — never a new hex (scripts/check_palette.py
   builds its allow-list by parsing this file).

   Dark is written twice because the brand file's one-block version is invalid
   CSS (errata 1): once for an explicit choice, once for the OS preference when
   no choice was made. api/tests/test_brand_assets_served.py fails if the two
   drift apart. */
:root{
  --cl-ground:#F3EDE2; --cl-surface:#FAF6EE; --cl-ink:#1A1416; --cl-muted:#6B5E5F;
  --cl-border:#D9CBB9; --cl-accent:#8A2A2E; --cl-accent-hover:#6E2124; --cl-on-accent:#F3EDE2;
  --cl-success:#2F6F5E; --cl-warning:#8A5D0F; --cl-danger:#B3261E;
  --cl-chart-1:#8A2A2E; --cl-chart-2:#2F6F5E; --cl-chart-3:#8A5D0F;
  --cl-chart-4:#3E4A6B; --cl-chart-5:#B07A6E; --cl-chart-6:#6B5E5F;
  --font-display:"Jost","Futura","Avenir Next","Gill Sans",system-ui,sans-serif;
  --font-body:"Barlow",system-ui,-apple-system,sans-serif;
  --font-mono:"IBM Plex Mono","SF Mono",Menlo,Consolas,monospace;
  --radius-sm:4px; --radius-md:8px;
  color-scheme:light;
}
:root[data-theme="dark"]{
  --cl-ground:#2A1719; --cl-surface:#341D20; --cl-ink:#F3EDE2; --cl-muted:#B8A6A3;
  --cl-border:#4A2C30; --cl-accent:#E0716F; --cl-accent-hover:#EE8C89; --cl-on-accent:#2A1719;
  --cl-success:#7FC7B0; --cl-warning:#E2B24A; --cl-danger:#F28B82;
  --cl-chart-1:#E0716F; --cl-chart-2:#7FC7B0; --cl-chart-3:#E2B24A;
  --cl-chart-4:color-mix(in srgb,#3E4A6B 60%,#F3EDE2); --cl-chart-5:#B07A6E; --cl-chart-6:#B8A6A3;
  color-scheme:dark;
}
/* Derived shades. The brand file sanctions ramps derived from the accent; these
   are those, computed per mode from whichever tokens are in force. Text on the
   tint is ink or muted, never accent: dark accent on it measures 4.47:1 (errata 5). */
:root{
  --cl-accent-tint:color-mix(in srgb,var(--cl-accent) 8%,var(--cl-surface));
  --cl-accent-line:color-mix(in srgb,var(--cl-accent) 35%,var(--cl-border));
  --cl-overlay:color-mix(in srgb,var(--cl-ground) 94%,transparent);
  --cl-shadow:color-mix(in srgb,var(--cl-ink) 12%,transparent);
}

/* Lockups (brand file §4). Clear space around the emblem is a quarter of its
   diameter; the emblem is never below 16px, and below 32px it is the small one. */
.cl-lockup{display:inline-flex;align-items:center;gap:12px;color:var(--cl-ink);text-decoration:none}
.cl-emblem{display:block;flex:none;color:var(--cl-accent)}
.cl-lockup__text{display:flex;flex-direction:column;align-items:flex-start}
.cl-wordmark{font-family:var(--font-display);font-weight:600;letter-spacing:.02em;line-height:1}
.cl-descriptor{font-family:var(--font-mono);font-weight:500;text-transform:uppercase;letter-spacing:.24em;color:var(--cl-muted);line-height:1}
.cl-label{font-family:var(--font-mono);font-weight:500;text-transform:uppercase;letter-spacing:.18em;font-size:11px}
.cl-lockup--horizontal .cl-emblem{width:44px;height:44px}
.cl-lockup--horizontal .cl-wordmark{font-size:26px}
.cl-lockup--horizontal .cl-descriptor{font-size:9px;margin-top:6px}
.cl-lockup--sidebar{gap:9px}
.cl-lockup--sidebar .cl-emblem{width:22px;height:22px}
.cl-lockup--sidebar .cl-wordmark{font-size:15px}
.cl-lockup--stacked{flex-direction:column;gap:16px;text-align:center}
.cl-lockup--stacked .cl-lockup__text{align-items:center}
.cl-lockup--stacked .cl-emblem{width:120px;height:120px}
.cl-lockup--stacked .cl-wordmark{font-size:40px}
.cl-lockup--stacked .cl-descriptor{font-size:11px;margin-top:6px}
