[data-cue=bounceInDown],
[data-cue=bounceInLeft],
[data-cue=bounceInRight],
[data-cue=bounceInUp],
[data-cue=bounceIn],
[data-cue=fadeIn],
[data-cue=rotateIn],
[data-cue=slideInDown],
[data-cue=slideInLeft],
[data-cue=slideInRight],
[data-cue=slideInUp],
[data-cue=zoomIn],
[data-cue=zoomOut],
[data-cues=bounceInDown]>*,
[data-cues=bounceInLeft]>*,
[data-cues=bounceInRight]>*,
[data-cues=bounceInUp]>*,
[data-cues=bounceIn]>*,
[data-cues=fadeIn]>*,
[data-cues=rotateIn]>*,
[data-cues=slideInDown]>*,
[data-cues=slideInLeft]>*,
[data-cues=slideInRight]>*,
[data-cues=slideInUp]>*,
[data-cues=zoomIn]>*,
[data-cues=zoomOut]>* {
    opacity: 0
}

@keyframes fadeIn {
    from {
        opacity: 0
    }
    to {
        opacity: 1
    }
}

@keyframes slideInLeft {
    from {
        opacity: 0;
        transform: translateX(-30px)
    }
    to {
        opacity: 1;
        transform: translateX(0)
    }
}

@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translateX(30px)
    }
    to {
        opacity: 1;
        transform: translateX(0)
    }
}

@keyframes slideInDown {
    from {
        opacity: 0;
        transform: translateY(-30px)
    }
    to {
        opacity: 1;
        transform: translateY(0)
    }
}

@keyframes slideInUp {
    from {
        opacity: 0;
        transform: translateY(30px)
    }
    to {
        opacity: 1;
        transform: translateY(0)
    }
}

@keyframes zoomIn {
    from {
        opacity: 0;
        transform: scale(.8)
    }
    to {
        opacity: 1;
        transform: scale(1)
    }
}

@keyframes zoomOut {
    from {
        opacity: 0;
        transform: scale(1.2)
    }
    to {
        opacity: 1;
        transform: scale(1)
    }
}

@keyframes rotateIn {
    from {
        opacity: 0;
        transform: rotateZ(-15deg)
    }
    to {
        opacity: 1;
        transform: rotateZ(0)
    }
}

@keyframes bounceIn {
    0% {
        transform: scale3d(.3, .3, .3)
    }
    20% {
        transform: scale3d(1.1, 1.1, 1.1)
    }
    40% {
        transform: scale3d(.9, .9, .9)
    }
    60% {
        opacity: 1;
        transform: scale3d(1.03, 1.03, 1.03)
    }
    80% {
        transform: scale3d(.97, .97, .97)
    }
    100% {
        opacity: 1;
        transform: scale3d(1, 1, 1)
    }
}

@keyframes bounceInLeft {
    60%,
    75%,
    90%,
    from,
    to {
        animation-timing-function: cubic-bezier(.215, .61, .355, 1)
    }
    0% {
        opacity: 0;
        transform: translate3d(-3000px, 0, 0)
    }
    60% {
        opacity: 1;
        transform: translate3d(25px, 0, 0)
    }
    75% {
        transform: translate3d(-10px, 0, 0)
    }
    90% {
        transform: translate3d(5px, 0, 0)
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0)
    }
}

@keyframes bounceInRight {
    60%,
    75%,
    90%,
    from,
    to {
        animation-timing-function: cubic-bezier(.215, .61, .355, 1)
    }
    from {
        opacity: 0;
        transform: translate3d(3000px, 0, 0)
    }
    60% {
        opacity: 1;
        transform: translate3d(-25px, 0, 0)
    }
    75% {
        transform: translate3d(10px, 0, 0)
    }
    90% {
        transform: translate3d(-5px, 0, 0)
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0)
    }
}

@keyframes bounceInDown {
    60%,
    75%,
    90%,
    from,
    to {
        animation-timing-function: cubic-bezier(.215, .61, .355, 1)
    }
    0% {
        opacity: 0;
        transform: translate3d(0, -3000px, 0)
    }
    60% {
        opacity: 1;
        transform: translate3d(0, 25px, 0)
    }
    75% {
        transform: translate3d(0, -10px, 0)
    }
    90% {
        transform: translate3d(0, 5px, 0)
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0)
    }
}

@keyframes bounceInUp {
    60%,
    75%,
    90%,
    from,
    to {
        animation-timing-function: cubic-bezier(.215, .61, .355, 1)
    }
    from {
        opacity: 0;
        transform: translate3d(0, 3000px, 0)
    }
    60% {
        opacity: 1;
        transform: translate3d(0, -20px, 0)
    }
    75% {
        transform: translate3d(0, 10px, 0)
    }
    90% {
        transform: translate3d(0, -5px, 0)
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0)
    }
}

[data-cue=flipInX],
[data-cue=flipInY],
[data-cues=flipInX]>*,
[data-cues=flipInY]>* {
    opacity: 0;
    backface-visibility: visible
}

@keyframes flipInX {
    from {
        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        animation-timing-function: ease-in;
        opacity: 0
    }
    40% {
        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        animation-timing-function: ease-in
    }
    60% {
        transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
        opacity: 1
    }
    80% {
        transform: perspective(400px) rotate3d(1, 0, 0, -5deg)
    }
    to {
        opacity: 1;
        transform: perspective(400px)
    }
}

@keyframes flipInY {
    from {
        transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        animation-timing-function: ease-in;
        opacity: 0
    }
    40% {
        transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
        animation-timing-function: ease-in
    }
    60% {
        transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
        opacity: 1
    }
    80% {
        transform: perspective(400px) rotate3d(0, 1, 0, -5deg)
    }
    to {
        opacity: 1;
        transform: perspective(400px)
    }
}