html { overflow: hidden; }
body {
	margin: 0;
	padding: 0;
	width: 100vw;
	height: 100vh;
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	align-content: flex-end;
	background: 
		linear-gradient(238deg, #000, #fff0, #fff0), 
		linear-gradient(180deg, #000, #fff0, #fff0),
		radial-gradient(circle at 50% 100%, var(--sky1), var(--sky2), var(--sky3) );
}
body:after {
	content: "";
	position: fixed;
	width: 100%;
	height: 10vmin;
	z-index: -1;
	bottom: 0;
	background: 
		radial-gradient(circle at calc(50% - 33vmin) calc(100% + 31vmin), var(--house) 40vmin, #fff0 calc(40vmin + 1px) ), 
		radial-gradient(circle at calc(50% + 33vmin) calc(100% + 30vmin), var(--house) 40vmin, #fff0 calc(40vmin + 1px) ), 
		radial-gradient(circle at 50% calc(100% + 43vmin), var(--house) 50vmin, #fff0 calc(50vmin + 1px) );
	background-repeat: no-repeat;
}
.content {
	width: 90vmin;
	height: 90vmin;
	background-size: cover;
	position: relative;
	perspective: 100vmin;
	perspective-origin: top;
	bottom: 5vmin;
}
.content * {
	position: absolute;
	transform-style: preserve-3d;
}
.level-0 {
	width: 30vmin;
	height: 25vmin;
	background: var(--house);
	bottom: 0;
	left: 22vmin;
	transform: rotateX(82deg) skewX(5deg);
	z-index: 1;
}
.level-1 {
	width: 16vmin;
	height: 34vmin;
	background: var(--house);
	bottom: 3.75vmin;
	left: 53vmin;
	transform: perspective(100vmin) rotateX(82deg) skewX(-10deg);
}
.level-2 {
	width: 19vmin;
	height: 35vmin;
	background: var(--house);
	bottom: 31.5vmin;
	left: 29vmin;
	transform: perspective(150vmin) rotateX(45deg) skewX(2deg) rotate(2deg);
	clip-path: polygon(0% 85%, 0% 0%, 100% 0%, 100% 94%, 48% 57%);
	z-index: 1;
	box-shadow: 0.25vmin -0.5vmin 0.5vmin 0 #fff3 inset, 0.5vmin -0.5vmin 1.5vmin 0 #fff2 inset;
}
.roof-0 {
	width: 37vmin;
	height: 23vmin;
	bottom: 23.25vmin;
	left: 18.75vmin;
	border: 19vmin solid #0000;
	box-sizing: border-box;
	border-bottom: 22vmin solid var(--house);
	transform: skew(-8deg, -1deg) rotate(1.25deg);
	border-radius: 0.5vmin;
}
.roof-1, .chimney:before {
	background: 
		radial-gradient(circle at -9vmin 1vmin, #fff0 18vmin, #fff3 calc(18vmin + 1px) 18vmin, #fff0 19vmin 100%), 
		radial-gradient(circle at -9vmin 1vmin, #fff0 18vmin, var(--house) calc(18vmin + 1px) ), 
		radial-gradient(circle at 24.5vmin -5vmin, #fff0 25vmin, var(--house) calc(25vmin + 1px) ), #0000;
	width: 21vmin;
	height: 17vmin;
	bottom: 31.75vmin;
	left: 52vmin;
	transform: skew(-8deg, -1deg) rotate(2deg);
	border-radius: 0.5vmin;
	background-size: calc(50% - 1vmin) 100%, calc(50% - 1vmin) 100%, calc(50% + 1vmin) 100%;
	background-repeat: no-repeat;
	background-position: 0 0, 0 0, 99% 0;
}
.roof-2 {
	background: 
		radial-gradient(circle at 34vmin -9vmin, #fff0 35vmin, var(--house) calc(35vmin + 1px) ), 
		radial-gradient(circle at -18vmin 4vmin, #fff0 28vmin, #fff4 calc(28vmin + 1px), #fff0 28.75vmin ), 
		radial-gradient(circle at -18vmin 4vmin, #fff0 28vmin, var(--house) calc(28vmin + 1px) ), #0f00;
	width: 34vmin;
	height: 25vmin;
	bottom: 63.9vmin;
	left: 26vmin;
	transform: skew(-8deg, -1deg) rotate(1deg);
	border-radius: 0.5vmin;
	background-size: calc(50% + 6.5vmin) 100%, calc(50% + 7vmin) 100%, calc(50% - 6.5vmin) 100%, calc(50% - 7vmin) 100%;
	background-repeat: no-repeat;
	background-position: 99% 0, 0 0, 0 0;
}
.door {
	background: 
		linear-gradient(183deg, #fff0 7.5vmin, var(--house) calc(7.5vmin + 1px) 8vmin, #fff0 calc(8vmin + 1px) 0), 
		linear-gradient(94deg, var(--house) 0.75vmin, #fff0 calc(0.75vmin + 1px)), 
		linear-gradient(-94deg, var(--house) 0.75vmin, #fff0 calc(0.75vmin + 1px)), 
		linear-gradient(-5deg, var(--house) 0.5vmin, #fff0 calc(0.5vmin + 1px)), 
		linear-gradient(86deg, #fff0 3.5vmin, var(--house) calc(3.5vmin + 1px) 4vmin, #fff0 calc(4vmin + 1px)), 
		linear-gradient(95deg, #fff0 7vmin, var(--house) calc(7vmin + 1px) 7.5vmin, #fff0 calc(7.5vmin + 1px)), 
		linear-gradient(92deg, #fff0 10vmin, var(--house) calc(10vmin + 1px) 10.5vmin, #fff0 calc(10.5vmin + 1px)), 
		radial-gradient(circle at 50% 87%, #fff0 5.65vmin, var(--house) calc(5.65vmin + 1px)), 
		radial-gradient(circle at 46% 87%, #fff0 5.65vmin, var(--house) calc(5.65vmin + 1px)), 
		linear-gradient(38deg, #fff0 4.25vmin, var(--house) calc(4.25vmin + 1px) 4.75vmin, #fff0 calc(4.75vmin + 1px)), 
		linear-gradient(87deg, #fff0 1vmin, var(--house) calc(1vmin + 1px)), 
		linear-gradient(123deg, #fff0 5vmin, var(--house) calc(5vmin + 1px) 5.5vmin, #fff0 calc(5.5vmin + 1px)), 
		linear-gradient(150deg, #fff0 7vmin, var(--house) calc(7vmin + 1px) 7.5vmin, #fff0 calc(7.5vmin + 1px)),
		linear-gradient(180deg, var(--window), var(--window)), #fff;
	width: 13vmin;
	height: 20vmin;
	bottom: 1.5vmin;
	left: 8vmin;
	transform: skew(2deg, -2deg);
	border-radius: 100% 100% 0.5vmin 0.5vmin;
	background-repeat: no-repeat;
	background-size: 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 65%, 100% 64%, 100% 63%, 105% 38%, 105% 38%, 60% 39%, 11% 39%, 58% 39%, 56% 39%;
	background-position: 0 0, 0 0, 0 0, 0 0, 0 100%, 0 100%, 0 100%, 0 0, 0 0, 0 0, 50% 0, 100% 0, 100% 0;
	perspective: 10000vmin;
	perspective-origin: top;
}
.window {
	width: 9vmin;
	height: 18vmin;
	width: 8vmin;
	height: 17vmin;
	background: 
		linear-gradient(178deg, #fff0 0 12vmin, var(--house) calc(12vmin + 1px) 12.4vmin, #fff0 calc(12.4vmin + 1px)), 
		linear-gradient(183deg, #fff0 0 7vmin, var(--house) calc(7vmin + 1px) 7.45vmin, #fff0 calc(7.45vmin + 1px)), 
		linear-gradient(91deg, #fff0 0 3.65vmin, var(--house) calc(3.65vmin + 1px) 4.1vmin, #fff0 calc(4.1vmin + 1px)), 
		linear-gradient(180deg, var(--window), var(--window)), #fff;
	left: 3.5vmin;
	top: 8vmin;
	border-radius: 4vmin 5vmin 0.1vmin 0.1vmin;
	transform: rotateX(-0deg);
	overflow: hidden;
}
.level-1 .window {
	--window: #ff9900cf;
}
.level-1 .window:before {
	content: "";
	position: absolute;
	width: 100%;
	height: 100%;
	top: -1vmin;
	max-height: 0;
	background: repeating-linear-gradient(180deg, var(--house) 0 0.5vmin, #fff0 0 0.85vmin);
	transition: max-height 2s var(--bounce) 0s;
	border-bottom: 0.75vmin solid var(--house);
}
.level-1 .window:hover:before {
	max-height: 100%;
	top: -0.75vmin;
	transition: max-height 2s var(--bounce) 0s;
}
.level-2 .window {
	--window: #ff8100cf;
}
.level-2 .window {
	transform: scale(0.75) rotateY(180deg) skewY(-2deg);
	top: 1vmin;
	left: 4.5vmin;
	border-radius: 4vmin 5vmin 0.1vmin 0.1vmin;
	overflow: hidden;
	border-top: 1px solid var(--house);
}
.roof-0 .window {
	--window: #e8ff00cf;
	--window: #084461e0;
	--light: #111;
	border-radius: 100%;
	height: 7vmin;
	width: 7vmin;
	background: linear-gradient(183deg, #fff0 0 3.25vmin, var(--house) calc(3.25vmin + 1px) 3.65vmin, #fff0 calc(3.65vmin + 1px)), linear-gradient(91deg, #fff0 0 3.25vmin, var(--house) calc(3.25vmin + 1px) 3.65vmin, #fff0 calc(3.65vmin + 1px)), linear-gradient(180deg, var(--light), var(--window));
	left: -3vmin;
}
@keyframes light-on {
	0%, 20%, 35% { --window: #084461e0; --light: #111; }
	10%, 30%, 40%, 100% { --window: #ffd5a0cc; --light: #fff5ce; }
	100% { --window: #ffd5a0; --light: #fff5ce; }
}
.chimney {
	left: 21vmin;
	top: 8vmin;
	width: 7vmin;
	height: 12vmin;
}
.chimney:before {
	content: "";
	position: absolute;
	transform: scale(0.25) rotate(2deg);
	left: -7vmin;
	top: -6vmin;
}
.chimney:after {
	content: "";
	position: absolute;
	border: 1.5vmin solid #fff0;
	border-right: 2vmin solid var(--house);
	border-bottom: 3vmin solid var(--house);
	border-top: 0;
	width: 6vmin;
	height: 6vmin;
	left: -4.75vmin;
	bottom: -1.85vmin;
	border-radius: 5vmin 0vmin 6vmin;
}
.fence {
	background: radial-gradient(circle at 55% 32vmin, var(--house) 16vmin, #fff0 calc(16vmin + 1px));
	width: 22vmin;
	height: 22vmin;
	bottom: 0;
	z-index: -1;
}
.fence:before {
	content: "";
	position: absolute;
	width: 2vmin;
	height: 18vmin;
	background: var(--house);
	left: 5vmin;
	top: 5vmin;
	transform: skewY(30deg) rotate(-1deg);
	box-shadow: 8vmin -5vmin 0 -0.25vmin var(--house);
}
.fence:after {
	content: "";
	position: absolute;
	width: 1.75vmin;
	height: 16vmin;
	background: var(--house);
	left: 10vmin;
	top: 4vmin;
	transform: skewY(-20deg) rotate(1deg);
	box-shadow: 5vmin 3vmin 0 0.1vmin var(--house);
}
.fence + .fence {
	right: 0;
}
.fence + .fence:before {
	left: 4vmin;
	top: 6vmin;
	height: 12vmin;
	transform: skewY(30deg) rotate(-7deg);
	box-shadow: 5vmin -2vmin 0 -0.25vmin var(--house);
}
.fence + .fence:after {
	left: 6.5vmin;
	top: 7vmin;
	height: 10vmin;
	transform: skewY(-23deg) rotate(-1deg);
	width: 1.5vmin;
	box-shadow: 5vmin 2vmin 0 -0.25vmin var(--house), 4.75vmin 3vmin 0 -0.25vmin var(--house);
}
.fence span {
	background: var(--house);
	width: 15vmin;
	height: 1.85vmin;
	top: 7vmin;
	left: 3vmin;
	transform: skewX(15deg) rotate(-10deg);
}
.fence span + span {
	width: 15vmin;
	top: 12.25vmin;
	left: 2.5vmin;
	transform: rotate(-8deg) skewX(-18deg);
}
.fence + .fence span {
	width: 11vmin;
	top: 8vmin;
	transform: rotate(3deg) skewX(-4deg);
	height: 2vmin;
	left: 2.5vmin;
}
.fence + .fence span + span {
	top: 12vmin;
	transform: rotate(-4deg) skewX(17deg);
	left: 3.2vmin;
	width: 10.2vmin;
}
.balcony {
	width: 12vmin;
	height: 9vmin;
	background: 
		linear-gradient(-101deg, #fff0 0 1.5vmin, var(--house) calc(1.5vmin + 1px) 2.25vmin, #fff0 calc(2.25vmin + 1px)),
		linear-gradient(-98deg, #fff0 0 5.5vmin, var(--house) calc(5.5vmin + 1px) 6.25vmin, #fff0 calc(6.25vmin + 1px)), 
		linear-gradient(88deg, #fff0 0 4vmin, var(--house) calc(4vmin + 1px) 4.75vmin, #fff0 calc(4.75vmin + 1px)), 
		linear-gradient(85deg, #fff0 0 9vmin, var(--house) calc(9vmin + 1px) 9.75vmin, #fff0 calc(9.75vmin + 1px)), 
		linear-gradient(177deg, #fff0 1vmin, var(--house) calc(1vmin + 1px) 2vmin, #fff0 calc(2vmin + 1px)), 
		linear-gradient(183deg, #fff0 1vmin, var(--house) calc(1vmin + 1px) 2vmin, #fff0 calc(2vmin + 1px));
	z-index: 3;
	left: 43vmin;
	top: 34vmin;
	border-bottom: 2vmin solid var(--house);
	border-right: 0.75vmin solid var(--house);
	border-radius: 0.25vmin;
	transform: skewX(-18deg) rotate(5deg);
	transition: transform 1s var(--bounce) 0s;
	transform-origin: 0 100%;
}
.balcony:before {
	content: "";
	position: absolute;
	width: 100%;
	height: 80%;
	top: -78%;
}
.balcony:hover {
	transform: skewX(-18deg) rotate(25deg);
	transition-duration: 0.5s;
}
.sky {
	background: linear-gradient(0deg, #673ab78a, #3c3c3c94);
	height: 100vh;
	z-index: -1;
	position: absolute;
	left: 0;
}
.sky:after {
	content: "";
	position: absolute;
	width: 100vw;
	height: 100vh;
	top: 0vh;
	background-image: radial-gradient(2px 2px at 20px 30px, #484341, transparent),
		radial-gradient(2px 2px at 43px 75px, #735454, transparent),
		radial-gradient(2px 1px at 54px 184px, #828282, transparent),
		radial-gradient(2px 2px at 93px 47px, #654b49, transparent),
		radial-gradient(1px 1px at 148px 87px, #3a1919, transparent),
		radial-gradient(2px 2px at 193px 137px, #a26662, transparent),
		radial-gradient(1px 2px at 210px 154px, #805241, transparent),
		radial-gradient(2px 2px at 243px 102px, #866356, transparent),
		radial-gradient(2px 1px at 264px 184px, #794937, transparent),
		radial-gradient(2px 2px at 293px 44px, #735454, transparent),
		radial-gradient(1px 1px at 223px 62px, #ad968e, transparent),
		radial-gradient(2px 2px at 249px 162px, #884228, transparent),
		radial-gradient(2px 2px at 73px 99px, #442e26, transparent),
		radial-gradient(1px 1px at 163px 42px, #403433, transparent),
		linear-gradient(180deg, #fff0 10%, var(--house) 25%, #111 50%, #222 75%, #111 100%);
	background-repeat: no-repeat, repeat;
	background-size: 333px 263px, 333px 163px, 333px 163px, 333px 163px,
		333px 163px, 333px 163px, 333px 163px, 333px 163px, 333px 163px, 333px 163px,
		333px 163px, 333px 163px, 333px 163px, 333px 163px, 100% 100%;
	opacity: 0.5;
	mix-blend-mode: color-burn;
}
.moon {
	position: absolute;
	z-index: 2;
	width: 20vmin;
	height: 20vmin;
	left: 20vmin;
	top: 15vmin;
	opacity: 1;
	border-radius: 100%;
	animation: start-moon 3s ease 0s 1;
	background: radial-gradient(circle at 50% 50%,#fdfdfd 0% 7vmin, var(--moon1) 7.25vmin 100%),#fff;
	box-shadow: 0 0 8em 4em #6493a9, 0 0 8em -16em #ff660000 inset,0 0 20px 5px #fdfdfd;
}
.moon:before {
	content: "";
	background: radial-gradient(circle at 100% 60%,	#ffffff00 0% 60%, #dddddd 75% 100%);
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0%;
	left: 0%;
	border-radius: 100%;
}
.moon:after {
	content: "";
	background: radial-gradient(circle at 0% 40%,var(--mooncrater) 75% 100%);
	width: 4.5vmin;
	height: 4.5vmin;
	position: absolute;
	top: 20%;
	left: 20%;
	border-radius: 100%;
	filter: blur(2px);
}
.level-2 .window:before {
	content: "";
	position: absolute;
	width: 1.5vmin;
	height: 20vmin;
	background: hsla(0, 100%, 50%, 0.75);
	border-radius: 0 0 1vmin 1vmin;
	top: -22vmin;
	left: 50%;
	z-index: 1;
	transition: all 4s ease-out 0s;
	box-shadow: 
		-1.5vmin -3vmin 0 -0.1vmin hsla(0, 100%, 50%, 0.625), 
		-2.875vmin -2vmin 0 -0.1vmin hsla(0, 100%, 50%, 0.65), 
		-3.875vmin -5.5vmin 0 -0.4vmin hsla(0, 100%, 50%, 0.75), 
		-4.875vmin -4vmin 0 -0.1vmin hsla(0, 100%, 50%, 0.725), 
		1.35vmin -1.5vmin 0 -0.1vmin hsla(0, 100%, 50%, 0.625), 
		2.5vmin -2.5vmin 0 -0.3vmin hsla(0, 100%, 50%, 0.725), 
		3.35vmin -5.5vmin 0 -0.4vmin hsla(0, 100%, 50%, 0.65);
}
.level-2 .window:hover:before {
	top: 0vmin;
	box-shadow: 
		-1.5vmin -1vmin 0 -0.1vmin hsla(0, 100%, 50%, 0.625), 
		-2.875vmin -3vmin 0 -0.1vmin hsla(0, 100%, 50%, 0.65), 
		-3.875vmin -2.5vmin 0 -0.4vmin hsla(0, 100%, 50%, 0.75), 
		-4.875vmin -4vmin 0 -0.1vmin hsla(0, 100%, 50%, 0.725), 
		1.35vmin -2.5vmin 0 -0.1vmin hsla(0, 100%, 50%, 0.625), 
		2.5vmin -1.5vmin 0 -0.3vmin hsla(0, 100%, 50%, 0.725), 
		3.35vmin -3.5vmin 0 -0.4vmin hsla(0, 100%, 50%, 0.65);
}
@keyframes bat-fly {
	25% { transform: translateX(-1.5vmin) translateY(-5vmin) scale(0.6); }
	33% { margin-bottom: 5vmin; }
	50% { margin-bottom: 5vmin; transform: translateX(0.5vmin) scale(0.7);}
	66% { margin-bottom: 5vmin; }
	75% { transform: translateX(1vmin) scale(0.6); }
}
.bat {
	width: 15vmin;
	height: 12vmin;
	bottom: 30vmin;
	margin-bottom: 0;
	left: 13.25vmin;
}
.bat:hover  {
	transition: all 1s linear 0s;
}
.bat .head {
	background: radial-gradient(circle at 50% 100%, #fff0 calc(2vmin - 1px), #5558 calc(2vmin + 0px), var(--bat) calc(2vmin + 2px));
	width: 6vmin;
	height: 9.5vmin;
	left: 4vmin;
	top: 0.75vmin;
	border-radius: 50% 50% 50% 50% / 25% 25% 75% 75%;
	transform: rotate(-173deg);
}
.bat .head:before, 
.bat .head:after {
	background: var(--bat);
	content: "";
	position: absolute;
	width: 0.5vmin;
	height: 2.65vmin;
	bottom: 5vmin;
	left: 5.65vmin;
	border-radius: 100% 100% 100% 0%;
	transform: rotate(-5deg);
}
.bat .head:after {
	left: -0.15vmin;
	border-radius: 100% 100% 0% 100%;
	transform: rotate(1deg);
}
.bat .eyes {
	width: 100%;
	height: 2.5vmin;
	bottom: 2.75vmin;
	transform: rotate(-5deg);
}
.bat .eyes:before, 
.bat .eyes:after {
	content: "";
	position: absolute;
	width: 1.35vmin;
	height: 1.75vmin;
	background: 
		radial-gradient(ellipse at 38% 48%, #fff0 0.3vmin, var(--window) calc(0.3vmin + 1px)), 
		radial-gradient(circle at 43% 60%, #fff 10%, #fff0 calc(10% + 1px) 100%);
	border-radius: 100%;
	left: 3.25vmin;
	top: 0.1vmin;
	animation: eye-blink 7s ease -3.5s infinite;
}
.bat .eyes:after {
	width: 1.65vmin;
	height: 2.25vmin;
	left: 1.25vmin;
	transform: rotateY(180deg);
}
.bat .mouth {
	background: 
		radial-gradient(ellipse at 42% 26%,pink 0.25vmin, #fff0 calc(0.25vmin + 1px)), 
		radial-gradient(ellipse at 36% 4%, #c61727 1vmin, #fff0 calc(1vmin + 1px)), 
		radial-gradient(ellipse at 41% 0%, #c61727 1vmin, #fff0 calc(1vmin + 1px)), 
		radial-gradient(ellipse at 75% 16%, #c61727 1vmin, #fff0 calc(1vmin + 1px)), 
		radial-gradient(circle at 50% 6.5vmin, #fff0 4vmin, #400000 calc(4vmin + 1px));
	width: 4.5vmin;
	height: 3vmin;
	left: 0.65vmin;
	top: 0.75vmin;
	border-radius: 10vmin 10vmin 0 0;
}
.bat .mouth:before, 
.bat .mouth:after {
	content: "";
	position: absolute;
	width: 1vmin;
	height: 2.4vmin;
	background: conic-gradient(from 160deg, #fff0, #fff 5deg 35deg, #fff0 40deg 100%);
	top: 0.1vmin;
	left: 0.75vmin;
	transform: rotate(-10deg);
}
.bat .mouth:after {
	top: 0.2vmin;
	left: 3.1vmin;
	transform: rotate(13deg);
}
.bat .legs {
	width: 7vmin;
	height: 3vmin;
	bottom: 0.1vmin;
	left: 2.65vmin;
}
.bat .leg {
	background: var(--bat);
	width: 0.65vmin;
	height: 2.25vmin;
	transform: rotate(50deg);
	left: 0.75vmin;
	top: -0.25vmin;
	border-radius: 0 0 2vmin 2vmin;
	box-shadow: 0.15vmin -0.5vmin 0 0 var(--bat), -0.15vmin -0.5vmin 0 0 var(--bat);
}
.bat .leg:before, 
.bat .leg:after {
	content: "";
	position: absolute;
	background: var(--bat);
	width: 0.5vmin;
	height: 1.25vmin;
	transform: rotate(-55deg);
	left: 0.45vmin;
	top: 0.65vmin;
	border-radius: 0 0 2vmin 2vmin;
}
.bat .leg:after {
	transform: rotate(55deg);
	left: -0.35vmin;
	top: 0.5vmin;
}
.bat .leg + .leg {
	left: 5.5vmin;
	top: 0.75vmin;
	transform: rotate(-25deg);
}
.bat .wings {
	width: 100%;
	height: 65%;
	z-index: -1;
}
.bat .wings:before, 
.bat .wings:after {
	content: "";
	position: absolute;
	width: 30%;
	height: 70%;
	background: 
		radial-gradient(circle at -2.2vmin 2.2vmin, #fff0 3vmin, var(--bat) calc(3vmin + 1px)),
		radial-gradient(circle at -1.25vmin 2.35vmin, #fff0 3vmin, var(--bat) calc(3vmin + 1px));
	bottom: 2.5vmin;
	left: 1vmin;
	transform-origin: 100% 100%;
	transform: rotate(-150deg);/*-15*/
	border-radius: 0 3.55vmin 0 0;
	background-repeat: no-repeat;
	background-size: 100% 3.2vmin, 100% 2.5vmin;
	background-position: 0 0, 0 3vmin;
}
@keyframes bat-fly-r {
	0%, 100% { transform: rotate(-15deg); }	
	50% { transform: rotate(-50deg); }	
}
@keyframes bat-fly-l {
	0%, 100% { transform: rotate(33deg) rotateY(180deg); }	
	50% { transform: rotate(63deg) rotateY(180deg); }	
}
.bat .wings:after {
	bottom: 2.65vmin;
	left: 3.75vmin;
	top: 0.25vmin;
	transform-origin: 100% 100%;
	transform: rotate(170deg) rotateY(180deg);
	animation-delay: -0.05s;
}
.flying-bat:hover + .fence .bat .wings:before {
	animation: bat-fly-r 0.125s ease 0s infinite;
}
.flying-bat:hover + .fence .bat .wings:after {
	animation: bat-fly-l 0.125s ease 0s infinite;
}
.tomb {
	background: var(--house);
	width: 5vmin;
	height: 6vmin;
	border-radius: 5vmin 5vmin 0 0;
	bottom: 3vmin;
	right: -7vmin;
	right: 0;
	transform: rotateX(12deg) skew(-11deg, 20deg);
	text-align: center;
	color: #3a1752;
	padding-top: 2vmin;
	font-family: serif;
	font-weight: bold;
	transition: all 2s ease 0s;
	z-index: 1;
	cursor: default;
	font-size: 1.75vmin;
}
.tomb:after {
	content: "";
	position: absolute;
	height: 100%;
	width: 5vmin;
	border-right: 1vmin solid var(--house);
	border-top: 0.05vmin solid #fff0;
	border-radius: 0 3vmin 0 0;
	right: -1.2vmin;
	bottom: 0.1vmin;
}
.tomb:hover {
	transform: rotateX(12deg) skew(-11deg, 20deg) rotateX(-13deg);
	transform: rotateX(12deg) skew(-19deg, 25deg) rotateX(-13deg);
	transform-origin: 50% 100%;
}
@keyframes move-witch {
	0% { left: 1.5vmin; }
	25% { bottom: -4vmin}
	50% { left: -5vmin; }
	75% { bottom: 2vmin; }
	100% { left: 1.5vmin; }
}
.witch {
	width: 15vmin;
	height: 18vmin;
	left: -9.5vmin;
	bottom: -0.15vmin;
	opacity: 0.5;
	background: var(--house);
	animation: move-witch 4s ease 0s infinite alternate;
	box-sizing: border-box;
	clip-path: polygon(3% 55%, 5% 55%, 11% 55%, 22% 56%, 24% 57%, 24% 55%, 28% 56%, 34% 53%, 36% 51%, 38% 48%, 41% 42%, 42% 41%, 42% 38%, 43% 36%, 42% 36%, 40% 38%, 40% 38%, 40% 36%, 39% 33%, 38% 33%, 36% 33%, 35% 34%, 35% 33%, 35% 32%, 36% 30%, 37% 29%, 38% 27%, 38% 26%, 34% 23%, 32% 21%, 28% 17%, 27% 14%, 27% 12%, 40% 20%, 45% 17%, 50% 14%, 56% 10%, 59% 8%, 62% 8%, 66% 8%, 64% 9%, 62% 10%, 60% 13%, 58% 15%, 54% 18%, 53% 18%, 52% 24%, 56% 25%, 60% 27%, 64% 27%, 62% 28%, 58% 29%, 56% 30%, 59% 32%, 57% 31%, 56% 33%, 56% 32%, 55% 33%, 57% 33%, 56% 33%, 60% 36%, 56% 36%, 62% 37%, 56% 38%, 56% 40%, 58% 42%, 61% 45%, 64% 48%, 67% 52%, 69% 54%, 70% 56%, 69% 58%, 68% 59%, 70% 60%, 75% 60%, 76% 57%, 77% 56%, 78% 55%, 80% 56%, 80% 56%, 82% 57%, 83% 56%, 87% 56%, 90% 56%, 93% 56%, 96% 55%, 95% 56%, 97% 57%, 98% 60%, 97% 64%, 97% 67%, 96% 70%, 93% 69%, 88% 68%, 85% 67%, 82% 66%, 81% 66%, 80% 67%, 78% 66%, 77% 66%, 76% 66%, 75% 65%, 75% 63%, 74% 62%, 71% 61%, 67% 60%, 66% 61%, 64% 61%, 63% 62%, 64% 65%, 66% 67%, 68% 70%, 70% 72%, 73% 73%, 75% 75%, 78% 77%, 81% 78%, 78% 79%, 76% 80%, 75% 82%, 72% 81%, 71% 82%, 70% 82%, 70% 82%, 69% 81%, 67% 81%, 66% 79%, 65% 79%, 64% 78%, 62% 78%, 58% 78%, 54% 78%, 52% 77%, 51% 77%, 51% 77%, 51% 78%, 51% 79%, 54% 82%, 55% 84%, 56% 86%, 55% 86%, 53% 87%, 52% 89%, 50% 90%, 47% 92%, 47% 92%, 46% 91%, 47% 91%, 48% 90%, 50% 89%, 51% 87%, 51% 84%, 52% 84%, 47% 78%, 44% 75%, 41% 73%, 40% 79%, 41% 83%, 42% 85%, 41% 85%, 40% 84%, 39% 85%, 38% 86%, 36% 88%, 33% 89%, 32% 89%, 34% 87%, 36% 86%, 36% 84%, 36% 83%, 37% 82%, 38% 80%, 38% 74%, 37% 70%, 37% 68%, 36% 67%, 34% 66%, 35% 64%, 36% 62%, 36% 59%, 32% 59%, 29% 58%, 26% 59%, 24% 58%, 22% 57%, 12% 56%, 5% 56%, 3% 55%);
}
.nosferatu {
	width: 10vmin;
	height: 12.5vmin;
	left: -4vmin;
	bottom: -0.15vmin;
	opacity: 0.5;
	background: var(--house);
	box-sizing: border-box;
	clip-path: polygon(75% 100%, 69% 95%, 66% 90%, 62% 87%, 60% 82%, 58% 79%, 57% 75%, 57% 73%, 58% 68%, 59% 67%, 59% 65%, 59% 64%, 59% 62%, 60% 60%, 60% 59%, 61% 58%, 61% 58%, 61% 57%, 62% 55.75%, 67% 54.25%, 70% 53.5%, 73% 52%, 75% 50.75%, 77.5% 50%, 78% 50%, 79.5% 49%, 79.5% 48.75%, 82.5% 47.75%, 83% 47.9%, 84% 48%, 86.25% 49%, 88% 49.5%, 90% 51%, 89% 49%, 88% 48%, 86% 47%, 84% 46%, 83% 46%, 83.5% 45.5%, 85% 45.5%, 88% 46%, 89% 46.5%, 90% 47%, 91% 48%, 91% 49%, 91.5% 47%, 91.5% 47%, 91% 46%, 89% 44.75%, 86% 44%, 83.5% 43.75%, 83% 43.25%, 84.15% 42.75%, 86% 42.75%, 89% 43.65%, 90% 43.75%, 91% 43.75%, 92% 44.25%, 92.5% 45%, 92.5% 46.5%, 93.5% 44%, 92.75% 43%, 90% 41.75%, 88% 40.5%, 85% 39.5%, 84% 39.5%, 82% 39.75%, 81% 40%, 80% 40%, 79% 40.5%, 78% 41%, 77% 41.25%, 76% 41.35%, 74.5% 42.25%, 72% 43%, 69.5% 44%, 70% 43%, 70.5% 42%, 71% 41%, 71.75% 40%, 72% 39%, 71.75% 38%, 71.5% 37%, 72% 36%, 72.2% 35%, 72.5% 33%, 73.25% 32%, 74% 31%, 74% 31%, 75% 30%, 76.5% 28.5%, 78% 30%, 78.5% 30.5%, 79.2% 29%, 79.5% 28%, 79.6% 26%, 79.25% 25%, 79.1% 24%, 80% 23%, 80.2% 22%, 80% 21%, 81% 21%, 81.35% 20.35%, 80.95% 19.75%, 80.5% 19.25%, 80.4% 19%, 80.5% 18.7%, 80.65% 16%, 80.5% 15%, 79.75% 13%, 78.75% 11%, 78% 10%, 76.75% 9%, 74% 7%, 73% 6.25%, 71% 5.35%, 69% 5%, 68% 5%, 67% 5.5%, 66% 6%, 65% 7%, 64.75% 7.5%, 64.5% 7.75%, 64% 7.5%, 63.25% 7.2%, 62% 7%, 61.25% 7.5%, 60.5% 8%, 59.5% 9%, 58.5% 9.5%, 57.5% 9.2%, 56% 9.35%, 55% 9.5%, 52% 9%, 50% 8.9%, 47% 9%, 44% 9.2%, 42.5% 9.65%, 41% 9.25%, 40.5% 9.25%, 39.5% 9.25%, 38.5% 10%, 36.5% 12%, 35.25% 13%, 34% 15%, 33.75% 17%, 33.25% 18%, 32.5% 20%, 30.5% 22%, 29.5% 23%, 27.25% 25%, 27% 25.25%, 25.75% 26%, 24.7% 27%, 23.8% 28%, 23% 28.6%, 22.25% 29.2%, 20.7% 30.8%, 20.1% 31.5%, 20% 32%, 19% 33%, 18% 35%, 17.25% 36%, 17% 37%, 17% 41%, 18% 46%, 18% 49%, 18% 50%, 18% 51%, 19% 57%, 19% 53%, 19% 55%, 18.7% 57%, 18.6% 59%, 19% 61%, 19% 62%, 19.5% 65%, 19.7% 68%, 19.6% 70%, 19.5% 71%, 18% 73%, 17% 74%, 15% 75%, 14% 76%, 12% 77%, 11% 78%, 10% 79%, 9% 80%, 8% 81%, 7% 83%, 7% 84.5%, 8.3% 83%, 9.3% 82%, 10.75% 81%, 12.2% 80%, 14% 79%, 15% 78%, 17% 77.2%, 18% 77.25%, 17.5% 78%, 16.5% 79%, 15.25% 80%, 14.5% 81%, 13.5% 82%, 13% 83%, 12.25% 84%, 11.7% 85%, 11% 86%, 11% 86%, 9.27% 88%, 9% 89%, 9% 90%, 10% 89%, 11.55% 88%, 12.5% 87%, 13.5% 86%, 15.3% 84%, 16% 83%, 18% 81%, 20% 80%, 19.75% 81%, 19.5% 81.25%, 19% 82%, 18% 84%, 16.7% 86%, 15.7% 87%, 15% 88%, 15% 89%, 16% 88%, 18% 87%, 19% 86%, 20% 84%, 21% 83.25%, 22% 82%, 22% 82%, 23% 81%, 26% 76%, 29% 69%, 30% 61%, 29% 57%, 29% 56%, 29% 54%, 28.75% 51%, 29% 48%, 28.8% 46%, 29% 44%, 29.6% 43.5%, 30% 41.5%, 29% 43%, 31% 41%, 32% 40%, 32.8% 39.25%, 34.5% 38.75%, 33.25% 45%, 33% 49%, 32% 53%, 31.8% 55%, 30.2% 59%, 29% 68%, 27% 74%, 25% 80%, 22.65% 85%, 19.85% 91%, 19.5% 93%, 18.25% 96%, 16.75% 100%);    
	animation: move-nosferatu 10s linear(0 0%, 0 1.8%, 0.01 3.6%, 0.03 6.35%, 0.07 9.1%, 0.13 11.4%, 0.19 13.4%, 0.27 15%, 0.34 16.1%, 0.54 18.35%, 0.66 20.6%, 0.72 22.4%, 0.77 24.6%, 0.81 27.3%, 0.85 30.4%, 0.88 35.1%, 0.92 40.6%, 0.94 47.2%, 0.96 55%, 0.98 64%, 0.99 74.4%, 1 86.4%, 1 100%) 0s infinite;
}
@keyframes move-nosferatu {
	0% { left: -4vmin; }
	45% { left: 1.75vmin; }
	50% { bottom: 0; }
	100% { left: -4vmin; }
}
.frankenstein {
	width: 20vmin;
	height: 20vmin;
	left: -6.5vmin;
	bottom: -6.25vmin;
	opacity: 0.5;
	background: var(--house);
	box-sizing: border-box;
	clip-path: polygon(29% 87%, 31% 82%, 32% 82%, 38% 85%, 39% 83%, 41% 81%, 42% 79%, 46% 76%, 49% 68%, 49% 64%, 50% 59%, 51% 57%, 52% 55%, 52% 52%, 50% 51%, 49% 51%, 51% 48%, 52% 45%, 53% 42%, 54% 39%, 54% 38%, 53% 37%, 52% 38%, 51% 40%, 50% 40%, 48% 39%, 46% 37%, 45% 38%, 44% 38%, 43% 38%, 41% 42%, 40% 42%, 40% 40%, 41% 38%, 40% 39%, 38% 40%, 37% 42%, 36% 41%, 36% 41%, 36% 41%, 36% 41%, 35% 40%, 34% 40%, 34% 40%, 35% 38%, 38% 36%, 40% 35%, 43% 34%, 43% 33%, 45% 33%, 47% 32%, 47% 31%, 46% 30%, 43% 30%, 39% 30%, 37% 30%, 37% 32%, 36% 30%, 36% 28%, 36% 28%, 34% 27%, 31% 27%, 30% 27%, 28% 28%, 25% 27%, 24% 27%, 24% 26%, 23% 25%, 22% 25%, 22% 24%, 23% 23%, 23% 23%, 22% 22%, 22% 22%, 24% 22%, 26% 23%, 28% 23%, 29% 23%, 30% 23%, 31% 23%, 33% 24%, 35% 24%, 36% 23%, 37% 23%, 40% 23%, 45% 23%, 50% 23%, 53% 23%, 54% 21%, 55% 21%, 56% 21%, 58% 21%, 60% 21%, 60% 19%, 62% 19%, 62% 17%, 60% 17%, 59% 17%, 58% 16%, 58% 15%, 59% 14%, 58% 13%, 59% 13%, 59% 12%, 59% 11%, 58% 11%, 57% 11%, 57% 10%, 58% 9%, 58% 9%, 59% 8%, 59% 7%, 58% 7%, 58% 6%, 59% 5%, 59% 1%, 60% 0%, 61% 0%, 63% 0%, 64% 1%, 65% 1%, 66% 1%, 67% 2%, 68% 1%, 69% 3%, 70% 2%, 70% 2%, 71% 3%, 72% 3%, 73% 4%, 72% 5%, 72% 8%, 72% 10%, 70% 12%, 71% 14%, 69% 14%, 69% 15%, 69% 15%, 69% 15%, 70% 15%, 70% 16%, 69% 16%, 69% 15%, 68% 16%, 68% 16%, 69% 17%, 69% 17%, 69% 18%, 70% 19%, 72% 20%, 73% 21%, 74% 23%, 74% 24%, 74% 27%, 74% 31%, 74% 34%, 73% 38%, 73% 42%, 73% 45%, 73% 47%, 73% 49%, 73% 50%, 73% 51%, 73% 53%, 73% 54%, 74% 56%, 74% 56%, 72% 57%, 71% 57%, 71% 58%, 70% 61%, 70% 63%, 70% 64%, 71% 66%, 71% 68%, 71% 70%, 70% 71%, 71% 74%, 72% 77%, 73% 81%, 75% 86%, 76% 88%, 76% 89%, 77% 90%, 77% 91%, 77% 93%, 76% 93%, 76% 97%, 72% 98%, 66% 99%, 60% 100%, 59% 98%, 59% 96%, 59% 95%, 59% 94%, 60% 94%, 62% 93%, 64% 93%, 65% 92%, 65% 92%, 64% 91%, 64% 90%, 64% 89%, 64% 87%, 64% 85%, 64% 84%, 63% 82%, 62% 80%, 62% 78%, 61% 76%, 60% 73%, 60% 71%, 58% 73%, 55% 78%, 54% 80%, 52% 84%, 52% 86%, 51% 88%, 49% 89%, 48% 90%, 48% 91%, 46% 94%, 44% 96%, 44% 96%, 43% 96%, 42% 96%, 37% 93%, 31% 90%, 29% 88%);
	animation: move-frankenstein 8s ease 0s infinite alternate;
	transform-origin: 50% 100%;
}
@keyframes move-frankenstein {
	0% { left: -6.5vmin;  }
	20%, 60%, 80% { transform: rotate(5deg)}
	0%, 40%, 70% { transform: rotate(-5deg)}
	45% { left: -5.5vmin; }
	50% { bottom: -5vmin; }
	100% { left: -6.5vmin; }
}
.door:hover .logs {
	transform: rotateX(-50deg) rotateY(-1deg) scaleY(0.8);
}
.logs {
	width: 100%;
	height: 100%;
	bottom: 0;
	transform: rotateX(-40deg) rotateY(-136deg) scaleY(0.8);
	transform-origin: 0 100%;
	transition: transform 1s var(--bounce) 0s;
	filter: contrast(0.99);
	pointer-events: none;
	left: -0.5vmin;
}
.logs span {
	width: 2vmin;
	height: 70%;
	bottom: 0.5vmin;
	background: var(--house);
	left: 1vmin;
	transform: skewY(12deg);
	box-shadow: 8vmin -2.5vmin 0 0 var(--house);
}
.logs span + span {
	width: 1.6vmin;
	left: 3.1vmin;
	bottom: 0.75vmin;
	transform: skewY(-6deg);
	box-shadow: 4vmin 0.75vmin 0 0 var(--house);
}
.logs span + span + span {
	width: 1.75vmin;
	left: 5.1vmin;
	bottom: 1.25vmin;
	transform: skewY(20deg);
	box-shadow: 5.75vmin -1.5vmin 0 -0.25vmin var(--house), -5.75vmin 2.95vmin 0 -0.25vmin var(--house);
}
.logs:before, .logs:after {
	content: "";
	position: absolute;
	background: var(--house);
	width: 100%;
	height: 2vmin;
	bottom: 2vmin;
	transform: skew(-31deg, -3deg);
	left: -0.25vmin;
	box-shadow: -5vmin -8.5vmin 0 0 var(--house);
}
.logs:after {
	width: 12vmin;
	height: 2.5vmin;
	bottom: 6.25vmin;
	transform: skew(13deg, 13deg);
	left: 0.65vmin;
	box-shadow: none;
}
.bat + .chimney {
	left: 24.5vmin;
	top: -19.65vmin;
	transform: rotateY(180deg) rotateZ(29deg);
	transform-origin: -20% 120%;
	z-index: -1;
	width: 6vmin;
	transition: transform 0.25s var(--bounce) 0s;
}
.bat + .chimney:after {
	border-radius: 5vmin 0vmin 8vmin;
	filter: drop-shadow(-1px 0px 1px #fff3);
}
.flying-bat {
	position: absolute;
	width: 15vmin;
	height: 14vmin;
	bottom: 27vmin;
	left: 12vmin;
	z-index: 1;
}
.flying-bat:hover + .fence .bat {
	animation: bat-fly 4s linear 0s infinite; 
}
.flying-bat:hover + .fence .chimney {
	transform: rotateY(180deg) rotateZ(22deg); 
	transition: transform 1s var(--bounce) 0s;
}
.phantom {
	background: 
		radial-gradient(circle at 60% 23%, #0e1d24 0.25vmin, #fff0 calc(0.25vmin + 1px)),
		radial-gradient(circle at 35% 25%, #0e1d24  0.25vmin, #fff0 calc(0.25vmin + 1px)), #ffffff10;
	width: 3vmin;
	height: 5vmin;
	border-radius: 2vmin 2vmin 0 0;
	left: 1vmin;
	top: 1vmin;
	transform: skew(10deg, -10deg);
	clip-path: polygon(1% 99%, 0% 1%, 99% 0%, 100% 99%, 94% 99%, 90% 96%, 88% 92%, 85% 90%, 82% 88%, 81% 90%, 79% 93%, 78% 96%, 78% 100%, 72% 99%, 71% 95%, 71% 93%, 68% 90%, 64% 87%, 63% 86%, 61% 89%, 60% 91%, 59% 92%, 58% 93%, 57% 96%, 55% 97%, 53% 98%, 50% 95%, 49% 92%, 49% 91%, 48% 89%, 45% 86%, 43% 85%, 40% 89%, 40% 90%, 39% 92%, 38% 95%, 37% 96%, 34% 97%, 31% 98%, 30% 95%, 29% 93%, 29% 92%, 28% 90%, 25% 87%, 22% 87%, 20% 88%, 20% 90%, 19% 93%, 19% 95%, 18% 96%, 16% 98%, 14% 99%, 13% 97%, 11% 97%, 11% 95%, 10% 93%, 8% 93%, 5% 96%, 4% 97%, 4% 99%, 4% 99%, 0% 100%);

	clip-path: polygon(6% 90%, 4% 66%, 3% 56%, 3% 48%, 5% 35%, 9% 22%, 15% 13%, 22% 8%, 30% 4%, 36% 3%, 42% 3%, 48% 4%, 56% 6%, 56% 8%, 63% 9%, 63% 9%, 70% 13%, 73% 17%, 78% 24%, 81% 28%, 85% 36%, 85% 38%, 88% 44%, 91% 51%, 93% 62%, 95% 74%, 97% 88%, 96% 89%, 93% 88%, 90% 87%, 84% 88%, 77% 90%, 72% 91%, 67% 93%, 63% 92%, 59% 92%, 56% 91%, 53% 90%, 50% 91%, 45% 94%, 41% 96%, 38% 96%, 32% 96%, 27% 94%, 19% 96%, 13% 97%, 9% 98%, 7% 99%, 5% 98%, 4% 96%, 4% 96%, 4% 93%);
	animation: move-phantom 2s ease 0s infinite alternate;
}
@keyframes move-phantom {
	0% { left: 0.5vmin; transform: skew(10deg, -10deg) }
	20%, 60%, 80% { transform: rotate(8deg) skew(10deg, -10deg); }
	0%, 40%, 70% { transform: rotate(-7deg) skew(10deg, -10deg); }
	45% { left: 3.5vmin; }
	50% { bottom: -5vmin; }
	100% { left: 0.5vmin; transform: skew(10deg, -10deg) }
}
@keyframes move-phantom-2 {
	0% { left: 0.5vmin; transform: skew(10deg, -10deg) rotateY(180deg);}
	20%, 60%, 80% { transform: rotate(8deg) skew(10deg, -10deg) rotateY(180deg); }
	0%, 40%, 70% { transform: rotate(-7deg) skew(10deg, -10deg) rotateY(180deg); }
	45% { left: 3.5vmin; }
	50% { bottom: -5vmin; }
	100% { left: 0.5vmin; transform: skew(10deg, -10deg) rotateY(180deg); }
}
.phantom + .phantom {
	transform: skew(-7deg, 9deg) rotateY(180deg);
	animation-delay: -1s;
	animation-direction: reverse;
	animation-duration: 2.1s;
	margin-top: -0.25vmin;
	width: 3.5vmin;
	height: 5.5vmin;
	animation: move-phantom-2 2.03s ease -1s infinite alternate;
}
.roof-0 .window:hover {
	animation: light-on 0.75s linear 0s 1;
	animation-fill-mode: forwards;
}
.roof-0 .window:hover .phantom {
	opacity: 0.15;
}
.zombie-hand {
	width: 5vmin;
	height: 8vmin;
	left: 12.75vmin;
	bottom: -2vmin;
	clip-path: polygon(24% 99%, 30% 77%, 32% 69%, 33% 66%, 34% 60%, 32% 56%, 27% 54%, 25% 52%, 22% 44%, 22% 39%, 21% 37%, 16% 36%, 15% 38%, 11% 38%, 6% 36%, 5% 34%, 7% 32%, 10% 32%, 12% 31%, 14% 31%, 16% 32%, 20% 32%, 25% 33%, 28% 33%, 29% 32%, 30% 30%, 28% 28%, 25% 27%, 23% 27%, 20% 27%, 17% 27%, 16% 26%, 17% 24%, 18% 22%, 19% 20%, 24% 20%, 28% 21%, 33% 22%, 35% 24%, 36% 27%, 38% 28%, 42% 26%, 42% 24%, 41% 21%, 38% 20%, 33% 17%, 31% 16%, 28% 16%, 26% 15%, 27% 12%, 29% 11%, 33% 12%, 36% 12%, 37% 13%, 39% 13%, 42% 15%, 45% 17%, 48% 19%, 49% 20%, 50% 23%, 53% 25%, 53% 23%, 53% 21%, 52% 18%, 52% 16%, 52% 14%, 48% 12%, 46% 9%, 44% 6%, 45% 5%, 48% 4%, 49% 4%, 52% 5%, 54% 7%, 58% 9%, 59% 10%, 60% 11%, 61% 13%, 63% 17%, 64% 18%, 66% 19%, 67% 21%, 67% 23%, 67% 25%, 66% 29%, 66% 32%, 68% 34%, 68% 35%, 70% 37%, 72% 37%, 74% 34%, 76% 33%, 77% 32%, 76% 31%, 76% 30%, 77% 27%, 81% 23%, 85% 21%, 88% 21%, 92% 21%, 93% 21%, 94% 21%, 94% 22%, 92% 24%, 92% 25%, 91% 27%, 90% 28%, 92% 29%, 92% 30%, 93% 31%, 94% 33%, 94% 34%, 91% 35%, 89% 36%, 88% 38%, 85% 39%, 84% 42%, 84% 43%, 83% 45%, 80% 47%, 75% 48%, 72% 50%, 68% 53%, 66% 56%, 64% 61%, 64% 65%, 63% 69%, 64% 73%, 64% 76%, 66% 99%);
	background: var(--house);
	transform-origin: 75% 100%;
	transform: rotate(10deg);
	transition: bottom 1s ease 0s;
}
.tomb:hover + .zombie-hand {
	animation: move-zombie 0.25s ease 0s infinite;
	animation-fill-mode: forwards;
	bottom: 5.25vmin;
	transition: bottom 3s ease 0.25s;
}
@keyframes move-zombie {
	0%, 50%, 100% { left: 12.75vmin;} 
	50% { margin-bottom: 0.15vmin;}  
	25%, 75% { left: 12.85vmin;}
}
.tomb:hover + .zombie-hand + .stones:before,
.tomb:hover + .zombie-hand + .stones:after {
	content: "";
	position: absolute;
	width: 0.5vmin;
	height: 0.75vmin;
	top: 0vmin;
	border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%;
	background: var(--house);
	animation: move-stone-1 2s ease-out 0s;
	animation-fill-mode: forwards;
}
.tomb:hover + .zombie-hand + .stones:after {
	animation: move-stone-2 2s ease-out 0.5s;
	animation-fill-mode: forwards;
	transform: rotateZ(180deg);
}
.tomb:hover + .zombie-hand + .stones {
	bottom: 3vmin;
}
.stones {
	right: 1.75vmin;
	bottom: -3vmin;
	width: 8vmin;
	height: 8vmin;
	transform: rotate(45deg);
	transition: bottom 1.5s ease 0s;
	border-radius: 0 5vmin;
	z-index: -3;
	pointer-events: none;
}
@keyframes move-stone-1 {
	10% { top: 1vmin; left: 0.25vmin;}
	20% { top: 2vmin; left: 0.5vmin; }
	30% { top: 3vmin; left: 1vmin; }
	50% { top: 5vmin; left: 2.5vmin; transform: rotate(0deg); }
	60%, 100% { top: 6vmin; left: 2.5vmin; transform: rotate(30deg);}
}
@keyframes move-stone-2 {
	10% { left: 1vmin;}
	20% { left: 2vmin; }
	30% { left: 3vmin; top: 0.75vmin; }
	50% { left: 5vmin; top: 2.25vmin; transform: rotate(0deg); }
	60%, 100% { left: 5.25vmin; top: 4.5vmin; transform: rotate(30deg);}
}
.bat-cat {
	width: 80vmin;
	height: 40vmin;
	animation: fly-move 1s ease 0s 1;
	z-index: 2;
	transform: scale(0.2);
	left: 18vmin;
	top: 12vmin;
}
@keyframes fly {
	25% { transform: translateX(1vmin) scale(0.2); }
	33% { margin-top: -1vmin; }
	0%, 50%, 100% { transform: translateX(0vmin) scale(0.2); }
	66% { margin-top: 1vmin; }
	75% { transform: translateX(2vmin) scale(0.2); }
}
@keyframes fly-move {
	25% { transform: translateX(-0.5vmin) scale(0.2); }
	53% { margin-top: 0.5vmin; }
	86% { margin-top: -0.5vmin; }
	75% { transform: translateX(0.5vmin) scale(0.2); }
}
.bat-cat * {
	position: absolute;
	box-sizing: border-box;
}
.balcony:hover + .bat-cat {
	animation: fly 1.5s ease 0s infinite;
}
.bat-cat .body {
	width: 20vmin;
	height: 20vmin;
	background: var(--black);
	border-radius: 1vmin 100%;
	top: 15vmin;
	left: 30vmin;
	transform: rotate(45deg) skew(-5deg, -5deg);
	box-shadow: 1vmin -0.15vmin 0 0 var(--gray) inset;
	z-index: 2;
	transition: all 1s ease 0s;
	border-radius: 8vmin 100%;
	top: 16.5vmin;
}
.balcony:hover + .bat-cat .body {
	border-radius: 1vmin 100%;
	top: 15vmin;
}
.bat-cat .head {
	width: 14vmin;
	height: 13vmin;
	background: var(--black);
	border-radius: 90% 90% 100% 100%;
	top: 7.25vmin;
	left: 33vmin;
	box-shadow: 1.2vmin 0.5vmin 0 0 inset var(--gray);
	z-index: 3;
}
.bat-cat .head:before,
.bat-cat .head:after {
	content: "";
	position: absolute;
	width: 3.75vmin;
	height: 4.25vmin;
	background: radial-gradient(circle at 60% 50%, var(--house) 1.15vmin, #fff0 calc(1.15vmin + 1px)), #fff;
	border-radius: 100%;
	bottom: 4vmin;
	left: 2.15vmin;
	transform: rotate(-10deg);
	animation: eye-blink 5s ease 0s infinite;
}
@keyframes eye-blink {
	0%, 95% { max-height: 4.25vmin; bottom: 4vmin; }
	100% { max-height: 0.25vmin; bottom: 5vmin; }

}
.bat-cat .head::after {
	transform: rotate(10deg) rotateY(180deg);
	left: 8vmin;
}
.ears {
	width: 18.25vmin;
	height: 15vmin;
	left: 31vmin;
	top: 2vmin;
}
.ears:before,
.ears:after {
	content: "";
	position: absolute;
	width: 13vmin;
	height: 13vmin;
	left: -2.1vmin;
	top: 1.5vmin;
	background: var(--black);
	border-radius: 0.5vmin 100%;
	transform: skew(-5deg, -5deg) rotate(19deg);
	box-shadow: 1.25vmin -0.2vmin 0 0 var(--gray) inset;
}
.ears:after {
	left: 7vmin;
	transform: rotate(69deg) skew(-5deg, -5deg);
	box-shadow: 0.125vmin -1.5vmin 0 0 var(--gray) inset;

}
.bat-cat .wings {
	width: 80vmin;
	height: 40vmin;
	z-index: -1;
}
.bat-cat .wing {
	background: #ffc10700;
	width: 40vmin;
	height: 23vmin;
	top: 8vmin;
	transform-origin: 90% 50%;
	opacity: 1;
	animation: stop-fly-right 1s linear 0s 1;
	animation-fill-mode: forwards;

}
.bat-cat .wing + .wing {
	transform: rotateY(180deg);
	left: 7vmin;
	animation: stop-fly-left 1s linear 0s 1;
	animation-fill-mode: forwards;
}
.balcony:hover + .bat-cat .wing {
	opacity: 1;
	transition: opacity 0.5s ease 0s;
	animation: fly-right 0.15s ease 0s infinite;
}
.balcony:hover + .bat-cat .wing + .wing {
	animation-name: fly-left;
}
@keyframes fly-right {
	49% { transform: rotate(-25deg); }    
}
@keyframes fly-left {
	51% { transform: rotateY(180deg) rotate(-25deg); }  
}
@keyframes stop-fly-right {
	90% { opacity: 1;}
	100% { transform: rotateZ(-90deg) scaleX(0.5) scaleY(0.75); opacity: 0; }
}
@keyframes stop-fly-left {
	90% { opacity: 1;}
	100% { transform: rotateY(180deg) rotateZ(-90deg) scaleX(0.5) scaleY(0.75); opacity: 0; }
}
.finger {
	border-radius: 3vmin 5vmin;
	width: 0vmin;
	height: 22vmin;
	background: #f002;
	transform: rotate(68deg);
	top: -6vmin;
	left: 11vmin;
	border: 0.85vmin solid var(--black);
	background: var(--black);
	z-index: 2;
}
.finger + .finger {
	transform: rotate(28deg);
	top: 0vmin;
	left: 16vmin;
	height: 19vmin;
}
.finger + .finger + .finger {
	transform: rotate(-9deg);
	top: 0vmin;
	left: 23vmin;
	height: 23vmin;
}
.finger + .finger + .finger + .finger {
	transform: rotate(-50deg);
	top: -3.75vmin;
	left: 29vmin;
	height: 23vmin;
}
.finger:before {
	content: "";
	position: absolute;
	width: 100%;
	height: 100%;
	border: 0.85vmin solid var(--black);
	border-radius: 100%;
}
.membrane {
	background: radial-gradient(circle at 38% 126%, #fff0 10vmin, var(--dark) calc(10vmin + 1px));
	width: 13vmin;
	height: 20vmin;
	transform: rotate(29deg);
	left: 5vmin;
	top: -3vmin;
	clip-path: polygon(100% 0%, 0% 80%, 100% 93%);
}
.membrane + .membrane {
	left: 16vmin;
	transform: rotate(30deg) rotateY(180deg);
	top: 3.5vmin;
}

.membrane + .membrane + .membrane {
	left: 24.5vmin;
	transform: rotate(-8deg) rotateY(180deg);
	top: 2.5vmin;
	clip-path: polygon(97% 0%, -50% 100%, 100% 100%);
	background: radial-gradient(circle at 70% 141%, #fff0 10vmin, var(--dark) calc(10vmin + 1px));
}

.bat-cat .leg {
	height: 5vmin;
	background: var(--black);
	box-shadow: 0.75vmin 0 0 0 var(--gray) inset;
	transition: all 0.4s ease 0.25s;
	width: 6vmin;
	border-radius: 1vmin 1vmin 2.5vmin 2.5vmin;
	left: 34vmin;
	top: 32.5vmin;
	z-index: 1;
	transform: rotate(5deg);
}

.bat-cat .leg + .leg {
	border-radius: 2vmin 1vmin;    
	left: 41vmin;
	transform: rotate(-5deg);
}

.balcony:hover + .bat-cat .leg {
	z-index: 1;
	width: 2vmin;
	height: 5vmin;
	background: var(--black);
	top: 35vmin;
	left: 37vmin;
	transform: rotate(15deg);
	border-radius: 1vmin 2vmin;
	box-shadow: 0.75vmin 0 0 0 var(--gray) inset;
	transition: all 0.4s ease 0.25s;
}

.balcony:hover + .bat-cat .leg + .leg {    
	left: 41vmin;
	border-radius: 2vmin 1vmin;
	transform: rotate(-13deg);
}

.bat-cat .leg:before {
	content: "";
	width: 2vmin;
	height: 4vmin;
	background: var(--black);
	top: 3.25vmin;
	transform-origin: 50% 0;
	left: -0.35vmin;
	border-radius: 1vmin 3vmin 3vmin 1vmin;
	border-left: 1.1vmin solid var(--gray);
	transition: all 0.4s ease 0.25s;
	position: absolute;
	transform: rotate(-160deg); 
	opacity: 0;
}

.bat-cat .leg + .leg:before {
	top: 3.25vmin;
	left: 0.25vmin;
	transform: rotate(18deg);
	border-radius: 3vmin 1vmin 1vmin 3vmin;
	border-left: 0;
	background: var(--gray);
	border-right: 1.35vmin solid var(--black);
	border-top: 1px solid var(--black);
}

.balcony:hover + .bat-cat .leg:before {
	transform: rotate(-25deg);
	opacity: 1;
	width: 1vmin;
}

.balcony:hover + .bat-cat .leg + .leg:before {
	transform: rotate(18deg);
}

.tail {
	width: 10vmin;
	height: 11vmin;
	border-radius: 1vmin 9vmin;
	left: 30vmin;
	top: 24vmin;
	transform: rotate(23deg);
	transform-origin: 100% 100%;
	border: 1vmin solid #fff0;
	border-bottom: 1vmin solid var(--black);
	border-left: 1.55vmin solid var(--black);
	filter: drop-shadow(-0.25vmin 0vmin 0px var(--gray)) drop-shadow(-0.25vmin 0vmin 0px var(--gray));
	z-index: 1;
	left: 25vmin;
	animation: tail-move 2s ease-in-out 0s infinite alternate;
	transition: all 0.4s ease 0.5s;
}

.tail:before {
	content: "";
	width: 2vmin;
	height: 2vmin;
	background: var(--black);
	border-radius: 3vmin 1vmin;
	left: -1.75vmin;
	top: -1.125vmin;
	transform: rotate(-36deg);
}

.balcony:hover + .bat-cat .tail {
	left: 30vmin;
	animation: none;
	transition-delay: 0s;
}

@keyframes tail-move {
	20% { transform: rotate(11deg); }
	72% { transform: rotate(7deg); }

}


.shining {
	width: 28.75vmin;
	height: 2vmin;
	left: -28.8vmin;
	top: 0.015vmin;
	transform: rotate(-49.3deg);
	transform-origin: 100% 0;
	border-radius: 0 0 2.5vmin 500%;
	box-shadow: 0.5vmin 0.5vmin 0.5vmin 0 #fff2 inset;
}

.door + .shining {
	transform: rotate(-90deg);
	filter: blur(2px);
	width: 21.5vmin;
	left: -21.5vmin;
}

.level-1 .shining {
	transform: rotate(-91deg);
	filter: blur(4px);
}

.level-2 .shining {
	transform: rotate(-91deg);
	filter: blur(5px);
}



@keyframes floating-down {
	0% { margin-bottom: 0vmin; margin-left: 0vmin}
	25% { margin-bottom: 2vmin; }
	33% {  margin-left: -3vmin; }
	66% {  margin-left: 1vmin; }
	75% { margin-bottom: 1vmin; }
	100% { margin-bottom: 0vmin; margin-left: 0vmin; }
}

@keyframes floating {
	0% { margin-bottom: 4vmin; margin-left: 0vmin}
	33% { margin-left: -4vmin; }
	66% { margin-left: 1vmin; }
	100% { margin-bottom: -4vmin; margin-left: 0vmin; }
}

@keyframes swinging-left {
	0% { transform: rotate(-5deg); }
	100% { transform: rotate(5deg); }
}

@keyframes swinging-right {
	0% { transform: rotateY(180deg) rotate(5deg); }
	100% { transform: rotateY(180deg) rotate(-5deg); }
}

.skeleton {
	--bone: var(--house);
	opacity: 0.965;
	width: 32vmin;
	height: 60vmin;
	position: absolute;
	z-index: 1;
	display: flex;
	justify-content: center;transition: var(--tran);
	transform: scale(0.375);
	left: -7vmin;
	bottom: -19.5vmin;
	transition: all 1s ease 0s;
	animation: floating-down 2s cubic-bezier(0.46, 0.03, 0.52, 0.96) 0s 1;
}

.skeleton * {
	animation-play-state: paused !important;
}

.skeleton-floating:hover + .skeleton * {
	animation-play-state: running !important;
}

.skeleton-floating:hover + .skeleton {
	animation: floating 3s cubic-bezier(0.46, 0.03, 0.52, 0.96) 0s infinite alternate;
	bottom: -6vmin;
}

.skeleton div {
	position: absolute;
}

.skeleton-floating {
	width: 8vmin;
	height: 20vmin;
	bottom: 0vmin;
	left: 5vmin;
	z-index: 3;
}

@keyframes shadow {
	0% { margin-left: 2vmin; }
	100% { margin-left: -2vmin; }
}

.skeleton .head {
	width: 13vmin;
	height: 17vmin;
	top: 4.25vmin;
	animation: swinging-right 0.55s ease-in-out 0s infinite alternate;
	transform-origin: 50% 75%;
}

.cranium {
	width: 12vmin;
	height: 13vmin;
	left: 0.5vmin;
	top: 0.25vmin;
	border-radius: 6vmin 6vmin 4.5vmin 4.5vmin;
	background: 
		radial-gradient(circle at 50% 74%, #fff0 9vmin, #fff6 100%), 
		conic-gradient(from -24deg at 100% 75%, var(--bone) 0 45deg, #fff0 0 100%), 
		conic-gradient(from -24deg at 0% 75%, var(--bone) 0 45deg, #fff0 0 100%), 
		conic-gradient(from -24deg at 50% 75%, var(--bone) 0 45deg, #fff0 0 100%), 
		linear-gradient(180deg, var(--bone) 0 59%, #fff0 0 90%, var(--bone) 0 100%), 
		radial-gradient(circle at 75% 73%, #fff0 0 1.75vmin, var(--bone) calc(1.75vmin + 1px) 3vmin, #fff0 0 100%), 
		radial-gradient(circle at 25% 73%, #fff0 0 1.75vmin, var(--bone) calc(1.75vmin + 1px) 3vmin, #fff0 0 100%);
}

.skeleton-floating:hover + .skeleton .cranium {
	box-shadow: 0 1vmin 1vmin 0 #fff2 inset;
}

.cranium:before {
	content: "";
	position: absolute;
	width: 1.25vmin;
	height: 1.25vmin;
	bottom: -0.75vmin;
	left: 4.85vmin;
	background: var(--bone);
	border-radius: 100%;
	box-shadow: 1.25vmin 0 0 0 var(--bone);
}

.cranium:after {
	content: "";
	position: absolute;
	width: 5.25vmin;
	height: 1.5vmin;
	bottom: -0.95vmin;
	left: 3.5vmin;
	background: 
		radial-gradient(circle at 90% 10%, var(--bone) 0 1vmin, #fff0 calc(1vmin + 1px) 100%), 
		radial-gradient(circle at 10% 10%, var(--bone) 0 1vmin, #fff0 calc(1vmin + 1px) 100%);
	border-radius: 1vmin;
}

.skeleton .mouth {
	border-radius: 100%;
	border: 0.5vmin solid #fff0;
	box-sizing: border-box;
	border-bottom-color: var(--bone);
	border-width: 0.75vmin;
	width: 11.75vmin;
	left: 0.6vmin;
	height: 15vmin;
	top: 0.85vmin;
	background: 
		radial-gradient(circle at 35% 98%, var(--bone) 0 0.65vmin, #fff0 calc(0.65vmin + 1px) 100%), 
		radial-gradient(circle at 45% 100%, var(--bone) 0 0.65vmin, #fff0 calc(0.65vmin + 1px) 100%), 
		radial-gradient(circle at 55% 100%, var(--bone) 0 0.65vmin, #fff0 calc(0.65vmin + 1px) 100%), 
		radial-gradient(circle at 65% 98%, var(--bone) 0 0.65vmin, #fff0 calc(0.65vmin + 1px) 100%);
	background-repeat: no-repeat;
}

.skeleton .mouth:before, 
.skeleton .mouth:after {
	content: "";
	position: absolute;
	border-radius: 100%;
	background: var(--bone);
	width: 0.75vmin;
	height: 0.75vmin;
	left: 1.1vmin;
	bottom: 1vmin;
}

.skeleton .mouth:after {
	left: 8.45vmin;
}

.neck {
	width: 4vmin;
	height: 3vmin;
	top: 20vmin;
	margin-left: -0.25vmin;
}

.torso {
	width: 10vmin;
	height: 16vmin;
	top: 21.5vmin;
	margin-left: -0.25vmin;
	z-index: 2;
}

.pelvis {
	background: 
		radial-gradient(circle at 82% 36%, #fff0 0.5vmin, var(--bone) calc(0.5vmin + 1px) 4vmin, #fff0 0 100%), 
		radial-gradient(circle at 19% 36%, #fff0 0.5vmin, var(--bone) calc(0.5vmin + 1px) 4vmin, #fff0 0 100%);
	width: 8.5vmin;
	height: 4.5vmin;
	bottom: -1.5vmin;
	left: 0.9vmin;
	clip-path: polygon(9% 14%, 13% 10%, 19% 8%, 25% 10%, 29% 12%, 32% 15%, 34% 17%, 38% 18%, 46% 20%, 51% 20%, 58% 20%, 64% 20%, 71% 16%, 75% 11%, 81% 7%, 86% 8%, 91% 12%, 95% 19%, 97% 29%, 97% 42%, 95% 50%, 93% 56%, 92% 61%, 92% 69%, 92% 76%, 89% 86%, 86% 91%, 81% 94%, 78% 94%, 72% 90%, 67% 85%, 62% 79%, 57% 73%, 53% 67%, 49% 66%, 45% 68%, 41% 74%, 36% 84%, 31% 90%, 26% 94%, 20% 96%, 15% 93%, 12% 89%, 11% 84%, 10% 78%, 10% 72%, 10% 66%, 9% 59%, 7% 54%, 5% 45%, 4.5% 36%, 5% 30%, 6% 23%);
}

.column {
	width: 1.5vmin;
	height: 8.75vmin;
	background: var(--bone);
	border-radius: 0.25vmin;
	left: 4.45vmin;
	top: 2.5vmin;
}

.column:before, .column:after {
	content: "";
	position: absolute;
	background: var(--bone);
	border-radius: 0.25vmin;
	width: 100%;
	height: 1vmin;
	top: -1.25vmin;
	box-shadow: 0 -1.125vmin 0 0 var(--bone), 0 -2.25vmin 0 0 var(--bone);
}

.column:after {
	top: 10vmin;
}

.rib {
	width: 8.5vmin;
	height: 2.75vmin;
	left: 1vmin;
	top: 9vmin;
}

.rib:before, .rib:after {
	content: "";
	position: absolute;
	width: 2.5vmin;
	height: 0.5vmin;
	background: #f0f0;
	border-radius: 100%;
	left: 0.3vmin;
	top: 0vmin;
	border: 0.85vmin solid var(--bone);
	border-top-color: #fff0;
	filter: drop-shadow(0px -1.5vmin 0 var(--bone)) drop-shadow(0px -1.5vmin 0 var(--bone)) drop-shadow(0px -1.5vmin 0 var(--bone));
}

.rib:after {
	left: 4vmin;
}

.rib + .rib {
	top: 2.5vmin;
}

.rib + .rib:before, .rib + .rib:after {
	filter: none;
	width: 1.85vmin;
	left: 1vmin;
}

.rib + .rib:after {
	left: 4vmin;
}

.clavicle {
	width: 11vmin;
	height: 2.75vmin;
	left: -0.25vmin;
	top: 0vmin;
}

.clavicle:before, .clavicle:after {
	content: "";
	position: absolute;
	width: 2.75vmin;
	height: 0.1vmin;
	border-radius: 100%;
	left: -0.15vmin;
	top: 1.25vmin;
	border: 0.95vmin solid var(--bone);
	border-bottom-color: #fff0;
	transform: rotate(-12deg);
}

.clavicle:after {
	left: 6.35vmin;
	transform: rotate(12deg);
}

.arms {
	width: 28vmin;
	height: 18vmin;
	top: 22.5vmin;
	z-index: 2;
}

.arm {
	width: 3.4vmin;
	height: 20vmin;
	transform: rotate(3deg);
	left: 7.25vmin;
	top: -0.5vmin;
	transform-origin: 50% 1vmin;
	animation: swinging-left 0.55s ease-in-out 0s infinite alternate;
}

.arm + .arm {
	transform: rotateY(180deg) rotate(3deg);
	left: 17.25vmin;
	animation: swinging-right 0.55s ease-in-out 0s infinite alternate;
	transform-origin: 55% 1vmin;
}

.hand {
	width: 5.5vmin;
	height: 6vmin;
	bottom: 0;
	left: -2.1vmin;
	z-index: -1;
}

.skeleton .legs {
	width: 15vmin;
	height: 21vmin;
	top: 37.5vmin;
	z-index: -1;
	margin-left: -0.2vmin;
}

.skeleton .leg {
	width: 4.25vmin;
	height: 19vmin;
	transform: rotate(3deg);
	left: 2.65vmin;
	top: -1vmin;
	border-radius: 1px 1px 30% 40%;
	transform-origin: 50% 1vmin;
	animation: swinging-left 0.55s ease-in-out 0s infinite alternate;
}

.skeleton .leg + .leg {
	transform: rotateY(180deg) rotate(3deg);
	left: 8vmin;
	animation: swinging-right 0.55s ease-in-out 0s infinite alternate;
	transform-origin: 55% 1vmin;
}

.foot {
	width: 7vmin;
	height: 4vmin;
	top: 20.5vmin;
	left: -2.5vmin;
	transform: rotate(-35deg);
	transform-origin: 1vmin 50%;
}

.bone {
	background: var(--bone);
	width: 1vmin;
	height: 5vmin;
}

.bone:before, .bone:after {
	content: "";
	background: var(--bone);
	width: 1vmin;
	height: 1vmin;
	position: absolute;
	left: -0.5vmin;
	top: -0.5vmin;
	border-radius: 100%;
	box-shadow: 1vmin 0 0 0 var(--bone);
}

.bone:after {
	top: calc(100% - 0.5vmin);
}

.arm .bone {
	top: 3.125vmin;
	left: 1.25vmin;
}

.arm .bone + .bone {
	top: 9.125vmin;
	left: 1.2vmin;
	width: 0.5vmin;
	box-shadow: 0.65vmin 0 0 0 var(--bone);
}

.hand .bone {
	width: 1.75vmin;
	height: 1.25vmin;
	border-radius: 100%;
	box-shadow: 0.65vmin 0 0 0 var(--bone);
	top: 0.75vmin;
	left: 2.25vmin;
}

.hand .bone:before, .hand .bone:after {
	top: 1.325vmin;
	left: -0.35vmin;
	width: 1.25vmin;
	box-shadow: 1.5vmin 0 0 0 var(--bone);
}

.hand .bone + .bone {
	width: 0.5vmin;
	height: 1vmin;
	border-radius: 100%;
	box-shadow: 0 1.1vmin 0 -0.05vmin var(--bone);
	top: 0.8vmin;
	left: 1.35vmin;
	transform: rotate(50deg);
}

.hand .bone + .bone:before, 
.hand .bone + .bone:after {
	display: none;
}

.hand .bone + .bone + .bone {
	width: 0.5vmin;
	height: 1vmin;
	box-shadow: 0 1.1vmin 0 -0.09vmin var(--bone);
	top: 3vmin;
	left: 1.4vmin;
	transform: rotate(6deg);
}

.hand .bone + .bone + .bone + .bone {
	top: 3.25vmin;
	left: 2.35vmin;
}

.hand .bone + .bone + .bone + .bone + .bone {
	top: 3.25vmin;
	left: 3.25vmin;
	transform: rotate(0deg);
}

.hand .bone + .bone + .bone + .bone + .bone + .bone {
	top: 3.25vmin;
	left: 4.25vmin;
	transform: rotate(0deg);
	width: 0.45vmin;
	height: 0.75vmin;
	box-shadow: 0 0.8vmin 0 -0.09vmin var(--bone);
}

.leg .bone {
	left: 1.75vmin;
	top: 3vmin;
	height: 6.5vmin;
}

.leg .bone + .bone {
	left: 1.75vmin;
	top: 11.75vmin;
	height: 6.75vmin;
	width: 0.5vmin;
	box-shadow: 0.65vmin 0 0 0 var(--bone);
}

.leg .bone.ball {
	width: 1.25vmin;
	height: 1.25vmin;
	top: 10vmin;
	border-radius: 100%;
	box-shadow: none;
}

.leg .bone.ball:before, .leg .bone.ball:after {
	display: none;
}

.foot .bone {
	width: 2.2vmin;
	height: 1.5vmin;
	border-radius: 1vmin 0.75vmin 1vmin 1vmin;
	top: 1.2vmin;
	left: 4vmin;
	transform: rotate(-15deg);
}

.foot .bone + .bone {
	width: 1vmin;
	height: 0.95vmin;
	top: 2vmin;
	left: 3vmin;
	box-shadow: -0.65vmin 0 0 -0.05vmin var(--bone);
}

.foot .bone + .bone + .bone {
	width: 0.65vmin;
	height: 0.65vmin;
	top: 2.75vmin;
	left: 1.25vmin;
	box-shadow: -0.5vmin 0 0 -0.1vmin var(--bone), 0.45vmin 0 0 0.05vmin var(--bone);
}

.foot .bone:before, .foot .bone:after {
	display: none;
}




.roof-2 .chimney:hover {
	animation: tilt 0.5s ease-in-out 0s infinite alternate;
	transform-origin: 10% 90%;
}

@keyframes tilt {
	50% { transform: rotate(2deg); }
}

.roof-2 .chimney:hover + .smoke span:nth-child(3n+3) {
	background: #f004;
}
.roof-2 .chimney:hover + .smoke span:nth-child(3n+2) {
	background: #0f04;
}
.roof-2 .chimney:hover + .smoke span:nth-child(3n+2) {
	background: #ff04;
}

.smoke {
	background: #f000;
	width: 30vmin;
	height: 75vmin;
	top: -62vmin;
	z-index: -1;
	overflow: hidden;
	left: 11vmin;
	clip-path: polygon(42% 100%, 24% 91%, 0% 80%, 0% 0%, 100% 0%, 100% 80%, 78% 90%, 48.5% 100%);
}

.smoke span {
	background: #fff2;
	width: 5vmin;
	height: 6vmin;
	border-radius: 100%;
	bottom: -10vmin;
	filter: blur(1vmin);
	animation: smoke-up 20s ease 0s infinite;
	left: 10vmin;
}

.smoke span:nth-child(2) {
	animation-delay: 0.75s;
	animation-duration: 16s;
}

.smoke span:nth-child(3n+2) {
	animation-delay: 1.5s;
	animation-duration: 12s;
	width: 3vmin;
	height: 4vmin;
}

.smoke span:nth-child(4) {
	animation-delay: 2.25s;
	animation-duration: 18s;
}

.smoke span:nth-child(5) {
	animation-delay: 3.1s;
	animation-duration: 21s;
}

.smoke span:nth-child(6) {
	animation-delay: 3.85s;
	animation-duration: 23s;
}

.smoke span:nth-child(7) {
	animation-delay: 4.4s;
	animation-duration: 21s;
}

.smoke span:nth-child(8) {
	animation-delay: 5.25s;
	animation-duration: 15s;
}

.smoke span:nth-child(9) {
	animation-delay: 6.9s;
	animation-duration: 17.5s;
}

.smoke span:nth-child(10) {
	animation-delay: 7.7s;
	animation-duration: 10.5s;
}

.smoke span:nth-child(11) {
	animation-delay: 8.4s;
	animation-duration: 13.5s;
}

.smoke span:nth-child(12) {
	animation-delay: 9.25s;
	animation-duration: 16.5s;
}

@keyframes smoke-up {
	0% { bottom: -10vmin; transform: scale(0.25); margin-left: 1vmin; }
	20% { transform: scale(0.5); }
	100% { margin-left: 5vmin; bottom: 35vmin; transform: scale(4) rotate(1080deg); opacity:0; }
}




.electricity {
	width: 50vmin;
	height: 52vmin;
	bottom: 0;
	left: -5vmin;
	z-index: -2;
}

.pole {
	background: var(--house);
	width: 1.75vmin;
	height: 60vmin;
	left: 1vmin;
	bottom: -2vmin;
	transform: skew(-2deg, 25deg) rotate(3deg);
	border-radius: 0.25vmin;
}

.bar {
	width: 10vmin;
	height: 0.5vmin;
	background: var(--house);
	transform: rotate(44deg) skew(30deg, -30deg);
	left: -0.8vmin;
}

.bar + .bar {
	top: 3vmin;
	left: -1vmin;
}

.bar span {
	background: var(--house);
	width: 0.2vmin;
	height: 2vmin;
	top: -1vmin;
	left: 1vmin;
	filter: drop-shadow(1.75vmin 0vmin 0px var(--house)) drop-shadow(5.75vmin 0vmin 0px var(--house));
}

.bar span:before,
.bar span:after{
	content: "";
	position: absolute;
	background: var(--house);
	width: 1vmin;
	height: 0.65vmin;
	border-radius: 1vmin;
	left: -0.35vmin;
	top: 0.1vmin;
}

.bar span:after {
	width: 0.75vmin;
	top: -0.35vmin;
	left: -0.2vmin
}

.box {
	background: var(--house);
	width: 2vmin;
	height: 4vmin;
	right: 15vmin;
	transform: rotate(9deg);
	top: -2vmin;
}

.box:before {
	content: "";
	position: absolute;
	background: var(--house);
	width: 2vmin;
	height: 3vmin;
	left: -1.25vmin;
	top: 0.5vmin;
	transform: rotateX(-12deg) rotateY(77deg) rotate(45deg);
}

.cable:hover ~ .box:before {
	animation: box-move 0.5s ease 0s infinite;
}

@keyframes box-move {
	50% { transform: rotateX(12deg) rotateY(74deg) rotate(45deg); }
}

.cable {
	width: 34vmin;
	height: 8vmin;
	--cables: #fff0 30vmin, var(
		--house) calc(30vmin + 1px) calc(30vmin + 2px), #fff0 calc(30vmin + 3px) 100%;
	background: radial-gradient(circle at 50% -25vmin, var(--cables)), radial-gradient(circle at 55% -25vmin, var(--cables)), radial-gradient(circle at 42% -23.5vmin, var(--cables)), radial-gradient(circle at 53% -26vmin, var(--cables)), radial-gradient(circle at 36% -27vmin, var(--cables));
	top: -2vmin;
	background-repeat: no-repeat;
	background-size: 100% 100%, 100% 100%, 100% 100%, 81% 100%, 81% 100%;
	background-position: 100% 0, 100% 0, 100% 0, 100% 1vmin, 100% 3vmin;
	transition: all 0.25s var(--bounce) 0s;
	animation: move-cable 0.5s var(--bounce) 0s 2;
}

.cable + .cable {
	transform: rotate(113deg) rotateX(180deg) scaleX(3);
	transform-origin: 0 0%;
	left: 6vmin;
	top: -17vmin;
	clip-path: polygon(16% 0, 100% 0, 100% 100%, 15% 100%);
	border-bottom: 2px solid var(--house);
	border-radius: 0 100% 100% 100%;
}

.cable:hover {
	animation-iteration-count: infinite;
}

@keyframes move-cable {
	50% { top: -1.75vmin; }    
}

.cable + .cable {
	animation: none;
}

.cable span {
	width: 3vmin;
	height: 5vmin;
	background: var(--house);
	left: 9.5vmin;
	top: 6.25vmin;
	transform-origin: 50% 0;
	animation: hanging 0.01s ease 0s infinite alternate, hanging-2 1s ease 0s infinite alternate; 
	/*animation-play-state: paused;*/
	animation-iteration-count: 80, 1;
	animation-fill-mode: forwards;
	clip-path: polygon(35% 4%, 35% 4%, 37% 7%, 37% 7%, 40% 10%, 40% 10%, 41% 15%, 41% 15%, 32% 37%, 32% 37%, 30% 33%, 30% 33%, 22% 52%, 22% 52%, 19% 58%, 19% 58%, 19% 62%, 19% 62%, 19% 66%, 19% 66%, 20% 85%, 20% 85%, 17% 84%, 17% 84%, 21% 87%, 21% 87%, 22% 88%, 22% 88%, 24% 87%, 24% 87%, 28% 82%, 28% 82%, 30% 80%, 30% 80%, 33% 78%, 33% 78%, 35% 81%, 35% 81%, 37% 83%, 37% 83%, 39% 88%, 39% 88%, 34% 90%, 34% 90%, 32% 94%, 32% 94%, 31% 97%, 31% 97%, 35% 96%, 35% 96%, 39% 94%, 39% 94%, 41% 92%, 41% 92%, 45% 93%, 45% 93%, 49% 93%, 49% 93%, 49% 93%, 49% 93%, 51% 93%, 51% 93%, 55% 93%, 55% 93%, 58% 92%, 58% 92%, 60% 94%, 60% 94%, 64% 96%, 64% 96%, 68% 96%, 68% 96%, 68% 94%, 68% 94%, 66% 91%, 66% 91%, 62% 89%, 62% 89%, 61% 88%, 61% 88%, 62% 85%, 62% 85%, 64% 81%, 64% 81%, 66% 79%, 66% 79%, 66% 78%, 66% 78%, 69% 81%, 69% 81%, 76% 87%, 76% 87%, 78% 87%, 78% 87%, 79% 87%, 79% 87%, 81% 85%, 81% 85%, 79% 86%, 79% 86%, 78% 85%, 78% 85%, 79% 84%, 79% 84%, 80% 79%, 80% 79%, 81% 65%, 81% 61%, 81% 59%, 81% 59%, 78% 53%, 78% 49%, 69% 33%, 69% 37%, 58% 16%, 58% 11%, 59% 11%, 59% 15%, 62% 8%, 62% 8%, 63% 6%, 63% 11%, 63% 4%, 63% 4%, 58% 3%, 58% 3%, 55% 3%, 55% 3%, 55% 8%, 55% 8%, 54% 13%, 54% 13%, 49% 23%, 49% 23%, 45% 14%, 45% 14%, 44% 9%, 44% 9%, 44% 7%, 44% 7%, 45% 4%, 45% 4%, 36% 4%, 36% 4%);
}

.cable:hover span {
	/*animation-play-state: running;  */ 
	animation-iteration-count: infinite;
}


@keyframes hanging {
	50% {
		clip-path: polygon(35% 4%, 35% 4%, 37% 7%, 37% 7%, 40% 10%, 40% 10%, 41% 15%, 41% 15%, 32% 37%, 32% 37%, 8% 33%, 16% 52%, 16% 52%, 17% 58%, 17% 58%, 18% 62%, 18% 62%, 18% 66%, 18% 66%, 20% 85%, 20% 85%, 17% 84%, 17% 84%, 21% 87%, 21% 87%, 22% 88%, 22% 88%, 24% 87%, 24% 87%, 28% 82%, 28% 82%, 30% 80%, 30% 80%, 33% 78%, 33% 78%, 35% 81%, 35% 81%, 37% 83%, 37% 83%, 39% 88%, 39% 88%, 34% 90%, 34% 90%, 32% 94%, 32% 94%, 31% 97%, 31% 97%, 35% 96%, 35% 96%, 39% 94%, 39% 94%, 41% 92%, 41% 92%, 45% 93%, 45% 93%, 49% 93%, 49% 93%, 49% 93%, 49% 93%, 51% 93%, 51% 93%, 55% 93%, 55% 93%, 58% 92%, 58% 92%, 60% 94%, 60% 94%, 64% 96%, 64% 96%, 68% 96%, 68% 96%, 68% 94%, 68% 94%, 66% 91%, 66% 91%, 62% 89%, 62% 89%, 61% 88%, 61% 88%, 62% 85%, 62% 85%, 64% 81%, 64% 81%, 66% 79%, 66% 79%, 66% 78%, 66% 78%, 69% 81%, 69% 81%, 76% 87%, 76% 87%, 78% 87%, 78% 87%, 79% 87%, 79% 87%, 81% 85%, 81% 85%, 79% 86%, 79% 86%, 78% 85%, 78% 85%, 79% 84%, 79% 84%, 81% 79%, 81% 79%, 83% 65%, 83% 61%, 83% 59%, 83% 59%, 85% 53%, 86% 49%, 96% 33%, 69% 37%, 58% 16%, 58% 11%, 58% 11%, 60% 9%,  61% 8%, 63% 5%, 63% 11%, 63% 4%, 63% 4%, 58% 3%, 58% 3%, 55% 3%, 55% 3%, 55% 8%, 55% 8%, 54% 13%, 54% 13%, 49% 23%, 49% 23%, 45% 14%, 45% 14%, 44% 9%, 44% 9%, 44% 7%, 44% 7%, 45% 4%, 45% 4%, 36% 4%, 36% 4%);
	}
}

@keyframes hanging-2 {
	25% { transform: rotate(-5deg); }
	0%, 50% { transform: rotate(0deg); }
	75% { transform: rotate(5deg); }
}

.cable:hover span:before,
.cable:hover span:after {
	content: "";
	position: absolute;
	width: 0.1vmin;
	height: 0.1vmin;
	background: #ff0000;
	bottom: 13%;
	border-radius: 100%;
	left: 44%;
}

.cable:hover span:after {
	left: 56%;
}


.cable span + span {
	left: 12vmin;
	top: 5.75vmin;
	width: 3.5vmin;
	height: 5.83vmin;
	animation-delay: 0.27s, 0.35s;
	animation-duration: 0.015s, 0.85s;
}

.cable span + span + span {

	width: 2.75vmin;
	height: 4.58vmin;
	left: 14.5vmin;
	top: 5vmin;
	animation-delay: 0.45s, 0.75s;
}


.sparks {
	width: 10vmin;
	height: 10vmin;
	right: 0vmin;
	top: -3vmin;
}

.sparks span {
	background: #fc0c;
	width: 0.25vmin;
	height: 0.25vmin;
	right: 2vmin;
	top: 3vmin;
	animation: sparking 0.75s ease-out infinite;
	animation-iteration-count: 2;
	animation-fill-mode: forwards;
}

@keyframes sparking {
	25% { right: 3vmin; top: 1vmin; }
	85% { opacity: 0; top: 0vmin; }
	100% { right: 5vmin; top: 2vmin;  opacity: 0; }
}

.sparks span:nth-child(2){
	margin-top: 1vmin;
	margin-left: 0.5vmin;
	animation-duration: 0.65s;
}

.sparks span:nth-child(3){
	margin-top: -0.5vmin;
	margin-left: 0.75vmin;
	animation-duration: 0.55s;
}

.sparks span:nth-child(4){
	margin-top: -1.5vmin;
	margin-left: 1.75vmin;
	animation-duration: 0.8s;
}

.sparks span:nth-child(4){
	margin-top: 1.5vmin;
	margin-left: 2.5vmin;
	animation-duration: 1.1s;
}


.cable:hover ~ .box .sparks span {
	animation-iteration-count: infinite;
}


body:has(.cable:hover) .window ,
body:has(.cable:hover) .door{
	animation: light-off 4s ease 0s infinite;
}

body:has(.cable:hover) .level-1 .window {
	animation-duration: 2.25s;
}
body:has(.cable:hover) .level-2 .window {
	animation-duration: 1.7s;
}

@keyframes light-off {
	5%, 20% {--window: rgb(6, 6, 48);}
	12.5% { --window: inherit; }
}



.pumpkin {
	width: 8vmin;
	height: 6vmin;
	right: 9.15vmin;
	bottom: 15.125vmin;
	display: flex;
	align-items: center;
	justify-content: center;
	transform: rotate(5deg);
	animation: move-pumpkin 3s ease 0s 1; 
}

.pumpkin:before {
	content: "";
	position: absolute;
	border: 0.51vmin solid var(--house);
	width: 0.75vmin;
	height: 1vmin;
	top: -0.5vmin;
	left: calc(50% - 0.25vmin);
	border-right: 0.25vmin solid #fff0;
	border-bottom-color: #fff0;
	border-top-width: 0.25vmin;
	border-radius: 0.75vmin;
}

.pumpkin:hover {
	animation: move-pumpkin 3s ease 0s infinite alternate; 
}

@keyframes move-pumpkin {
	25% { transform: rotate(-9deg);}
	75% { transform: rotate(8deg); }
}

.pumpkin span {
	width: 2.5vmin;
	height: 5.25vmin;
	background: var(--house);
	border-radius: 100%;
}

.pumpkin span + span {
	height: 5vmin;
	margin-left: 2.25vmin;
}

.pumpkin span + span + span {
	margin-left: -2.25vmin;
}


.pumpkin span + span + span + span {
	height: 4.5vmin;
	margin-left: 4.5vmin;
}

.pumpkin span + span + span + span + span {
	height: 4.5vmin;
	margin-left: -4.5vmin;
}


.pumpkin .eyes {
	width: 3.5vmin;
	height: 1.5vmin;
	top: 1.5vmin;
}

.pumpkin .eyes:before, .pumpkin .eyes:after {
	content: "";
	position: absolute;
	width: 1.25vmin;
	height: 1.25vmin;
	background: radial-gradient(circle at 50% 100%, #f60,#fc0, #fff 30%, #0f0f41 40%);
	clip-path: polygon(1% 99%, 11% 73%, 22% 48%, 33% 23%, 47% 0%, 61% 23%, 73% 49%, 86% 73%, 99% 99%, 75% 97%, 58% 95%, 50% 95%, 40% 95%, 22% 97%);
	transform: rotate(-10deg);
	background-size: 100% 200%;
	background-repeat: no-repeat;
	background-position: 0 0%;
	transition: background-position 0.5s ease 0s;
}

.pumpkin .eyes:after {
	left: 2.25vmin;
	transform: rotate(10deg);
}

.pumpkin:hover .eyes:before,
.pumpkin:hover .eyes:after,
.pumpkin:hover .nose {
	animation: pumpkin-eyes 0.5s ease 0s 1, pumpkin-eyes-2 0.25s ease 0s infinite alternate;
}

.pumpkin:hover .nose {
	animation-duration: 0.5s, 0.35s;
}

@keyframes pumpkin-eyes {
	100% { background-position: 0 100%;}
}

@keyframes pumpkin-eyes-2 {
	0%, 100% { background-position: 0 100%;}
	66% { background-position: 0 115%;}
}

.pumpkin .nose {
	width: 1vmin;
	height: 1vmin;
	background: radial-gradient(circle at 50% 100%, #f60,#fc0, #fff 30%, #0f0f41 40%);
	clip-path: polygon(1% 99%, 11% 73%, 22% 48%, 33% 23%, 47% 0%, 61% 23%, 73% 49%, 86% 73%, 99% 99%, 75% 97%, 58% 95%, 50% 95%, 40% 95%, 22% 97%);
	transform: rotate(1deg);
	background-size: 100% 200%;
	background-repeat: no-repeat;
	background-position: 0 0%;
	transition: background-position 0.5s ease 0s;

}

.pumpkin .mouth {
	width: 3.5vmin;
	height: 1.5vmin;
	top: 3.1vmin;
	border-radius: 0 0 10vmin 10vmin;
	background: radial-gradient(circle at 50% -1.25vmin, var(--house) 2vmin, #fff0 2vmin ), radial-gradient(circle at 50% 100%, #f60,#fc0, #fbff00 40%, #0f0f41 60%);
	transform: rotate(1deg);
	background-size: 100% 100%, 100% 300%;
	background-repeat: no-repeat;
	background-position: 0 0, 0 0%;
	transition: background-position 0.5s ease 0s;
}

@keyframes pumpkin-mouth {
	100% { background-position: 0 0, 0 150%;}
}

@keyframes pumpkin-mouth-2 {
	0%, 100% { background-position: 0 0, 0 100%;}
	66% { background-position: 0 0, 0 75%;}
}

.pumpkin:hover .mouth {
	animation: pumpkin-mouth 0.5s ease 0s 1, pumpkin-mouth-2 0.25s ease 0s infinite alternate;
}

.pumpkin .teeth {
	width: 100%;
	height: 100%;
}

.pumpkin .teeth:before {
	content: "";
	position: absolute;
	width: 0.35vmin;
	height: 0.5vmin;
	background: var(--house);
	left: 0.75vmin;
	top: 0.2vmin;
	box-shadow: 
		1vmin 0.2vmin 0 0 var(--house), 
		2vmin 0.01vmin 0 0 var(--house), 
		1.5vmin 0.95vmin 0 0 var(--house), 
		0.35vmin 0.85vmin 0 0 var(--house), 
		-0.5vmin 0.5vmin 0 0 var(--house), 
		2.45vmin 0.15vmin 0 0 var(--house) 
}

.clouds {
    width: 100%;
    height: 40vmin;
    position: fixed;
    z-index: 2;
}

.clouds span {
    position: absolute;
    margin-left: -40vmin;
    width: 30vmin;
    height: 18vmin;
    background: #fff5;
    filter: blur(4vmin);
    border-radius: 70% 100% 93% 80% / 100% 69% 87% 82% ;
    animation: move-clouds 40s linear infinite;
}


@keyframes move-clouds {
    0% { margin-left: -40vmin; }
    33% {transform: rotate(3deg); }
    66% {transform: rotate(4deg); }
    100% { margin-left: calc(100% + 40vmin);}
}

.clouds span:before,
.clouds span:after{
    content: "";
    left: -4vmin;
    position: absolute;
    width: 14vmin;
    height: 11vmin;
    background: #fff2;
    filter: blur(1vmin);
    border-radius: 70% 100% 93% 80% / 100% 69% 87% 82% ;
    box-shadow: -4vmin 2vmin 1vmin 0 #fff9;
}

.clouds span:after {
    content: "";
    left: 24vmin;
    top: 10vmin;
    position: absolute;
    width: 12vmin;
    height: 10vmin;
    background: #fff2;
    filter: blur(1vmin);
    border-radius: 100% 69% 87% 82% / 70% 100% 93% 80% ;
}

.clouds span:nth-child(2) {
    transform: scale(0.7) rotate(170deg);
    animation-delay: -15s;
    animation-duration: 50s;
    height: 12vmin;
    width: 40vmin;
}

.clouds span:nth-child(3) {
    transform: scale(0.6) rotate(180deg);
    animation-delay: -26s;
    animation-duration: 35s;
}

.clouds span:nth-child(4) {
    transform: scale(1.1) rotate(-10deg);
    animation-delay: -33s;
    animation-duration: 65s;
}