/*----------------------- BUTTON ----------------------*/

.fx-btn-3d {
    border: none !important;
    -webkit-box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.15), inset 0 -2em 3em -1em rgba(0, 0, 0, 0.2), 0 0.4em 0.6em -0.2em rgba(0, 0, 0, .15);
    box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.15),
    inset 0 -2em 3em -1em rgba(0, 0, 0, 0.2),
    0px 1px 0 0 rgba(0, 0, 0, .1),
    0px 3px 0 -1px rgba(0, 0, 0, .1),
    0px 5px 0 -2px rgba(0, 0, 0, .075),
    0px 7px 0 -3px rgba(0, 0, 0, .035),
    0px 9px 0 -4px rgba(0, 0, 0, .035),
    0px 11px 0 -5px rgba(0, 0, 0, .02),
    0px 13px 0 -6px rgba(0, 0, 0, .02),
    0px 15px 0 -7px rgba(0, 0, 0, .01),
    0px 17px 0 -8px rgba(0, 0, 0, .01);
    text-shadow: 0 -1px 0px rgba(0, 0, 0, .1);
    -webkit-transition: -webkit-box-shadow .1s ease-in-out, -webkit-transform .1s ease-in-out;
    transition: -webkit-box-shadow .1s ease-in-out, -webkit-transform .1s ease-in-out;
    transition: box-shadow .1s ease-in-out, transform .1s ease-in-out;
    transition: box-shadow .1s ease-in-out, transform .1s ease-in-out, -webkit-box-shadow .1s ease-in-out, -webkit-transform .1s ease-in-out;
}

.fx-btn-3d:active {
    -webkit-box-shadow: inset 0 0 0 0 rgba(0, 0, 0, 0.15), inset 0 -2em 3em -1em rgba(0, 0, 0, 0.1), 0 0 0.1em 0 rgba(0, 0, 0, .2);
    box-shadow: inset 0 0 0 0 rgba(0, 0, 0, 0.15), inset 0 -2em 3em -1em rgba(0, 0, 0, 0.1), 0 0 0.1em 0 rgba(0, 0, 0, .2);
    -webkit-transform: translate(0, 0.1em);
    transform: translate(0, 0.1em);
}

.fx-btn-zoom,
.fx-btn-up {
    -webkit-transition: transform .1s ease-in-out;
    -webkit-transition: -webkit-transform .1s ease-in-out;
    transition: -webkit-transform .1s ease-in-out;
    transition: transform .1s ease-in-out;
    transition: transform .1s ease-in-out, -webkit-transform .1s ease-in-out;
}

.fx-btn-up:hover {
    -webkit-transform: translateY(-0.2em);
    transform: translateY(-0.2em);
}

.fx-btn-zoom:hover {
    -webkit-transform: scale(1.05);
    transform: scale(1.05);
}

.fx-btn-shadow {
    -webkit-transition: all .15s ease-in-out;
    transition: all .15s ease-in-out;
    -webkit-box-shadow: 0 0.7em 1.4em rgba(0, 0, 0, 0.1), 0 0.6em 0.5em -0.4em rgba(0, 0, 0, 0.15);
    box-shadow: 0 0.7em 1.4em rgba(0, 0, 0, 0.1), 0 0.6em 0.5em -0.4em rgba(0, 0, 0, 0.15);
}

.fx-btn-shadow:active {
    -webkit-transform: translateY(0.25em);
    transform: translateY(0.25em);
    -webkit-box-shadow: 0 0 0 0 rgba(0, 0, 0, .3), 0 0 0 0 rgba(0, 0, 0, .5);
    box-shadow: 0 0 0 0 rgba(0, 0, 0, .3), 0 0 0 0 rgba(0, 0, 0, .5);
}

.fx-btn-hard-shadow {
    -webkit-box-shadow: 0.25em 0.25em 0 rgba(0, 0, 0, 0.1);
    box-shadow: 0.25em 0.25em 0 rgba(0, 0, 0, 0.1);
    -webkit-transition: -webkit-box-shadow .1s ease-in-out, -webkit-transform .1s ease-in-out;
    transition: -webkit-box-shadow .1s ease-in-out, -webkit-transform .1s ease-in-out;
    transition: box-shadow .1s ease-in-out, transform .1s ease-in-out;
    transition: box-shadow .1s ease-in-out, transform .1s ease-in-out, -webkit-box-shadow .1s ease-in-out, -webkit-transform .1s ease-in-out;
}

.fx-btn-hard-shadow:active {
    -webkit-transform: translate(0.1em, 0.1em);
    transform: translate(0.1em, 0.1em);
    -webkit-box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.2);
    box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.2);
}

.fx-btn-hidden-icon > .icon {
    -webkit-transition: all 0.25s ease;
    transition: all 0.25s ease;
    opacity: 0;
    width: 0px;
    overflow: hidden;
}

.fx-btn-hidden-icon:not(:hover) > .icon {
    margin: 0;
}

.fx-btn-hidden-icon:hover > .icon {
    opacity: 1;
    width: auto;
}

.fx-btn-blick {
    position: relative;
    overflow: hidden;
}

.fx-btn-blick:before {
    content: "";
    background-color: #fff;
    height: 100%;
    width: 3em;
    display: block;
    position: absolute;
    top: 0;
    -webkit-transform: skewX(-45deg) translateX(0);
    transform: skewX(-45deg) translateX(0);
    -webkit-transition: none;
    transition: none;
    opacity: 0;
    -webkit-animation: left-slide 2s infinite;
    animation: left-slide 2s infinite;
}

@-webkit-keyframes left-slide {
    0% {
        left: -50%;
        opacity: 0.1;
    }
    50%,
    100% {
        left: 150%;
        opacity: 0.75;
    }
}

@keyframes left-slide {
    0% {
        left: -50%;
        opacity: 0.1;
    }
    50%,
    100% {
        left: 150%;
        opacity: 0.75;
    }
}

.fx-btn-wave {
    position: relative;
    z-index: 1;
}

.fx-btn-wave:before {
    content: "";
    display: block;
    background-color: inherit;
    border-radius: inherit;
    position: absolute;
    z-index: -1;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 0.75;
    -webkit-animation: waves 1s infinite;
    animation: waves 1s infinite;
}

@-webkit-keyframes waves {
    0% {
        -webkit-transform: scale(1);
        transform: scale(1);
    }
    100% {
        -webkit-transform: scale(1.4);
        transform: scale(1.4);
        opacity: 0;
    }
}

@keyframes waves {
    0% {
        -webkit-transform: scale(1);
        transform: scale(1);
    }
    100% {
        -webkit-transform: scale(1.3);
        transform: scale(1.3);
        opacity: 0;
    }
}

.fx-btn-glow {
    -webkit-animation: glow 2s infinite;
    animation: glow 2s infinite;
}

@-webkit-keyframes glow {
    from,
    to {
        text-shadow: 0 0 0.05em rgba(255, 255, 255, 1), 0 0 0.1em rgba(255, 255, 255, 1), 0 0 1em rgba(255, 255, 255, 0.75), 0 0 2em rgba(255, 255, 255, 0.5);
    }
    25% {
        text-shadow: 0 0 0.05em rgba(255, 255, 255, 1), 0 0 0.1em rgba(255, 255, 255, 1), 0 0 1em rgba(255, 255, 255, 0.75), 0 0 2em rgba(255, 255, 255, 0.5);
    }
    27% {
        text-shadow: 0 0 0.05em rgba(255, 255, 255, 0), 0 0 0.1em rgba(255, 255, 255, 0), 0 0 1em rgba(255, 255, 255, 0), 0 0 2em rgba(255, 255, 255, 0);
    }
    29% {
        text-shadow: 0 0 0.05em rgba(255, 255, 255, 1), 0 0 0.1em rgba(255, 255, 255, 1), 0 0 1em rgba(255, 255, 255, 0.75), 0 0 2em rgba(255, 255, 255, 0.5);
    }
    31% {
        text-shadow: 0 0 0.05em rgba(255, 255, 255, 0.5), 0 0 0.1em rgba(255, 255, 255, 0.25), 0 0 1em rgba(255, 255, 255, 0), 0 0 2em rgba(255, 255, 255, 0);
    }
    33% {
        text-shadow: 0 0 0.05em rgba(255, 255, 255, 1), 0 0 0.1em rgba(255, 255, 255, 1), 0 0 1em rgba(255, 255, 255, 0.75), 0 0 2em rgba(255, 255, 255, 0.5);
    }
    66% {
        text-shadow: 0 0 0.05em rgba(255, 255, 255, 1), 0 0 0.1em rgba(255, 255, 255, 1), 0 0 1em rgba(255, 255, 255, 0.75), 0 0 2em rgba(255, 255, 255, 0.5);
    }
    68% {
        text-shadow: 0 0 0.05em rgba(255, 255, 255, 0.5), 0 0 0.1em rgba(255, 255, 255, 0), 0 0 1em rgba(255, 255, 255, 0), 0 0 2em rgba(255, 255, 255, 0);
    }
    70% {
        text-shadow: 0 0 0.05em rgba(255, 255, 255, 1), 0 0 0.1em rgba(255, 255, 255, 1), 0 0 1em rgba(255, 255, 255, 0.75), 0 0 2em rgba(255, 255, 255, 0.5);
    }
}

@keyframes glow {
    from,
    to {
        text-shadow: 0 0 0.05em rgba(255, 255, 255, 1), 0 0 0.1em rgba(255, 255, 255, 1), 0 0 1em rgba(255, 255, 255, 0.75), 0 0 2em rgba(255, 255, 255, 0.5);
    }
    25% {
        text-shadow: 0 0 0.05em rgba(255, 255, 255, 1), 0 0 0.1em rgba(255, 255, 255, 1), 0 0 1em rgba(255, 255, 255, 0.75), 0 0 2em rgba(255, 255, 255, 0.5);
    }
    27% {
        text-shadow: 0 0 0.05em rgba(255, 255, 255, 0), 0 0 0.1em rgba(255, 255, 255, 0), 0 0 1em rgba(255, 255, 255, 0), 0 0 2em rgba(255, 255, 255, 0);
    }
    29% {
        text-shadow: 0 0 0.05em rgba(255, 255, 255, 1), 0 0 0.1em rgba(255, 255, 255, 1), 0 0 1em rgba(255, 255, 255, 0.75), 0 0 2em rgba(255, 255, 255, 0.5);
    }
    31% {
        text-shadow: 0 0 0.05em rgba(255, 255, 255, 0.5), 0 0 0.1em rgba(255, 255, 255, 0.25), 0 0 1em rgba(255, 255, 255, 0), 0 0 2em rgba(255, 255, 255, 0);
    }
    33% {
        text-shadow: 0 0 0.05em rgba(255, 255, 255, 1), 0 0 0.1em rgba(255, 255, 255, 1), 0 0 1em rgba(255, 255, 255, 0.75), 0 0 2em rgba(255, 255, 255, 0.5);
    }
    66% {
        text-shadow: 0 0 0.05em rgba(255, 255, 255, 1), 0 0 0.1em rgba(255, 255, 255, 1), 0 0 1em rgba(255, 255, 255, 0.75), 0 0 2em rgba(255, 255, 255, 0.5);
    }
    68% {
        text-shadow: 0 0 0.05em rgba(255, 255, 255, 0.5), 0 0 0.1em rgba(255, 255, 255, 0), 0 0 1em rgba(255, 255, 255, 0), 0 0 2em rgba(255, 255, 255, 0);
    }
    70% {
        text-shadow: 0 0 0.05em rgba(255, 255, 255, 1), 0 0 0.1em rgba(255, 255, 255, 1), 0 0 1em rgba(255, 255, 255, 0.75), 0 0 2em rgba(255, 255, 255, 0.5);
    }
}

.fx-btn-pill {
    border-radius: 10em !important;
}

/*----------------------- TEXT ----------------------*/

.fx-text-shadow {
    text-shadow: 2px 4px 3px rgba(0, 0, 0, 0.3);
}

.fx-text-thin-shadow {
    text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.3);
}

.fx-text-hard-shadow {
    text-shadow: 6px 6px 0px rgba(0, 0, 0, 0.1);
}

.fx-text-glow {
    -webkit-animation: glow 3s infinite;
    animation: glow 3s infinite;
}

.fx-text-pushed-shadow {
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.35), 0 -1px 0 rgba(0, 0, 0, 0.35);
}

.fx-text-3d {
    text-shadow: 0 0.01em 0 #bbb,
    0 0.02em 0 #aaa,
    0 0.03em 0 #999,
    0 0.04em 0 #888,
    0 0.15em 0.1em rgba(0, 0, 0, 0.15),
    0 0.25em 0.02em rgba(0, 0, 0, 0.075),
    0 0.34em 0.3em rgba(0, 0, 0, 0.1);
}

.fx-text-anaglyphic {
    text-shadow: -0.05em 0 0 #F22613, 0.05em 0 0 #00FFFF;

}

.fx-text-isometric {
    text-shadow: -0.01em -0.01em 0 #222,
    -0.02em -0.02em 0 #222,
    -0.03em -0.03em 0 #222,
    -0.04em -0.04em 0 #222,
    -0.05em -0.05em 0 #222,
    -0.06em -0.06em 0 #222,
    -0.07em -0.07em 0 #222,
    -0.08em -0.08em 0 #222,
    -0.09em -0.09em 0 #222,
    -0.10em -0.10em 0 #222,
    -0.11em -0.11em 0 #222,
    -0.12em -0.12em 0 #222,
    -0.13em -0.13em 0 #222,
    -0.14em -0.14em 0 #222,
    -0.15em -0.15em 0 #222,
    -0.16em -0.16em 0 #222,
    -0.17em -0.17em 0 #222,
    -0.18em -0.18em 0 #222,
    -0.19em -0.19em 0 #222,
    -0.20em -0.20em 0 #222;

}

.fx-text-isometric-shadow {
    text-shadow: 0.01em 0.01em 0 rgba(0, 0, 0, 0.1),
    0.02em 0.02em 0 rgba(0, 0, 0, 0.1),
    0.03em 0.03em 0 rgba(0, 0, 0, 0.075),
    0.04em 0.04em 0 rgba(0, 0, 0, 0.075),
    0.05em 0.05em 0 rgba(0, 0, 0, 0.05),
    0.06em 0.06em 0 rgba(0, 0, 0, 0.05),
    0.07em 0.07em 0 rgba(0, 0, 0, 0.03),
    0.08em 0.08em 0 rgba(0, 0, 0, 0.03),
    0.09em 0.09em 0 rgba(0, 0, 0, 0.03),
    0.1em 0.1em 0 rgba(0, 0, 0, 0.025),
    0.11em 0.11em 0 rgba(0, 0, 0, 0.025),
    0.12em 0.12em 0 rgba(0, 0, 0, 0.02),
    0.13em 0.13em 0 rgba(0, 0, 0, 0.02),
    0.14em 0.14em 0 rgba(0, 0, 0, 0.015),
    0.15em 0.15em 0 rgba(0, 0, 0, 0.015),
    0.16em 0.16em 0 rgba(0, 0, 0, 0.01),
    0.17em 0.17em 0 rgba(0, 0, 0, 0.01),
    0.18em 0.18em 0 rgba(0, 0, 0, 0.01),
    0.19em 0.19em 0 rgba(0, 0, 0, 0.005),
    0.2em 0.2em 0 rgba(0, 0, 0, 0.005);
}
