/* Custom styles */
:root {
  --animation-duration: 0.3s;
}

body {
  font-family: 'Nunito', sans-serif;
  transition: background-color 0.3s, color 0.3s;
}

.counter-value {
  transition: all var(--animation-duration) ease-in-out;
}

button:active .counter-value {
  transform: scale(1.5);
  transition: transform 0.1s ease-in-out;
}

/* Bounce animation for counts */
@keyframes count-change {
  0% { transform: scale(1); }
  50% { transform: scale(1.3); }
  100% { transform: scale(1); }
}

.counter-value {
  animation-duration: var(--animation-duration);
  animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* Tooltip styles */
[title]:hover::after {
  content: attr(title);
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  background-color: rgba(0, 0, 0, 0.8);
  color: white;
  padding: 5px 10px;
  border-radius: 4px;
  font-size: 0.8rem;
  white-space: nowrap;
  opacity: 0;
  transition: opacity 0.3s;
  z-index: 10;
}

[title]:hover::after {
  opacity: 1;
}

/* Hover effects */
button {
  position: relative;
  overflow: hidden;
}

button::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 5px;
  height: 5px;
  background: rgba(255, 255, 255, 0.5);
  opacity: 0;
  border-radius: 100%;
  transform: scale(1, 1) translate(-50%);
  transform-origin: 50% 50%;
}

@keyframes ripple {
  0% {
    transform: scale(0, 0);
    opacity: 0.5;
  }
  100% {
    transform: scale(100, 100);
    opacity: 0;
  }
}

button:focus:not(:active)::after {
  animation: ripple 1s ease-out;
}

/* Dark mode transitions */
.bg-gray-900, .bg-gray-800, .bg-gray-700, 
.bg-gray-50, .bg-white, 
.text-white, .text-gray-800, .text-gray-900 {
  transition: background-color 0.3s, color 0.3s;
}