:root {
    --color-black: #000000;
    --color-deep-purple: #1c0054;
    --color-purple: #9d16f9;
    --color-vibrant-purple: #be36ef;
    --color-white: #ffffff;
    --color-gray-soft: #b8b8b8;

    --color-surface: #07070c;
    --color-surface-soft: #11111a;
    --color-surface-elevated: rgba(15, 15, 22, 0.88);
    --color-panel: rgba(10, 10, 16, 0.72);
    --color-panel-strong: rgba(10, 10, 16, 0.94);
    --color-text: rgba(255, 255, 255, 0.96);
    --color-text-muted: rgba(255, 255, 255, 0.72);
    --color-text-soft: rgba(255, 255, 255, 0.5);
    --color-border: rgba(255, 255, 255, 0.08);
    --color-border-strong: rgba(190, 54, 239, 0.34);
    --color-glow: rgba(157, 22, 249, 0.36);
    --color-glow-soft: rgba(190, 54, 239, 0.18);

    --primary: var(--color-purple);
    --gray-border: var(--color-border);
    --text-muted: var(--color-text-muted);

    --font-body: "Manrope", "Poppins", sans-serif;
    --font-display: "Syne", "Space Grotesk", sans-serif;
    --font-accent: "Space Grotesk", "Manrope", sans-serif;

    --container-max: 1180px;
    --container-wide: 1320px;

    --space-xs: 0.5rem;
    --space-sm: 0.75rem;
    --space-md: 1rem;
    --space-lg: 1.5rem;
    --space-xl: 2rem;
    --space-2xl: 3rem;
    --space-3xl: 4rem;

    --radius-sm: 0.75rem;
    --radius-md: 1rem;
    --radius-lg: 1.5rem;
    --radius-xl: 2rem;
    --radius-pill: 999px;

    --shadow-sm: 0 12px 24px rgba(0, 0, 0, 0.22);
    --shadow-md: 0 20px 48px rgba(0, 0, 0, 0.32);
    --shadow-lg: 0 32px 84px rgba(0, 0, 0, 0.42);
    --shadow-glow: 0 0 0 1px rgba(190, 54, 239, 0.12), 0 24px 48px rgba(157, 22, 249, 0.18);

    --blur-sm: 10px;
    --blur-md: 18px;
    --blur-lg: 40px;

    --transition-fast: 180ms ease;
    --transition-base: 280ms ease;
    --transition-slow: 480ms cubic-bezier(0.22, 1, 0.36, 1);

    --bp-mobile-max: 767px;
    --bp-tablet-min: 768px;
    --bp-tablet-max: 1024px;
    --bp-desktop-min: 1025px;
}

html {
    color-scheme: dark;
    overflow-x: hidden;
}

body {
    overflow-x: hidden;
}

.container,
.kova-container,
.kova-container-wide {
    width: min(calc(100% - 1.5rem), var(--container-max));
    margin-inline: auto;
}

.kova-container-wide {
    width: min(calc(100% - 1.5rem), var(--container-wide));
}

.hero {
    isolation: isolate;
}

.hero-media-layer {
    position: absolute;
    inset: 0;
    overflow: hidden;
    z-index: 0;
    pointer-events: none;
}

.hero-bg-video,
.hero-bg-fallback,
.hero-grid-overlay,
.hero-vignette {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.hero-bg-video {
    object-fit: cover;
    opacity: 0.14;
    mix-blend-mode: screen;
}

.hero-bg-fallback {
    background:
        radial-gradient(circle at 15% 18%, rgba(157, 22, 249, 0.26), transparent 28%),
        radial-gradient(circle at 85% 15%, rgba(28, 0, 84, 0.62), transparent 24%),
        linear-gradient(135deg, rgba(0, 0, 0, 0.94) 0%, rgba(8, 8, 14, 0.92) 44%, rgba(28, 0, 84, 0.64) 100%);
    animation: heroFallbackShift 16s ease-in-out infinite alternate;
}

.hero-grid-overlay {
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.028) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.028) 1px, transparent 1px);
    background-size: 70px 70px;
    mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.75), transparent 92%);
    opacity: 0.34;
}

.hero-vignette {
    background: radial-gradient(circle at center, transparent 34%, rgba(0, 0, 0, 0.58) 100%);
}

@keyframes heroFallbackShift {
    0% {
        transform: scale(1) translate3d(0, 0, 0);
        filter: saturate(1);
    }

    100% {
        transform: scale(1.05) translate3d(-1%, 1%, 0);
        filter: saturate(1.08);
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

    .hero-bg-video {
        display: none;
    }
}
