/* assets/css/animations.css */
@keyframes animationIn {
  0% { opacity: 0; transform: translateY(30px); filter: blur(10px); }
  100% { opacity: 1; transform: translateY(0); filter: blur(0px); }
}

.animate-on-scroll {
  animation-play-state: paused !important;
  opacity: 0;
}
.animate-on-scroll.animate {
  animation-play-state: running !important;
  opacity: 1;
}

@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.animate-marquee {
  animation: marquee 40s linear infinite;
}

@keyframes shimmer {
  from { transform: translateX(-100%) skewX(-15deg); }
  to { transform: translateX(200%) skewX(-15deg); }
}

.flashlight-card {
  position: relative;
  overflow: hidden;
}
.flashlight-card::before {
  content: "";
  position: absolute;
  inset: 0px;
  background: radial-gradient(
    600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),
    rgba(255, 255, 255, 0.4),
    transparent 40%
  );
  opacity: 0;
  transition: opacity 0.5s;
  pointer-events: none;
  z-index: 2;
}
.flashlight-card-dark::before {
  background: radial-gradient(
    600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),
    rgba(129, 153, 138, 0.25), /* Verde Sálvia */
    transparent 40%
  );
}
.flashlight-card:hover::before {
  opacity: 1;
}

@keyframes softPulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.7; }
}

.hover-lift {
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.hover-lift:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 32px -12px rgba(38, 59, 51, 0.2); /* Verde Profundo */
}

/* Modal animation */
@keyframes modalSlideUp {
  0% { opacity: 0; transform: translate(-50%, -45%) scale(0.95); filter: blur(4px); }
  100% { opacity: 1; transform: translate(-50%, -50%) scale(1); filter: blur(0px); }
}
.animate-modal {
  animation: modalSlideUp 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Marquee Reduced Motion */
@media (prefers-reduced-motion: reduce) {
  .animate-marquee {
    animation: none !important;
  }
  .marquee-track {
    justify-content: center !important;
  }
  .marquee-content-duplicate {
    display: none !important;
  }
}
