/*
 *= require_tree .
 *= require_self
 */

html {
  scrollbar-gutter: stable;
}

.icon-centered {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.icon-centered i {
  font-size: 1.25rem !important;
  line-height: 1 !important;
}

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

@keyframes revealCard {
  from {
    opacity: 0;
    transform: translateY(50px) scale(0.8) rotateY(90deg);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1) rotateY(0deg);
  }
}

@keyframes packExplosion {
  0% {
    transform: scale(1) rotate(0deg);
    opacity: 1;
  }
  50% {
    transform: scale(1.2) rotate(180deg);
    opacity: 0.8;
  }
  100% {
    transform: scale(2) rotate(360deg);
    opacity: 0;
  }
}


@keyframes scan-fast {
  0% { top: -20px; opacity: 0; }
  15% { opacity: 1; }
  85% { opacity: 1; }
  100% { top: 100%; opacity: 0; }
}

@keyframes progress-fast {
  0% { width: 0%; }
  100% { width: 100%; }
}

.animate-scan-fast {
  animation: scan-fast 0.65s ease-in-out infinite;
}

.animate-progress-fast {
  animation: progress-fast 0.65s ease-in-out infinite;
}


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

.animate-slide-in-right {
  animation: slideInRight 0.3s ease-out;
  transition: opacity 0.3s, transform 0.3s;
}

/* Inversion des images selon le thème */
.theme-invert {
  filter: invert(1);
}

html[data-theme="dark"] .theme-invert {
  filter: none;
}

.card-primary-hover:hover {
  box-shadow: 0 20px 50px rgba(248, 63, 76, 0.245); /* fallback */
  box-shadow: 0 20px 50px color-mix(in srgb, var(--color-primary, #f83f4c) 25%, transparent);
}
