/* Assertwise design tokens v2 — self-hosted Inter + JetBrains Mono, no CDN.
   Contrast ratios (WCAG 2.x) noted per pair; all text pairs ≥ 4.5:1, UI/borders used for meaning ≥ 3:1. */
@font-face{font-family:Inter;font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/inter-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2190-2199,U+2212,U+2215}
@font-face{font-family:Inter;font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/inter-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+1E00-1E9F,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 600;font-display:swap;src:url(fonts/jetbrains-mono-latin.woff2) format('woff2')}

:root{
  /* ---- Color: dark surfaces (default) ---- */
  --c-bg:#0B0E13;            /* page */
  --c-bg-raise:#10141A;      /* alt section band */
  --c-surface:#151A21;       /* cards */
  --c-surface-2:#1C232C;     /* nested / hover */
  --c-input:#0A0D11;
  --c-line:#232A33;          /* hairlines (decorative) */
  --c-line-strong:#6B7480;   /* form borders: 4.11:1 on input → ≥3:1 non-text */
  --c-text:#F5F6F3;          /* 18.1:1 on bg */
  --c-text-2:#C9CED4;        /* secondary headings, 12.4:1 */
  --c-muted:#A3AAB3;         /* body-muted, 8.4:1 on bg / 7.3:1 on surface */
  --c-accent:#2BD67B;        /* brand green, 10.3:1 on bg — text + fills */
  --c-accent-hover:#5FE79C;
  --c-on-accent:#06130B;     /* 9.95:1 on accent */
  --c-accent-soft:rgba(43,214,123,.12);
  --c-accent-line:rgba(43,214,123,.35);
  --c-warn:#F2A93B;          /* 9.6:1 on bg */
  --c-danger:#FF7A7A;        /* 7.4:1 on bg */
  --c-info:#7CC0FF;

  /* ---- Color: light "paper" surface (report preview, proof band) ---- */
  --c-paper:#F5F6F3;
  --c-paper-2:#FFFFFF;
  --c-paper-line:#DADDE1;
  --c-ink:#0E1116;           /* 17.4:1 on paper */
  --c-ink-muted:#4A525C;     /* 7.6:1 on paper */
  --c-accent-ink:#0F7A43;    /* 5.1:1 on paper, 5.41:1 on white — accent for text on light */
  --c-warn-ink:#8A5300;      /* 5.9:1 on paper */
  --c-danger-ink:#B42318;    /* 6.1:1 on paper */

  /* ---- Type ---- */
  --font-sans:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --fs-12:.75rem; --fs-13:.8125rem; --fs-14:.875rem; --fs-16:1rem; --fs-18:1.125rem; --fs-20:1.25rem;
  --fs-24:clamp(1.25rem,1.1rem + .6vw,1.5rem);
  --fs-32:clamp(1.625rem,1.3rem + 1.4vw,2rem);
  --fs-44:clamp(2rem,1.5rem + 2.2vw,2.75rem);          /* H2 */
  --fs-display:clamp(2.125rem,1.25rem + 3.6vw,4rem);   /* H1 hero: 34 → 64px */
  --lh-display:1.04; --lh-tight:1.15; --lh-snug:1.35; --lh-body:1.6;
  --tr-display:-.035em; --tr-tight:-.02em; --tr-caps:.08em;
  --fw-regular:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700;

  /* ---- Space (4px base) ---- */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:20px; --s-6:24px; --s-8:32px; --s-10:40px; --s-12:48px; --s-16:64px; --s-20:80px; --s-24:96px; --s-32:128px;
  --section-y:clamp(64px,5rem + 4vw,128px);
  --container:1200px; --container-narrow:760px; --gutter:clamp(20px,4vw,32px);

  /* ---- Radius ---- */
  --r-sm:6px; --r-md:10px; --r-lg:14px; --r-xl:20px; --r-pill:999px;

  /* ---- Elevation ---- */
  --sh-1:0 1px 0 rgba(255,255,255,.04) inset,0 1px 2px rgba(0,0,0,.4);
  --sh-2:0 1px 0 rgba(255,255,255,.05) inset,0 10px 30px -10px rgba(0,0,0,.6);
  --sh-3:0 1px 0 rgba(255,255,255,.06) inset,0 40px 80px -20px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.04);
  --sh-paper:0 30px 60px -20px rgba(0,0,0,.55),0 12px 24px -12px rgba(0,0,0,.4);
  --glow-accent:0 0 0 1px var(--c-accent-line),0 8px 30px -8px rgba(43,214,123,.45);

  /* ---- Motion ---- */
  --ease-out:cubic-bezier(.2,.8,.2,1); --ease-in-out:cubic-bezier(.65,0,.35,1);
  --dur-1:120ms; --dur-2:200ms; --dur-3:320ms; --dur-4:520ms; --dur-5:720ms;
  --reveal-stagger:70ms;

  /* ---- Focus & targets ---- */
  --focus-color:var(--c-accent); --focus-w:2px; --focus-offset:3px;
  --focus-ring:0 0 0 var(--focus-offset) var(--c-bg),0 0 0 calc(var(--focus-offset) + var(--focus-w)) var(--focus-color);
  --target:44px;

  /* ---- Layers ---- */
  --z-header:50; --z-sticky:60; --z-menu:70;
}
/* Light surface scope: put .surface-paper on any section/card to flip tokens */
.surface-paper{
  --c-bg:var(--c-paper); --c-surface:var(--c-paper-2); --c-surface-2:#ECEEEA; --c-line:var(--c-paper-line);
  --c-text:var(--c-ink); --c-text-2:#1F252D; --c-muted:var(--c-ink-muted); --c-accent-text:var(--c-accent-ink);
  --focus-color:var(--c-accent-ink); --c-line-strong:#6B7480;
  background:var(--c-bg); color:var(--c-text);
}
:root{--c-accent-text:var(--c-accent)}
@media (prefers-reduced-motion:reduce){:root{--dur-1:0ms;--dur-2:0ms;--dur-3:0ms}}
