.ai-button-bouncy {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100px;
    height: 100px;
    border-radius: 25%;
    background: transparent;
    border: none;
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
}

.ai-button-bouncy:hover {
    animation: grow 1s ease forwards;
}

.ai-button-bouncy .aura {
    content: "";
    position: absolute;
    width: 90%;
    height: 90%;
    border-radius: 25%;
    overflow: hidden;
    animation: rotate 15s linear infinite;
}

.ai-button-bouncy .aura::before {
    content: "";
    position: absolute;
    overflow: hidden;
    width: 100%;
    height: 100%;
    filter: blur(16px);
    background: conic-gradient(#9ed2ff 0%, #b69cff 25%, #ff739a 55%, #ffb347 80%, #9ed2ff 100%);
    transform: scale(0);
    transition: transform 0.5s cubic-bezier(0.3, 0.75, 0.2, 1);
}

.ai-button-bouncy:hover .aura::before {
    transform: scale(1);
}

.ai-button-bouncy svg {
    z-index: 1;
    width: 70%;
    height: 70%;
    position: relative;
    fill: currentColor;
    color: #441036;
}

.ai-button-bouncy:hover svg {
    animation: bounce 0.6s cubic-bezier(0.2, 0.9, 0.3, 1.2) infinite;
}

.ai-button-bouncy .label {
    position: absolute;
    z-index: 1;
    bottom: -2.5em;
    pointer-events: none;
    font-size: 0.9em;
    font-weight: 900;
    letter-spacing: 0.02em;
    white-space: nowrap;
    background: linear-gradient(90deg, #a600ff 0%, #00b3ff 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    padding: 0.4em 0.8em;
    border-radius: 0.4em;
    transition: opacity 1s cubic-bezier(0.165, 0.84, 0.44, 1);
    opacity: 0;
}

.ai-button-bouncy:hover .label {
    opacity: 1;
}

@keyframes grow {
    0% {
        transform: scale(1);
    }

    15% {
        transform: scale(1.1);
    }

    100% {
        transform: scale(1);
    }
}

@keyframes rotate {
    from {
        transform: rotate(0turn);
    }

    to {
        transform: rotate(1turn);
    }
}

@keyframes bounce {
    0% {
        transform: scale(1, 1);
    }

    25% {
        transform: scale(1.1, 0.9);
    }

    50% {
        transform: scale(1, 1);
    }

    75% {
        transform: scale(0.9, 1.1);
    }

    100% {
        transform: scale(1, 1);
    }
}