/* ANIMATION CLASSES */
.text-focus-in {
	-webkit-animation: text-focus-in 1s cubic-bezier(0.550, 0.085, 0.680, 0.530) 0.5s both;
	animation: text-focus-in 1s cubic-bezier(0.550, 0.085, 0.680, 0.530) 0.5s both;
}

.heartbeat {
	-webkit-animation: heartbeat 1.5s ease-in-out 3s 3 both;
	animation: heartbeat 1.5s ease-in-out 3s 3 both;
}

.flicker-1 {
	-webkit-animation: flicker-1 2s linear infinite both;
	animation: flicker-1 2s linear infinite both;
}

/* keyframe flicker-1 */
@-webkit-keyframes flicker-1 {

	0%,
	100% {
		opacity: 1;
	}

	41.99% {
		opacity: 1;
	}

	42% {
		opacity: 0;
	}

	43% {
		opacity: 0;
	}

	43.01% {
		opacity: 1;
	}

	47.99% {
		opacity: 1;
	}

	48% {
		opacity: 0;
	}

	49% {
		opacity: 0;
	}

	49.01% {
		opacity: 1;
	}
}

@keyframes flicker-1 {

	0%,
	100% {
		opacity: 1;
	}

	41.99% {
		opacity: 1;
	}

	42% {
		opacity: 0;
	}

	43% {
		opacity: 0;
	}

	43.01% {
		opacity: 1;
	}

	47.99% {
		opacity: 1;
	}

	48% {
		opacity: 0;
	}

	49% {
		opacity: 0;
	}

	49.01% {
		opacity: 1;
	}
}

/* keyframe heartbeat */
@-webkit-keyframes heartbeat {
	from {
		-webkit-transform: scale(1);
		transform: scale(1);
		-webkit-transform-origin: center center;
		transform-origin: center center;
		-webkit-animation-timing-function: ease-out;
		animation-timing-function: ease-out;
	}

	10% {
		-webkit-transform: scale(0.91);
		transform: scale(0.91);
		-webkit-animation-timing-function: ease-in;
		animation-timing-function: ease-in;
	}

	17% {
		-webkit-transform: scale(0.98);
		transform: scale(0.98);
		-webkit-animation-timing-function: ease-out;
		animation-timing-function: ease-out;
	}

	33% {
		-webkit-transform: scale(0.87);
		transform: scale(0.87);
		-webkit-animation-timing-function: ease-in;
		animation-timing-function: ease-in;
	}

	45% {
		-webkit-transform: scale(1);
		transform: scale(1);
		-webkit-animation-timing-function: ease-out;
		animation-timing-function: ease-out;
	}
}

@keyframes heartbeat {
	from {
		-webkit-transform: scale(1);
		transform: scale(1);
		-webkit-transform-origin: center center;
		transform-origin: center center;
		-webkit-animation-timing-function: ease-out;
		animation-timing-function: ease-out;
	}

	10% {
		-webkit-transform: scale(0.91);
		transform: scale(0.91);
		-webkit-animation-timing-function: ease-in;
		animation-timing-function: ease-in;
	}

	17% {
		-webkit-transform: scale(0.98);
		transform: scale(0.98);
		-webkit-animation-timing-function: ease-out;
		animation-timing-function: ease-out;
	}

	33% {
		-webkit-transform: scale(0.87);
		transform: scale(0.87);
		-webkit-animation-timing-function: ease-in;
		animation-timing-function: ease-in;
	}

	45% {
		-webkit-transform: scale(1);
		transform: scale(1);
		-webkit-animation-timing-function: ease-out;
		animation-timing-function: ease-out;
	}
}

/* keyframe text-focus-in */
@-webkit-keyframes text-focus-in {
	0% {
		-webkit-filter: blur(12px);
		filter: blur(12px);
		opacity: 0;
	}

	100% {
		-webkit-filter: blur(0px);
		filter: blur(0px);
		opacity: 1;
	}
}

@keyframes text-focus-in {
	0% {
		-webkit-filter: blur(12px);
		filter: blur(12px);
		opacity: 0;
	}

	100% {
		-webkit-filter: blur(0px);
		filter: blur(0px);
		opacity: 1;
	}
}

/* keyframe blinking */
@keyframes blinking {
	0% {
		color: transparent;
		opacity: 0.5;
	}

	50% {
		color: var(--red);
		opacity: 1;
		text-shadow: 0px 0px 2px var(--warning);
	}

	100% {
		color: transparent;
		opacity: 0.5;
	}
}