/* GENERATED by scripts/gen-tokens.mjs from docs/design-system/tokens.json — DO NOT EDIT. Run `npm run gen:tokens`. */
@font-face{font-family:'Inter';src:local('Inter'),local('Inter Variable'),url('/fonts/inter-latin-var.woff2') format('woff2');font-weight:400 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Outfit';src:local('Outfit'),url('/fonts/outfit-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Outfit';src:local('Outfit'),url('/fonts/outfit-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  --primary:#FE7005; --secondary:#07AFFD; --money:#39FF14; --error:#FF1744;
  --bg:hsl(0 0% 5.1%); --card:hsl(0 0% 8.6%); --muted:hsl(222 24% 9%);
  --border:hsl(221.1 18.1% 20.6%); --fg:hsl(0 0% 100%); --muted-fg:hsl(223.3 10.6% 66.7%);
  --radius:1.0625rem;
  --rest-shadow:0 1px 2px rgba(0,0,0,.5), 0 12px 28px -16px rgba(0,0,0,.8);
  --font-body:'Inter',system-ui,sans-serif;
  --font-display:'Outfit','Inter',system-ui,sans-serif;
  --primary-rgb:254,112,5;
  --secondary-rgb:7,175,253;
  --money-rgb:57,255,20;
  --glass-glow-rgb:7,175,253;
  --fox-dur-1:120ms; --fox-dur-2:220ms; --fox-dur-3:380ms; --fox-dur-4:700ms;
  --fox-ease-out:cubic-bezier(.16,1,.3,1);
  --fox-ease-spring:cubic-bezier(.34,1.56,.64,1);
}
/* Put the display face ON the headings. Declaring --font-display was never enough:
   nothing consumed it, so all 432 headings across the marketing pages silently kept
   rendering in Inter, the body face, while the gate stayed green (ADR 0005).
   This is the rule that actually spends the token.

   It lives here rather than in 26 inline <style> blocks so retiring or swapping the
   display face stays a one-line edit in tokens.json. The pages link this sheet BEFORE
   their inline styles, so their own heading rules still win on size, spacing and
   transform. That is deliberate: this sets the face and nothing else. It only works
   because no page sets font-family on a heading; check-display-face.mjs is what keeps
   that true.

   Weight is NOT set here. Outfit ships at 500 and 700, so a page
   asking for a weight outside that set gets a browser-synthesized fake bold. The
   pages carry real weights from that set instead. */
h1,h2,h3{font-family:var(--font-display)}
