/* Animations */

:root {
    --animate-duration: 1s;
    --animate-delay: 1s;
    --animate-repeat: 1;
}

.appear-animation {
    opacity: 0;
}

.appear-animation-visible {
    opacity: 1;
}

.block-appear-animation {
    opacity: 1;
    overflow: hidden;
    position: relative;
}

.block-appear-animation .block-appear-animation-wrapper {
    -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;
    -webkit-animation-delay: 300ms;
    animation-delay: 300ms;
    opacity: 0;
}

.block-appear-animation.appear-animation-visible .block-appear-animation-wrapper {
    -webkit-animation-name: fadeIn;
    animation-name: fadeIn;
}


/* Transitions */

.transition-2ms {
    transition: all 0.2s ease-in-out;
}

.transition-3ms {
    transition: all 0.3s ease-in-out;
}

.transition-4ms {
    transition: all 0.4s ease-in-out;
}


/* Transition Magnetic */

.transition-magnetic {
    transition: transform 0.5s cubic-bezier(0.25, 1, 0.2, 1);
}


/* Translate Animations */

.anim-hover-translate-top-0px:hover {
    transform: translateY(0px) !important;
}

.anim-hover-translate-bottom-0px:hover {
    transform: translateY(0px) !important;
}

.anim-hover-translate-left-0px:hover {
    transform: translateX(0px) !important;
}

.anim-hover-translate-right-0px:hover {
    transform: translateX(0px) !important;
}

.anim-hover-translate-top-5px:hover {
    transform: translateY(-5px) !important;
}

.anim-hover-translate-bottom-5px:hover {
    transform: translateY(5px) !important;
}

.anim-hover-translate-left-5px:hover {
    transform: translateX(-5px) !important;
}

.anim-hover-translate-right-5px:hover {
    transform: translateX(5px) !important;
}

.anim-hover-translate-top-10px:hover {
    transform: translateY(-10px) !important;
}

.anim-hover-translate-bottom-10px:hover {
    transform: translateY(10px) !important;
}

.anim-hover-translate-left-10px:hover {
    transform: translateX(-10px) !important;
}

.anim-hover-translate-right-10px:hover {
    transform: translateX(10px) !important;
}

.anim-hover-translate-top-20px:hover {
    transform: translateY(-20px) !important;
}

.anim-hover-translate-bottom-20px:hover {
    transform: translateY(20px) !important;
}

.anim-hover-translate-left-20px:hover {
    transform: translateX(-20px) !important;
}

.anim-hover-translate-right-20px:hover {
    transform: translateX(20px) !important;
}

.anim-hover-translate-top-30px:hover {
    transform: translateY(-30px) !important;
}

.anim-hover-translate-bottom-30px:hover {
    transform: translateY(30px) !important;
}

.anim-hover-translate-left-30px:hover {
    transform: translateX(-30px) !important;
}

.anim-hover-translate-right-30px:hover {
    transform: translateX(30px) !important;
}

.anim-hover-translate-top-40px:hover {
    transform: translateY(-40px) !important;
}

.anim-hover-translate-bottom-40px:hover {
    transform: translateY(40px) !important;
}

.anim-hover-translate-left-40px:hover {
    transform: translateX(-40px) !important;
}

.anim-hover-translate-right-40px:hover {
    transform: translateX(40px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-top-0px {
    transform: translateY(0px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-bottom-0px {
    transform: translateY(0px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-left-0px {
    transform: translateX(0px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-right-0px {
    transform: translateX(0px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-top-5px {
    transform: translateY(-5px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-bottom-5px {
    transform: translateY(5px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-left-5px {
    transform: translateX(-5px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-right-5px {
    transform: translateX(5px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-top-10px {
    transform: translateY(-10px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-bottom-10px {
    transform: translateY(10px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-left-10px {
    transform: translateX(-10px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-right-10px {
    transform: translateX(10px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-top-20px {
    transform: translateY(-20px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-bottom-20px {
    transform: translateY(20px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-left-20px {
    transform: translateX(-20px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-right-20px {
    transform: translateX(20px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-top-30px {
    transform: translateY(-30px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-bottom-30px {
    transform: translateY(30px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-left-30px {
    transform: translateX(-30px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-right-30px {
    transform: translateX(30px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-top-40px {
    transform: translateY(-40px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-bottom-40px {
    transform: translateY(40px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-left-40px {
    transform: translateX(-40px) !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-translate-right-40px {
    transform: translateX(40px) !important;
}

.anim-hover-scale-1-1:hover {
    transform: scale(1.1);
}

.anim-hover-scale-1-2:hover {
    transform: scale(1.2);
}


/* Opacity Animations */

.anim-hover-opacity-0:hover {
    opacity: 0 !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-opacity-0 {
    opacity: 0 !important;
}

.anim-hover-opacity-10:hover {
    opacity: 1 !important;
}

.anim-hover-inner-wrapper:hover .anim-hover-inner-opacity-10 {
    opacity: 1 !important;
}


/* Side Header Arrow Animations */

@-webkit-keyframes sideMenuArrow {
    0% {
        left: 5px;
    }
    50% {
        left: 10px;
    }
    100% {
        left: 5px;
    }
}

@keyframes sideMenuArrow {
    0% {
        left: 5px;
    }
    50% {
        left: 10px;
    }
    100% {
        left: 5px;
    }
}

@-webkit-keyframes sideMenuArrowBack {
    0% {
        right: 5px;
    }
    50% {
        right: 10px;
    }
    100% {
        right: 5px;
    }
}

@keyframes sideMenuArrowBack {
    0% {
        right: 5px;
    }
    50% {
        right: 10px;
    }
    100% {
        right: 5px;
    }
}


/* Mask Up */

@-webkit-keyframes maskUp {
    from {
        transform: translate(0, 100%);
    }
    to {
        transform: translate(0, 0);
    }
}

@keyframes maskUp {
    from {
        transform: translate(0, 100%);
    }
    to {
        transform: translate(0, 0);
    }
}


/* Mask Right */

@-webkit-keyframes maskRight {
    from {
        transform: translate(-100%, 0);
    }
    to {
        transform: translate(0, 0);
    }
}

@keyframes maskRight {
    from {
        transform: translate(-100%, 0);
    }
    to {
        transform: translate(0, 0);
    }
}


/* Mask Down */

@-webkit-keyframes maskDown {
    from {
        transform: translate(0, -100%);
    }
    to {
        transform: translate(0, 0);
    }
}

@keyframes maskDown {
    from {
        transform: translate(0, -100%);
    }
    to {
        transform: translate(0, 0);
    }
}


/* Mask Left */

@-webkit-keyframes maskLeft {
    from {
        transform: translate(100%, 0);
    }
    to {
        transform: translate(0, 0);
    }
}

@keyframes maskLeft {
    from {
        transform: translate(100%, 0);
    }
    to {
        transform: translate(0, 0);
    }
}

.maskUp {
    -webkit-animation-name: maskUp;
    animation-name: maskUp;
}

.maskRight {
    -webkit-animation-name: maskRight;
    animation-name: maskRight;
}

.maskDown {
    -webkit-animation-name: maskDown;
    animation-name: maskDown;
}

.maskLeft {
    -webkit-animation-name: maskLeft;
    animation-name: maskLeft;
}

@-webkit-keyframes headerReveal {
    from {
        top: -150px;
    }
    to {
        top: 0;
    }
}

@keyframes headerReveal {
    from {
        top: -150px;
    }
    to {
        top: 0;
    }
}


/* Fade In Up Shorter */

@-webkit-keyframes fadeInShorter {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes fadeInShorter {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.fadeInUpShorter {
    -webkit-animation-name: fadeInShorter;
    animation-name: fadeInShorter;
}


/* Fade In Up Shorter */

@-webkit-keyframes fadeInUpShorter {
    from {
        opacity: 0;
        transform: translate(0, 50px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInUpShorter {
    from {
        opacity: 0;
        transform: translate(0, 50px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInUpShorter {
    -webkit-animation-name: fadeInUpShorter;
    animation-name: fadeInUpShorter;
}


/* Fade In Up Shorter Plus */

@-webkit-keyframes fadeInUpShorterPlus {
    from {
        opacity: 0;
        transform: translate(0, 15px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInUpShorterPlus {
    from {
        opacity: 0;
        transform: translate(0, 15px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInUpShorterPlus {
    -webkit-animation-name: fadeInUpShorterPlus;
    animation-name: fadeInUpShorterPlus;
}


/* Fade In Left Shorter */

@-webkit-keyframes fadeInLeftShorter {
    from {
        opacity: 0;
        transform: translate(50px, 0);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInLeftShorter {
    from {
        opacity: 0;
        transform: translate(50px, 0);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInLeftShorter {
    -webkit-animation-name: fadeInLeftShorter;
    animation-name: fadeInLeftShorter;
}


/* Fade In Left Shorter Plus */

@-webkit-keyframes fadeInLeftShorterPlus {
    from {
        opacity: 0;
        transform: translate(15px, 0);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInLeftShorterPlus {
    from {
        opacity: 0;
        transform: translate(15px, 0);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInLeftShorterPlus {
    -webkit-animation-name: fadeInLeftShorterPlus;
    animation-name: fadeInLeftShorterPlus;
}


/* Fade In Right Shorter */

@-webkit-keyframes fadeInRightShorter {
    from {
        opacity: 0;
        transform: translate(-50px, 0);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInRightShorter {
    from {
        opacity: 0;
        transform: translate(-50px, 0);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInRightShorter {
    -webkit-animation-name: fadeInRightShorter;
    animation-name: fadeInRightShorter;
}


/* Fade In Right Shorter Plus */

@-webkit-keyframes fadeInRightShorterPlus {
    from {
        opacity: 0;
        transform: translate(-15px, 0);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInRightShorterPlus {
    from {
        opacity: 0;
        transform: translate(-15px, 0);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInRightShorterPlus {
    -webkit-animation-name: fadeInRightShorterPlus;
    animation-name: fadeInRightShorterPlus;
}


/* Fade In Right Shorter With Opacity */

@-webkit-keyframes fadeInRightShorterOpacity {
    from {
        opacity: 0;
        transform: translate(-50px, 0);
    }
    to {
        opacity: 0.7;
        transform: none;
    }
}

@keyframes fadeInRightShorterOpacity {
    from {
        opacity: 0;
        transform: translate(-50px, 0);
    }
    to {
        opacity: 0.7;
        transform: none;
    }
}

.fadeInRightShorterOpacity {
    -webkit-animation-name: fadeInRightShorterOpacity;
    animation-name: fadeInRightShorterOpacity;
}


/* Fade In Down Shorter */

@-webkit-keyframes fadeInDownShorter {
    from {
        opacity: 0;
        transform: translate(0, -50px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInDownShorter {
    from {
        opacity: 0;
        transform: translate(0, -50px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInDownShorter {
    -webkit-animation-name: fadeInDownShorter;
    animation-name: fadeInDownShorter;
}


/* Fade In Down Shorter Plus */

@-webkit-keyframes fadeInDownShorterPlus {
    from {
        opacity: 0;
        transform: translate(0, -15px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInDownShorterPlus {
    from {
        opacity: 0;
        transform: translate(0, -15px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInDownShorterPlus {
    -webkit-animation-name: fadeInDownShorterPlus;
    animation-name: fadeInDownShorterPlus;
}


/* Fade In Right and Down Shorter */

@-webkit-keyframes fadeInRightDownShorter {
    from {
        opacity: 0;
        transform: translate(-50px, -50px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInRightDownShorter {
    from {
        opacity: 0;
        transform: translate(-50px, -50px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInRightDownShorter {
    -webkit-animation-name: fadeInRightDownShorter;
    animation-name: fadeInRightDownShorter;
}


/* Fade In Right and Up Shorter */

@-webkit-keyframes fadeInRightUpShorter {
    from {
        opacity: 0;
        transform: translate(-50px, 50px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInRightUpShorter {
    from {
        opacity: 0;
        transform: translate(-50px, 50px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInRightUpShorter {
    -webkit-animation-name: fadeInRightUpShorter;
    animation-name: fadeInRightUpShorter;
}


/* Fade In Left and Down Shorter */

@-webkit-keyframes fadeInLeftDownShorter {
    from {
        opacity: 0;
        transform: translate(50px, -50px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInLeftDownShorter {
    from {
        opacity: 0;
        transform: translate(50px, -50px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInLeftDownShorter {
    -webkit-animation-name: fadeInLeftDownShorter;
    animation-name: fadeInLeftDownShorter;
}


/* Fade In Left and Up Shorter */

@-webkit-keyframes fadeInLeftUpShorter {
    from {
        opacity: 0;
        transform: translate(50px, 50px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInLeftUpShorter {
    from {
        opacity: 0;
        transform: translate(50px, 50px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInLeftUpShorter {
    -webkit-animation-name: fadeInLeftUpShorter;
    animation-name: fadeInLeftUpShorter;
}


/* Expand In */

@-webkit-keyframes expandIn {
    from {
        opacity: 0;
        transform: scale(0.8);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes expandIn {
    from {
        opacity: 0;
        transform: scale(0.8);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

.expandIn {
    -webkit-animation-name: expandIn;
    animation-name: expandIn;
}


/* Gradient Transition */

@-webkit-keyframes gradientTransition {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

@keyframes gradientTransition {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}


/* Slider Scroll Button Animation */

@-webkit-keyframes sliderScrollButton {
    0% {
        opacity: 1;
        transform: translate3d(-50%, 0, 0);
    }
    70% {
        opacity: 1;
        transform: translate3d(-50%, 10px, 0);
    }
    100% {
        opacity: 0;
        transform: translate3d(-50%, 10px, 0);
    }
}

@keyframes sliderScrollButton {
    0% {
        opacity: 1;
        transform: translate3d(-50%, 0, 0);
    }
    70% {
        opacity: 1;
        transform: translate3d(-50%, 10px, 0);
    }
    100% {
        opacity: 0;
        transform: translate3d(-50%, 10px, 0);
    }
}


/* Arrow Left Right */

@-webkit-keyframes arrowLeftRight {
    0% {
        transform: translate3d(-1px, 0, 0);
    }
    50% {
        transform: translate3d(1px, 0, 0);
    }
    100% {
        transform: translate3d(-1px, 0, 0);
    }
}

@keyframes arrowLeftRight {
    0% {
        transform: translate3d(-1px, 0, 0);
    }
    50% {
        transform: translate3d(1px, 0, 0);
    }
    100% {
        transform: translate3d(-1px, 0, 0);
    }
}


/* Nav Item Arrow */

@-webkit-keyframes navItemArrow {
    0% {
        position: relative;
        left: -1px;
    }
    50% {
        position: relative;
        left: 3px;
    }
    100% {
        position: relative;
        left: -1px;
    }
}

@keyframes navItemArrow {
    0% {
        position: relative;
        left: -1px;
    }
    50% {
        position: relative;
        left: 3px;
    }
    100% {
        position: relative;
        left: -1px;
    }
}


/* Hover 3d Effect */

.hover-in {
    transition: .1s ease-out !important;
}

.hover-out {
    transition: .1s ease-in !important;
}

.hover-3d {
    transition: none;
}


/* Hotspot */

@-webkit-keyframes hotspot-pulsate {
    0% {
        transform: scale(1);
        opacity: 0.8;
    }
    45% {
        transform: scale(1.75);
        opacity: 0;
    }
}

@keyframes hotspot-pulsate {
    0% {
        transform: scale(1);
        opacity: 0.8;
    }
    45% {
        transform: scale(1.75);
        opacity: 0;
    }
}

@-webkit-keyframes stop-hotspot-pulsate {
    from {
        opacity: 0.4;
    }
    to {
        transform: scale(2);
        opacity: 0;
    }
}

@keyframes stop-hotspot-pulsate {
    from {
        opacity: 0.4;
    }
    to {
        transform: scale(2);
        opacity: 0;
    }
}


/* Dot Pulse */

@-webkit-keyframes dotPulse {
    from {
        opacity: 1;
        transform: scale(0.2);
    }
    to {
        opacity: 0;
        transform: scale(1);
    }
}

@keyframes dotPulse {
    from {
        opacity: 1;
        transform: scale(0.2);
    }
    to {
        opacity: 0;
        transform: scale(1);
    }
}

.dotPulse {
    -webkit-animation-name: dotPulse;
    animation-name: dotPulse;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
    -webkit-animation-duration: 4s;
    animation-duration: 4s;
}


/* Blur In */

@-webkit-keyframes blurIn {
    from {
        opacity: 0;
        filter: blur(20px);
        transform: scale(1.3);
    }
    to {
        opacity: 1;
        filter: blur(0.1px);
        transform: none;
    }
}

@keyframes blurIn {
    from {
        opacity: 0;
        filter: blur(20px);
        transform: scale(1.3);
    }
    to {
        opacity: 1;
        filter: blur(0.1px);
        transform: none;
    }
}

.blurIn {
    -webkit-animation-name: blurIn;
    animation-name: blurIn;
}


/* Ken Burns To Right */

@-webkit-keyframes kenBurnsToRight {
    from {
        transform: scale(1.2);
    }
    to {
        transform: scale(1);
    }
}

@keyframes kenBurnsToRight {
    from {
        transform: scale(1.2);
    }
    to {
        transform: scale(1);
    }
}

.kenBurnsToRight {
    -webkit-animation-name: kenBurnsToRight;
    animation-name: kenBurnsToRight;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    transform-origin: right;
}


/* Ken Burns To Left and Top */

.kenBurnsToRightTop {
    -webkit-animation-name: kenBurnsToRight;
    animation-name: kenBurnsToRight;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    transform-origin: right top;
}


/* Ken Burns To Left */

@-webkit-keyframes kenBurnsToLeft {
    from {
        transform: scale(1.2);
    }
    to {
        transform: scale(1);
    }
}

@keyframes kenBurnsToLeft {
    from {
        transform: scale(1.2);
    }
    to {
        transform: scale(1);
    }
}

.kenBurnsToLeft {
    -webkit-animation-name: kenBurnsToLeft;
    animation-name: kenBurnsToLeft;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    transform-origin: left;
}


/* Ken Burns To Left and Top */

.kenBurnsToLeftTop {
    -webkit-animation-name: kenBurnsToLeft;
    animation-name: kenBurnsToLeft;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    transform-origin: left top;
}


/* Moving From Top to Bottom */

@-webkit-keyframes bgPositionBottomToTop {
    from {
        background-position: bottom;
    }
    to {
        background-position: top;
    }
}

@keyframes bgPositionBottomToTop {
    from {
        background-position: bottom;
    }
    to {
        background-position: top;
    }
}

.bgPositionBottomToTop {
    -webkit-animation-name: bgPositionBottomToTop;
    animation-name: bgPositionBottomToTop;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    transform-origin: right;
}


/* Pulse */

@-webkit-keyframes pulseAnim {
    from {
        transform: scale(1);
        opacity: 1;
    }
    to {
        transform: scale(1.4);
        opacity: 0;
    }
}

@keyframes pulseAnim {
    from {
        transform: scale(1);
        opacity: 1;
    }
    to {
        transform: scale(1.4);
        opacity: 0;
    }
}

.pulseAnim:not(:hover):after {
    -webkit-animation-name: pulseAnim;
    animation-name: pulseAnim;
}

.pulseAnim:after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: inherit;
    border-radius: inherit;
    z-index: -1;
}

.pulseAnim.pulseAnimAnimated:after {
    -webkit-animation-duration: 1.5s;
    animation-duration: 1.5s;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
    -webkit-animation-delay: 1s;
    animation-delay: 1s;
}

.pulseAnim:not(i):after {
    z-index: 0;
}

.pulseAnim:not(i) * {
    position: relative;
    z-index: 1;
}


/* Basic Rotation */

@-webkit-keyframes basicRotation {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

@keyframes basicRotation {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

.basicRotation {
    -webkit-animation-name: basicRotation;
    animation-name: basicRotation;
}


/* Block Slide */

@-webkit-keyframes blockSlideToRight {
    from {
        transform: translate(-110%, 0);
    }
    to {
        transform: translate(110%, 0);
    }
}

@keyframes blockSlideToRight {
    from {
        transform: translate(-110%, 0);
    }
    to {
        transform: translate(110%, 0);
    }
}

@-webkit-keyframes blockSlideToLeft {
    from {
        transform: translate(110%, 0);
    }
    to {
        transform: translate(-110%, 0);
    }
}

@keyframes blockSlideToLeft {
    from {
        transform: translate(110%, 0);
    }
    to {
        transform: translate(-110%, 0);
    }
}

@-webkit-keyframes blockSlideToTop {
    from {
        transform: translate(0, 110%);
    }
    to {
        transform: translate(0, -110%);
    }
}

@keyframes blockSlideToTop {
    from {
        transform: translate(0, 110%);
    }
    to {
        transform: translate(0, -110%);
    }
}

@-webkit-keyframes blockSlideToBottom {
    from {
        transform: translate(0, -110%);
    }
    to {
        transform: translate(0, 110%);
    }
}

@keyframes blockSlideToBottom {
    from {
        transform: translate(0, -110%);
    }
    to {
        transform: translate(0, 110%);
    }
}

.blockSlide:after {
    content: "";
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: #212529;
    position: absolute;
    z-index: 1000;
    -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;
    -webkit-animation-name: blockSlideToRight;
    animation-name: blockSlideToRight;
}

.blockSlideLight:after {
    background: #F7F7F7;
}

.blockSlideToLeft:after {
    -webkit-animation-name: blockSlideToLeft;
    animation-name: blockSlideToLeft;
}

.blockSlideToTop:after {
    -webkit-animation-name: blockSlideToTop;
    animation-name: blockSlideToTop;
}

.blockSlideToBottom:after {
    -webkit-animation-name: blockSlideToBottom;
    animation-name: blockSlideToBottom;
}


/* SVG Animation Effect 1 */

@-webkit-keyframes svgAnimationEffect1 {
    from {
        stroke-dasharray: 1000;
        stroke-dashoffset: -500;
    }
    to {
        stroke-dasharray: 1000;
        stroke-dashoffset: 0;
    }
}

@keyframes svgAnimationEffect1 {
    from {
        stroke-dasharray: 1000;
        stroke-dashoffset: -500;
    }
    to {
        stroke-dasharray: 1000;
        stroke-dashoffset: 0;
    }
}

.svg-animation-effect-1-hover svg {
    transform: scale(1);
    transition: ease transform 300ms;
}

.svg-animation-effect-1-hover svg path,
.svg-animation-effect-1-hover svg polygon,
.svg-animation-effect-1-hover svg polyline,
.svg-animation-effect-1-hover svg rect {
    transition: ease fill-opacity 300ms;
}

.svg-animation-effect-1-hover:hover svg {
    transform: scale(1.1);
}

.svg-animation-effect-1-hover:hover svg path,
.svg-animation-effect-1-hover:hover svg polygon,
.svg-animation-effect-1-hover:hover svg polyline,
.svg-animation-effect-1-hover:hover svg rect {
    -webkit-animation-name: svgAnimationEffect1;
    animation-name: svgAnimationEffect1;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
    fill-opacity: 0;
    stroke-width: 0.4px;
}

.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.infinite {
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite
}

.animated.repeat-1 {
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1;
    -webkit-animation-iteration-count: var(--animate-repeat);
    animation-iteration-count: var(--animate-repeat)
}

.animated.repeat-2 {
    -webkit-animation-iteration-count: 2;
    animation-iteration-count: 2;
    -webkit-animation-iteration-count: calc(var(--animate-repeat)*2);
    animation-iteration-count: calc(var(--animate-repeat)*2)
}

.animated.repeat-3 {
    -webkit-animation-iteration-count: 3;
    animation-iteration-count: 3;
    -webkit-animation-iteration-count: calc(var(--animate-repeat)*3);
    animation-iteration-count: calc(var(--animate-repeat)*3)
}

.animated.delay-1s {
    -webkit-animation-delay: 1s;
    animation-delay: 1s;
    -webkit-animation-delay: var(--animate-delay);
    animation-delay: var(--animate-delay)
}

.animated.delay-2s {
    -webkit-animation-delay: 2s;
    animation-delay: 2s;
    -webkit-animation-delay: calc(var(--animate-delay)*2);
    animation-delay: calc(var(--animate-delay)*2)
}

.animated.delay-3s {
    -webkit-animation-delay: 3s;
    animation-delay: 3s;
    -webkit-animation-delay: calc(var(--animate-delay)*3);
    animation-delay: calc(var(--animate-delay)*3)
}

.animated.delay-4s {
    -webkit-animation-delay: 4s;
    animation-delay: 4s;
    -webkit-animation-delay: calc(var(--animate-delay)*4);
    animation-delay: calc(var(--animate-delay)*4)
}

.animated.delay-5s {
    -webkit-animation-delay: 5s;
    animation-delay: 5s;
    -webkit-animation-delay: calc(var(--animate-delay)*5);
    animation-delay: calc(var(--animate-delay)*5)
}

.animated.faster {
    -webkit-animation-duration: .5s;
    animation-duration: .5s;
    -webkit-animation-duration: calc(var(--animate-duration)/2);
    animation-duration: calc(var(--animate-duration)/2)
}

.animated.fast {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-duration: calc(var(--animate-duration)*0.8);
    animation-duration: calc(var(--animate-duration)*0.8)
}

.animated.slow {
    -webkit-animation-duration: 2s;
    animation-duration: 2s;
    -webkit-animation-duration: calc(var(--animate-duration)*2);
    animation-duration: calc(var(--animate-duration)*2)
}

.animated.slower {
    -webkit-animation-duration: 3s;
    animation-duration: 3s;
    -webkit-animation-duration: calc(var(--animate-duration)*3);
    animation-duration: calc(var(--animate-duration)*3)
}

@media (prefers-reduced-motion:reduce),
print {
    .animated {
        -webkit-animation-duration: 1ms!important;
        animation-duration: 1ms!important;
        -webkit-transition-duration: 1ms!important;
        transition-duration: 1ms!important;
        -webkit-animation-iteration-count: 1!important;
        animation-iteration-count: 1!important
    }
    .animated[class*=Out] {
        opacity: 0
    }
}

@-webkit-keyframes fadeIn {
    0% {
        opacity: 0
    }
    to {
        opacity: 1
    }
}

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

.fadeIn {
    -webkit-animation-name: fadeIn;
    animation-name: fadeIn
}