:root {
    /* Brand: forest ink + lime, from the logo. Lime is reserved for moments
       that matter (active drop, success, primary action). */
    --color-forest: #163300;
    --color-forest-2: #214a08;
    --color-lime: #9fe870;

    --color-background: #f4f6f0;
    --color-surface: #ffffff;
    --color-surface-muted: #eceee6;
    --color-surface-strong: #e1e5d8;

    --color-text: #11200a;
    --color-text-secondary: #45523e;
    --color-text-muted: #6c7765;

    --color-primary: #9fe870;
    --color-primary-hover: #8cdb59;
    --color-primary-soft: #e8f6db;
    --color-accent: var(--color-primary);

    --color-border: #dde2d3;
    --color-border-strong: #bfc6b1;

    --color-success: #2f6e1f;
    --color-success-soft: #e5f4dc;
    --color-warning: #8a5a00;
    --color-warning-soft: #fcf0d6;
    --color-danger: #b3261e;
    --color-danger-soft: #fdeeed;

    /* File-type tags: colour encodes what kind of file a tool works on. */
    --tag-image: #e0662f;
    --tag-pdf: #d23b3b;
    --tag-file: #1c8f7e;
    --tag-developer: #5b4fd1;
    --tag-text: #b07d00;
    --tag-utility: #2f6fbf;

    --font-display:
        "Archivo",
        "Geist",
        ui-sans-serif,
        system-ui,
        sans-serif;
    --font-stretch-display: 118%;

    --font-family:
        "Geist",
        ui-sans-serif,
        system-ui,
        -apple-system,
        "Segoe UI",
        sans-serif;

    --font-mono:
        "Geist Mono",
        ui-monospace,
        "SFMono-Regular",
        Menlo,
        Consolas,
        monospace;

    --font-size-xs: 0.8125rem;
    --font-size-sm: 0.9375rem;
    --font-size-md: 1.0625rem;
    --font-size-lg: 1.25rem;
    --font-size-xl: 1.75rem;
    --font-size-2xl: 2.5rem;
    --font-size-3xl: 4rem;
    --font-size-4xl: 7rem;

    --font-size-display: clamp(2.5rem, 6vw, 4.5rem);

    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --font-weight-black: 900;

    --line-height-tight: 1.05;
    --line-height-snug: 1.15;
    --line-height-normal: 1.5;
    --line-height-relaxed: 1.65;

    --letter-spacing-tight: -0.03em;
    --letter-spacing-normal: 0;
    --letter-spacing-wide: 0.04em;

    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --space-7: 28px;
    --space-8: 32px;
    --space-9: 36px;
    --space-10: 40px;
    --space-11: 44px;
    --space-12: 48px;
    --space-14: 56px;
    --space-16: 64px;
    --space-20: 80px;
    --space-24: 96px;

    --radius-xs: 6px;
    --radius-sm: 8px;
    --radius-md: 10px;
    --radius-lg: 16px;
    --radius-xl: 24px;
    --radius-full: 999px;

    --border-width-thin: 1px;
    --border-width-thick: 2px;

    --shadow-sm:
        0 2px 8px rgba(21, 35, 13, 0.05);

    --shadow-md:
        0 16px 45px rgba(21, 35, 13, 0.08);

    --shadow-lg:
        0 25px 60px rgba(21, 35, 13, 0.1);

    --shadow-xl:
        0 32px 70px rgba(21, 35, 13, 0.12);

    --container-width: 1200px;
    --max-content-width: 1200px;
    --content-max-width: 680px;

    --header-height: 5rem;
    --header-height-sm: 3.5rem;
    --footer-padding-top: clamp(2rem, 4vw, 3rem);
    --footer-padding-bottom: clamp(1.25rem, 3vw, 2rem);

    --color-focus-ring: #4f9a1f;

    --ease-out-quad: cubic-bezier(0.645, 0.045, 0.355, 1);
    --ease-in-out-quad: cubic-bezier(0.455, 0.005, 0.55, 0.99);

    --transition-fast: 150ms ease;
    --transition-normal: 250ms ease;
    --transition-slow: 400ms ease;
}
