@keyframes rubberBand {
    from {transform: scale3d(1, 1, 1);}
    30% {transform: scale3d(1.25, 0.75, 1);}
    40% {transform: scale3d(0.85, 1.25, 1);}
    50% {transform: scale3d(1.15, 0.95, 1);}
    65% {transform: scale3d(.95, 1.05, 1);}
    75% {transform: scale3d(1.05, .95, 1);}
    to {transform: scale3d(1, 1, 1);}
}

.rubberBand {
    -webkit-animation-name: rubberBand;
    animation-name: rubberBand;

    animation-duration: 1.3s;
    animation-fill-mode: both;
    animation-iteration-count: infinite;
}


.button::before {
    position: absolute;
    content: "";
    left: -2em;
    right: -2em;
    top: -2em;
    bottom: -2em;
    pointer-events: none;
    transition: ease-in-out 0.5s;
    background-repeat: no-repeat;

    background-size: 10% 10%, 20% 20%, 15% 15%, 20% 20%, 18% 18%, 10% 10%, 15% 15%,
    10% 10%, 18% 18%, 15% 15%, 20% 20%, 18% 18%, 20% 20%, 15% 15%, 10% 10%,
    20% 20%;
    background-position: 18% 40%, 20% 31%, 30% 30%, 40% 30%, 50% 30%, 57% 30%,
    65% 30%, 80% 32%, 15% 60%, 83% 60%, 18% 70%, 25% 70%, 41% 70%, 50% 70%,
    64% 70%, 80% 71%;
    animation: bubbles ease-in-out 0.65s 3s forwards;
    -webkit-animation: bubbles ease-in-out 0.65s forwards;
    animation-iteration-count: 1;
}

@keyframes bubbles {
    0%{
        background-image: radial-gradient(circle, white 20%, transparent 20%),
        radial-gradient(circle, white 20%, transparent 20%),
        radial-gradient(circle, white 20%, transparent 20%),
        radial-gradient(circle, white 20%, transparent 20%),
        radial-gradient(circle, white 20%, transparent 20%),
        radial-gradient(circle, white 20%, transparent 20%),
        radial-gradient(circle, white 20%, transparent 20%),
        radial-gradient(circle, white 20%, transparent 20%),
        radial-gradient(circle, white 20%, transparent 20%),
        radial-gradient(circle, white 20%, transparent 20%),
        radial-gradient(circle, white 20%, transparent 20%),
        radial-gradient(circle, white 20%, transparent 20%),
        radial-gradient(circle, white 20%, transparent 20%),
        radial-gradient(circle, white 20%, transparent 20%),
        radial-gradient(circle, white 20%, transparent 20%),
        radial-gradient(circle, white 20%, transparent 20%);
    }
    1% {
        background-position: 18% 40%, 20% 31%, 30% 30%, 40% 30%, 50% 30%, 57% 30%,
        65% 30%, 80% 32%, 15% 60%, 83% 60%, 18% 70%, 25% 70%, 41% 70%, 50% 70%,
        64% 70%, 80% 71%;
    }
    50% {
        background-position: 10% 44%, 0% 20%, 15% 5%, 30% 0%, 42% 0%, 62% -2%,
        75% 0%, 95% -2%, 0% 80%, 95% 55%, 7% 100%, 24% 100%, 41% 100%, 55% 95%,
        68% 96%, 95% 100%;
    }
    100% {
        background-position: 5% 44%, -5% 20%, 7% 5%, 23% 0%, 37% 0, 58% -2%, 80% 0%,
        100% -2%, -5% 80%, 100% 55%, 2% 100%, 23% 100%, 42% 100%, 60% 95%, 70% 96%,
        100% 100%;
        background-size: 0 0;
    }
}
