.animatable {
  opacity: 0;
  transition: opacity 500ms;
}

.animatable.scrolled {
  opacity: 1;
}

.animatable.scrolled.fadeIn {
  animation: fade-in 1s ease-in-out both;
}

.animatable.scrolled.slideUp {
  animation: slide-in-up 0.5s ease-in-out both;
}

.animatable.scrolled.slideLeft {
  animation: slide-in-left 1s ease-in-out both;
}

.animatable.scrolled.slideRight {
  animation: slide-in-right 1s ease-in-out both;
}

@keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes slide-in-up {
  0% {
    -webkit-transform: translateY(25px);
    transform: translateY(25px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes slide-in-left {
  0% {
    -webkit-transform: translateX(-100px);
    transform: translateX(-100px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes slide-in-right {
  0% {
    -webkit-transform: translateX(100px);
    transform: translateX(100px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
    opacity: 1;
  }
}

.animatable.underline,
.animatable.highlight{ 
	text-decoration: none;
	transition: all .5s ease-out;
	background-repeat: no-repeat;
}

/* Underline */
.animatable.underline {
	background-image: linear-gradient(rgb(50,50,50), rgb(50,50,50) );
	background-size: 100% .2em;
	background-repeat: no-repeat;
	background-position-y: 100%;
	background-size: 0% .2em;
}

.animatable.underline.gradient {
	background-image: linear-gradient(120deg, rgb(72, 105, 218), rgb(72,206,218) );
}

.animatable.underline.strike {
	background-position-y: 50%;
}

.animatable.scrolled.underline {
	background-size: 100% .2em;
}

/* highlight  */
.animatable.highlight { 
	background-size: 100% 100%;
	background-position-y:100%;
	background-image: linear-gradient(rgb(255,255,155), rgb(255,255,155) );
	background-size: 0% 100%;
	background-position-x: 0%;
	padding: 0 2px;
}

.animatable.highlight.gradient {
	background-image: linear-gradient(120deg, rgb(255,150,200), rgb(255,190,100));
}

.animatable.scrolled.highlight {
	background-size: 100% 100%;
}