:root {
    --gray: #1a191a;
    --black: #080708;
    --dark: #443847;
    --window: #ffc800cf;
    --window: #ff8d00cf;
    --house: #000000;
    --hand: #000000;
    --bat: #070707;
    --skeleton: #000000;
    --pumpkin: #000000;
    --bounce: linear(0 0%, 0 2.27%, 0.02 4.53%, 0.04 6.8%, 0.06 9.07%, 0.1 11.33%, 0.14 13.6%, 0.25 18.15%, 0.39 22.7%, 0.56 27.25%, 0.77 31.8%, 1 36.35%, 0.89 40.9%, 0.85 43.18%, 0.81 45.45%, 0.79 47.72%, 0.77 50%, 0.75 52.27%, 0.75 54.55%, 0.75 56.82%, 0.77 59.1%, 0.79 61.38%, 0.81 63.65%, 0.85 65.93%, 0.89 68.2%, 1 72.7%, 0.97 74.98%, 0.95 77.25%, 0.94 79.53%, 0.94 81.8%, 0.94 84.08%, 0.95 86.35%, 0.97 88.63%, 1 90.9%, 0.99 93.18%, 0.98 95.45%, 0.99 97.73%, 1 100%);
}

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%, #005eff, #6d006d, #38005e );
}

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,#ffffff00 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%,#efefef 0% 60%,#ededed 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 + .fence .bat .wings:before {*/
/*    animation: bat-fly-r 0.125s ease 0s infinite;*/
/*}*/

/*.flying-bat + .fence .bat .wings:after {*/
/*    animation: bat-fly-l 0.125s ease 0s infinite;*/
/*}*/

.animate-bat + .fence .bat .wings:before {
    animation: bat-fly-r 0.125s ease 0s infinite;
}

.animate-bat + .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 {
    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;
    cursor: pointer;
}

/*.flying-bat + .fence .bat {*/
/*    animation: bat-fly 4s linear 0s infinite;*/
/*}*/

/*.flying-bat + .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(--hand);
    transform-origin: 75% 100%;
    transform: rotate(10deg);
    transition: bottom 1s ease 0s;
    cursor: pointer;
}

.zombie-hand-show {
    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;}
}

.zombie-hand-show + .zombie-hand + .stones:before,
.zombie-hand-show+ .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(--hand);
    animation: move-stone-1 2s ease-out 0s;
    animation-fill-mode: forwards;
}

.zombie-hand-show + .zombie-hand + .stones:after {
    animation: move-stone-2 2s ease-out 0.5s;
    animation-fill-mode: forwards;
    transform: rotateZ(180deg);
}

.zombie-hand-show + .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;
    cursor: pointer;
}

@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;
}

.bat-cat-fly{
    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;
    border-radius: 8vmin 100%;
    top: 16.5vmin;
}

.bat-cat-fly .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;
}

.bat-cat-fly .wing {
    opacity: 1;
    transition: opacity 0.5s ease 0s;
    animation: fly-right 0.15s ease 0s infinite;
}

.bat-cat-fly .wing + .wing {
    animation: fly-left 0.15s ease 0s infinite;
}

@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(--skeleton);
    opacity: 0.965;
    width: 32vmin;
    height: 60vmin;
    position: absolute;
    z-index: 1;
    display: flex;
    justify-content: center;transition: var(--skeleton);
    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;
    cursor: pointer;
}

.skeleton * {
    animation-play-state: paused !important;
}

.skeleton-floating-fly + .skeleton * {
    animation-play-state: running !important;
}

.skeleton-floating-fly + .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-fly + .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(--skeleton);
    border-width: 0.75vmin;
    width: 11.75vmin;
    left: 0.6vmin;
    height: 15vmin;
    top: 0.85vmin;
    background:
            radial-gradient(circle at 35% 98%, var(--skeleton) 0 0.65vmin, #fff0 calc(0.65vmin + 1px) 100%),
            radial-gradient(circle at 45% 100%, var(--skeleton) 0 0.65vmin, #fff0 calc(0.65vmin + 1px) 100%),
            radial-gradient(circle at 55% 100%, var(--skeleton) 0 0.65vmin, #fff0 calc(0.65vmin + 1px) 100%),
            radial-gradient(circle at 65% 98%, var(--skeleton) 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;
    cursor: pointer;
}

.pumpkin:before {
    content: "";
    position: absolute;
    border: 0.51vmin solid var(--pumpkin);
    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-fly {
    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(--pumpkin);
    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-fly .eyes:before,
.pumpkin-fly .eyes:after,
.pumpkin-fly .nose {
    animation: pumpkin-eyes 0.5s ease 0s 1, pumpkin-eyes-2 0.25s ease 0s infinite alternate;
}

.pumpkin-fly .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(--pumpkin) 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-fly .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(--pumpkin);
    left: 0.75vmin;
    top: 0.2vmin;
    box-shadow:
            1vmin 0.2vmin 0 0 var(--pumpkin),
            2vmin 0.01vmin 0 0 var(--pumpkin),
            1.5vmin 0.95vmin 0 0 var(--pumpkin),
            0.35vmin 0.85vmin 0 0 var(--pumpkin),
            -0.5vmin 0.5vmin 0 0 var(--pumpkin),
            2.45vmin 0.15vmin 0 0 var(--pumpkin)
}

.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;
}