
.footer {
    z-index: 1;
    --footer-background: #7bc6b4; /* footer bubble color */
    position: relative;
    grid-area: footer;
    width:100%;
    min-height: 12rem;
}

.footer .bubbles {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1rem;
    background: var(--footer-background);
    filter: url("#blob");
}

.footer .bubbles .bubble {
    position: absolute;
    left: var(--position);
    background: var(--footer-background);
    border-radius: 100%;
    animation: 
        bubble-size var(--time, 2s) ease-in infinite var(--delay, 0s),
        bubble-move var(--time, 3s) ease-in infinite var(--delay, 0s);
    transform: translate(-50%, 100%);
}

.footer .content {
    z-index: 2;
    position: absolute;
    background: var(--footer-background);
    color: #fdfdfd;
    padding: 2rem 0;
    width: 100%
}

.footer .content a,
.footer .content p {
    color: #fdfdfd;
    text-decoration: none;
}

.footer .content b {
    color: white;
}

.footer .content p {
    margin: 0;
    font-size: 0.75rem;
}

.footer .content > div {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.footer .content > div > div {
    margin: 0.25rem 0;
}

.footer .content > div > div > * {
    margin-right: 0.5rem;
}

@keyframes bubble-size {
    0%, 80% {
        width: var(--size, 3rem);
        height: var(--size, 3rem);
    }
    100% {
        width: 0;
        height: 0;
    }
}

@keyframes bubble-move {
    0% {
        bottom: -4rem;
    }
    100% {
        bottom: var(--distance, 2rem);
    }
}