.slide-top {
  -webkit-animation: slide-top 1s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
  animation: slide-top 1s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
}

/* ----------------------------------------------
 * Generated by Animista on 2025-2-24 18:8:2
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

/**
 * ----------------------------------------
 * animation slide-top
 * ----------------------------------------
 */
@-webkit-keyframes slide-top {
  0% {
    -webkit-transform: translateY(50px);
    transform: translateY(50px);
    opacity: 0;
  }

  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes slide-top {
  0% {
    -webkit-transform: translateY(50px);
    transform: translateY(50px);
    opacity: 0;
  }

  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
  }
}

.scale-up-center {
  -webkit-animation: scale-up-center 1s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
  animation: scale-up-center 1s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
}

/* ----------------------------------------------
 * Generated by Animista on 2025-2-24 18:12:53
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

/**
 * ----------------------------------------
 * animation scale-up-center
 * ----------------------------------------
 */
@-webkit-keyframes scale-up-center {
  0% {
    -webkit-transform: scale(1.5);
    transform: scale(1.5);
    opacity: 0;
  }

  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes scale-up-center {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 0;
  }

  100% {
    -webkit-transform: scale(1.5);
    transform: scale(1.5);
    opacity: 1;
  }
}

.scale-down-center {
  -webkit-animation: scale-down-center 2s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
  animation: scale-down-center 2s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
}

/* ----------------------------------------------
 * Generated by Animista on 2025-2-24 18:41:6
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

/**
 * ----------------------------------------
 * animation scale-down-center
 * ----------------------------------------
 */
@-webkit-keyframes scale-down-center {
  0% {
    -webkit-transform: scale(2.5);
    transform: scale(2.5);
    opacity: 0;

  }

  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes scale-down-center {
  0% {
    -webkit-transform: scale(2.5);
    transform: scale(2.5);
    opacity: 0;

  }

  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
  }
}


.fade-in {
  -webkit-animation: fade-in 1.7s ease both;
  animation: fade-in 1.7s ease both;
}

/* ----------------------------------------------
 * Generated by Animista on 2025-2-24 18:14:0
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

/**
 * ----------------------------------------
 * animation fade-in
 * ----------------------------------------
 */
@-webkit-keyframes fade-in {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@keyframes fade-in {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

.line1.fade-in {
  -webkit-animation: fade-in-line1 3s ease both;
  animation: fade-in-line1 3s ease both;
  animation-delay: 1.5s;
}

@-webkit-keyframes fade-in-line1 {
  0% {
    opacity: 0;
    transform: translateX(200px);
  }

  100% {
    opacity: 1;
    transform: translateX(0px);
  }
}

@keyframes fade-in-line1 {
  0% {
    opacity: 0;
    transform: translateX(200px);
  }

  100% {
    opacity: 1;
    transform: translateX(0px);
  }
}


.line2.fade-in {
  -webkit-animation: fade-in-line2 3s ease both;
  animation: fade-in-line2 3s ease both;
  animation-delay: 1.5s;
}

@-webkit-keyframes fade-in-line2 {
  0% {
    opacity: 0;
    transform: translateX(-200px);
  }

  100% {
    opacity: 1;
    transform: translateX(0px);
  }
}

@keyframes fade-in-line2 {
  0% {
    opacity: 0;
    transform: translateX(-200px);
  }

  100% {
    opacity: 1;
    transform: translateX(0px);
  }
}



.fade-out {
  -webkit-animation: fade-out 1s ease-out both;
  animation: fade-out 1s ease-out both;
}

/* ----------------------------------------------
 * Generated by Animista on 2025-2-24 18:18:52
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

/**
 * ----------------------------------------
 * animation fade-out
 * ----------------------------------------
 */
@-webkit-keyframes fade-out {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

@keyframes fade-out {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}



.bg-layer.zoom-in {
  -webkit-animation: zoom-in 2.5s ease-in-out both;
  animation: zoom-in 2.5s ease-in-out both;
}

@-webkit-keyframes zoom-in {
    0% {
      background-size: 100%;
      opacity: 0.4;
    }

    100% {
      opacity: 1;
      background-size: 180%;
    }
  }

  @keyframes zoom-in {
    0% {
      background-size: 100%;
      opacity: 0.4;
    }

    100% {
      opacity: 1;
      background-size: 180%;
    }
  }

.bg-line.fade-in {
  -webkit-animation: fade-in-bgline 2s ease both;
  animation: fade-in-bgline 2s ease both;
  animation-delay: 2s;
}

@-webkit-keyframes fade-in-bgline {
  0% {
    opacity: 0;
    background-size: 180%;
  }

  100% {
    opacity: 1;
    background-size: 180%;
  }
}

@keyframes fade-in-bgline {
  0% {
    opacity: 0;
    background-size: 180%;
  }

  100% {
    opacity: 1;
    background-size: 180%;
  }
}

/* @media (min-aspect-ratio: 2500/2054) { */
/* Select aspect ratios 1/1 = 1 and above */
@media (min-aspect-ratio: 1/1) {
  .bg-layer.zoom-in {
    -webkit-animation: zoom-in 2.5s ease-in-out both;
    animation: zoom-in 2.5s ease-in-out both;
  }

  @-webkit-keyframes zoom-in {
    0% {
      /* background-position: center center; */
      opacity: 0.4;
      background-size: 100%;
    }

    100% {
      opacity: 1;
      /* background-position: top center; */
      background-size: 105%;
    }
  }

  @keyframes zoom-in {
    0% {
      /* background-position: center center; */
      opacity: 0.4;
      background-size: 100%;
    }

    100% {
      opacity: 1;
      /* background-position: top center; */
      background-size: 105%;
    }
  }

  .bg-line.fade-in {
    -webkit-animation: fade-in-bgline 2s ease both;
    animation: fade-in-bgline 2s ease both;
    animation-delay: 2s;
  }

  @-webkit-keyframes fade-in-bgline {
    0% {
      opacity: 0;
      background-size: 105%;
    }

    100% {
      opacity: 1;
      background-size: 105%;
    }
  }

  @keyframes fade-in-bgline {
    0% {
      opacity: 0;
      background-size: 105%;
    }

    100% {
      opacity: 1;
      background-size: 105%;
    }
  }
}

@media (max-aspect-ratio: .8/1) {
  .bg-layer.zoom-in {
    -webkit-animation: zoom-in 2.5s ease-in-out both;
    animation: zoom-in 2.5s ease-in-out both;
  }

  @-webkit-keyframes zoom-in {
    0% {
      /* background-position: center center; */
      opacity: 0.4;
      background-size: 140%;
    }

    100% {
      opacity: 1;
      /* background-position: top center; */
      background-size: 180%;
    }
  }

  @keyframes zoom-in {
    0% {
      /* background-position: center center; */
      opacity: 0.4;
      background-size: 140%;
    }

    100% {
      opacity: 1;
      /* background-position: top center; */
      background-size: 180%;
    }
  }

  .bg-line.fade-in {
    -webkit-animation: fade-in-bgline 2s ease both;
    animation: fade-in-bgline 2s ease both;
    animation-delay: 2s;
  }

  @-webkit-keyframes fade-in-bgline {
    0% {
      opacity: 0;
      background-size: 180%;
    }

    100% {
      opacity: 1;
      background-size: 180%;
    }
  }

  @keyframes fade-in-bgline {
    0% {
      opacity: 0;
      background-size: 180%;
    }

    100% {
      opacity: 1;
      background-size: 180%;
    }
  }

  .line1.fade-in {
    -webkit-animation: fade-in-line1 2s ease both;
    animation: fade-in-line1 2s ease both;
    animation-delay: .5s;
  }

  @-webkit-keyframes fade-in-line1 {
    0% {
      opacity: 0;
      transform: translateY(50px);
    }

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

  @keyframes fade-in-line1 {
    0% {
      opacity: 0;
      transform: translateY(50px);
    }

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


  .line2.fade-in {
    -webkit-animation: fade-in-line2 2s ease both;
    animation: fade-in-line2 2s ease both;
    animation-delay: .5s;
  }

  @-webkit-keyframes fade-in-line2 {
    0% {
      opacity: 0;
      transform: translateY(50px);
    }

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

  @keyframes fade-in-line2 {
    0% {
      opacity: 0;
      transform: translateY(50px);
    }

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

}


@media( max-width: 768px) {
  .bg-layer.zoom-in {
    -webkit-animation: zoom-in 2.5s ease-in-out both;
    animation: zoom-in 2.5s ease-in-out both;
  }

  @-webkit-keyframes zoom-in {
    0% {
      /* background-position: center center; */
      background-size: 120%;
      opacity: 0.4;
    }

    100% {
      opacity: 1;
      /* background-position: top center; */
      background-size: 150%;
    }
  }

  @keyframes zoom-in {
    0% {
      /* background-position: center center; */
      background-size: 120%;
      opacity: 0.4;
    }

    100% {
      opacity: 1;
      /* background-position: top center; */
      background-size: 150%;
    }
  }

  .bg-line.fade-in {
    -webkit-animation: fade-in-bgline 2s ease both;
    animation: fade-in-bgline 2s ease both;
    animation-delay: 2s;
  }

  @-webkit-keyframes fade-in-bgline {
    0% {
      opacity: 0;
      background-size: 150%;
    }

    100% {
      opacity: 1;
      background-size: 150%;
    }
  }

  @keyframes fade-in-bgline {
    0% {
      opacity: 0;
      background-size: 150%;
    }

    100% {
      opacity: 1;
      background-size: 150%;
    }
  }
}



.slide-in-left {
  -webkit-animation: slide-in-left 1s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
  animation: slide-in-left 1s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
}

/* ----------------------------------------------
 * Generated by Animista on 2025-2-24 19:11:34
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

/**
 * ----------------------------------------
 * animation slide-in-left
 * ----------------------------------------
 */
@-webkit-keyframes slide-in-left {
  0% {
    -webkit-transform: translateX(-200px);
    transform: translateX(-200px);
    opacity: 0;
  }

  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes slide-in-left {
  0% {
    -webkit-transform: translateX(-200px);
    transform: translateX(-200px);
    opacity: 0;
  }

  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
    opacity: 1;
  }
}