/* shared.css — falsify.dev design tokens + sitewide a11y/motion baseline.
   Single source of truth for :root tokens (audit batch C, 2026-07-24).
   Pages load this BEFORE their inline <style>; page CSS may extend but
   should not redefine tokens. See README.md conventions. */

:root{
  /* base palette */
  --black:#0B0F14; --surface:#0F1319; --elevated:#141921;
  --border:#1A2230; --border-light:#242E3C;
  --white:#E8EEF2; --bright:#f4f4f7; --light:#c8c9d4;
  --silver:#8A94A0; --gray:#75808F; --muted:#4A5568;
  /* signal greens */
  --signal:#39D98A; --signal-mid:#2BA86E; --signal-dim:#163126; --signal-ghost:#0E2118;
  /* status — --warn and --caution are aliases of the same hue by design */
  --caution:#d4a843; --warn:#d4a843; --warn-dim:#3a2f17;
  --danger:#c45c5c; --danger-dim:#3a1a1a;
  /* type */
  --display:'Space Grotesk','DM Sans',system-ui,sans-serif;
  --sans:'DM Sans',system-ui,sans-serif;
  --mono:'JetBrains Mono','SF Mono',monospace;
  --serif:'Source Serif 4', Georgia, serif;
  /* motion */
  --dur-fast:150ms; --dur-hover:200ms; --dur-comp:320ms; --dur-reveal:650ms;
  --ease-ui:cubic-bezier(.2,.9,.3,1); --ease-reveal:cubic-bezier(.16,1,.3,1);
  --ease-mech:cubic-bezier(.7,0,.25,1);
  --stagger-sm:70ms; --stagger-md:130ms;
  /* layout (reference widths; adoption is gradual) */
  --maxw-content:48rem; --maxw-wide:80rem;
  /* homepage AI Act banner height (synced by JS where the banner exists) */
  --ai-banner-h:36px;
}

/* accessibility baseline */
.skip{position:absolute;left:-9999px;top:0;z-index:200;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--black);background:var(--signal);padding:10px 18px;text-decoration:none}
.skip:focus{left:0}
:focus-visible{outline:2px solid var(--signal);outline-offset:2px}

/* motion baseline */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important;scroll-behavior:auto !important}
}
