.fade-in {
  opacity: 0;
  transform: translateY(20px);
  animation: fadeIn 1s ease-in-out forwards;
}
@keyframes fadeIn {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.bounce {
  animation: bounce 1.5s infinite ease-in-out;
}
@keyframes bounce {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-10px); }
}

/* Curseur personnalisé */

.mouse-follow {
  position: fixed;
  top: 0; left: 0;
  width: 30px; height: 30px;
  background-color: rgba(128, 90, 213, 0.7);
  border: 2px solid rgba(255, 255, 255, 0.9);
  border-radius: 50%;
  pointer-events: none;
  mix-blend-mode: difference;
  transition: transform 0.08s linear, opacity 0.2s ease-in-out;
  z-index: 9999;
}

.image-hover:hover {
  filter: hue-rotate(120deg);
  transition: filter 0.3s ease;
}

/* Hack CSS pour le menu mobile */
/* On cache la checkbox */
#mobileNavToggle {
  display: none;
}
/* Le menu est "fermé" par défaut */
#mobileNav {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease-in-out;
}
/* Quand la checkbox est cochée, on "déploie" le menu */
#mobileNavToggle:checked ~ #mobileNav {
  max-height: 400px;
}

@media (max-width: 768px) {
  .mouse-follow {
    display: none !important;
  }
  body {
    cursor: auto !important;
  }
}

.max-h-0 {
  max-height: 0 !important;
}
.max-h-\[400px\] {
  max-height: 400px !important;
}

#mobileNav {
  transition: max-height 0.3s ease-in-out;
}