.modal-bubble {
    opacity: 0;
    transform-origin: var(--bubble-x) var(--bubble-y);
}

.modal-bubble.active {
    opacity: 1;
    animation: bubble-in 0.4s ease-out forwards;
}

@keyframes bubble-in {
    0% {
        transform: scale(0) translateY(0);
        border-radius: 50%;
    }
    50% {
        border-radius: 30%;
    }
    100% {
        transform: scale(1) translateY(0);
        border-radius: 1rem;
    }
}

.modal-overlay {
    visibility: hidden;
    opacity: 0;
    transition: visibility 0s, opacity 0.3s ease-out;
}

.modal-overlay.active {
    visibility: visible;
    opacity: 1;
    backdrop-filter: blur(5px);
}