/* 
 * Professional Text & Content Box Animations 
 * Optimized for Swiper (.swiper-slide-active)
 */

/* 1. Elegant Fade (Subtle Upward Motion) */
.text-anim-elegant-fade {
    opacity: 0;
}
.swiper-slide-active .text-anim-elegant-fade {
    animation: elegantFade 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    animation-delay: 0.2s;
}
@keyframes elegantFade {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}

/* 2. Professional Slide Left */
.text-anim-slide-left {
    opacity: 0;
}
.swiper-slide-active .text-anim-slide-left {
    animation: slideLeftPro 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    animation-delay: 0.2s;
}
@keyframes slideLeftPro {
    from { opacity: 0; transform: translateX(-120px); }
    to { opacity: 1; transform: translateX(0); }
}

/* 3. Professional Slide Right */
.text-anim-slide-right {
    opacity: 0;
}
.swiper-slide-active .text-anim-slide-right {
    animation: slideRightPro 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    animation-delay: 0.2s;
}
@keyframes slideRightPro {
    from { opacity: 0; transform: translateX(120px); }
    to { opacity: 1; transform: translateX(0); }
}

/* 4. Zoom Reveal */
.text-anim-zoom-reveal {
    opacity: 0;
}
.swiper-slide-active .text-anim-zoom-reveal {
    animation: zoomRevealPro 1.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    animation-delay: 0.2s;
}
@keyframes zoomRevealPro {
    from { opacity: 0; transform: scale(0.8); filter: blur(10px); }
    to { opacity: 1; transform: scale(1); filter: blur(0); }
}

/* 5. 3D Flip */
.text-anim-flip-3d {
    opacity: 0;
    backface-visibility: hidden;
}
.swiper-slide-active .text-anim-flip-3d {
    animation: flip3DPro 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    animation-delay: 0.2s;
}
@keyframes flip3DPro {
    from { opacity: 0; transform: perspective(1000px) rotateX(-90deg); transform-origin: center top; }
    to { opacity: 1; transform: perspective(1000px) rotateX(0deg); }
}

/* 6. Blur Reveal */
.text-anim-blur-reveal {
    opacity: 0;
}
.swiper-slide-active .text-anim-blur-reveal {
    animation: blurRevealPro 1.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    animation-delay: 0.2s;
}
@keyframes blurRevealPro {
    from { opacity: 0; filter: blur(20px); transform: translateY(10px); }
    to { opacity: 1; filter: blur(0); transform: translateY(0); }
}

/* 7. Skew Entry */
.text-anim-skew-entry {
    opacity: 0;
}
.swiper-slide-active .text-anim-skew-entry {
    animation: skewEntryPro 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    animation-delay: 0.2s;
}
@keyframes skewEntryPro {
    from { opacity: 0; transform: skewX(-20deg) translateX(-100px); }
    to { opacity: 1; transform: skewX(0deg) translateX(0); }
}

/* 8. Soft Bounce */
.text-anim-bounce-soft {
    opacity: 0;
}
.swiper-slide-active .text-anim-bounce-soft {
    animation: bounceSoftPro 1.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
    animation-delay: 0.2s;
}
@keyframes bounceSoftPro {
    from { opacity: 0; transform: translateY(80px); }
    to { opacity: 1; transform: translateY(0); }
}

/* 9. Split Reveal (Staggered Children) */
.text-anim-split-reveal {
    opacity: 0;
}
.swiper-slide-active .text-anim-split-reveal {
    animation: fadeInOnly 0.8s ease forwards;
    animation-delay: 0.1s;
}
.text-anim-split-reveal > * {
    opacity: 0;
}
.swiper-slide-active .text-anim-split-reveal > *:nth-child(1) { animation: slideUpSmall 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; animation-delay: 0.3s; }
.swiper-slide-active .text-anim-split-reveal > *:nth-child(2) { animation: slideUpSmall 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; animation-delay: 0.5s; }
.swiper-slide-active .text-anim-split-reveal > *:nth-child(3) { animation: slideUpSmall 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; animation-delay: 0.7s; }
.swiper-slide-active .text-anim-split-reveal > *:nth-child(4) { animation: slideUpSmall 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; animation-delay: 0.9s; }

@keyframes slideUpSmall {
    from { opacity: 0; transform: translateY(25px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeInOnly {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* 10. Professional Glitch */
.text-anim-glitch-pro {
    opacity: 0;
}
.swiper-slide-active .text-anim-glitch-pro {
    opacity: 1;
    animation: glitchAnimPro 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
    animation-delay: 0.2s;
}
@keyframes glitchAnimPro {
    0% { transform: translate(0); opacity: 0; }
    10% { opacity: 1; }
    20% { transform: translate(-4px, 4px); clip-path: inset(15% 0 45% 0); }
    40% { transform: translate(4px, -4px); clip-path: inset(50% 0 15% 0); }
    60% { transform: translate(-4px, 4px); clip-path: inset(80% 0 5% 0); }
    80% { transform: translate(4px, -4px); clip-path: inset(0 0 85% 0); }
    100% { transform: translate(0); clip-path: inset(0); opacity: 1; }
}

/* 11. Professional Slide Down */
.text-anim-slide-down {
    opacity: 0;
}
.swiper-slide-active .text-anim-slide-down {
    animation: slideDownPro 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    animation-delay: 0.2s;
}
@keyframes slideDownPro {
    from { opacity: 0; transform: translateY(-120px); }
    to { opacity: 1; transform: translateY(0); }
}

/* 12. Rotate & Scale Reveal */
.text-anim-rotate-reveal {
    opacity: 0;
}
.swiper-slide-active .text-anim-rotate-reveal {
    animation: rotateRevealPro 1.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    animation-delay: 0.2s;
}
@keyframes rotateRevealPro {
    from { opacity: 0; transform: rotate(-15deg) scale(0.8); filter: blur(10px); }
    to { opacity: 1; transform: rotate(0) scale(1); filter: blur(0); }
}

/* 13. Ghost Reveal */
.text-anim-ghost-reveal {
    opacity: 0;
}
.swiper-slide-active .text-anim-ghost-reveal {
    animation: ghostRevealPro 1.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    animation-delay: 0.2s;
}
@keyframes ghostRevealPro {
    from { opacity: 0; filter: blur(20px); letter-spacing: 20px; transform: scale(1.1); }
    to { opacity: 1; filter: blur(0); letter-spacing: normal; transform: scale(1); }
}
