/* A quiet underwater rhythm, independent of layout transforms. */
@keyframes ocean-float {
  0%, 100% { translate: 0 0; }
  50% { translate: 0 -5px; }
}
.jellyfish-dot { animation: ocean-float 8s ease-in-out infinite; }
.jellyfish-dot-purple { animation-delay: -4s; }
.jellyfish-image-small { animation: ocean-float 10s ease-in-out infinite; }
:is(.hero-btn,.explore-btn,.visit-btn,.carousel-btn,.visit-hero-btn,.aqualume-btn) {
  position: relative;
  isolation: isolate;
}
:is(.hero-btn,.explore-btn,.visit-btn,.carousel-btn,.visit-hero-btn,.aqualume-btn)::after {
  content: '';
  position: absolute;
  inset: -3px;
  border: 1px solid currentColor;
  border-radius: inherit;
  opacity: 0;
  pointer-events: none;
}
@keyframes water-ring {
  from { opacity: .3; scale: 1; }
  to { opacity: 0; scale: 1.1 1.25; }
}
@media (hover: hover) {
  :is(.hero-btn,.explore-btn,.visit-btn,.carousel-btn,.visit-hero-btn,.aqualume-btn):hover::after {
    animation: water-ring 700ms ease-out;
  }
}
:is(.hero-btn,.explore-btn,.visit-btn,.carousel-btn,.visit-hero-btn,.aqualume-btn):active::after {
  animation: water-ring 700ms ease-out;
}
@media (prefers-reduced-motion: reduce) {
  .jellyfish-dot,.jellyfish-image-small,
  :is(.hero-btn,.explore-btn,.visit-btn,.carousel-btn,.visit-hero-btn,.aqualume-btn)::after {
    animation: none !important;
  }
}
