/* WEAVRA identity tokens. The only place colours and type live. Dark by default, light via data-theme="light" on <html>. */
:root{
  --bg:#000;
  --ink:#fff;
  --mute:#8c8c8c;
  --line:#262626;
  --card:#141414;
  --acc:#87E64B;
  --accink:#000;
  --btn:#fff;
  --btnink:#000;
  --font:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --label-size:10px;
  --label-track:.22em;
  --title-track:-.02em;
  --h1:44px;
  --giant:72px;
  --btn-h:52px;
  --gutter:16px;
  --maxw:1440px;
  --radius:0;
  color-scheme:dark;
}
:root[data-theme="light"]{
  --bg:#fff;
  --ink:#000;
  --mute:#808080; /* audit 2026-09-20: #8c8c8c measured 2.95:1 on the off white #F2F0EB and 2.8:1 on the #f2f2f2 card; #808080 measures 3.47:1 and 3.53:1 */
  --line:#e6e6e6;
  --card:#f2f2f2;
  --btn:#000;
  --btnink:#fff;
  color-scheme:light;
}

/* Home and marketing pages (site.css): the sections alternate a near absolute black and an off white in BOTH themes,
   so their inks and mutes are fixed here, not by the theme. k = on black, w = on off white. */
:root{
  --k-bg:#000;
  --k-ink:#F2F0EB;
  --k-mute:#8c8c8c;   /* 6.3:1 on black */
  --k-line:#262626;
  --k-card:#141414;
  --w-bg:#F2F0EB;
  --w-ink:#060606;
  --w-mute:#808080;   /* 3.47:1 on the off white */
  --w-card:#e6e6e6;
}

/* A disabled product button keeps a readable face (never an opacity, audit 2026-09-20: white on #a5a5a5 measured 2.46:1). */
:root{--btn-off-bg:var(--card);--btn-off-ink:var(--mute);--btn-off-line:var(--line)}

/* iPhone safe areas (Sarah, 2026-09-20: the app sat under the clock in the native shell). */
:root{--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px)}
.top,.nav{padding-top:var(--sat)}
.menu,.onb,#intro{padding-top:var(--sat);padding-bottom:var(--sab)}
.menu{box-sizing:border-box}
.selbar,.bar{padding-bottom:calc(12px + var(--sab))}
