/* Pip Design System v3 — tokens. Light only. Source of truth: Claude Design "Pip DS v3"; pip-landing copies this file verbatim (vault SPEC-2026-10-05-pipthebot-rebrand-v3 §5). */
/* Three tiers: primitives → semantic roles → component/shape tokens. Components read ROLES only, never primitives, never hex.
   Token contract: every non-primitive name v2 defined is defined here under the same name; only --state-* and the dark block retired.
   Rules carried by values: marigold is a shape, never text (--accent-text is ink) · no colour ever means price direction or a verdict
   (--figure is ink) · every text role meets its floor on EVERY paper surface (--bg, --bg-sunken, --surface, --surface-hover, --accent-soft). */

:root{
  /* Tier 1 — primitives (v3: ink, paper, marigold; status hues for form states only) */
  --ink-900:#141413; --ink-700:#2b2a27; --ink-600:#4d4b45; --ink-500:#6b6960; --ink-400:#8a877d; /* was #8f8c82: 2.95:1 on paper-200; #8a877d clears 3:1 on every paper tint (controller ruling, 2026-10-05) */
  --ink-300:#a9a69b; --ink-250:#c9c5b8; --ink-200:#d9d5c8; --ink-100:#ece8dc;
  --paper-0:#ffffff; --paper-50:#fbfaf6; --paper-100:#faf8f2; --paper-200:#f3f0e6;
  --marigold-500:#FFB224; --marigold-600:#E89A0C; --marigold-200:#FFE3A8; --marigold-100:#FFF3DA;
  --rust-600:#B3402E; --rust-100:#F8E3DE; --green-700:#2E6B4F; --green-100:#E2F0E8;
  --blue-700:#1E5296; --blue-100:#E3ECF7;
  --marigold-700:#B7790A; --blue-500:#5B86C5; /* v3 additions, data-viz marks ONLY (never text, never a UI fill): 3.65:1 and 3.71:1 on white, so every --viz-* clears WCAG 1.4.11's 3:1 */

  /* Tier 2 — semantic roles (light only) */
  color-scheme:light;
  --bg:var(--paper-0); --bg-sunken:var(--paper-200); --surface:var(--paper-100); --surface-hover:var(--paper-200);
  --surface-inverse:var(--ink-900);
  --border:var(--ink-100); --border-strong:var(--ink-200); --border-control:var(--ink-400); /* hairlines vs control edges (control edges ≥ 3:1 on every paper tint) */
  --outline:var(--ink-900);           /* v3 addition: the 1.5px (--t3-stroke) ink outline — T3 cards, framed product screens, the invite field, secondary buttons */
  --text:var(--ink-900); --text-2:var(--ink-600); --text-3:var(--ink-500);
  --text-4:var(--ink-400);            /* LARGE text only (≥ 24px, or ≥ 19px bold): 3.59:1 on white, 3.15:1 on paper-200. The hero payoff line. */
  --text-inverse:var(--paper-0); --text-inverse-2:var(--ink-250);
  --accent:var(--marigold-500); --accent-hover:var(--marigold-600); --on-accent:var(--ink-900);
  --accent-soft:var(--marigold-100); --accent-text:var(--ink-900);   /* marigold is never text */
  --link:var(--ink-900); --link-hover:var(--ink-700); --link-soft:var(--marigold-100);
  --focus:var(--ink-900); --focus-ring:0 0 0 3px var(--paper-0), 0 0 0 5px var(--ink-900);
  --info:var(--blue-700); --info-soft:var(--blue-100); --positive:var(--green-700); --positive-soft:var(--green-100);
  --critical:var(--rust-600); --critical-soft:var(--rust-100); --figure:var(--ink-900);
  --viz-1:var(--ink-900); --viz-2:var(--marigold-700); --viz-3:var(--ink-400); --viz-4:var(--blue-700); --viz-5:var(--blue-500); --viz-6:var(--ink-600);

  /* ---------- Type ---------- weights used (spec §4.4): Bricolage 400/500/600/800 · Plex Mono 400/600. No Bricolage 700, no Plex 500. */
  --font-display:"Bricolage Grotesque", system-ui, sans-serif;
  --font-ui:"Bricolage Grotesque", system-ui, sans-serif;
  --font-editorial:var(--font-ui);
  --font-figure:"IBM Plex Mono", ui-monospace, monospace;
  --t-display-1:800 clamp(40px,6vw,64px)/1.02 var(--font-display);
  --t-display-2:800 clamp(34px,4.6vw,48px)/1.05 var(--font-display);
  --t-h1:800 36px/1.1 var(--font-display);
  --t-h2:800 28px/1.15 var(--font-display);
  --t-h3:600 22px/1.25 var(--font-display);
  --t-h4:600 18px/1.3 var(--font-ui);
  --t-body-l:400 18px/1.6 var(--font-ui);
  --t-body:400 16px/1.55 var(--font-ui);
  --t-body-s:400 14px/1.5 var(--font-ui);
  --t-label:600 13px/1.3 var(--font-ui);
  --t-caption:400 12px/1.4 var(--font-ui);
  --t-overline:600 11px/1.2 var(--font-ui);
  --t-article:400 19px/1.7 var(--font-ui);
  --t-figure-xl:400 40px/1 var(--font-figure);
  --t-figure-l:400 24px/1.1 var(--font-figure);
  --t-figure-m:400 16px/1.3 var(--font-figure);
  --t-figure-s:400 13px/1.3 var(--font-figure);
  --ls-display:-.04em; --ls-head:-.02em; --ls-figure:-.01em; --ls-overline:.12em;

  /* ---------- Space (strict 4-grid) ---------- */
  --space-0:0; --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px; --space-6:24px;
  --space-8:32px; --space-10:40px; --space-12:48px; --space-16:64px; --space-20:80px; --space-24:96px;
  --section:var(--space-16); --maxw:1120px; --gutter:24px;

  /* ---------- Radius ---------- */
  --radius-xs:4px; --radius-sm:8px; --radius-md:10px; --radius-lg:16px; --radius-xl:22px; --radius-pill:999px;

  /* ---------- Controls + density ---------- */
  --control-sm:32px; --control-md:40px; --control-lg:48px; --control-xl:60px; --touch-min:44px;
  --row-h:56px; --pad-card:var(--space-5);

  /* ---------- Elevation ---------- */
  --elev-0:none; --elev-1:0 1px 2px rgba(20,20,19,.06); --elev-2:0 4px 14px rgba(20,20,19,.08);
  --elev-3:0 12px 32px rgba(20,20,19,.10); --elev-4:0 24px 60px rgba(20,20,19,.14);
  --glow-accent:0 0 0 .16em rgba(255,178,36,.22), 0 0 .55em .22em rgba(255,178,36,.38);

  /* ---------- Shape (v3) — T3 offset card + the ringed dot of lockup A ---------- */
  --t3-stroke:1.5px; --t3-offset:10px; --t3-radius:var(--radius-lg);
  --dot-ring:.065em; --dot-offset:.07em; --dot-size:.5em;

  /* ---------- Motion ---------- */
  --dur-1:120ms; /* @kind other */ --dur-2:200ms; /* @kind other */ --dur-3:320ms; /* @kind other */ --dur-4:700ms; /* @kind other */
  --ease-standard:cubic-bezier(.2,.7,.2,1); /* @kind other */ --ease-emphasized:cubic-bezier(.3,0,0,1); /* @kind other */ --ease-exit:cubic-bezier(.4,0,1,1); /* @kind other */
}

[data-density="compact"]{
  --control-sm:28px; --control-md:36px; --control-lg:44px; --row-h:44px; --pad-card:var(--space-4);
}

@media (prefers-reduced-motion: reduce){
  :root{ --dur-1:0ms; /* @kind other */ --dur-2:0ms; /* @kind other */ --dur-3:0ms; /* @kind other */ --dur-4:0ms; /* @kind other */ }
}
