/* Animations modernes et effets personnalisés */

@keyframes fade-in {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

.fade-in {
  animation: fade-in 1.2s cubic-bezier(.4,0,.2,1) both;
}

@keyframes gradient-move {
  0%,100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

.gradient-text {
  background: linear-gradient(90deg, #e6007a, #8f5cff, #00cfff);
  background-size: 200% 200%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: gradient-move 4s ease-in-out infinite;
}

/* Effet de zoom sur les images de la galerie */
.gallery-img {
  transition: transform 0.4s cubic-bezier(.4,0,.2,1), box-shadow 0.4s;
}
.gallery-img:hover {
  transform: scale(1.08);
  box-shadow: 0 8px 32px rgba(230,0,122,0.2);
}

/* Effet sur les boutons principaux */
.btn-main {
  box-shadow: 0 4px 16px rgba(230,0,122,0.15);
  transition: transform 0.2s, box-shadow 0.2s;
}
.btn-main:hover {
  transform: scale(1.07);
  box-shadow: 0 8px 32px rgba(230,0,122,0.25);
}

/* Ajoute d'autres effets ici selon tes besoins */

@keyframes rotate-in-scale {
  0% { opacity: 0; transform: rotateY(60deg) scale(0.7); filter: blur(12px); }
  60% { opacity: 1; transform: rotateY(-8deg) scale(1.08); filter: blur(2px); }
  80% { transform: rotateY(4deg) scale(0.98); filter: blur(0.5px); }
  100% { opacity: 1; transform: rotateY(0deg) scale(1); filter: blur(0); }
}

.rotate-in-scale {
  animation: rotate-in-scale 1.2s cubic-bezier(.68,-0.55,.27,1.55) both;
  backface-visibility: hidden;
  perspective: 800px;
}

@keyframes zoom-blur {
  0% { opacity: 0; transform: scale(1.3); filter: blur(12px); }
  60% { opacity: 1; transform: scale(0.98); filter: blur(2px); }
  80% { transform: scale(1.02); filter: blur(0.5px); }
  100% { opacity: 1; transform: scale(1); filter: blur(0); }
}

.zoom-blur {
  animation: zoom-blur 1.1s cubic-bezier(.68,-0.55,.27,1.55) both;
}

@keyframes slide-in {
  0% { opacity: 0; transform: translateX(-80px) scale(0.9); }
  70% { opacity: 1; transform: translateX(10px) scale(1.05); }
  85% { transform: translateX(-4px) scale(0.98); }
  100% { opacity: 1; transform: translateX(0) scale(1); }
}

.slide-in {
  animation: slide-in 1.1s cubic-bezier(.68,-0.55,.27,1.55) both;
}

@keyframes neon-glow {
  0%, 100% {
    text-shadow: 0 0 8px #e6007a, 0 0 24px #8f5cff, 0 0 40px #00cfff;
    box-shadow: 0 0 16px #e6007a, 0 0 32px #8f5cff, 0 0 48px #00cfff;
  }
  50% {
    text-shadow: 0 0 24px #e6007a, 0 0 48px #8f5cff, 0 0 80px #00cfff;
    box-shadow: 0 0 32px #e6007a, 0 0 64px #8f5cff, 0 0 96px #00cfff;
  }
}

.neon-glow {
  animation: neon-glow 1.5s ease-in-out infinite alternate;
}

@keyframes flip-in {
  0% { opacity: 0; transform: rotateY(90deg) scale(0.8); }
  60% { opacity: 1; transform: rotateY(-10deg) scale(1.05); }
  80% { transform: rotateY(4deg) scale(0.97); }
  100% { opacity: 1; transform: rotateY(0deg) scale(1); }
}

.flip-in {
  animation: flip-in 1.1s cubic-bezier(.68,-0.55,.27,1.55) both;
  backface-visibility: hidden;
  perspective: 800px;
}

@keyframes bounce-in {
  0% { opacity: 0; transform: scale(0.8) translateY(40px); }
  60% { opacity: 1; transform: scale(1.05) translateY(-10px); }
  80% { transform: scale(0.97) translateY(4px); }
  100% { opacity: 1; transform: scale(1) translateY(0); }
}

.bounce-in {
  animation: bounce-in 1.1s cubic-bezier(.68,-0.55,.27,1.55) both;
}
