@use '../root' as *;

/*----------------------------------------------
    # All Animation style here
----------------------------------------------*/

//==== Video Animation Start ====//
@-webkit-keyframes rippleOne {
    70% {
        -webkit-box-shadow: 0 0 0 40px rgba(244, 68, 56, 0);
        box-shadow: 0 0 0 40px rgba(244, 68, 56, 0);
    }
    100% {
        -webkit-box-shadow: 0 0 0 0 rgba(244, 68, 56, 0);
        box-shadow: 0 0 0 0 rgba(244, 68, 56, 0);
    }
}

@keyframes rippleOne {
    70% {
        -webkit-box-shadow: 0 0 0 40px rgba(244, 68, 56, 0);
        box-shadow: 0 0 0 40px rgba(244, 68, 56, 0);
    }
    100% {
        -webkit-box-shadow: 0 0 0 0 rgba(244, 68, 56, 0);
        box-shadow: 0 0 0 0 rgba(244, 68, 56, 0);
    }
}

.ripple-effect {
    display: inline-block;
    width: 60px;
    height: 60px;
    line-height: 60px;
    text-align: center;
    background-color: #F3E7E0;
    border: 1px solid $white;
    border-radius: 50%;
    -webkit-box-shadow: 0 0 0 0 rgb(255, 238, 211);
    box-shadow: 0 0 0 0 rgb(255, 217, 196);
    animation: rippleOne 2s infinite;
    .playerImg {
        width: 19px;
        height: 24px;
    }
}

//==== Video Animation End ====// 
.img-custom-anim-right {
    animation: img-anim-right 1.3s forwards cubic-bezier(0.645, 0.045, 0.355, 1) 0.4s;
    opacity: 0;
}

@keyframes img-anim-right {
    0% {
        transform: translateX(5%);
        clip-path: inset(0 0 0 100%);
        opacity: 0;
    }
    100% {
        transform: translateX(0);
        clip-path: inset(0 0 0 0);
        opacity: 1;
    }
}

.img-custom-anim-left {
    animation: img-anim-left 1.3s forwards cubic-bezier(0.645, 0.045, 0.355, 1) 0.4s;
    opacity: 0;
}

@keyframes img-anim-left {
    0% {
        transform: translateX(-5%);
        clip-path: inset(0 100% 0 0);
        opacity: 0;
    }
    100% {
        transform: translateX(0);
        clip-path: inset(0 0 0 0);
        opacity: 1;
    }
}

.img-custom-anim-top {
    animation: img-anim-top 1.3s forwards cubic-bezier(0.645, 0.045, 0.355, 1);
    opacity: 0;
}

@keyframes img-anim-top {
    0% {
        transform: translateY(-5%);
        clip-path: inset(0 0 100% 0);
        opacity: 0;
    }
    100% {
        transform: translateY(0);
        clip-path: inset(0 0 0 0);
        opacity: 1;
    }
}

@keyframes up-down {
    0% {
        transform: translateY(10px);
    }
    100% {
        transform: translateY(-10px);
    }
}

@keyframes move-directions {
    0% {
        transform: translateX(0) translateY(0); // Start position
    }
    33% {
        transform: translateX(10px); // Move to the right
    }
    66% {
        transform: translateY(-10px); // Move to the top
    }
    100% {
        transform: translateY(10px); // Move to the bottom
    }
}

@keyframes zoom-in-out {
    0% {
        transform: scale(1); // Normal size
    }
    50% {
        transform: scale(1.2); // Zoom in
    }
    100% {
        transform: scale(1); // Zoom out back to normal size
    }
}

//==== Preloader Animation Start ====//
@-webkit-keyframes spinner {
    to {
        -webkit-transform: rotateZ(360deg);
        transform: rotateZ(360deg);
    }
}

@keyframes spinner {
    to {
        -webkit-transform: rotateZ(360deg);
        transform: rotateZ(360deg);
    }
}

@-webkit-keyframes letters-loading {
    0%,
    75%,
    100% {
        opacity: 0;
        transform: rotateY(-90deg);
    }
    25%,
    50% {
        opacity: 1;
        transform: rotateY(0deg);
    }
}

@keyframes letters-loading {
    0%,
    75%,
    100% {
        opacity: 0;
        transform: rotateY(-90deg);
    }
    25%,
    50% {
        opacity: 1;
        transform: rotateY(0deg);
    }
}

//==== Preloader Animation Start ====//
@keyframes loaderspin {
    0% {
        transform: translate(-50%, -50%) rotate(0deg);
    }
    100% {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

@keyframes tpswing {
    0% {
        -webkit-transform: rotate(20deg);
        -ms-transform: rotate(20deg);
        transform: rotate(20deg);
    }
    100% {
        -webkit-transform: rotate(0deg);
        -ms-transform: rotate(0deg);
        transform: rotate(0deg);
    }
}

@keyframes width {
    0% {
        width: 0%;
    }
    100% {
        width: 100%;
    }
}

@-webkit-keyframes width {
    0% {
        width: 0%;
    }
    100% {
        width: 100%;
    }
}

@-webkit-keyframes loaderspin {
    0% {
        transform: translate(-50%, -50%) rotate(0deg);
    }
    100% {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

@keyframes loaderpulse {
    0% {
        transform: scale(1);
    }
    100% {
        transform: scale(1.2);
    }
}

//==== Preloader Animation End ====//
//animation
@keyframes rounded {
    50% {
        transform: rotate(20deg);
    }
}

.cir36 {
    animation: cir36 20s linear infinite;
    -webkit-animation: cir36 20s linear infinite;
}

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

.float-bob-y {
    -webkit-animation-name: float-bob-y;
    animation-name: float-bob-y;
    -webkit-animation-duration: 3s;
    animation-duration: 3s;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
}

@-webkit-keyframes float-bob-y {
    0% {
        -webkit-transform: translateY(-30px);
        transform: translateY(-30px);
    }
    50% {
        -webkit-transform: translateY(-10px);
        transform: translateY(-10px);
    }
    100% {
        -webkit-transform: translateY(-30px);
        transform: translateY(-30px);
    }
}

@keyframes float-bob-y {
    0% {
        -webkit-transform: translateY(-30px);
        transform: translateY(-30px);
    }
    50% {
        -webkit-transform: translateY(-10px);
        transform: translateY(-10px);
    }
    100% {
        -webkit-transform: translateY(-30px);
        transform: translateY(-30px);
    }
}

.float-bob-x {
    -webkit-animation-name: float-bob-x;
    animation-name: float-bob-x;
    -webkit-animation-duration: 3s;
    animation-duration: 3s;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
}

@-webkit-keyframes float-bob-x {
    0% {
        -webkit-transform: translateX(-0px);
        transform: translateX(30px);
    }
    50% {
        -webkit-transform: translateX(10px);
        transform: translateX(10px);
    }
    100% {
        -webkit-transform: translateX(30px);
        transform: translateX(30px);
    }
}

@keyframes float-bob-x {
    0% {
        -webkit-transform: translateX(30px);
        transform: translateX(30px);
    }
    50% {
        -webkit-transform: translateX(10px);
        transform: translateX(10px);
    }
    100% {
        -webkit-transform: translateX(30px);
        transform: translateX(30px);
    }
}

@keyframes bounce-x {
    0% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
    50% {
        -webkit-transform: translateX(30px);
        transform: translateX(30px);
    }
    100% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
}

.bounce-x {
    -webkit-animation: bounce-x 7s infinite linear;
    animation: bounce-x 7s infinite linear;
}

@keyframes criss-cross-left {
    0% {
        left: -20px;
    }
    50% {
        left: 50%;
        width: 20px;
        height: 20px;
    }
    100% {
        left: 50%;
        width: 375px;
        height: 375px;
    }
}

@keyframes criss-cross-right {
    0% {
        right: -20px;
    }
    50% {
        right: 50%;
        width: 20px;
        height: 20px;
    }
    100% {
        right: 50%;
        width: 375px;
        height: 375px;
    }
}

@keyframes rotated2 {
    0% {
        transform: rotate(0);
    }
    100% {
        transform: rotate(-360deg);
    }
}

@keyframes wave {
    0% {
        transform: translateX(0);
    }
    50% {
        transform: translateX(-25%);
    }
    100% {
        transform: translateX(-50%);
    }
}

// This is for Progress bar animation also has a js code 
@keyframes animate-positive {
    0% {
        width: 0;
    }
    100% {
        width: var(--progress-width);
    }
}

.reveal {
    position: relative;
    display: -ms-inline-flexbox;
    visibility: hidden;
    overflow: hidden;
}

.reveal img {
    height: 100%;
    width: 100%;
    display: inline-block;
    -o-object-fit: cover;
    object-fit: cover;
    transform-origin: left;
}

.image-anime {
    position: relative;
    overflow: hidden;
}

.image-anime:after {
    content: "";
    position: absolute;
    width: 200%;
    height: 0%;
    left: 50%;
    top: 50%;
    background-color: rgba(255, 255, 255, 0.3);
    transform: translate(-50%, -50%) rotate(-45deg);
    z-index: 1;
}

.image-anime:hover:after {
    height: 250%;
    transition: all 600ms linear;
    background-color: transparent;
}

/*------------------- 3.10. Animation -------------------*/

.ripple-animation,
.play-btn:after,
.play-btn:before {
    animation-duration: var(--ripple-ani-duration);
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
    animation-name: ripple;
}

@keyframes ripple {
    0% {
        transform: scale(1);
        opacity: 0;
    }
    30% {
        opacity: 0.4;
    }
    100% {
        transform: scale(1.8);
        opacity: 0;
    }
}

@keyframes ripple2 {
    0% {
        transform: scale(1);
        opacity: 0;
    }
    30% {
        opacity: 0.4;
    }
    100% {
        transform: scale(2.8);
        opacity: 0;
    }
}

%ripple-animation {
    animation-duration: var(--ripple-ani-duration, 3s);
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
    animation-name: ripple2;
}

.wave-anim {
    width: 105px;
    height: 69px;
    background-repeat: repeat;
    background-size: auto;
    animation: wave 70s linear infinite;
}

@keyframes wave {
    0% {
        background-position: top left;
    }
    100% {
        background-position: top left -2000px;
    }
}

.fancy-animation {
    animation: morph 8s ease-in-out infinite;
}

@keyframes morph {
    0% {
        border-radius: 60% 40% 30% 70%/60% 30% 70% 40%;
    }
    50% {
        border-radius: 30% 60% 70% 40%/50% 60% 30% 60%;
    }
    100% {
        border-radius: 60% 40% 30% 70%/60% 30% 70% 40%;
    }
}

.movingX {
    animation: movingX 8s linear infinite;
}

@keyframes movingX {
    0% {
        transform: translateX(0);
    }
    50% {
        transform: translateX(50px);
    }
    100% {
        transform: translateX(0);
    }
}

.movingCar {
    animation: movingCar 25s linear infinite;
}

@keyframes movingCar {
    0% {
        transform: translateX(0) rotateY(0deg);
    }
    50% {
        transform: translateX(calc(-100vw + 108%));
    }
    51% {
        transform: translateX(calc(-100vw + 108%)) rotateY(180deg);
    }
    100% {
        transform: translateX(0) rotateY(180deg);
    }
}

.moving {
    animation: moving 8s linear infinite;
}

@keyframes moving {
    0% {
        transform: translateX(0);
    }
    50% {
        transform: translateX(-50px);
    }
    100% {
        transform: translateX(0);
    }
}

.moving2 {
    animation: moving2 8s linear infinite;
}

@keyframes moving2 {
    0% {
        transform: translateX(0);
    }
    50% {
        transform: translateX(100%);
    }
    100% {
        transform: translateX(0);
    }
}

.moving3 {
    animation: moving3 8s linear infinite;
}

@keyframes moving3 {
    0% {
        transform: translateX(0);
    }
    50% {
        transform: translateX(10px);
    }
    100% {
        transform: translateX(0);
    }
}

.jump {
    animation: jumpAni 7s linear infinite;
}

@keyframes jumpAni {
    0% {
        transform: translateY(0);
    }
    40% {
        transform: translateY(-30px);
    }
    100% {
        transform: translateY(0);
    }
}

.jump-reverse {
    animation: jumpReverseAni 7s linear infinite;
}

@keyframes jumpReverseAni {
    0% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(30px);
    }
    100% {
        transform: translateY(0);
    }
}

.spin {
    animation: spin 10s linear infinite;
}

@keyframes spin {
    0% {
        transform: rotate(0);
    }
    100% {
        transform: rotate(360deg);
    }
}

.bg-color-ani,
.color-animate {
    animation: bgColor 6s linear infinite;
}

@keyframes bgColor {
    0% {
        background-color: #F2BA4C;
    }
    25% {
        background-color: #81F24C;
    }
    50% {
        background-color: #41F27D;
    }
    75% {
        background-color: #0500FF;
    }
    100% {
        background-color: #F2BA4C;
    }
}

@keyframes animate-positive {
    0% {
        width: 0;
    }
}

.fadein,
.scalein,
.slidetopleft,
.slidebottomright,
.slideinleft,
.slideinright,
.slideindown,
.slideinup,
.rollinleft,
.rollinright {
    opacity: 0;
    animation-fill-mode: forwards;
    animation-iteration-count: 1;
    animation-duration: 1.3s;
    animation-delay: 0.3s;
    animation-name: var(--animation-name);
}

.swiper-slide-active .fadein {
    --animation-name: fadein;
}

.swiper-slide-active .scalein {
    --animation-name: scalein;
}

.swiper-slide-active .slidetopleft {
    --animation-name: slidetopleft;
}

.swiper-slide-active .slidebottomright {
    --animation-name: slidebottomright;
}

.swiper-slide-active .slideinleft {
    --animation-name: slideinleft;
}

.swiper-slide-active .slideinright {
    --animation-name: slideinright;
}

.swiper-slide-active .slideinup {
    --animation-name: slideinup;
}

.swiper-slide-active .slideindown {
    --animation-name: slideindown;
}

.swiper-slide-active .rollinleft {
    --animation-name: rollinleft;
}

.swiper-slide-active .rollinright {
    --animation-name: rollinright;
}

@keyframes fadein {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

@keyframes scalein {
    0% {
        transform: scale(1);
    }
    100% {
        transform: scale(1.3);
    }
}

@keyframes slideinup {
    0% {
        opacity: 0;
        transform: translateY(100px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideinright {
    0% {
        opacity: 0;
        transform: translateX(180px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideindown {
    0% {
        opacity: 0;
        transform: translateY(-100px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideinleft {
    0% {
        opacity: 0;
        transform: translateX(-100px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slidebottomright {
    0% {
        opacity: 0;
        transform: translateX(120px) translateY(120px);
    }
    100% {
        opacity: 1;
        transform: translateX(0) translateY(0);
    }
}

@keyframes slidetopleft {
    0% {
        opacity: 0;
        transform: translateX(-100px) translateY(-100px);
    }
    100% {
        opacity: 1;
        transform: translateX(0) translateY(0);
    }
}

.spin2 {
    animation: spin2 10s linear infinite;
}

@keyframes spin2 {
    0% {
        transform: rotate(0);
    }
    100% {
        transform: rotate(-360deg);
    }
}

/*animation bubble****************/

.animation-bubble {
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    overflow: hidden;
    z-index: 1;
    pointer-events: none;
}

.animation-bubble div[class^=bubble-] {
    height: 1px;
    width: 1px;
    position: absolute;
    background: url(../img/shape/star.html) no-repeat center center;
    background-size: cover;
    border-radius: 50%;
    transform: translateX(-50%);
    pointer-events: none;
}

@media (max-width: 1024px) {
    .animation-bubble> :nth-child(even) {
        display: none;
    }
}

.bubble-1 {
    bottom: -5px;
    left: 68%;
    animation: bubble-animation 4.5s infinite ease-in -6.57s;
}

.bubble-2 {
    bottom: -71px;
    left: 97%;
    animation: bubble-animation 4.5s infinite ease-in -5.07s;
}

.bubble-3 {
    bottom: -71px;
    left: 43%;
    animation: bubble-animation 4.5s infinite ease-in -6.73s;
}

.bubble-4 {
    bottom: -3.8px;
    left: 82%;
    animation: bubble-animation 4.5s infinite ease-in -4.04s;
}

.bubble-5 {
    bottom: -73.4px;
    left: 29%;
    animation: bubble-animation 4.5s infinite ease-in -3.11s;
}

.bubble-6 {
    bottom: -71px;
    left: 41%;
    animation: bubble-animation 4.5s infinite ease-in -5.95s;
}

.bubble-7 {
    bottom: -79.4px;
    left: 14%;
    animation: bubble-animation 4.5s infinite ease-in -3.68s;
}

.bubble-8 {
    bottom: -115.4px;
    left: 90%;
    animation: bubble-animation 4.5s infinite ease-in -3.89s;
}

.bubble-9 {
    bottom: -44.6px;
    left: 33%;
    animation: bubble-animation 4.5s infinite ease-in -1.09s;
}

.bubble-10 {
    bottom: -6.2px;
    left: 59%;
    animation: bubble-animation 4.5s infinite ease-in -0.96s;
}

@keyframes bubble-animation {
    0% {
        transform: translate3d(-50%, 0, 0);
        height: 1px;
        width: 1px;
    }
    100% {
        transform: translate3d(-50%, -280px, 0);
        height: 30px;
        width: 30px;
    }
}

@keyframes toTopFromBottom {
    49% {
        transform: translateY(-100%);
    }
    50% {
        opacity: 0;
        transform: translateY(100%);
    }
    51% {
        opacity: 1;
    }
}

@keyframes icon-anim {
    0% {
        top: 26px;
        right: 90px;
    }
    25% {
        top: 86px;
        right: 110px;
    }
    100% {
        top: 26px;
        right: 90px;
    }
}

.img-shine {
	position: relative; 

	&::before{
		background-color: rgba(255,255,255,.3);
		bottom: 0;
		content: "";
		left: 50%;
		position: absolute;
		right: 51%;
		top: 0;
		opacity: 1;
		pointer-events: none;
		transition: all 500ms linear;
		z-index: 22;
	}
	&:hover { 
            &::before {
                left: 0;
                right: 0;
                opacity: 0;
                transition: all 500ms linear;
            } 
    }
}

.reveal {
    position: relative;
    display: -ms-inline-flexbox;
    visibility: hidden;
    overflow: hidden;
}

.reveal img {
    height: 100%;
    width: 100%;
    display: inline-block;
    -o-object-fit: cover;
    object-fit: cover;
    transform-origin: left;
}

.image-anime {
    position: relative;
    overflow: hidden;
}

.image-anime:after {
    content: "";
    position: absolute;
    width: 200%;
    height: 0%;
    left: 50%;
    top: 50%;
    background-color: rgba(255, 255, 255, 0.3);
    transform: translate(-50%, -50%) rotate(-45deg);
    z-index: 1;
}

.image-anime:hover:after {
    height: 250%;
    transition: all 600ms linear;
    background-color: transparent;
}

// Splitting text animation area start here ***
.splt-txt {
    .whitespace {
        width: 8px;
    }
    &.animated {
        .char {
            -webkit-animation: fadeInRight 0.4s cubic-bezier(0.3, 0, 0.7, 1) both;
            animation: fadeInRight 0.4s cubic-bezier(0.3, 0, 0.7, 1) both;
            -webkit-animation-delay: calc(30ms * var(--char-index));
            animation-delay: calc(30ms * var(--char-index));
        }
    }
}


@mixin scale-animations {
    @keyframes scaleUp {
      0% {
        transform: scale(1);
      }
      100% {
        transform: scale(1.1);
      }
    }
  
    animation: scaleUp 0.5s ease-in-out forwards;
}

// animation: jump 48s infinite linear;

@keyframes jump {
    0% {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
    40% {
        -webkit-transform: translate3d(0, 50%, 0);
        transform: translate3d(0, 50%, 0);
    }
    100% {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}

@keyframes jump2 {
    0% {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
    40% {
        -webkit-transform: translate3d(0, 20%, 0);
        transform: translate3d(0, 20%, 0);
    }
    100% {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}


// animation: scaleAnimation 2s ease-in-out infinite;

@keyframes scaleAnimation {
    0% {
      -webkit-transform: scale(1);
      transform: scale(1);
    }
    40% {
      -webkit-transform: scale(0.5);
      transform: scale(0.5);
    }
    100% {
      -webkit-transform: scale(1);
      transform: scale(1);
    }
  }

  .rotate360 {
	animation: rotate360 10s linear infinite;
	-webkit-animation: rotate360 10s linear infinite;
    }

    @keyframes rotate360 {
        from {
            transform: rotate(0deg);
        }

        to {
            transform: rotate(-360deg);
            -webkit-transform: rotate(-360deg);
            -moz-transform: rotate(-360deg);
            -ms-transform: rotate(-360deg);
            -o-transform: rotate(-360deg);
        }
    }