
.rivax-fancy-text {
    margin: 0;
	user-select: none;
}

.rivax-fancy-text-list {
    display: inline-block;
    position: relative;
	transform: translate(0, 0);
    transition: 0.2s;
}

.rivax-fancy-text-item {
    display: inline-block;
    width: fit-content;
    transition: 0.3s;
    font-weight: inherit;
    font-style: inherit;
    position: absolute;
    white-space: nowrap;
    left: 0;
    top: 0;
}

.rivax-fancy-text-item.is-visible {
    position: relative;
}


/* Animation clip */

.rivax-fancy-text.clip .rivax-fancy-text-list {
    overflow: hidden;
    vertical-align: top;
    transition: 0s;
}

.rivax-fancy-text.clip .rivax-fancy-text-list::after {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 0;
    width: 2px;
    height: 100%;
    background-color: currentColor;
}

body.rtl .rivax-fancy-text.clip .rivax-fancy-text-list::after {
    left: 0;
    right: auto;
}

.rivax-fancy-text.clip .rivax-fancy-text-item {
    opacity: 0;
}

.rivax-fancy-text.clip .rivax-fancy-text-item.is-visible {
    opacity: 1;
}

/* Animation rotate-1 */

.rivax-fancy-text.rotate-1 .rivax-fancy-text-list {
    perspective: 300px;
    text-align: initial;
}

.rivax-fancy-text.rotate-1 .rivax-fancy-text-item {
    opacity: 0;
    transform-origin: 50% 100%;
    transform: rotateX(180deg);
}

.rivax-fancy-text.rotate-1 .rivax-fancy-text-item.is-visible {
    opacity: 1;
    transform: rotateX(0);
    animation: cd-rotate-1-in 1.2s;
}

.rivax-fancy-text.rotate-1 .rivax-fancy-text-item.is-hidden {
    transform: rotateX(180deg);
    animation: cd-rotate-1-out 1.2s;
}

@keyframes cd-rotate-1-in {
    0% {
        transform: rotateX(180deg);
        opacity: 0;
    }
    35% {
        transform: rotateX(120deg);
        opacity: 0;
    }
    65% {
        opacity: 0;
    }
    100% {
        transform: rotateX(360deg);
        opacity: 1;
    }
}
@keyframes cd-rotate-1-out {
    0% {
        transform: rotateX(0);
        opacity: 1;
    }
    35% {
        transform: rotateX(-40deg);
        opacity: 1;
    }
    65% {
        opacity: 0;
    }
    100% {
        transform: rotateX(180deg);
        opacity: 0;
    }
}

/* Animation rotate-2 */

.rivax-fancy-text.rotate-2 .rivax-fancy-text-list {
    perspective: 300px;
}

.rivax-fancy-text.rotate-2 .rivax-fancy-text-list em,
.rivax-fancy-text.rotate-2 .rivax-fancy-text-list i {
    display: inline-block;
    backface-visibility: hidden;
    font-style: normal;
}
.rivax-fancy-text.rotate-2 .rivax-fancy-text-item {
    opacity: 0;
}

.rivax-fancy-text.rotate-2 .rivax-fancy-text-item.is-visible {
    opacity: 1;
    width: 100%;
}

.rivax-fancy-text.rotate-2 .rivax-fancy-text-list i {
    transform-style: preserve-3d;
    transform: translateZ(-20px) rotateX(90deg);
    opacity: 0;
    font-style: normal;
}

.rivax-fancy-text.rotate-2 .rivax-fancy-text-list i.in {
    animation: cd-rotate-2-in 0.4s forwards;
}

.rivax-fancy-text.rotate-2 .rivax-fancy-text-list i.out {
    animation: cd-rotate-2-out 0.4s forwards;
}

.rivax-fancy-text.rotate-2 .rivax-fancy-text-list em {
    transform: translateZ(20px);
}

@keyframes cd-rotate-2-in {
    0% {
        opacity: 0;
        transform: translateZ(-20px) rotateX(90deg);
    }
    60% {
        opacity: 1;
        transform: translateZ(-20px) rotateX(-10deg);
    }
    100% {
        opacity: 1;
        transform: translateZ(-20px) rotateX(0);
    }
}
@keyframes cd-rotate-2-out {
    0% {
        opacity: 1;
        transform: translateZ(-20px) rotateX(0);
    }
    60% {
        opacity: 0;
        transform: translateZ(-20px) rotateX(-100deg);
    }
    100% {
        opacity: 0;
        transform: translateZ(-20px) rotateX(-90deg);
    }
}

/* Animation rotate-3 */

.rivax-fancy-text.rotate-3 .rivax-fancy-text-list {
    perspective: 300px;
}

.rivax-fancy-text.rotate-3 .rivax-fancy-text-item {
    opacity: 0;
}

.rivax-fancy-text.rotate-3 .rivax-fancy-text-item.is-visible {
    opacity: 1;
    width: 100%;
}

.rivax-fancy-text.rotate-3 .rivax-fancy-text-list i {
    display: inline-block;
    transform: rotateY(180deg);
    backface-visibility: hidden;
    font-style: normal;
}

.rivax-fancy-text.rotate-3 .rivax-fancy-text-list i.in {
    animation: cd-rotate-3-in 0.6s forwards;
}

.rivax-fancy-text.rotate-3 .rivax-fancy-text-list i.out {
    animation: cd-rotate-3-out 0.6s forwards;
}


@keyframes cd-rotate-3-in {
    0% {
        transform: rotateY(180deg);
    }
    100% {
        transform: rotateY(0);
    }
}

@keyframes cd-rotate-3-out {
    0% {
        transform: rotateY(0);
    }
    100% {
        transform: rotateY(-180deg);
    }
}

/* Animation type */

.rivax-fancy-text.type .rivax-fancy-text-list {
    display: inline-flex;
    overflow: hidden;
}

.rivax-fancy-text.type .rivax-fancy-text-list::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
    height: 100%;
    width: 1px;
}

.rivax-fancy-text.type .rivax-fancy-text-item {
    visibility: hidden;
}

.rivax-fancy-text.type .rivax-fancy-text-item.is-visible {
    visibility: visible;
}

.rivax-fancy-text.type .rivax-fancy-text-list i {
    position: absolute;
    visibility: hidden;
    font-style: normal;
}

.rivax-fancy-text.type .rivax-fancy-text-list i.in {
    position: relative;
    visibility: visible;
}

.rivax-fancy-text.type .rivax-fancy-text-list.waiting::after {
    animation: cd-pulse 1s infinite;
}

.rivax-fancy-text.type .rivax-fancy-text-list.selected {
    background-color: #aebcb9;
}

.rivax-fancy-text.type .rivax-fancy-text-list.selected::after {
    visibility: hidden;
}

@keyframes cd-pulse {
    0% {
        transform: translateY(-50%) scale(1);
        opacity: 1;
    }
    40% {
        transform: translateY(-50%) scale(0.9);
        opacity: 0;
    }
    100% {
        transform: translateY(-50%) scale(0);
        opacity: 0;
    }
}

/* Animation bar-loading */

.rivax-fancy-text.bar-loading .rivax-fancy-text-list {
    overflow: hidden;
    vertical-align: top;
}

.rivax-fancy-text.bar-loading .rivax-fancy-text-list::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    height: 3px;
    width: 0;
    background: currentColor;
    z-index: 2;
    transition: width 0.3s -0.1s;
}

.rivax-fancy-text.bar-loading .rivax-fancy-text-list.is-loading::after {
    width: 100%;
    transition: width 3s;
}

.rivax-fancy-text.bar-loading .rivax-fancy-text-item {
    top: 0.2em;
    opacity: 0;
    transition: opacity 0.3s;
}

.rivax-fancy-text.bar-loading .rivax-fancy-text-item.is-visible {
    opacity: 1;
    top: 0;
}

.rivax-fancy-text.bar-loading .rivax-fancy-text-item.is-hidden {
    transition: 0.3s ease-out;
}

/* Animation slide */

.rivax-fancy-text.slide .rivax-fancy-text-list {
    overflow: hidden;
    vertical-align: top;
}

.rivax-fancy-text.slide .rivax-fancy-text-item {
    opacity: 0;
    top: 0.2em;
}

.rivax-fancy-text.slide .rivax-fancy-text-item.is-visible {
    top: 0;
    opacity: 1;
    animation: slide-in 0.6s;
}

.rivax-fancy-text.slide .rivax-fancy-text-item.is-hidden {
    animation: slide-out 0.6s;
}

@keyframes slide-in {
    0% {
        opacity: 0;
        transform: translateY(-100%);
    }
    60% {
        opacity: 1;
        transform: translateY(20%);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slide-out {
    0% {
        opacity: 1;
        transform: translateY(0);
    }
    60% {
        opacity: 0;
        transform: translateY(120%);
    }
    100% {
        opacity: 0;
        transform: translateY(100%);
    }
}

/* Animation zoom-out */

.rivax-fancy-text.zoom-out .rivax-fancy-text-list {
    perspective: 300px;
}

.rivax-fancy-text.zoom-out .rivax-fancy-text-item {
    opacity: 0;
}

.rivax-fancy-text.zoom-out .rivax-fancy-text-item.is-visible {
    opacity: 1;
    animation: zoom-out 0.8s;
}

.rivax-fancy-text.zoom-out .rivax-fancy-text-item.is-hidden {
    animation: zoom-in 0.8s;
}


@keyframes zoom-out {
    0% {
        opacity: 0;
        transform: translateZ(100px);
    }
    100% {
        opacity: 1;
        transform: translateZ(0);
    }
}

@keyframes zoom-in {
    0% {
        opacity: 1;
        transform: translateZ(0);
    }
    100% {
        opacity: 0;
        transform: translateZ(-100px);
    }
}

/* Animation zoom-fade */

.rivax-fancy-text.zoom-fade .rivax-fancy-text-list {
    perspective: 300px;
}

.rivax-fancy-text.zoom-fade .rivax-fancy-text-item {
    opacity: 0;
}

.rivax-fancy-text.zoom-fade .rivax-fancy-text-item.is-visible {
    opacity: 1;
    animation: zoom-fade-in 0.8s;
}

.rivax-fancy-text.zoom-fade .rivax-fancy-text-item.is-hidden {
    animation: zoom-fade-out 0.8s;
}


@keyframes zoom-fade-out {
    0% {
        opacity: 1;
        transform: scale(1);
        filter: blur(0);
    }
    100% {
        opacity: 0;
        transform: scale(1.2);
        filter: blur(10px);
    }
}

@keyframes zoom-fade-in {
    0% {
        opacity: 0;
        transform: scale(1.2);
        filter: blur(10px);
    }
    100% {
        opacity: 1;
        transform: scale(1);
        filter: blur(0);
    }
}


/* Animation scale */

.rivax-fancy-text.scale .rivax-fancy-text-item {
    opacity: 0;
}

.rivax-fancy-text.scale .rivax-fancy-text-item.is-visible {
    opacity: 1;
}

.rivax-fancy-text.scale .rivax-fancy-text-list i {
    display: inline-block;
    opacity: 0;
    transform: scale(0);
    font-style: normal;
}

.rivax-fancy-text.scale .rivax-fancy-text-list i.in {
    animation: scale-up 0.6s forwards;
}

.rivax-fancy-text.scale .rivax-fancy-text-list i.out {
    animation: scale-down 0.6s forwards;
}

.rivax-fancy-text.scale:hover {
    transform: unset !important;
}


@keyframes scale-up {
    0% {
        transform: scale(0);
        opacity: 0;
    }
    60% {
        transform: scale(1.2);
        opacity: 1;
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}
@keyframes scale-down {
    0% {
        transform: scale(1);
        opacity: 1;
    }
    60% {
        transform: scale(0);
        opacity: 0;
    }
}

/* Animation push */

.rivax-fancy-text.push .rivax-fancy-text-item {
    opacity: 0;
}

.rivax-fancy-text.push .rivax-fancy-text-item.is-visible {
    opacity: 1;
    animation: push-in 0.6s;
}

.rivax-fancy-text.push .rivax-fancy-text-item.is-hidden {
    animation: push-out 0.6s;
}

@keyframes push-in {
    0% {
        opacity: 0;
        transform: translateX(-100%);
    }
    60% {
        opacity: 1;
        transform: translateX(10%);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes push-out {
    0% {
        opacity: 1;
        transform: translateX(0);
    }
    60% {
        opacity: 0;
        transform: translateX(110%);
    }
    100% {
        opacity: 0;
        transform: translateX(100%);
    }
}


/* Animation bouncing */

.rivax-fancy-text.bouncing .rivax-fancy-text-item {
    opacity: 0;
}

.rivax-fancy-text.bouncing .rivax-fancy-text-item.is-visible {
    opacity: 1;
}

.rivax-fancy-text.bouncing .rivax-fancy-text-list i {
    display: inline-block;
    opacity: 0;
    transform: translateY(0);
    font-style: normal;
}

.rivax-fancy-text.bouncing .rivax-fancy-text-list i.in {
    opacity: 1;
    animation: waviy-in 1s forwards;
}

.rivax-fancy-text.bouncing .rivax-fancy-text-list i.out {
    opacity: 0;
    animation: waviy-out 1s forwards;
}

@keyframes waviy-in {
    0%,
    100%,
    40% {
        transform: translateY(0);
    }
    20% {
        transform: translateY(-20px);
    }
}

@keyframes waviy-out {
    0%,
    100%,
    40% {
        transform: translateY(-20px);
    }
    20% {
        transform: translateY(0);
    }
}