/* PARALLAX */
.wrapper {
    position: relative;
    overflow: hidden;
    max-height: calc(100vh - var(--navheight));
    width: 100%;
    padding: 0;
    margin: 0 0 var(--space) 0;
}

.parallax {
    position: absolute;
    object-fit: cover;
    height: 100%;
    max-height: none;
    width: 100%;
    transition: none;
}

.parallax[noscale] {
    position: relative;
    /* height: auto; */
}

/* AOS */

[aos] {
    --aos-distance: 4rem;
}

/* [aos] {
    position: relative;
    opacity: 0;
    transition: 750ms;
} */

[aos].hidden{
    opacity: 0;
}

[aos='up'].hidden {
    transform: translate3d(0,var(--aos-distance), 0);
}

[aos='down'].hidden {
    transform: translate3d(0, calc(var(--aos-distance) * -1), 0);
}

[aos='left'].hidden {
    transform: translate3d(var(--aos-distance), 0, 0);
}

[aos='right'].hidden {
    transform: translate3d(calc(var(--aos-distance) * -1), 0, 0);
}

[aos] {
    transform: translate(0, 0);
    opacity: 1;
    transition: transform 350ms, opacity 350ms;
}

/* FUNCTION classes */

.unselectable {
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none;
    /* cursor: none!important; */
}

img {
    -webkit-user-drag: none;
    -khtml-user-drag: none;
    -moz-user-drag: none;
    -o-user-drag: none;
    user-drag: none;
}


.coloroverlay {
    overflow: hidden;
    padding: 0 !important;
    margin: 0;
    filter: grayscale(1);
}

/* ANIMATIONS */
[fx='right'],[fx='left']{
    animation-name: left-right;
    animation-duration: 2s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
}

@keyframes left-right {
    0% {
        transform: translateX(0.5rem);
    }

    50% {
        transform: translateX(-0.5rem);
    }

    100% {
        transform: translateX(0.5rem);
    }
}

[fx='up'],[fx='down']{
    animation-name: up-down;
    animation-duration: 2s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
}
@keyframes up-down {
    0% {
        transform: translateY(0.5rem);
    }

    50% {
        transform: translateY(-0.5rem);
    }

    100% {
        transform: translateY(0.5rem);
    }
}

[fx='spin'], [fx='fastspin']{
    animation-name: spin;
    animation-duration: 2s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

[fx='fastspin']{
    animation-duration: 750ms;
}
@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/* HOVER EFFECTS */

[hover] > i{
    display: inline-block;
    transition: transform var(--normal), opacity var(--quick)!important;
}

[hover='spin'] > i{
    transform: rotate(0deg);
}

[hover='spin']:hover > i{
    transform: rotate(90deg);
}

[hover='spinback'] > i{
    transform: rotate(0deg);
}

[hover='spinback']:hover > i{
    transform: rotate(-90deg);
}

[hover='shake']:hover > i{
    animation-name: shake;
    animation-duration: 400ms;
    animation-direction: alternate;
    animation-timing-function: ease;
    transform-origin: bottom center;
}

@keyframes shake {
    100%,0% {
        transform: rotate(-10deg) translateX(.15rem);
    }

    25% {
        transform: rotate(10deg) translateX(-.15rem);
    }

    50% {
        transform: rotate(-10deg) translateX(.15rem);
    }

    75% {
        transform: rotate(10deg) translateX(-.15rem);
    }
}

@keyframes vibrate {
    100%,0% {
        transform: translateX(.15rem);
    }

    25% {
        transform: translateX(-.15rem);
    }

    50% {
        transform: translateX(.15rem);
    }

    75% {
        transform: translateX(-.15rem);
    }
}