* 
{
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
body 
{
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 100vh;
	background: #d2d2d2;
}
.container
{
	position: relative;
	top: -80px;
	transform: skewY(-20deg);
	animation: animate 10s linear infinite;
}
@keyframes animate {
	0% {
		filter: hue-rotate(0deg);
	}
	100% {
		filter: hue-rotate(360deg);
	}
}
.container .cube
{
	position: relative;
	z-index: 2;
}
.container .cube:nth-child(1)
{
	z-index: 1;
	translate: -60px -60px;
}
.container .cube:nth-child(3)
{
	z-index: 3;
	translate: 60px 60px;
}
.container .cube div
{
	position: absolute;
	display: flex;
	flex-direction: column;
	gap: 30px;
	translate: calc(-70px * var(--x)) calc(-60px * var(--y));
}
.container .cube div span
{
	position: relative;
	display: inline-block;
	width: 50px;
	height: 50px;
	background: #dcdcdc;
	z-index: calc(1 * var(--i));
	transition: .5s;
}
.container .cube div span:hover
{
	transition: 0s;
	background: #ef4149;
	filter: drop-shadow(0px 0px 30px #ef4149);
}
.container .cube div span:before
{
	content: '';
	position: absolute;
	left: -40px;
	width: 40px;
	height: 100%;
	background: #fff;
	transform-origin: right;
	transform: skewY(45deg);
	transition: .5s;
}
.container .cube div span:hover:before
{
	transition: 0s;
	background: #f75d64;
}
.container .cube div span:after
{
	content: '';
	position: absolute;
	top: -40px;
	left: 0;
	width: 100%;
	height: 40px;
	background: #f2f2f2;
	transform-origin: bottom;
	transform: skewX(45deg);
	transition: .5s;
}
.container .cube div span:hover:after
{
	transition: 0s;
	background: #f14e55;
}