/* ==========================================================================
   PREMIUM MOTION DESIGN LAYER
   ========================================================================== */

:root {
    --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-in-out-expo: cubic-bezier(0.87, 0, 0.13, 1);
}

/* 1. Reveal on Scroll (Advanced) */
.reveal-on-scroll {
    opacity: 0;
    transform: translateY(40px) scale(0.98);
    transition: 
        opacity 1.2s var(--ease-out-expo),
        transform 1.2s var(--ease-out-expo);
    will-change: transform, opacity;
}

.reveal-on-scroll.active {
    opacity: 1;
    transform: translateY(0) scale(1);
}

/* 2. Staggered Entrance Utility */
.stagger-parent .reveal-on-scroll:nth-child(1) { transition-delay: 0.1s; }
.stagger-parent .reveal-on-scroll:nth-child(2) { transition-delay: 0.2s; }
.stagger-parent .reveal-on-scroll:nth-child(3) { transition-delay: 0.3s; }
.stagger-parent .reveal-on-scroll:nth-child(4) { transition-delay: 0.4s; }
.stagger-parent .reveal-on-scroll:nth-child(5) { transition-delay: 0.5s; }
.stagger-parent .reveal-on-scroll:nth-child(6) { transition-delay: 0.6s; }

/* 3. Hover Micro-interactions */
.btn-premium-magnetic {
    transition: transform 0.3s var(--ease-out-expo);
}

.btn-premium-magnetic:hover {
    transform: scale(1.05) translateY(-2px);
}

.btn-premium-magnetic:active {
    transform: scale(0.98);
}

/* 4. Shimmer Loading Effect */
@keyframes luxuryShimmer {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

.shimmer-premium {
    background: linear-gradient(90deg, 
        rgba(255,255,255,0) 0%, 
        rgba(255,255,255,0.05) 50%, 
        rgba(255,255,255,0) 100%
    );
    background-size: 200% 100%;
    animation: luxuryShimmer 3s infinite linear;
}

/* 5. Entrance for Hero Text */
@keyframes heroEntrance {
    0% { opacity: 0; transform: translateY(30px) skewY(2deg); }
    100% { opacity: 1; transform: translateY(0) skewY(0); }
}

.hero-animate {
    animation: heroEntrance 1.2s var(--ease-out-expo) forwards;
}
