:root {
	--fgc: #76d39e;
}
#bf{
	position: absolute;
	color: var(--fgc);
	top: 2ch;
	left: 50%;
	transform: translateX(-50%);
	font-size: 1.6em;
	font-weight: bolder;
	width: 80vw;
	text-align: center;
	opacity: 0;
	animation: fadeTextIn 1.5s forwards ease-in;
	animation-delay: 1s;
	cursor: pointer;
}


.wrapper {
	position: absolute;
	width: min(80vw, 80vh);
	height: min(80vw, 80vh);
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	perspective: 1000px;
	mix-blend-mode: color-burn; /*huh*/
}


.illusion svg {
	stroke: var(--fgc);
}

.illusion,
svg {
	width: 100%;
	height: 100%;
}

.illusion {
    transition:all 3s ease-out;
	transform-style: preserve-3d;
	animation: rotate 5s forwards 1 ease-in-out;
	/* default animation, ill2 overrides this */
	transform: scale(50%);
}

.ill2 {
    transition:all 3s ease-out;
	animation: rotate_noreturn 2.5s forwards 1 ease-in-out;
	animation-delay: 2.5s;
}

.return {
    transition:all 3s ease-out;
	animation: rot_return 2.5s forwards 1 ease-in-out, leftspin 30s forwards infinite alternate 2.5s linear;
}


.out {
    transition:all 3s ease-out;
	animation: rotate_noreturn 2.5s forwards 1 ease-in-out, rightspin 30s forwards infinite alternate-reverse 2.5s linear;
}

@keyframes rotate {
	0% {
		transform: scale(50%);
	}

	50% {
		transform: rotate(240deg) scale(80%);
		;
	}

	100% {
		transform: rotate(0deg) scale(50%);
	}
}

@keyframes rotate_noreturn {
	0% {
		transform: scale(50%);
	}

	100% {
		transform: rotate(240deg) scale(80%);
		;
	}
}

@keyframes rot_return {
	0% {
		transform: rotate(240deg) scale(80%);
	}

	100% {
		transform: rotate(0deg) scale(50%);
	}
}

@keyframes leftspin {
    0% {
        transform: rotate(0deg) scale(50%);
    }

    100% {
		transform: rotate(-360deg) scale(50%);
	}
}

@keyframes rightspin {
    0% {
        transform:rotate(360deg) scale(80%);
    }

    100% {
		transform:rotate(240deg) scale(80%);
	}

}

.round {
    fill: var(--fgc);
    stroke: var(--fgc);
}


@keyframes fadeTextOut {
	0% {
		opacity: 1;
		pointer-events: all;
	}

	100% {
		opacity: 0;
		pointer-events: none;
	}
}

@keyframes fadeTextIn {
	0% {
		opacity: 0;
		pointer-events: none;
	}

	100% {
		opacity: 1;
		pointer-events: all;
	}
}

body::before {
	content: "";
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 1000;
	background-repeat: all;
	background-position: 0px 0px;
	animation-iteration-count: infinite;
	animation-timing-function: steps(4);
	box-shadow: inset 0px 0px 10em rgba(0, 0, 0, 0.4);
	mix-blend-mode: color-burn;
	overflow: visible;
}

* {
	padding: 0;
	margin: 0;
}

body {
	font-family: "main";
}

html {
	overflow: visible;
}


	@-moz-keyframes MZfadeTextOut {
		0% {
			fill-opacity: 1;
			pointer-events: all;
		}

		100% {
			fill-opacity: 0;
			pointer-events: none;
		}
	}

	@-moz-keyframes MZfadeTextIn {
		0% {
			fill-opacity: 0;
			pointer-events: none;
		}

		100% {
			fill-opacity: 1;
			pointer-events: all;
		}
	}