html {
	background-color: var(--bg);
	color: var(--fg);
}
@media (prefers-color-scheme: dark) {
	html {
		--bg: rgb(17, 17, 27);
		--fg: rgb(224, 222, 244);
	}
}

#splash {
	position: fixed;
	z-index: 10000;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	cursor: wait;
	background-color: var(--bg);
	opacity: 1;
	transition: opacity 0.2s ease;
}

#splashIcon {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	width: 64px;
	height: 64px;
	pointer-events: none;
}

#splashSpinner {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	width: 28px;
	height: 28px;
	transform: translateY(110px);
	display: none;
	color: var(--accent);
}

#splashText {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	display: inline-block;
	width: 70%;
	height: 0;
	text-align: center;
	padding-top: 100px;
	font-family: sans-serif;
}

#splashSpinner > .spinner {
	position: absolute;
	top: 0;
	left: 0;
	width: 28px;
	height: 28px;
	fill-rule: evenodd;
	clip-rule: evenodd;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-miterlimit: 1.5;
}
#splashSpinner > .spinner.bg {
	opacity: 0.275;
}
#splashSpinner > .spinner.fg {
	animation: splashSpinner 0.5s linear infinite;
}

@keyframes splashSpinner {
	0% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(360deg);
	}
}

@media(prefers-reduced-motion) {
	#splashSpinner {
		display: block;
	}

	#splashIcon {
		animation: none;
	}
}

.loadButterfly {
  position: absolute;
  top: -68px;
  right: 32px;
  width: 64px;
  height: 64px;
}

.loadButterfly .loadButterflyWingLeft {
    position: absolute;
    left: 1px;
    --butterfly-wl-0: rgb(255, 185, 158);
    --butterfly-wl-1: rgb(118, 70, 255);
    animation-name: anim-lw;
    animation-duration: 3s;
    animation-timing-function: ease-out;
    animation-iteration-count: infinite;
}

@media (prefers-reduced-motion) {
	.loadButterfly .loadButterflyWingLeft {
		animation-play-state: paused;
	}
}


@keyframes anim-lw {
  0% {
    transform: rotate3d(1, 1, 0, 1deg);
  }

  10% {
    filter: brightness(1.05);
  }

  25% {
    transform: rotate3d(1, 1, 0, 45deg);
    filter: brightness(1.25);
  }

  40% {
    filter: brightness(1.05);
  }

  50% {
    transform: rotate3d(1, 1, 0, 1deg);
  }

  100% {
    transform: rotate3d(1, 1, 0, 1deg);
  }
}

.loadButterfly .loadButterflyWingRight {
	position: absolute;
	top: 1px;
    --butterfly-wr-0: rgb(255, 185, 158);
    --butterfly-wr-1: rgb(118, 70, 255);
	animation-name: anim-rw;
	animation-duration: 3s;
	animation-timing-function: ease-out;
	animation-iteration-count: infinite;
}

@media (prefers-reduced-motion) {
	.loadButterfly .loadButterflyWingRight {
		animation-play-state: paused;
	}
}

@keyframes anim-rw {
	0% {
		transform: rotate3d(1, 1, 0, -1deg);
	}

	10% {
		filter: brightness(0.95);
	}

	25% {
		transform: rotate3d(1, 1, 0, -45deg);
		filter: brightness(0.8);
	}

	40% {
		filter: brightness(0.95);
	}

	50% {
		transform: rotate3d(1, 1, 0, -1deg);
	}

	100% {
		transform: rotate3d(1, 1, 0, -1deg);
	}
}
