/* =====================
    SECTION: Reavls
    ====================== */

.fade-up {
  opacity: 0;
  transform: translateY(20px);
  transition: 1s ease-in-out;
  transition-property: opacity, transform;
}

.fade-up.in {
  opacity: 1;
  transform: none;
}

.fade-down {
  opacity: 0;
  transform: translateY(-20px);
  transition: 1s ease-in-out;
  transition-property: opacity, transform;
}

.fade-down.in {
  opacity: 1;
  transform: none;
}

.fade-right {
  opacity: 0;
  transform: translateX(-20px);
  transition: 1s ease-in-out;
  transition-property: opacity, transform;
}

.fade-right.in {
  opacity: 1;
  transform: none;
}

.fade-left {
  opacity: 0;
  transform: translateX(20px);
  transition: 1s ease-in-out;
  transition-property: opacity, transform;
}

.fade-left.in {
  opacity: 1;
  transform: none;
}

.flip-right {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
  transform: rotateY(90deg);
  perspective: 1000px;
  transition: 1s ease-in-out;
  transition-property: transform;
}

.flip-right.in {
  transform: none;
}

.flip-left {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
  transform: rotateY(-90deg);
  perspective: 1000px;
  transition: 1s ease-in-out;
  transition-property: transform;
}

.flip-left.in {
  transform: none;
}

.zoom-in {
  opacity: 0;
  transform: scale(0.35);
  transition: 1s ease-in-out;
  transition-property: opacity, transform;
}

.zoom-in.in {
  opacity: 1;
  transform: none;
}

.zoom-out {
  opacity: 0;
  transform: scale(1.75);
  transition: 1s ease-in-out;
  transition-property: opacity, transform;
}

.zoom-out.in {
  opacity: 1;
  transform: none;
}

/* =====================
    SECTION: Others
    ====================== */
@keyframes carouselScale {
  0% {
    transform: scale(1);
  }

  100% {
    transform: scale(1.15);
  }
}

@keyframes captionSlideIn {
  100% {
    opacity: 1;
    transform: perspective(300px) rotateY(0deg) translateY(0);
  }
}

@keyframes captionSlideUp {
  100% {
    transform: translateY(0px);
  }
}

.rotateme {
  -webkit-animation-name: rotateme;
  animation-name: rotateme;
  -webkit-animation-duration: 20s;
  animation-duration: 20s;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
}

@keyframes rotateme {
  from {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }

  to {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
