/* ============================================
   SCROLL ANIMATIONS
   ============================================ */
.animate-on-scroll {
    opacity: 0;
    transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.animate-on-scroll.visible {
    opacity: 1;
}

/* Fade Up */
.fade-up {
    transform: translateY(40px);
}

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

/* Fade Down */
.fade-down {
    transform: translateY(-40px);
}

.fade-down.visible {
    transform: translateY(0);
}

/* Slide Right */
.slide-right {
    transform: translateX(-60px);
}

.slide-right.visible {
    transform: translateX(0);
}

/* Slide Left */
.slide-left {
    transform: translateX(60px);
}

.slide-left.visible {
    transform: translateX(0);
}

/* Zoom In */
.zoom-in {
    transform: scale(0.85);
}

.zoom-in.visible {
    transform: scale(1);
}

/* Delays */
.delay-1 { transition-delay: 0.15s; }
.delay-2 { transition-delay: 0.3s; }
.delay-3 { transition-delay: 0.45s; }

/* ============================================
   CARD TILT 3D EFFECT
   ============================================ */
[data-tilt] {
    transform-style: preserve-3d;
    transition: transform 0.3s ease;
}

/* ============================================
   GLOW ANIMATIONS
   ============================================ */
@keyframes glow-pulse {
    0%, 100% { box-shadow: 0 0 20px rgba(122, 0, 255, 0.2); }
    50% { box-shadow: 0 0 40px rgba(122, 0, 255, 0.4), 0 0 60px rgba(0, 234, 255, 0.1); }
}

/* ============================================
   GRADIENT BORDER ANIMATION
   ============================================ */
@keyframes gradient-border {
    0% { border-color: rgba(122, 0, 255, 0.4); }
    50% { border-color: rgba(0, 234, 255, 0.4); }
    100% { border-color: rgba(122, 0, 255, 0.4); }
}

/* ============================================
   PARALLAX HELPERS
   ============================================ */
.parallax-slow {
    will-change: transform;
}

.parallax-medium {
    will-change: transform;
}

.parallax-fast {
    will-change: transform;
}