/* Vult design tokens. Every colour, size and duration on the site comes from here. */
@font-face{font-family:"Geist";src:url(assets/fonts/geist-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Geist Mono";src:url(assets/fonts/geist-mono-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-display:swap}

:root{
  /* Brand: sampled from the logo */
  --navy-950:#0b1530;
  --navy-900:#142246;
  --navy-800:#1c2f5f;
  --navy-700:#2a4079;
  --blue-700:#1b48b8;
  --blue-600:#2560e8;
  --blue-500:#3673f5;
  --blue-400:#6495f8;
  --blue-300:#9dbcfb;
  --blue-200:#c9daff;
  --blue-100:#e2ecff;
  --blue-50:#f1f5ff;

  /* Neutrals, biased toward the navy */
  --white:#fff;
  --grey-50:#f5f7fb;
  --grey-100:#eceff6;
  --grey-200:#dde2ec;
  --grey-300:#c4cbd9;
  --grey-500:#667089;
  --grey-700:#414b63;

  /* Semantic */
  --success:#0f7a55;
  --success-soft:#dff4ec;
  --danger:#b3261e;
  --danger-soft:#fbe9e7;

  /* Roles */
  --bg:var(--white);
  --bg-tint:var(--grey-50);
  --surface:var(--white);
  --text:var(--navy-900);
  --text-2:var(--grey-700);
  --text-3:var(--grey-500);
  --line:var(--grey-200);
  --primary:var(--blue-600);
  --primary-hover:var(--blue-700);
  --on-dark:var(--white);
  --on-dark-2:#c8d2e8;
  --on-dark-3:#a3b1cf;
  --line-dark:rgba(255,255,255,.14);
  --line-dark-2:rgba(255,255,255,.28);
  --fill-dark:rgba(255,255,255,.06);
  --fill-dark-2:rgba(255,255,255,.1);
  --on-blue-2:#e8efff;
  --glow-strong:rgba(54,115,245,.75);
  --glow-soft:rgba(54,115,245,.28);
  --glow-none:rgba(54,115,245,0);
  --scrim:rgba(11,21,48,.6);

  /* Type */
  --font:"Geist",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:"Geist Mono",ui-monospace,Consolas,monospace;
  --fs-12:.75rem;--fs-13:.8125rem;--fs-14:.875rem;--fs-15:.9375rem;--fs-16:1rem;--fs-17:1.0625rem;--fs-18:1.125rem;--fs-20:1.25rem;--fs-24:1.5rem;
  --fs-h3:clamp(1.25rem,1.1rem + .4vw,1.5rem);
  --fs-h3b:clamp(1.625rem,1.3rem + 1vw,2.25rem);
  --fs-h2:clamp(2.25rem,1.5rem + 3vw,4rem);
  --fs-h1:clamp(2.375rem,1.5rem + 4vw,5rem);
  --fs-hero:clamp(2.5rem,1rem + 2.9vw,3.75rem);
  --track-display:-.038em;
  --track-title:-.022em;
  --track-mono:.04em;

  /* Space: 8 point grid */
  --s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:40px;--s-8:48px;--s-9:64px;--s-10:80px;--s-11:96px;--s-12:128px;
  --section:clamp(72px,8vw,112px);
  --gutter:clamp(16px,4vw,48px);
  --page:1320px;
  --hero-page:1480px;

  /* Shape */
  --r-sm:8px;--r-md:12px;--r-lg:20px;--r-xl:28px;--r-full:999px;

  /* Elevation */
  --e-1:0 1px 2px rgba(20,34,70,.06),0 2px 8px rgba(20,34,70,.05);
  --e-2:0 2px 4px rgba(20,34,70,.06),0 12px 32px -8px rgba(20,34,70,.16);
  --e-3:0 4px 8px rgba(20,34,70,.08),0 32px 64px -24px rgba(20,34,70,.34);

  /* Motion: Material emphasized and standard easing */
  --ease-emph:cubic-bezier(.2,0,0,1);
  --ease-std:cubic-bezier(.4,0,.2,1);
  --t-fast:150ms;--t-med:250ms;--t-slow:600ms;
}
