:root {
    /* Breakpoints for devices */
    --bp-mobile: 480px;
    --bp-tablet: 768px;
    --bp-desktop: 1024px;

    /* Layout */
    --nav-height: 64px;
    --container-max: 1200px;
    --section-padding: var(--space-3xl);

    /* Colors — Brand */
    --color-primary-1: #526dff;
    --color-primary-2: #428fff;
    --color-accent-1: #7c37fc;
    --color-accent-2: #3c9cff;

    /* Colors — Neutrals */
    --color-navy: #0A1628;
    --color-charcoal: #334155;
    --color-slate: #64748b;
    --color-white: #ffffff;
    --color-off-white: #e8eef4;

    /* Colors — Semantic */
    --color-body-bg: #f0f4f8;
    --color-success: #10b981;
    --color-warning: #f59e0b;
    --color-error: #ef4444;

    /* Colors — Alpha */
    --color-white-95: rgba(255, 255, 255, 0.95);
    --color-navy-07: rgba(10, 22, 40, 0.07);
    --color-navy-10: rgba(10, 22, 40, 0.10);
    --color-navy-15: rgba(10, 22, 40, 0.15);
    --color-navy-light: #1a2d4a;
    --color-primary-30: rgba(82, 109, 255, 0.3);
    --color-primary-25: rgba(82, 109, 255, 0.25);
    --color-primary-10: rgba(82, 109, 255, 0.1);

    /* Shadows */
    --shadow-base: 0 6px 28px var(--color-navy-07);
    --shadow-hover: 0 12px 40px var(--color-navy-15);
    --shadow-glow: 0 4px 14px var(--color-primary-30);
    --shadow-badge-hover: 0 4px 20px var(--color-primary-25);

    /* Typography — Font */
    --font-primary: 'Space Grotesk', -apple-system, BlinkMacSystemFont, sans-serif;
    --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

    /* Typography — Weight */
    --weight-regular: 400;
    --weight-medium: 500;
    --weight-semibold: 600;
    --weight-bold: 700;

    /* Typography — Size */
    --text-xs: 0.75rem;
    --text-sm: 0.875rem;
    --text-base: 1rem;
    --text-md: 1.125rem;
    --text-lg: 1.25rem;
    --text-xl: 1.5rem;
    --text-2xl: 2rem;
    --text-3xl: 2.5rem;
    --text-display: clamp(3rem, 5vw, 4rem);

    /* Spacing */
    --space-xs: 0.25rem;
    --space-sm: 0.5rem;
    --space-md: 1rem;
    --space-lg: 1.5rem;
    --space-xl: 2rem;
    --space-2xl: 3rem;
    --space-3xl: 4rem;
    --space-4xl: 6rem;

    /* Border Radius */
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-xl: 16px;
    --radius-2xl: 24px;
    --radius-full: 9999px;

    /* Z-Index */
    --z-base: 1;
    --z-dropdown: 10;
    --z-sticky: 50;
    --z-overlay: 100;
    --z-toast: 200;

    /* Transitions */
    --transition-fast: 150ms ease;
    --transition-base: 250ms ease;
    --transition-normal: 300ms ease;
    --transition-slow: 400ms ease;

    /* Dot Grid */
    --dot-color: var(--color-slate);
    --dot-size: 1.5px;
    --dot-spacing: 40px;
    --dot-opacity: 0.35;
}

@media (max-width: 768px) {
    :root {
        --dot-size: 1px;
        --dot-spacing: 30px;
        --dot-opacity: 0.4;
    }
}
