.text-gradient-primary {
  color: #0d6efd; /* Cor sólida de segurança caso o gradiente falhe */
}

@supports (background-clip: text) or (-webkit-background-clip: text) {
  .text-gradient-primary {
      background-image: linear-gradient(90deg, #0d6efd, #0dcaf0);
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
      color: transparent;
  }
}
.text-light-gray { color: #f1f3f5; }

/* Micro-Interações de Fotos */
.grayscale-to-color {
  filter: grayscale(100%);
  transition: all 0.6s ease;
}

.card:hover .grayscale-to-color {
  filter: grayscale(0%);
  transform: scale(1.05);
}

/* Letras de fundo sutil */
.absolute-letter {
  position: absolute;
  bottom: -20px;
  right: 10px;
  font-size: 15rem;
  font-weight: 900;
  color: rgba(255, 255, 255, 0.1);
  line-height: 1;
  pointer-events: none;
}

/* Animações de Entrada (Sem JS) */
.animate-in {
  animation: fadeInDown 0.8s ease backwards;
}

.animate-in-left {
  animation: fadeInLeft 1s ease backwards;
}

.animate-in-right {
  animation: fadeInRight 1s ease backwards;
}

@keyframes fadeInDown {
  from { opacity: 0; transform: translateY(-30px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInLeft {
  from { opacity: 0; transform: translateX(-50px); }
  to { opacity: 1; transform: translateX(0); }
}

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

/* Hover de Bordas no Dark Mode */
.hover-border-primary:hover {
  border-color: #0d6efd !important;
  background: rgba(13, 110, 253, 0.05) !important;
}

.object-fit-cover { object-fit: cover; }
.duration-500 { transition-duration: 0.5s; }





