:root {
	--endScale: 2;
	--endTranslate: 2em;
}

body {
	background-color: rgb(51, 51, 51);
	display: flex;
	height: 100vh;
}

#loadingText {
	position: relative;
	top: 100px;
	color: white;
	text-align: center;
	margin: auto;
}

#loadingContainer {
	display:block;
	margin: auto;
}

#cube {
	display:block;
	margin: auto;
	font-size: 24px;
	height: 1em;
	width: 1em;
	transform-style: preserve-3d;
}

#cube.normal {
	animation: cube-spin 2s infinite ease-in-out alternate both;
}

@keyframes cube-spin {
	0% {
		transform: rotatex(35.264deg) rotatey(45deg);
	}

	100% {
		transform: rotatex(35.264deg) rotatey(405deg);
	}
}

#cube.init {
	animation: zoom 0.4s ease-in-out alternate forwards;
}

@keyframes zoom {	
	0% {
		transform: scale(100) rotatex(35.264deg) rotatey(405deg);
	}

	100% {
		transform: scale(1) rotatex(35.264deg) rotatey(45deg);
	}
}

.side {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	transform-style: preserve-3d;
}

.side::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	background-color: rgb(235, 235, 235);
	border: 1px solid gray;
	animation: side-explode 2s infinite ease-in-out;
	opacity: 0.5;
}

@keyframes side-explode {
	0% {
		transform: scale(1) translatez(0.5em);
	}

	20% {
		transform: scale(1) translatez(0.5em);
	}

	50% {
		transform: scale(var(--endScale)) translatez(var(--endTranslate));
	}

	80% {
		transform: scale(1) translatez(0.5em);
	}

	100% {
		transform: scale(1) translatez(0.5em);
	}
}


.side:nth-child(1) {
	transform: rotatey(90deg);
}

.side:nth-child(2) {
	transform: rotatey(180deg);
}

.side:nth-child(3) {
	transform: rotatey(270deg);
}

.side:nth-child(4) {
	transform: rotatey(360deg);
}

.side:nth-child(5) {
	transform: rotatex(90deg);
}

.side:nth-child(6) {
	transform: rotatex(270deg);
}