.lb-floating {
    animation: float 4s ease-in-out infinite;
}

.lb-floating-40 {
    --float-distance: -40px;
}

.lb-rotate {
    --rotate-x: 40px;
    --rotate-y: -25px;
    --rotate-deg: -5deg;
    animation: rotate 4s ease-in-out infinite;
}

.lb-rotate-functionality {
    animation: rotate-functionality 4s ease-in-out infinite;
}

.lb-btn-blink a {
    animation: pulseGlow 3s ease-in-out infinite;
    transition: all 0.3s ease;
}

.lb-btn-blink a:hover {
    animation: pulseGlowHover 1s ease-in-out infinite;
}

@keyframes float {
    0% {
        transform: translateY(0px);
    }
    50% {
        transform: translateY(var(--float-distance, -12px));
        /*transform: translateY(-12px);*/
    }
    100% {
        transform: translateY(0px);
    }
}

@keyframes rotate {
    0% {
        transform: translate(0px, 0px) rotate(0deg);
    }

    50% {
        transform: translate(var(--rotate-x, 40px), var(--rotate-y, -25px)) rotate(var(--rotate-deg, -5deg));
    }

    100% {
        transform: translate(0px, 0px) rotate(0deg);
    }
}

@keyframes rotate-functionality {
    0% {
        transform: scale(1) translate(0px, 0px) rotate(0deg);
    }

    30% {
        transform: translate(8px, -4px) scale(1.1) rotate(5deg);
    }

    70% {
        transform: translate(-12px, 14px) scale(1.1) rotate(-5deg);
    }

    100% {
        transform: translate(0px, 0px) scale(1) rotate(0deg);
    }
}

@keyframes pulseGlow {
    0% {
        box-shadow:
                inset 0 1px 1px rgba(255,255,255,.15),
                inset 0 -1px 2px rgba(0,0,0,.08),
                0 0 0 1px #3385FF0D;
    }

    40% {
        box-shadow:
                inset 0 1px 1px rgba(255,255,255,.15),
                inset 0 -1px 2px rgba(0,0,0,.08),
                0 0 0 6px #3385FF26;
    }

    65% {
        transform: scale(1.03);
        box-shadow:
                inset 0 1px 1px rgba(255,255,255,.15),
                inset 0 -1px 2px rgba(0,0,0,.08),
                0 0 0 10px #3385FF00;
    }

    100% {
        box-shadow:none;
    }
}

@keyframes pulseGlowHover {
    0% {
        transform: scale(1.02);
        box-shadow:
                inset 0 1px 1px rgba(255,255,255,.05),
                inset 0 -1px 2px rgba(0,0,0,.08),
                0 0 0 3px #0052CC0D;
    }

    40% {
        box-shadow:
                inset 0 1px 1px rgba(255,255,255,.05),
                inset 0 -1px 2px rgba(0,0,0,.08),
                0 0 0 6px #0052CC1F;
    }

    55% {
        transform: scale(1.03);
        box-shadow:
                inset 0 1px 1px rgba(255,255,255,.05),
                inset 0 -1px 2px rgba(0,0,0,.08),
                0 0 0 10px #0052CC00;
    }

    100% {
        transform: scale(1.02);
        box-shadow:none;
    }
}