:root {

    /* ===== PRIMARY ===== */
    --primary-shade-40: #37135b;
    --primary-shade-80: #12061e;

    --color-blue: #1D89E4;
    --blue-50: oklch(88.976% 0.04698 243.42);
    --blue-100: oklch(85.636% 0.06016 243.96);
    --blue-200: oklch(79.269% 0.08892 244.57);
    --blue-300: oklch(73.163% 0.11654 245.91);
    --blue-400: oklch(67.28% 0.14179 247.22);
    --blue-500: oklch(61.933% 0.16471 250.14);
    --blue-600: oklch(51.828% 0.13669 249.93);
    --blue-700: oklch(41.172% 0.10536 249.48);
    --blue-800: oklch(29.785% 0.07134 248.65);
    --blue-900: oklch(17.12% 0.03327 243.72);
    --blue-950: oklch(7.9722% 0.01658 233.51);

    /* ===== NEUTRAL ===== */
    --white: #ffffff;
    --grey-100: #f2f2f2;
    --grey-200: #e0e0e0;
    --grey-800: #222222;

    --neutral-50: hsl(0, 0%, 96%);
    --neutral-100: hsl(0, 0%, 92%);
    --neutral-200: hsl(0, 0%, 85%);
    --neutral-300: hsl(0, 0%, 75%);
    --neutral-400: hsl(0, 0%, 60%);
    --neutral-500: hsl(0, 0%, 45%);
    --neutral-600: hsl(0, 0%, 32%);
    --neutral-700: hsl(0, 0%, 20%);
    --neutral-800: hsl(0, 0%, 13%);
    --neutral-900: hsl(0, 0%, 8%);

    /* ===== PRIMARY ===== */
    --primary: var(--color-blue);
    --primary-hover: var(--blue-600);
    --primary-active: var(--blue-700);

    /* ===== BACKGROUNDS ===== */
    --bg: var(--white);
    --bg-surface: var(--grey-100);
    --bg-surface-alt: var(--grey-200);
    --bg-inverse: var(--neutral-800);

    --overlay: rgba(0, 0, 0, 0.6);

    /* ===== TEXT ===== */
    --text: var(--neutral-800);
    --text-muted: var(--neutral-400);
    --text-inverse: var(--grey-100);

    /* ===== STATES ===== */
    --state-success: #22c55e;
    --state-warning: #f59e0b;
    --state-error: #ef4444;

    /* ===== BOX SHADOW ===== */
    --box-shadow: 0 10px 30px rgba(0, 0, 0, .08);

    /* ===== SPACING SYSTEM ===== */
    --space-0: 0;
    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-5: 1.25rem;
    --space-6: 1.5rem;
    --space-8: 2rem;
    --space-10: 2.5rem;
    --space-12: 3rem;
    --space-16: 4rem;
    --space-20: 5rem;

    --section-space-y: clamp(3rem, 6vw, 8rem);
    --content-space-y: calc(var(--section-space-y) * 0.7);

    --radius-lg: 1.25rem;
    --radius: 1rem;

    /* ========= BODY ========= */
    --text-lg: 1.125rem;
    --text-base: 1rem;
    --text-sm: 0.875rem;

    /* ========= LINE HEIGHT ========= */
    --lh-heading: 1.25;
    --lh-body: 1.4;
    --lh-lead: 1.6;

    /* ========= HEADER-HEIGHT ========= */
    --header-height: var(--space-20);
}


@font-face {
    font-display: swap;
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 400;
    src: url('../fonts/montserrat-v31-latin-ext-regular.woff2') format('woff2');
}


@font-face {
    font-display: swap;
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 700;
    src: url('../fonts/montserrat-v31-latin-ext-700.woff2') format('woff2');
}