@import url('https://fonts.googleapis.com/css2?family=Russo+One&display=swap');

:root {
	--c2: #607d8b;
    --c3: #041e31;
    --c4: #098a8a;
	--nb: #0ff;
	--ng: #0f0;
}
	
body {
	margin: 0;
	box-sizing: border-box;
	width: 100vw;
	height: 100vh;
	overflow: hidden;
	font-family: 'Russo One', Arial, Helvetica, sans-serif;
	background-color: #0d324d;
	background-image: radial-gradient(#0d324d , #121212);
}

body * {
	box-sizing: border-box;
}

.container {
	width: 100vw;
	height: 100vh;
	position: absolute;
	overflow: hidden;
	left: 0;
	top: 0;
	perspective: 100vmin;
}

.container > div {
    float: left;
    width: 100%;
}

.thanks, .number, .followers {
	font-size: 15vmin;
    text-align: center;
    color: #fff;
    height: 25vh;
    line-height: 25vh;
}

.thanks {
	animation: blink 4.5s infinite alternate;
}

.followers {
	animation: blink 6.75s infinite alternate;
	filter: hue-rotate(160deg);
}
	
.tilt {
	animation: tilt 8s ease-in-out 0s infinite alternate;
    display: flex;
    justify-content: center;
    align-items: center;
    transform-style: preserve-3d;
}

.number {
    height: 50vh;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 45vmin;
	transform-style: preserve-3d;
	animation: spin 6s ease-in-out 0s infinite alternate;
}

.number > * {
    position: absolute;
}

.number span {
	z-index: -1;
	transform: translateZ(-0.3vmin);
	transform-style: preserve-3d;
	position: absolute;
	color: var(--c2);
}

.number span:before, .number span:after {
    content: "500";
    position: absolute;
    color: var(--c3);
    transform: translateZ(0.25vmin);
    transform-style: preserve-3d;
}

.number span:after {
	top: 0;
	left: 0;
    color: var(--c4);
    transform: translateZ(-0.25vmin);
}

.number span:nth-child(1):before {
    color: #041e3138;
    text-shadow: 0 0 1.5vmin var(--nb);
}

.number span:nth-child(2) {
	transform: translateZ(-0.6vmin);
}

.number span:nth-child(3) {
	transform: translateZ(-0.9vmin);
}

.number span:nth-child(4) {
	transform: translateZ(-1.2vmin);
}

.number span:nth-child(5) {
	transform: translateZ(-1.5vmin);
}

.number span:nth-child(6) {
	transform: translateZ(-1.8vmin);
}

.number span:nth-child(7) {
	transform: translateZ(-2.1vmin);
}

.number span:nth-child(8) {
	transform: translateZ(-2.4vmin);
}

.number span:nth-child(9) {
	transform: translateZ(-2.7vmin);
}

.number span:nth-child(10) {
	transform: translateZ(-3vmin);
}

.number span:nth-child(11) {
	transform: translateZ(-3.3vmin);
}

.number span:nth-child(12) {
	transform: translateZ(-3.6vmin);
}

.number span:nth-child(13) {
	transform: translateZ(-3.9vmin);
}

.number span:nth-child(14) {
	transform: translateZ(-4.2vmin);
}

.number span:nth-child(15) {
	transform: translateZ(-4.5vmin);
}

.number span:nth-child(16) {
	transform: translateZ(-4.8vmin);
}

.number span:nth-child(17) {
	transform: translateZ(-5.1vmin);
}

.number span:nth-child(18) {
	transform: translateZ(-5.4vmin);
}

.number span:nth-child(19) {
	transform: translateZ(-5.7vmin);
}

.number span:nth-child(20) {
	transform: translateZ(-6vmin);
}

.number span:nth-child(21) {
	animation: light 3s ease-in-out 0s infinite;
    text-shadow: 0 0 2.5vmin var(--nb), 0 0 3.5vmin var(--nb);
    transform: translateZ(0.2vmin);
}

.number span:nth-child(21):before, 
.number span:nth-child(21):after {
    color: #fff;
	text-shadow: 0 0 0.5vmin #fff, 0 0 1vmin #fff, 0 0 1.5vmin #fff, 0 0 1vmin var(--nb), 0 0 3vmin var(--nb), 0 0 4vmin var(--nb), 0 0 6vmin var(--nb);
	animation: light2 3s ease-in-out 0s infinite;
}


@keyframes spin {
	  0% { transform: rotateY(45deg);}
	100% { transform: rotateY(-45deg);}
}

@keyframes tilt {
	  0% { transform: rotateX(-30deg);}
	100% { transform: rotateX(30deg);}
}

@keyframes light {
	0%, 70%, 100% { 
		transform: translateZ(-0.12vmin); 
	}
	5%, 25%, 35%, 65%, 75%, 85%, 95% { 
		transform: translateZ(0vmin);
	}
	10%, 30%, 90% { 
		transform: translateZ(-0.11vmin);
	}
	11% { 
		text-shadow: 0 0 2.5vmin var(--nb), 0 0 3.5vmin var(--nb); 
	}
	13%, 83%, 92% { 
		text-shadow: none; 
	}
	15% { 
		transform: translateZ(0vmin); text-shadow: 0 0 2.5vmin var(--nb), 0 0 3.5vmin var(--nb); 
	}
	20%, 80% { 
		transform: translateZ(-0.13vmin);
	}
	50% { 
		transform: translateZ(-6vmin);
	}
	84%, 94% { 
		text-shadow: 0 0 2.5vmin var(--nb), 0 0 3.5vmin var(--nb); 
	}
}

@keyframes light2 {
	 61%, 63%, 71%, 73% { 
		text-shadow: 0 0 0.5vmin #fff, 0 0 1vmin #fff, 0 0 1.5vmin #fff, 0 0 1vmin var(--nb), 0 0 3vmin var(--nb), 0 0 4vmin var(--nb), 0 0 6vmin var(--nb); 
	}
	 62%, 72% { 
		text-shadow: none; 
	}
}

@keyframes blink {
	 0%, 19%, 21%, 23%, 64%, 66%, 100% {
		text-shadow: 0 0 0.5vmin #fff, 0 0 1vmin #fff, 0 0 2vmin #fff, 0 0 4vmin var(--ng), 0 0 8vmin var(--ng), 0 0 9vmin var(--ng), 0 0 10vmin var(--ng), 0 0 15vmin var(--ng);
	}
	20%, 22%, 65% {        
		text-shadow: none;
	}  
}