.button {
	pointer-events: auto;
	cursor: pointer;
	background: #e7e7e7;
	border: none;
	padding: 0.5rem 0.5rem;
	margin: 0;
	font-family: inherit;
	font-size: inherit;
	position: relative;
	display: inline-block;
	border-radius: 10px;
}

.button::before,
.button::after {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.button--telesto {
	overflow: hidden;
	font-family: obvia, sans-serif;
	font-weight: 800;
	font-style: italic;
	font-size: 1.15rem;
	color: #fff;
}

.button--telesto span {
	display: block;
	position: relative;
	z-index: 1;
}

.button--telesto > span {
	overflow: hidden;
	mix-blend-mode: difference;
}

.button--telesto:hover > span > span {
	animation: MoveRightInitial 0.1s forwards, MoveRightEnd 0.3s forwards 0.2s;
}

@keyframes MoveRightInitial {
	to {
		transform: translate3d(105%,0,0);
	}
}

@keyframes MoveRightEnd {
	from {
		transform: translate3d(-100%,0,0);
	}
	to {
		transform: translate3d(0,0,0);
	}
}

.button--telesto::before,
.button--telesto::after {
	content: '';
	background: #000;
}

.button--telesto::before {
	width: 135%;
	-webkit-clip-path: polygon(75% 0%, 100% 50%, 75% 100%, 0% 100%, 0% 0%);
	clip-path: polygon(75% 0%, 100% 50%, 75% 100%, 0% 100%, 0% 0%);
	transform: translate3d(-100%,0,0);
}

.button--telesto:hover::before {
	transform: translate3d(0,0,0);
	transition: transform 0.3s cubic-bezier(0.7, 0, 0.2, 1);
}

.button--telesto::after {
	width: 105%;
	transform: translate3d(100%,0,0);
	transition: transform 0.3s cubic-bezier(0.7, 0, 0.2, 1);
}

.button--telesto:hover::after {
	transform: translate3d(0,0,0);
	transition: transform 0.01s 0.3s cubic-bezier(0.7, 0, 0.2, 1);
}