@font-face {
font-family: "Martian Mono";
font-display: swap;
src: url("./fonts/MartianMono-VF.woff2") format("woff2-variations"),
url("./fonts/MartianMono-VF.woff2") format("woff2");
font-weight: 100 800;
font-stretch: 75% 112.5%;
font-style: normal;
}
@font-face {
font-family: "Martian Grotesk";
font-display: swap;
src: url("./fonts/MartianGrotesk-VF.woff2") format("woff2-variations"),
url("./fonts/MartianGrotesk-VF.woff2") format("woff2");
font-weight: 100 1000;
font-stretch: 75% 200%;
font-style: normal;
}
:root {
--font-body: "Martian Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
--font-display: "Martian Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
--font-mono: "Martian Mono", ui-monospace, SFMono-Regular, "JetBrains Mono", "IBM Plex Mono", Menlo, Consolas, monospace;
}
:root {
--ink-000: #000000;
--ink-050: #0a0a0a;
--ink-100: #121212;
--ink-200: #1a1a1a;
--ink-300: #242424;
--ink-400: #333333;
--ink-500: #555555;
--ink-600: #7a7a7a;
--ink-700: #a8a8a8;
--ink-800: #d4d4d4;
--ink-900: #f2f2f2;
--ink-999: #ffffff;
--bg: var(--ink-050);
--bg-raised: var(--ink-100);
--bg-sunken: var(--ink-000);
--bg-hover: var(--ink-300);
--bg-active: var(--ink-400);
--bg-splash: var(--bg-sunken);
--fg: var(--ink-900);
--fg-strong: var(--ink-999);
--fg-muted: var(--ink-700);
--fg-faint: var(--ink-600);
--fg-disabled: var(--ink-500);
--hairline: var(--ink-500);
--hairline-dim: var(--ink-400);
--hairline-loud: var(--ink-700);
--hairline-focus: var(--ink-999);
--accent: #cba6f7;
--accent-ink: #000000;
--accent-dim: color-mix(in oklab, var(--accent) 55%, var(--ink-000));
--accent-wash: color-mix(in oklab, var(--accent) 14%, var(--ink-000));
--accent-hover: color-mix(in oklab, var(--accent) 82%, #ffffff);
--accent-press: color-mix(in oklab, var(--accent) 70%, #000000);
--accent-secondary: var(--accent);
--accent-secondary-ink: var(--accent-ink);
--ok: #a6e3a1;
--warn: #f9e2af;
--err: #f38ba8;
--info: #74c7ec;
--shadow-sm: 2px 2px 0 0 var(--fg-strong);
--shadow-md: 4px 4px 0 0 var(--fg-strong);
--shadow-accent-sm: 2px 2px 0 0 var(--accent);
--shadow-accent-md: 4px 4px 0 0 var(--accent);
--focus-ring: 0 0 0 2px var(--bg), 0 0 0 4px var(--accent);
--fs-xs: 12px;
--fs-sm: 14px;
--fs-base: 15px;
--fs-md: 17px;
--fs-lg: 20px;
--fs-xl: 24px;
--fs-2xl: 32px;
--fs-3xl: 44px;
--fs-4xl: 64px;
--fs-5xl: 88px;
--fs-6xl: 120px;
--lh-tight: 1.05;
--lh-snug: 1.2;
--lh-body: 1.55;
--lh-loose: 1.7;
--tr-tight: -0.02em;
--tr-norm: 0em;
--tr-wide: 0.04em;
--tr-caps: 0.08em;
--fw-regular: 400;
--fw-medium: 500;
--fw-bold: 700;
--fw-black: 800;
--space-0: 0px;
--space-1: 4px;
--space-2: 8px;
--space-3: 12px;
--space-4: 16px;
--space-5: 24px;
--space-6: 32px;
--space-7: 48px;
--space-8: 64px;
--space-9: 96px;
--space-10: 128px;
--radius: 0px;
--border-1: 1px;
--border-2: 2px;
--hit: 44px;
--hit-sm: 32px;
--hit-lg: 56px;
--content-w: 72ch;
--page-w: 1280px;
--dur-instant: 0ms;
--dur-snap: 80ms;
--dur-quick: 140ms;
--ease-snap: cubic-bezier(0.2, 0.9, 0.1, 1);
--press-offset: 1px;
--z-sticky: 10;
--z-dropdown: 40;
--z-overlay: 80;
--z-modal: 90;
--z-toast: 100;
}
[data-mode="light"] {
--ink-000: #ffffff;
--ink-050: #f7f5f2;
--ink-100: #efece7;
--ink-200: #e6e2dc;
--ink-300: #d9d4cc;
--ink-400: #c2bdb3;
--ink-500: #8a857f;
--ink-600: #5e5a55;
--ink-700: #3a3733;
--ink-800: #1f1d1a;
--ink-900: #0a0908;
--ink-999: #000000;
--bg: var(--ink-050);
--bg-raised: var(--ink-000);
--bg-sunken: var(--ink-100);
--bg-hover: var(--ink-200);
--bg-active: var(--ink-300);
--bg-splash: var(--accent-wash);
--fg: var(--ink-800);
--fg-strong: var(--ink-999);
--fg-muted: var(--ink-700);
--fg-faint: var(--ink-600);
--fg-disabled: var(--ink-500);
--hairline: var(--ink-400);
--hairline-dim: var(--ink-300);
--hairline-loud: var(--ink-600);
--hairline-focus: var(--ink-999);
--accent: #8839ef;
--accent-ink: #ffffff;
--accent-dim: color-mix(in oklab, var(--accent) 75%, #ffffff);
--accent-wash: color-mix(in oklab, var(--accent) 10%, #ffffff);
--accent-hover: color-mix(in oklab, var(--accent) 85%, #000000);
--accent-press: color-mix(in oklab, var(--accent) 70%, #000000);
--accent-secondary: var(--accent);
--accent-secondary-ink: var(--accent-ink);
--ok: #40a02b;
--warn: #df8e1d;
--err: #d20f39;
--info: #209fb5;
--shadow-sm: 2px 2px 0 0 var(--ink-999);
--shadow-md: 4px 4px 0 0 var(--ink-999);
--shadow-accent-sm: 2px 2px 0 0 var(--accent);
--shadow-accent-md: 4px 4px 0 0 var(--accent);
}
@media (prefers-reduced-motion: reduce) {
:root {
--dur-snap: 0ms;
--dur-quick: 0ms;
--press-offset: 0px;
}
*, *::before, *::after {
animation-duration: 0.001ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.001ms !important;
scroll-behavior: auto !important;
}
}