@keyframes keyframes-color-cycle {
	0% {
		background-color: red;
	}
	33% {
		background-color: green;
	}
	67% {
		background-color: blue;
	}
	100% {
		background-color: red;
	}
}

.animation-color-cycle {
	animation: 1s linear 0s infinite normal both running keyframes-color-cycle;
}

.animation-color-cycle-hover:hover {
	animation: 1s linear 0s infinite normal both running keyframes-color-cycle;
}

.animation-marker-line::before {
	content: "";
	position: absolute;
	width: 100%;
	height: 2px;
	bottom: 0;
	left: 0;
	background-color: #000;
	transform: scaleX(0);
	transition: all 0.3s ease-in-out 0s;
}
.animation-marker-line::before {
	animation: 1s linear 0s 1 normal both running keyframes-marker-line;
}
.animation-marker-line-hover:hover::before {
	animation: 1s linear 0s 1 normal both running keyframes-marker-line;
}
@keyframes keyframes-marker-line {
100% { transform: scaleX(1); }
@keyframes keyframes-marker-line {
	}
}

.animation-marker-line {
	animation: 1s linear 0s 1 normal both running keyframes-marker-line;
}

.animation-marker-line-hover:hover {
	animation: 1s linear 0s 1 normal both running keyframes-marker-line;
}

@keyframes keyframes-wobble {
	0% { transform: translateX(0%); }
	15% { transform: translateX(calc(-50% * 50 / 100)) rotate(calc(-15deg * 50 / 100)); }
	30% { transform: translateX(calc(40% * 50 / 100)) rotate(calc(9deg * 50 / 100)); }
	45% { transform: translateX(calc(-30% * 50 / 100)) rotate(calc(-9deg * 50 / 100)); }
	60% { transform: translateX(calc(20% * 50 / 100)) rotate(calc(6deg * 50 / 100)); }
	75% { transform: translateX(calc(-10% * 50 / 100)) rotate(calc(-3deg * 50 / 100)); }
	100% { transform: translateX(0%); }
}

.animation-wobble {
	animation: 1s linear 0s 1 normal both running keyframes-wobble;
}

.animation-wobble-hover:hover {
	animation: 1s linear 0s 1 normal both running keyframes-wobble;
}

@keyframes keyframes-shake {
	10%, 90% {
		transform: translate3d(calc(-25px * 10 / 100), 0, 0);
	}
		
	20%, 80% {
		transform: translate3d(calc(50px * 10 / 100), 0, 0);
	}
	30%, 50%, 70% {
		transform: translate3d(calc(-100px * 10 / 100), 0, 0);
	}
	40%, 60% {
		transform: translate3d(calc(100px * 10 / 100), 0, 0);
	}
}

.animation-shake {
	animation: 1s linear 0s 1 normal both running keyframes-shake;
}

.animation-shake-hover:hover {
	animation: 1s linear 0s 1 normal both running keyframes-shake;
}

@keyframes keyframes-shadow-pop {
	0% {
		box-shadow: 0 0 #3e3e3e, 0 0 #3e3e3e, 0 0 #3e3e3e, 0 0 #3e3e3e, 0 0 #3e3e3e, 0 0 #3e3e3e, 0 0 #3e3e3e, 0 0 #3e3e3e;
		transform: translateX(0) translateY(0);
	}
	100% {
		box-shadow: 1px -1px #3e3e3e, 2px -2px #3e3e3e, 3px -3px #3e3e3e, 4px -4px #3e3e3e, 5px -5px #3e3e3e, 6px -6px #3e3e3e, 7px -7px #3e3e3e, 8px -8px #3e3e3e;
		transform: translateX(-8px) translateY(8px);
	}
}

.animation-shadow-pop {
	animation: 0.3s linear 0s 1 normal both running keyframes-shadow-pop;
}

.animation-shadow-pop-hover:hover {
	animation: 0.3s linear 0s 1 normal both running keyframes-shadow-pop;
}

@keyframes keyframes-shadow-drop {
	0% {
		box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
	}
	100% {
		box-shadow: 0 0 calc(50px * 25 / 100) 0px rgba(0, 0, 0, calc(1 - 50 / 100));
	}
}

.animation-shadow-drop {
	animation: 0.3s linear 0s 1 normal both running keyframes-shadow-drop;
}

.animation-shadow-drop-hover:hover {
	animation: 0.3s linear 0s 1 normal both running keyframes-shadow-drop;
}