.nb-flipflop-button-v3 {
    --elastic-ease: linear( 0, 0.2178 2.1%, 1.1144 8.49%, 1.2959 10.7%, 1.3463 11.81%, 1.3705 12.94%, 1.3726, 1.3643 14.48%, 1.3151 16.2%, 1.0317 21.81%, 0.941 24.01%, 0.8912 25.91%, 0.8694 27.84%, 0.8698 29.21%, 0.8824 30.71%, 1.0122 38.33%, 1.0357, 1.046 42.71%, 1.0416 45.7%, 0.9961 53.26%, 0.9839 57.54%, 0.9853 60.71%, 1.0012 68.14%, 1.0056 72.24%, 0.9981 86.66%, 1 100% );
    --elastic-ease-out: linear( 0, 0.5737 7.6%, 0.8382 11.87%, 0.9463 14.19%, 1.0292 16.54%, 1.0886 18.97%, 1.1258 21.53%, 1.137 22.97%, 1.1424 24.48%, 1.1423 26.1%, 1.1366 27.86%, 1.1165 31.01%, 1.0507 38.62%, 1.0219 42.57%, 0.9995 46.99%, 0.9872 51.63%, 0.9842 58.77%, 1.0011 81.26%, 1 );
    --transform-ease: cubic-bezier(.32, .72, 0, 1);
    --opacity-ease: ease-out;

    z-index: 1;
    -webkit-user-select: none;
    user-select: none;
    transform-style: preserve-3d;
    text-decoration: none;
    position: relative;
    cursor: pointer;
    width: fit-content;
    
    -webkit-tap-highlight-color: transparent;
}
.nb-flipflop-button-v3::before {
    content: "";
    display: block;
    position: absolute;
}
.nb-flipflop-button-v3__container {
    display: block;
    opacity: 0;
}
.nb-flipflop-button-v3__text {
    display: block;
}
.nb-flipflop-button-v3__background {
    z-index: -1;
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0%;
}
.nb-flipflop-button-v3::after {
    content: attr(data-text);
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    inset: 0;
    z-index: 1;
}
@media (hover: hover) and (pointer: fine) {
    .nb-flipflop-button-v3::after {
        opacity: 0;
        transform: perspective(var(--perspective)) translate3d(1.5em, 1.25em, -3em) rotateY(var(--rotation)) rotatex(calc(var(--rotation) * -1));
        transition: transform var(--flipflop-duration) var(--elastic-ease-out), opacity calc(var(--flipflop-duration) * 0.2) var(--opacity-ease);
        pointer-events: none;
    }
    .nb-flipflop-button-v3__container {
        transition: transform var(--flipflop-duration) var(--elastic-ease-out), opacity calc(var(--flipflop-duration) * 0.2) var(--opacity-ease);
        transform: perspective(var(--perspective)) translate3d(0, 0, 0) rotateY(0) rotatex(0);
        opacity: 1;
    }
    .nb-flipflop-button-v3:hover .nb-flipflop-button-v3__container,
    .nb-flipflop-button-v3:focus-visible .nb-flipflop-button-v3__container {
        transform: perspective(var(--perspective)) translate3d(-1.5em, -1.5em, -3em) rotateY(calc(var(--rotation) * -1)) rotatex(var(--rotation));
        opacity: 0;
        pointer-events: none;
    }
    .nb-flipflop-button-v3:hover::after,
    .nb-flipflop-button-v3:focus-visible::after {
        transform: translate3d(0, 0, 0) rotateY(0) rotatex(0);
        opacity: 1;
    }
}