.ripple {
  position: absolute;
  width: 20px;
  height: 20px;
  border-radius: 50%;

  background: radial-gradient(
    circle,
    rgba(255, 255, 255, 0.3) 0%,
    rgba(255, 255, 255, 0.15) 30%,
    rgba(107, 79, 58, 0.08) 60%,
    transparent 80%
  );

  backdrop-filter: blur(1.5px);
  box-shadow:
    0 0 6px rgba(107, 79, 58, 0.15),
    inset 0 0 4px rgba(255, 255, 255, 0.2);

  transform: translate(-50%, -50%) scale(0);
  pointer-events: none;
  z-index: 20;

  animation: rippleEffect 1.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
  will-change: transform, opacity;
}

@keyframes rippleEffect {
  0% {
    transform: translate(-50%, -50%) scale(0);
    opacity: 0.7;
  }
  100% {
    transform: translate(-50%, -50%) scale(15);
    opacity: 0;
  }
}

.ripple::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1px solid rgba(107, 79, 58, 0.1);
  animation: rippleWave 1.4s ease-out;
}

@keyframes rippleWave {
  to {
    transform: scale(1.6);
    opacity: 0;
  }
}
