html {
  scroll-behavior: smooth;
}
@keyframes scrollText {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.animate-scroll {
  display: flex;
  width: max-content;
  animation: scrollText 20s linear infinite;
}
.animate-scroll:hover {
  animation-play-state: paused;
}
@keyframes slideUp {
  from { transform: translateY(100%); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}
.toast-enter {
  animation: slideUp 0.3s ease-out forwards;
}

/* Styles pour le Zoom */
.zoom-container {
  cursor: crosshair;
  overflow: hidden;
  position: relative;
}
.zoom-image {
  transition: transform 0.1s ease-out;
  transform-origin: center center;
}
.zoom-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.03);
  opacity: 0;
  transition: opacity 0.3s;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.group:hover .zoom-overlay {
  opacity: 1;
}

/* Styles pour les confettis fleurs */
@keyframes fallAndSway {
  0% { transform: translateY(-10vh) translateX(0) rotate(0deg); opacity: 1; }
  50% { transform: translateY(50vh) translateX(30px) rotate(180deg); }
  100% { transform: translateY(110vh) translateX(-30px) rotate(360deg); opacity: 0; }
}
.flower-confetti {
  position: fixed;
  z-index: 9999;
  pointer-events: none;
  animation: fallAndSway linear forwards;
}