/* Parallax and 3D Effects */

/* 3D Perspective */
.perspective-1000 {
    perspective: 1000px;
}

.preserve-3d {
    transform-style: preserve-3d;
}

.rotate-y-12 {
    transform: rotateY(12deg);
}

/* Parallax Background */
.parallax-bg {
    background-attachment: fixed !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}

/* Smooth scrolling parallax effect */
@media (prefers-reduced-motion: no-preference) {
    .parallax-bg {
        background-attachment: fixed;
    }
}

/* Mobile optimization - disable fixed background on mobile */
@media (max-width: 768px) {
    .parallax-bg {
        background-attachment: scroll;
    }
}

/* Glass morphism effects */
.backdrop-blur-sm {
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.backdrop-blur-md {
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.backdrop-blur-lg {
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

/* Enhanced animations */
@keyframes float {
    0%, 100% {
        transform: translateY(0px);
    }
    50% {
        transform: translateY(-10px);
    }
}

@keyframes glow {
    0%, 100% {
        box-shadow: 0 0 20px rgba(59, 130, 246, 0.5);
    }
    50% {
        box-shadow: 0 0 30px rgba(147, 51, 234, 0.7);
    }
}

.animate-float {
    animation: float 3s ease-in-out infinite;
}

.animate-glow {
    animation: glow 2s ease-in-out infinite;
}

/* Gradient text */
.bg-clip-text {
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* Enhanced hover effects */
.group:hover .group-hover\:scale-110 {
    transform: scale(1.1);
}

.group:hover .group-hover\:translate-x-1 {
    transform: translateX(0.25rem);
}

.group:hover .group-hover\:translate-x-6 {
    transform: translateX(1.5rem);
}

.group:hover .group-hover\:translate-y-6 {
    transform: translateY(1.5rem);
}

/* Intersection observer animations */
.fade-in-up {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s ease-out;
}

.fade-in-up.visible {
    opacity: 1;
    transform: translateY(0);
}

.fade-in-left {
    opacity: 0;
    transform: translateX(-30px);
    transition: all 0.8s ease-out;
}

.fade-in-left.visible {
    opacity: 1;
    transform: translateX(0);
}

.fade-in-right {
    opacity: 0;
    transform: translateX(30px);
    transition: all 0.8s ease-out;
}

.fade-in-right.visible {
    opacity: 1;
    transform: translateX(0);
}

/* Smooth scroll behavior */
html {
    scroll-behavior: smooth;
}

/* Performance optimizations */
.transform-gpu {
    transform: translate3d(0, 0, 0);
    will-change: transform;
}

/* Loading states */
.loading {
    opacity: 0;
    transform: translateY(20px);
}

.loaded {
    opacity: 1;
    transform: translateY(0);
    transition: all 0.6s ease-out;
}