/* ===== GLOBAL ANIMATIONS ===== */
@keyframes slideInFromLeft {
  from {
    opacity: 0;
    transform: translateX(-100px) rotateY(-15deg);
  }
  to {
    opacity: 1;
    transform: translateX(0) rotateY(0deg);
  }
}


@keyframes slideInFromRight {
  from {
    opacity: 0;
    transform: translateX(100px) rotateY(15deg);
  }
  to {
    opacity: 1;
    transform: translateX(0) rotateY(0deg);
  }
}

@keyframes slideInFromBottom {
  from {
    opacity: 0;
    transform: translateY(60px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translateX(-30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes scaleIn {
  from {
    opacity: 0;
    transform: scale(0.9);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}


/* Animation Classes */
.animate-slideInFromLeft {
  animation: slideInFromLeft 1s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.animate-slideInFromRight {
  animation: slideInFromRight 1s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.animate-slideInFromBottom {
  animation: slideInFromBottom 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.animate-fadeInUp {
  animation: fadeInUp 0.8s ease-out forwards;
}

.animate-fadeInLeft {
  animation: fadeInLeft 0.8s ease-out forwards;
}

.animate-scaleIn {
  animation: scaleIn 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

/* Flip Card Styles */
.flip-card-container {
  perspective: 1500px;
}

.flip-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  transition: transform 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transform-style: preserve-3d;
}

.flip-card-container.flipped .flip-card-inner {
  transform: rotateY(180deg);
}

.flip-card-front, .flip-card-back {
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.flip-card-back {
  transform: rotateY(180deg);
}

.flip-card-container:not(.flipped):hover .flip-card-inner {
  transform: rotateY(10deg);
}

.flip-card-container:not(.flipped):hover {
  transform: scale(1.02) !important;
}

/* ===== SCROLL-TRIGGERED ANIMATIONS ===== */
@keyframes slideInLeft {
  from { opacity: 0; transform: translateX(-60px); }
  to { opacity: 1; transform: translateX(0); }
}

.anim-in-left {
  animation: slideInLeft 0.8s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.anim-out-left {
  opacity: 0;
  transform: translateX(-60px);
}

@keyframes slideInRight {
  from { opacity: 0; transform: translateX(60px); }
  to { opacity: 1; transform: translateX(0); }
}

.anim-in-right {
  animation: slideInRight 0.8s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.anim-out-right {
  opacity: 0;
  transform: translateX(60px);
}

@keyframes slideInUp {
  from { opacity: 0; transform: translateY(50px); }
  to { opacity: 1; transform: translateY(0); }
}

.anim-in-up {
  animation: slideInUp 0.8s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.anim-out-up {
  opacity: 0;
  transform: translateY(50px);
}

@keyframes fadeInScale {
  from { opacity: 0; transform: scale(0.95); }
  to { opacity: 1; transform: scale(1); }
}

.anim-in-scale {
  animation: fadeInScale 0.6s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.anim-out-scale {
  opacity: 0;
  transform: scale(0.95);
}

.stagger-children > *:nth-child(1) { animation-delay: 0.1s; }
.stagger-children > *:nth-child(2) { animation-delay: 0.2s; }
.stagger-children > *:nth-child(3) { animation-delay: 0.3s; }
.stagger-children > *:nth-child(4) { animation-delay: 0.4s; }
.stagger-children > *:nth-child(5) { animation-delay: 0.5s; }
.stagger-children > *:nth-child(6) { animation-delay: 0.6s; }

