/* Design tokens: Vercel's Geist design system (vercel.com/geist, values read Oct 13 2026), under the names app.css
   uses. Fonts: Geist and Geist Mono 1.7.2 (SIL Open Font License, fonts/Geist-OFL.txt).
   Geist's scales, light and dark: background-100/200, gray-100..1000 and gray-alpha, blue, green, red and amber. Text
   on --paper and --panel: ink (gray-1000), ink2 and muted (gray-900), faint (#666, AA at 12 px); --ghost only for
   decoration. Status text uses each colour's 900 step, which passes AA. */

@font-face{font-family:"Geist";font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/Geist-Variable.woff2) format("woff2")}
@font-face{font-family:"Geist Mono";font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/GeistMono-Variable.woff2) format("woff2")}

:root{
  --sans:"Geist",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --serif:var(--sans);
  --mono:"Geist Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;

  /* background-200 is the page, background-100 the surfaces on it */
  --paper:hsl(0 0% 98%);--panel:#fff;--sunk:hsl(0 0% 95%);
  --ink:hsl(0 0% 9%);--ink2:hsl(0 0% 30%);--muted:hsl(0 0% 30%);--faint:hsl(0 0% 40%);--ghost:hsl(0 0% 66%);
  --line:rgb(0 0 0 / .08);--line-strong:rgb(0 0 0 / .21);--link-line:rgb(0 0 0 / .34);
  --accent:hsl(212 100% 48%);--accent-ink:#fff;--accent-soft:hsl(210 100% 96%);
  --ok:hsl(133 50% 32%);--no:hsl(358 66% 48%);--warn:hsl(30 100% 32%);
  --ok-soft:hsl(120 60% 95%);--no-soft:hsl(0 100% 96%);--warn-soft:hsl(44 100% 92%);
  --btn:hsl(0 0% 9%);--btn-ink:#fff;--btn-hover:hsl(0 0% 22%);
  --scrim:rgb(0 0 0 / .5);--media-ink:#fff;--backdrop:rgb(0 0 0 / .3);--media-bg:#000;
  --hover:rgb(0 0 0 / .05);--press:rgb(0 0 0 / .08);
  --focus:hsl(212 100% 48%);
  --sel-bg:hsl(209 100% 90%);--sel-ink:inherit;
  --syn-kw:hsl(212 100% 42%);--syn-str:hsl(133 50% 32%);--syn-num:hsl(30 100% 32%);--syn-com:hsl(0 0% 40%);--syn-key:hsl(0 0% 9%);--syn-var:hsl(272 51% 46%);--syn-fn:hsl(0 0% 9%);
  /* Geist's shadow-small, shadow-menu and shadow-modal */
  --shadow-1:0 2px 2px rgb(0 0 0 / .04);
  --shadow-2:0 0 0 1px rgb(0 0 0 / .08),0 1px 1px rgb(0 0 0 / .02),0 4px 8px -4px rgb(0 0 0 / .04),0 16px 24px -8px rgb(0 0 0 / .06);
  --shadow-3:0 0 0 1px rgb(0 0 0 / .08),0 1px 1px rgb(0 0 0 / .02),0 8px 16px -4px rgb(0 0 0 / .04),0 24px 32px -8px rgb(0 0 0 / .06);
  color-scheme:light;

  /* Geist's type: label 12, 13 and 14, copy 14 and 16, headings 16, 20, 24 and 32; nothing smaller than 12 */
  --fs-micro:12px;--fs-caption:12px;--fs-meta:13px;--fs-small:14px;--fs-ui:14px;--fs-body:16px;
  --fs-h3:16px;--fs-lede:16px;--fs-h4:20px;--fs-h2:32px;--fs-h1:40px;
  --lh-body:1.6;--fs-code:13px;

  /* spacing: --sp-N is N px */
  --sp-2:2px;--sp-4:4px;--sp-6:6px;--sp-8:8px;--sp-10:10px;--sp-12:12px;--sp-14:14px;--sp-16:16px;--sp-20:20px;
  --sp-24:24px;--sp-28:28px;--sp-32:32px;--sp-36:36px;--sp-40:40px;--sp-48:48px;--sp-56:56px;--sp-64:64px;--sp-72:72px;--sp-88:88px;

  /* radii: 6 on controls, 8 and 12 on surfaces */
  --r-2xs:2px;--r-xs:4px;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--r-pill:9999px;

  --bw:1px;--hairline:1px solid var(--line);--border:1px solid var(--line-strong);

  /* Geist's control sizes: small 32, medium 40, large 48 */
  --ctl-xs:24px;--ctl-sm:32px;--ctl:40px;--ctl-lg:48px;--ctl-xl:48px;--ctl-r:var(--r-sm);--touch:44px;
  --focus-line:rgb(0 0 0 / .34);--ring:0 0 0 4px rgb(0 0 0 / .1);

  --ease:cubic-bezier(.2,.7,.2,1);--t-fast:.15s;--t:.2s;--t-slow:.3s;

  --wide:1200px;--gutter:24px;--measure:680px;
  --page-top:40px;
}
html[data-theme="dark"]{
  --paper:#000;--panel:hsl(0 0% 4%);--sunk:hsl(0 0% 10%);
  --ink:hsl(0 0% 93%);--ink2:hsl(0 0% 63%);--muted:hsl(0 0% 63%);--faint:hsl(0 0% 56%);--ghost:hsl(0 0% 27%);
  --line:rgb(255 255 255 / .14);--line-strong:rgb(255 255 255 / .24);--link-line:rgb(255 255 255 / .51);
  --accent:hsl(210 100% 66%);--accent-ink:#000;--accent-soft:hsl(214 59% 15%);
  --ok:hsl(131 43% 57%);--no:hsl(358 100% 69%);--warn:hsl(39 90% 50%);
  --ok-soft:hsl(137 50% 12%);--no-soft:hsl(357 46% 16%);--warn-soft:hsl(32 100% 10%);
  --btn:hsl(0 0% 93%);--btn-ink:#000;--btn-hover:hsl(0 0% 80%);
  --scrim:rgb(0 0 0 / .6);--backdrop:rgb(0 0 0 / .55);
  --hover:rgb(255 255 255 / .06);--press:rgb(255 255 255 / .09);
  --focus:hsl(210 100% 66%);
  --sel-bg:hsl(213 71% 20%);
  --focus-line:rgb(255 255 255 / .51);--ring:0 0 0 4px rgb(255 255 255 / .1);
  --syn-kw:hsl(210 100% 66%);--syn-str:hsl(131 43% 57%);--syn-num:hsl(39 90% 50%);--syn-com:hsl(0 0% 56%);--syn-key:hsl(0 0% 93%);--syn-var:hsl(275 80% 71%);--syn-fn:hsl(0 0% 93%);
  --shadow-1:0 2px 2px rgb(0 0 0 / .4);
  --shadow-2:0 0 0 1px rgb(255 255 255 / .145),0 1px 1px rgb(0 0 0 / .02),0 4px 8px -4px rgb(0 0 0 / .4),0 16px 24px -8px rgb(0 0 0 / .5);
  --shadow-3:0 0 0 1px rgb(255 255 255 / .145),0 1px 1px rgb(0 0 0 / .02),0 8px 16px -4px rgb(0 0 0 / .4),0 24px 32px -8px rgb(0 0 0 / .5);
  color-scheme:dark;
}
@media (max-width:640px){:root{--fs-h1:32px;--fs-h2:24px}}
@media (prefers-reduced-motion: reduce){:root{--t-fast:0s;--t:0s;--t-slow:0s}}
