/* Custom styles */
@keyframes fade-in {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-fade-in {
  animation: fade-in 0.5s ease-out forwards;
}

.bg-gradient-to-r {
  background-size: 200% auto;
  background-position: 0% center;
  transition: background-position 0.5s ease;
}

button:hover .bg-gradient-to-r,
a:hover .bg-gradient-to-r {
  background-position: 100% center;
}

/* Custom scrollbar */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.05);
  border-radius: 10px;
}

::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.1);
  border-radius: 10px;
}

::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.15);
}

/* Dark mode scrollbar */
.dark ::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.05);
}

.dark ::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.1);
}

.dark ::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.15);
}

/* Floating elements */
.shadow-sm, 
.shadow-md {
  transition: all 0.3s ease;
}

.hover\:shadow-md:hover {
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

/* Wave animation */
@keyframes wave {
  0% {
    d: path('M2 12 S5 5, 12 12, 19 5, 22 12');
  }
  50% {
    d: path('M2 12 S5 19, 12 12, 19 19, 22 12');
  }
  100% {
    d: path('M2 12 S5 5, 12 12, 19 5, 22 12');
  }
}

svg path {
  animation: wave 3s ease-in-out infinite;
}