/* Clinical Scroll Animations - Apple-inspired with REVERSE */

/* Base animation setup */
.animate-on-scroll {
    opacity: 0;
    transform: translateY(60px);
    transition: opacity 1s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                transform 1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.animate-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Fade in from bottom - MORE MOVEMENT */
.fade-in-up {
    opacity: 0;
    transform: translateY(80px);
    transition: opacity 1s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                transform 1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

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

/* Scale in effect - MORE DRAMATIC */
.scale-in {
    opacity: 0;
    transform: scale(0.85) translateY(40px);
    transition: opacity 1s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                transform 1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.scale-in.is-visible {
    opacity: 1;
    transform: scale(1) translateY(0);
}

/* Fade in from left - MORE MOVEMENT */
.fade-in-left {
    opacity: 0;
    transform: translateX(-100px) translateY(30px);
    transition: opacity 1.1s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                transform 1.1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

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

/* Fade in from right - MORE MOVEMENT */
.fade-in-right {
    opacity: 0;
    transform: translateX(100px) translateY(30px);
    transition: opacity 1.1s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                transform 1.1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

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

/* Staggered animations for children - MORE MOVEMENT */
.stagger-children > * {
    opacity: 0;
    transform: translateY(60px) scale(0.95);
    transition: opacity 0.9s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                transform 0.9s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.stagger-children.is-visible > *:nth-child(1) {
    transition-delay: 0.1s;
}

.stagger-children.is-visible > *:nth-child(2) {
    transition-delay: 0.2s;
}

.stagger-children.is-visible > *:nth-child(3) {
    transition-delay: 0.3s;
}

.stagger-children.is-visible > *:nth-child(4) {
    transition-delay: 0.4s;
}

.stagger-children.is-visible > *:nth-child(5) {
    transition-delay: 0.5s;
}

.stagger-children.is-visible > *:nth-child(6) {
    transition-delay: 0.6s;
}

.stagger-children.is-visible > * {
    opacity: 1;
    transform: translateY(0) scale(1);
}

/* Parallax effect for hero sections */
.parallax-hero {
    transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* Blur in effect */
.blur-in {
    opacity: 0;
    filter: blur(10px);
    transform: scale(1.05);
    transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                filter 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.blur-in.is-visible {
    opacity: 1;
    filter: blur(0);
    transform: scale(1);
}

/* Slide and fade for cards */
.card-reveal {
    opacity: 0;
    transform: translateY(80px) scale(0.9) rotateX(10deg);
    transition: opacity 1s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                transform 1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.card-reveal.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1) rotateX(0);
}

/* Rotate in effect */
.rotate-in {
    opacity: 0;
    transform: rotate(-10deg) scale(0.8);
    transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.rotate-in.is-visible {
    opacity: 1;
    transform: rotate(0) scale(1);
}

/* Text reveal with clip */
.text-reveal {
    opacity: 0;
    clip-path: inset(0 100% 0 0);
    transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                clip-path 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.text-reveal.is-visible {
    opacity: 1;
    clip-path: inset(0 0 0 0);
}

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

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
    .animate-on-scroll,
    .fade-in-up,
    .scale-in,
    .fade-in-left,
    .fade-in-right,
    .stagger-children > *,
    .blur-in,
    .card-reveal,
    .rotate-in,
    .text-reveal {
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
        clip-path: none !important;
        transition: none !important;
    }
    
    html {
        scroll-behavior: auto;
    }
}

/* Enhanced hover effects for interactive elements */
.interactive-card {
    transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                box-shadow 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.interactive-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
}

/* Smooth opacity transitions */
.fade-transition {
    transition: opacity 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* Grid stagger for feature cards - MORE MOVEMENT */
.grid-stagger > * {
    opacity: 0;
    transform: translateY(70px) scale(0.92);
    transition: opacity 1s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                transform 1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.grid-stagger.is-visible > *:nth-child(1) { transition-delay: 0.1s; }
.grid-stagger.is-visible > *:nth-child(2) { transition-delay: 0.15s; }
.grid-stagger.is-visible > *:nth-child(3) { transition-delay: 0.2s; }
.grid-stagger.is-visible > *:nth-child(4) { transition-delay: 0.25s; }
.grid-stagger.is-visible > *:nth-child(5) { transition-delay: 0.3s; }
.grid-stagger.is-visible > *:nth-child(6) { transition-delay: 0.35s; }
.grid-stagger.is-visible > *:nth-child(7) { transition-delay: 0.4s; }
.grid-stagger.is-visible > *:nth-child(8) { transition-delay: 0.45s; }
.grid-stagger.is-visible > *:nth-child(9) { transition-delay: 0.5s; }

.grid-stagger.is-visible > * {
    opacity: 1;
    transform: translateY(0) scale(1);
}
