:host {
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  position: absolute;
  contain: strict;
  pointer-events: none; }

:host(.unbounded) {
  contain: layout size style; }

.ripple-effect {
  border-radius: 50%;
  position: absolute;
  background-color: currentColor;
  color: inherit;
  contain: strict;
  opacity: 0;
  animation: 225ms rippleAnimation forwards, 75ms fadeInAnimation forwards;
  will-change: transform, opacity;
  pointer-events: none; }

.fade-out {
  transform: translate(var(--translate-end)) scale(var(--final-scale, 1));
  animation: 150ms fadeOutAnimation forwards; }

@keyframes rippleAnimation {
  from {
    animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transform: scale(1); }
  to {
    transform: translate(var(--translate-end)) scale(var(--final-scale, 1)); } }

@keyframes fadeInAnimation {
  from {
    animation-timing-function: linear;
    opacity: 0; }
  to {
    opacity: 0.16; } }

@keyframes fadeOutAnimation {
  from {
    animation-timing-function: linear;
    opacity: 0.16; }
  to {
    opacity: 0; } }
