.hide {
    display: none !important;
}

.hide-by-pos {
    position: absolute;
    top: -10000px;
    left: -10000px;
}

.invisible {
    visibility: hidden !important;
}

.flip3d {
    animation: flip3d 1s linear 0s infinite;
    transform-style: preserve-3d;
}

.grayscale {
    filter: grayscale(1);
}

.input-shake {
    animation: shake 50s cubic-bezier(0.36, 0.07, 0.19, 0.97) 0s;
}

@keyframes flip3d {
    from {
        transform: rotateY(0);
    }
    to {
        transform: rotateY(360deg);
    }
}

@keyframes shake {
    0%,
    1%,
    100% {
        transform: translate3d(0, 0, 0);
    }
    .1%,
    .9% {
        transform: translate3d(-1px, 0, 0);
    }
    .2%,
    .8% {
        transform: translate3d(2px, 0, 0);
    }
    .3%,
    .5%,
    .7% {
        transform: translate3d(-3px, 0, 0);
    }
    .4%,
    .6% {
        transform: translate3d(3px, 0, 0);
    }
}
