/* =========================================
   CORE ANIMATIONS (TECH PREMIUM)
   - Spring Physics Transitions
   - Viewport Triggered Classes
   ========================================= */

/* Base class for elements waiting to be animated on scroll */
.animate-on-scroll {
    opacity: 0;
    will-change: opacity, transform;
    /* Spring physics for a tech/premium feel */
    transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* Animations Triggered State */
.animate-on-scroll.is-visible {
    opacity: 1;
    transform: none;
}

/* --- Variants (Initial states) --- */

/* Slide Up (Standard) */
.slide-up {
    transform: translateY(40px);
}

/* Slide Down (Rare) */
.slide-down {
    transform: translateY(-40px);
}

/* Slide Left (From Right) */
.slide-left {
    transform: translateX(40px);
}

/* Slide Right (From Left) */
.slide-right {
    transform: translateX(-40px);
}

/* Fade In (Subtle) */
.fade-in {
    transform: scale(0.98);
}

/* --- Staggering Delays --- */
/* For animating lists or cards sequentially */

.delay-100 {
    transition-delay: 100ms;
}

.delay-200 {
    transition-delay: 200ms;
}

.delay-300 {
    transition-delay: 300ms;
}

.delay-400 {
    transition-delay: 400ms;
}

.delay-500 {
    transition-delay: 500ms;
}

.delay-600 {
    transition-delay: 600ms;
}

.delay-700 {
    transition-delay: 700ms;
}

/* Desktop Hover Micro-Interactions (Global Tech Hover) */
.tech-hover {
    transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.3s ease;
}

.tech-hover:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 30px -10px rgba(34, 211, 238, 0.15);
    /* Accent tint glow */
}

/* Reduced Motion Override for Accessibility */
@media (prefers-reduced-motion: reduce) {
    .animate-on-scroll {
        transition: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
}