/* Custom Styles for Gravity Slingshot Tech */

:root {
    --dark: #030305;
    --primary: #3b82f6;
    --accent: #8b5cf6;
    --gold: #cfb53b;
}

body {
    background-color: var(--dark);
    color: #ffffff;
    font-family: 'Noto Sans SC', sans-serif;
    overflow-x: hidden;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: var(--dark);
}

::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.2);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.4);
}

/* Typography Utility */
.font-syne {
    font-family: 'Syne', sans-serif;
}

.font-cinzel {
    font-family: 'Cinzel', serif;
}

.font-sans {
    font-family: 'Noto Sans SC', sans-serif;
}

/* Loading Animation */
@keyframes scrollDown {
    0% {
        transform: translateY(-100%);
    }
    100% {
        transform: translateY(200%);
    }
}

.animate-scroll-down {
    animation: scrollDown 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;
}

/* WebGL Canvas */
#bg-canvas {
    mix-blend-mode: screen;
}

/* Cinematic Overlays */
.vignette {
    background: radial-gradient(circle, transparent 40%, rgba(3, 3, 5, 0.95) 100%);
}

.noise-overlay {
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
    mix-blend-mode: overlay;
}

/* Services Card Premium Hover Effect */
.service-card {
    transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.6s ease;
}

.service-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.8);
}

/* Spotlight inner glow */
.service-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(
        600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), 
        rgba(255, 255, 255, 0.04),
        transparent 40%
    );
    z-index: 1;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.5s;
}

.service-card:hover::before {
    opacity: 1;
}

/* Spotlight border glow */
.service-card::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 2px;
    background: radial-gradient(
        400px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), 
        var(--hover-color, rgba(255, 255, 255, 0.8)),
        transparent 40%
    );
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.5s;
    z-index: 2;
}

.service-card:hover::after {
    opacity: 1;
}


/* Smooth Scrolling Setup (Lenis recommended styles) */
html.lenis {
    height: auto;
}

.lenis.lenis-smooth {
    scroll-behavior: auto;
}

.lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
}

.lenis.lenis-stopped {
    overflow: hidden;
}

.lenis.lenis-scrolling iframe {
    pointer-events: none;
}
