/* Custom Cursor styles */
.cursor-dot,
.cursor-outline {
    position: fixed;
    top: 0;
    left: 0;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    z-index: 9999;
    pointer-events: none;
}

.cursor-dot {
    width: 8px;
    height: 8px;
    background-color: #22c55e; /* Green */
}

.cursor-outline {
    width: 40px;
    height: 40px;
    border: 2px solid rgba(234, 179, 8, 0.5); /* Yellow */
    transition: width 0.2s, height 0.2s;
}

/* Hide default cursor globally */
body, a, button, .cursor-pointer {
    cursor: none !important;
}

/* Hover effect on links */
a:hover ~ .cursor-outline,
button:hover ~ .cursor-outline,
.group:hover ~ .cursor-outline {
    width: 60px;
    height: 60px;
    border-color: #ef4444; /* Red */
    background-color: rgba(239, 68, 68, 0.1);
}

/* Hero Background Animations */
.bg-grid-pattern {
    background-size: 50px 50px;
    background-image: 
        linear-gradient(to right, rgba(255, 255, 255, 0.05) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
    animation: panGrid 20s linear infinite;
}

@keyframes panGrid {
    0% { background-position: 0 0; }
    100% { background-position: 50px 50px; }
}

@keyframes blob {
    0% { transform: translate(0px, 0px) scale(1); }
    33% { transform: translate(30px, -50px) scale(1.1); }
    66% { transform: translate(-20px, 20px) scale(0.9); }
    100% { transform: translate(0px, 0px) scale(1); }
}

.animate-blob {
    animation: blob 7s infinite;
}

.animation-delay-2000 {
    animation-delay: 2s;
}

.animation-delay-4000 {
    animation-delay: 4s;
}

/* Marquee Animation */
@keyframes marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); } 
}
.animate-marquee {
    animation: marquee 30s linear infinite;
    width: max-content;
}

/* Ensure smooth scrolling */
html {
    scroll-behavior: smooth;
}

/* Initial state for GSAP elements */
.gs-reveal, .gs-feature, .founder-card, .cta-box {
    opacity: 0;
    transform: translateY(30px);
}
