@font-face {
    font-family: "Space Grotesk";
    src: url("./assets/fonts/space-grotesk-var.woff2") format("woff2");
    font-style: normal;
    font-weight: 500 600;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("./assets/fonts/inter-var.woff2") format("woff2");
    font-style: normal;
    font-weight: 400 500;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Mono";
    src: url("./assets/fonts/ibm-plex-mono-400.woff2") format("woff2");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Mono";
    src: url("./assets/fonts/ibm-plex-mono-500.woff2") format("woff2");
    font-style: normal;
    font-weight: 500;
    font-display: swap;
}

:root {
    --color-paper: oklch(98.5% 0.008 250);
    --color-paper-2: oklch(95.5% 0.010 250);
    --color-paper-3: oklch(92.5% 0.012 250);
    --color-ink: oklch(20% 0.014 250);
    --color-ink-2: oklch(34% 0.014 250);
    --color-muted: oklch(51% 0.012 250);
    --color-rule: oklch(79% 0.010 250);
    --color-rule-2: oklch(87% 0.008 250);
    --color-accent: oklch(48% 0.170 250);
    --color-accent-ink: oklch(98.5% 0.008 250);
    --color-focus: oklch(55% 0.210 250);
    --color-success: oklch(52% 0.120 155);
    --color-error: oklch(54% 0.160 28);

    --font-display: "Space Grotesk", sans-serif;
    --font-body: "Inter", sans-serif;
    --font-mono: "IBM Plex Mono", monospace;

    --space-2xs: 4px;
    --space-xs: 8px;
    --space-sm: 12px;
    --space-md: 16px;
    --space-lg: 24px;
    --space-xl: 32px;
    --space-2xl: 48px;
    --space-3xl: 64px;
    --space-4xl: 96px;
    --space-section: clamp(72px, 10vw, 144px);

    --text-xs: 0.75rem;
    --text-sm: 0.875rem;
    --text-base: 1rem;
    --text-lg: clamp(1.0625rem, 1.4vw, 1.25rem);
    --text-xl: clamp(1.25rem, 2vw, 1.5rem);
    --text-2xl: clamp(1.75rem, 4vw, 3rem);
    --text-display: clamp(3rem, 7vw, 6.5rem);

    --leading-tight: 0.96;
    --leading-heading: 1.08;
    --leading-body: 1.65;

    --radius-control: 6px;
    --radius-image: 10px;
    --rule-thin: 1px;
    --rule-strong: 2px;

    --dur-fast: 100ms;
    --dur-base: 180ms;
    --dur-image: 420ms;
    --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-in: cubic-bezier(0.7, 0, 0.84, 0);
    --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);

    --page-max: 1440px;
    --content-max: 1120px;
    --measure: 64ch;
}
