
/* Additional custom styles */
.text-gradient-violet {
  background: linear-gradient(90deg, #9b87f5, #33c5dd);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.bg-gradient-violet {
  background: linear-gradient(90deg, #9b87f5, #33c5dd);
}

.cursor-glow::before {
  content: '';
  display: block;
  position: absolute;
  width: 100px;
  height: 100px;
  background: radial-gradient(circle, rgba(155,135,245,0.4) 0%, rgba(155,135,245,0) 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 999;
}

@keyframes float {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}

.animate-float {
  animation: float 6s ease-in-out infinite;
}

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

.animate-pulse-light {
  animation: pulse 3s ease-in-out infinite;
}

/* Card flip effect */
.perspective {
  perspective: 2000px;
}

.preserve-3d {
  transform-style: preserve-3d;
}

.backface-hidden {
  backface-visibility: hidden;
}

.rotate-y-180 {
  transform: rotateY(180deg);
}
