@keyframes heroFadeUp {
    from {
        opacity: 0;
        transform: translateY(16px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.wow {
    will-change: transform, opacity;
}

@keyframes heroFadeUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes drift-cloud {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(110vw);
    }
}

@keyframes drift-cloud-reverse {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-110vw);
    }
}

@keyframes bird-fly {
    0% {
        transform: translateX(0) scaleX(1);
    }

    100% {
        transform: translateX(110vw) scaleX(1);
    }
}

@keyframes flight-path {
    0% {
        left: -150px;
        top: 60%;
        transform: rotate(5deg);
    }

    20% {
        top: 40%;
        transform: rotate(-5deg);
    }

    40% {
        top: 55%;
        transform: rotate(2deg);
    }

    60% {
        top: 35%;
        transform: rotate(-3deg);
    }

    80% {
        top: 45%;
        transform: rotate(0deg);
    }

    100% {
        left: 100%;
        top: 30%;
        transform: rotate(-5deg);
    }
}

@keyframes flight-wobble {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-5px);
    }
}

.animated {
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
}

@-webkit-keyframes fadeIn {
    from {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

.fadeIn {
    animation-name: fadeIn;
}

@-webkit-keyframes fadeInUp {
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0);
    }

    100% {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0);
    }

    100% {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

.fadeInUp {
    animation-name: fadeInUp;
}

@-webkit-keyframes fadeInDown {
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0);
    }

    100% {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

@keyframes fadeInDown {
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0);
    }

    100% {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

.fadeInDown {
    animation-name: fadeInDown;
}

@-webkit-keyframes fadeInLeft {
    from {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }

    100% {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

@keyframes fadeInLeft {
    from {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }

    100% {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

.fadeInLeft {
    animation-name: fadeInLeft;
}

@-webkit-keyframes fadeInRight {
    from {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0);
    }

    100% {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

@keyframes fadeInRight {
    from {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0);
    }

    100% {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

.fadeInRight {
    animation-name: fadeInRight;
}

@keyframes fadeInTab {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes l27-0 {

    0%,
    30% {
        transform: rotate(0)
    }

    70% {
        transform: rotate(120deg)
    }

    70.01%,
    100% {
        transform: rotate(360deg)
    }
}

@keyframes l27-1 {
    0% {
        transform: rotate(calc(var(--s, 1)*120deg)) translate(0)
    }

    30%,
    70% {
        transform: rotate(calc(var(--s, 1)*120deg)) translate(calc(var(--s, 1)*-5px), 10px)
    }

    100% {
        transform: rotate(calc(var(--s, 1)*120deg)) translate(0)
    }
}

@-webkit-keyframes ball-triangle-path-ball-one {
    0% {
        -webkit-transform: translate(0, 220%);
        transform: translate(0, 220%);
    }

    17% {
        opacity: .25;
    }

    33% {
        opacity: 1;
        -webkit-transform: translate(110%, 0);
        transform: translate(110%, 0);
    }

    50% {
        opacity: .25;
    }

    66% {
        opacity: 1;
        -webkit-transform: translate(220%, 220%);
        transform: translate(220%, 220%);
    }

    83% {
        opacity: .25;
    }

    100% {
        opacity: 1;
        -webkit-transform: translate(0, 220%);
        transform: translate(0, 220%);
    }
}

@-moz-keyframes ball-triangle-path-ball-one {
    0% {
        -moz-transform: translate(0, 220%);
        transform: translate(0, 220%);
    }

    17% {
        opacity: .25;
    }

    33% {
        opacity: 1;
        -moz-transform: translate(110%, 0);
        transform: translate(110%, 0);
    }

    50% {
        opacity: .25;
    }

    66% {
        opacity: 1;
        -moz-transform: translate(220%, 220%);
        transform: translate(220%, 220%);
    }

    83% {
        opacity: .25;
    }

    100% {
        opacity: 1;
        -moz-transform: translate(0, 220%);
        transform: translate(0, 220%);
    }
}

@-o-keyframes ball-triangle-path-ball-one {
    0% {
        -o-transform: translate(0, 220%);
        transform: translate(0, 220%);
    }

    17% {
        opacity: .25;
    }

    33% {
        opacity: 1;
        -o-transform: translate(110%, 0);
        transform: translate(110%, 0);
    }

    50% {
        opacity: .25;
    }

    66% {
        opacity: 1;
        -o-transform: translate(220%, 220%);
        transform: translate(220%, 220%);
    }

    83% {
        opacity: .25;
    }

    100% {
        opacity: 1;
        -o-transform: translate(0, 220%);
        transform: translate(0, 220%);
    }
}

@keyframes ball-triangle-path-ball-one {
    0% {
        -webkit-transform: translate(0, 220%);
        -moz-transform: translate(0, 220%);
        -o-transform: translate(0, 220%);
        transform: translate(0, 220%);
    }

    17% {
        opacity: .25;
    }

    33% {
        opacity: 1;
        -webkit-transform: translate(110%, 0);
        -moz-transform: translate(110%, 0);
        -o-transform: translate(110%, 0);
        transform: translate(110%, 0);
    }

    50% {
        opacity: .25;
    }

    66% {
        opacity: 1;
        -webkit-transform: translate(220%, 220%);
        -moz-transform: translate(220%, 220%);
        -o-transform: translate(220%, 220%);
        transform: translate(220%, 220%);
    }

    83% {
        opacity: .25;
    }

    100% {
        opacity: 1;
        -webkit-transform: translate(0, 220%);
        -moz-transform: translate(0, 220%);
        -o-transform: translate(0, 220%);
        transform: translate(0, 220%);
    }
}

@-webkit-keyframes ball-triangle-path-ball-two {
    0% {
        -webkit-transform: translate(110%, 0);
        transform: translate(110%, 0);
    }

    17% {
        opacity: .25;
    }

    33% {
        opacity: 1;
        -webkit-transform: translate(220%, 220%);
        transform: translate(220%, 220%);
    }

    50% {
        opacity: .25;
    }

    66% {
        opacity: 1;
        -webkit-transform: translate(0, 220%);
        transform: translate(0, 220%);
    }

    83% {
        opacity: .25;
    }

    100% {
        opacity: 1;
        -webkit-transform: translate(110%, 0);
        transform: translate(110%, 0);
    }
}

@-moz-keyframes ball-triangle-path-ball-two {
    0% {
        -moz-transform: translate(110%, 0);
        transform: translate(110%, 0);
    }

    17% {
        opacity: .25;
    }

    33% {
        opacity: 1;
        -moz-transform: translate(220%, 220%);
        transform: translate(220%, 220%);
    }

    50% {
        opacity: .25;
    }

    66% {
        opacity: 1;
        -moz-transform: translate(0, 220%);
        transform: translate(0, 220%);
    }

    83% {
        opacity: .25;
    }

    100% {
        opacity: 1;
        -moz-transform: translate(110%, 0);
        transform: translate(110%, 0);
    }
}

@-o-keyframes ball-triangle-path-ball-two {
    0% {
        -o-transform: translate(110%, 0);
        transform: translate(110%, 0);
    }

    17% {
        opacity: .25;
    }

    33% {
        opacity: 1;
        -o-transform: translate(220%, 220%);
        transform: translate(220%, 220%);
    }

    50% {
        opacity: .25;
    }

    66% {
        opacity: 1;
        -o-transform: translate(0, 220%);
        transform: translate(0, 220%);
    }

    83% {
        opacity: .25;
    }

    100% {
        opacity: 1;
        -o-transform: translate(110%, 0);
        transform: translate(110%, 0);
    }
}

@keyframes ball-triangle-path-ball-two {
    0% {
        -webkit-transform: translate(110%, 0);
        -moz-transform: translate(110%, 0);
        -o-transform: translate(110%, 0);
        transform: translate(110%, 0);
    }

    17% {
        opacity: .25;
    }

    33% {
        opacity: 1;
        -webkit-transform: translate(220%, 220%);
        -moz-transform: translate(220%, 220%);
        -o-transform: translate(220%, 220%);
        transform: translate(220%, 220%);
    }

    50% {
        opacity: .25;
    }

    66% {
        opacity: 1;
        -webkit-transform: translate(0, 220%);
        -moz-transform: translate(0, 220%);
        -o-transform: translate(0, 220%);
        transform: translate(0, 220%);
    }

    83% {
        opacity: .25;
    }

    100% {
        opacity: 1;
        -webkit-transform: translate(110%, 0);
        -moz-transform: translate(110%, 0);
        -o-transform: translate(110%, 0);
        transform: translate(110%, 0);
    }
}

@-webkit-keyframes ball-triangle-path-ball-tree {
    0% {
        -webkit-transform: translate(220%, 220%);
        transform: translate(220%, 220%);
    }

    17% {
        opacity: .25;
    }

    33% {
        opacity: 1;
        -webkit-transform: translate(0, 220%);
        transform: translate(0, 220%);
    }

    50% {
        opacity: .25;
    }

    66% {
        opacity: 1;
        -webkit-transform: translate(110%, 0);
        transform: translate(110%, 0);
    }

    83% {
        opacity: .25;
    }

    100% {
        opacity: 1;
        -webkit-transform: translate(220%, 220%);
        transform: translate(220%, 220%);
    }
}

@-moz-keyframes ball-triangle-path-ball-tree {
    0% {
        -moz-transform: translate(220%, 220%);
        transform: translate(220%, 220%);
    }

    17% {
        opacity: .25;
    }

    33% {
        opacity: 1;
        -moz-transform: translate(0, 220%);
        transform: translate(0, 220%);
    }

    50% {
        opacity: .25;
    }

    66% {
        opacity: 1;
        -moz-transform: translate(110%, 0);
        transform: translate(110%, 0);
    }

    83% {
        opacity: .25;
    }

    100% {
        opacity: 1;
        -moz-transform: translate(220%, 220%);
        transform: translate(220%, 220%);
    }
}

@-o-keyframes ball-triangle-path-ball-tree {
    0% {
        -o-transform: translate(220%, 220%);
        transform: translate(220%, 220%);
    }

    17% {
        opacity: .25;
    }

    33% {
        opacity: 1;
        -o-transform: translate(0, 220%);
        transform: translate(0, 220%);
    }

    50% {
        opacity: .25;
    }

    66% {
        opacity: 1;
        -o-transform: translate(110%, 0);
        transform: translate(110%, 0);
    }

    83% {
        opacity: .25;
    }

    100% {
        opacity: 1;
        -o-transform: translate(220%, 220%);
        transform: translate(220%, 220%);
    }
}

@keyframes ball-triangle-path-ball-tree {
    0% {
        -webkit-transform: translate(220%, 220%);
        -moz-transform: translate(220%, 220%);
        -o-transform: translate(220%, 220%);
        transform: translate(220%, 220%);
    }

    17% {
        opacity: .25;
    }

    33% {
        opacity: 1;
        -webkit-transform: translate(0, 220%);
        -moz-transform: translate(0, 220%);
        -o-transform: translate(0, 220%);
        transform: translate(0, 220%);
    }

    50% {
        opacity: .25;
    }

    66% {
        opacity: 1;
        -webkit-transform: translate(110%, 0);
        -moz-transform: translate(110%, 0);
        -o-transform: translate(110%, 0);
        transform: translate(110%, 0);
    }

    83% {
        opacity: .25;
    }

    100% {
        opacity: 1;
        -webkit-transform: translate(220%, 220%);
        -moz-transform: translate(220%, 220%);
        -o-transform: translate(220%, 220%);
        transform: translate(220%, 220%);
    }
}

.animated {
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-duration: var(--animate-duration);
    animation-duration: var(--animate-duration);
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
}

.animated.slow {
    -webkit-animation-duration: 2s;
    animation-duration: 2s;
}

.animated.fast {
    -webkit-animation-duration: 0.8s;
    animation-duration: 0.8s;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translate3d(0, 100%, 0);
    }

    to {
        opacity: 1;
        transform: translateZ(0);
    }
}

@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translate3d(0, -100%, 0);
    }

    to {
        opacity: 1;
        transform: translateZ(0);
    }
}

@keyframes fadeInLeft {
    from {
        opacity: 0;
        transform: translate3d(-100%, 0, 0);
    }

    to {
        opacity: 1;
        transform: translateZ(0);
    }
}

@keyframes fadeInRight {
    from {
        opacity: 0;
        transform: translate3d(100%, 0, 0);
    }

    to {
        opacity: 1;
        transform: translateZ(0);
    }
}

@keyframes zoomIn {
    from {
        opacity: 0;
        transform: scale3d(0.3, 0.3, 0.3);
    }

    50% {
        opacity: 1;
    }
}

.zoomIn {
    animation-name: zoomIn;
}