@keyframes spinSlow {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.animate-spin-slow {
  animation: spinSlow 12s linear infinite;
}

@keyframes modalEnter {
  0% { transform: scale(0.95) translateY(10px); opacity: 0; }
  100% { transform: scale(1) translateY(0); opacity: 1; }
}

.animate-modal-enter {
  animation: modalEnter 0.25s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Grille stellaire avec dégradé radial */
.canvas-bg-grid {
  background-image: 
    radial-gradient(circle at 50% 50%, rgba(147, 51, 234, 0.08) 0%, transparent 60%),
    linear-gradient(to right, rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
  background-size: 100% 100%, 36px 36px, 36px 36px;
}

/* Barre de défilement discrète */
.custom-scroll::-webkit-scrollbar {
  width: 5px;
}
.custom-scroll::-webkit-scrollbar-track {
  background: transparent;
}
.custom-scroll::-webkit-scrollbar-thumb {
  background: rgba(168, 85, 247, 0.2);
  border-radius: 999px;
}
.custom-scroll::-webkit-scrollbar-thumb:hover {
  background: rgba(168, 85, 247, 0.4);
}

/* Slider stylisé Apple-like */
.range-slider {
  -webkit-appearance: none;
  appearance: none;
  height: 6px;
  border-radius: 999px;
  background: #1a1532;
  border: 1px solid #2c2250;
  outline: none;
}

.range-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #c285ff;
  box-shadow: 0 0 10px rgba(194, 133, 255, 0.8);
  cursor: pointer;
  border: 2px solid #ffffff;
  transition: transform 0.15s ease, background-color 0.15s ease;
}

.range-slider::-webkit-slider-thumb:hover {
  transform: scale(1.2);
  background: #ffffff;
}

/* Sélecteur de couleur custom */
input[type="color"]::-webkit-color-swatch-wrapper {
  padding: 0;
  border-radius: 6px;
}
input[type="color"]::-webkit-color-swatch {
  border: none;
  border-radius: 6px;
}

/* Carte de pinceau active */
.brush-item.active {
  background: linear-gradient(135deg, rgba(168, 85, 247, 0.25), rgba(99, 102, 241, 0.15));
  border-color: rgba(194, 133, 255, 0.6);
  box-shadow: 0 0 15px rgba(168, 85, 247, 0.2);
}

.ai-style-card.active {
  border-color: #c285ff;
  background: rgba(168, 85, 247, 0.18);
  box-shadow: 0 0 12px rgba(168, 85, 247, 0.25);
}