.halloween-art-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;contain:layout paint}
.halloween-sprite{position:absolute;display:block;width:var(--size);pointer-events:none;opacity:.82}
.halloween-sprite img{display:block;width:100%;height:auto;object-fit:contain;border:0;background:none;pointer-events:none;user-select:none}
.halloween-falling{top:-100px;animation:halloweenFall var(--duration) var(--delay) linear infinite;opacity:.7}
.halloween-bat,.halloween-ghost{left:0;top:0}
.halloween-ghost{opacity:.73}
.halloween-bat-body,.halloween-ghost-body{display:block;transform:scaleX(var(--mirror)) rotate(var(--bank,0deg));width:100%}
.halloween-bat-body{position:relative;aspect-ratio:1.85}
.halloween-bat-body img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.halloween-bat-wing.left{clip-path:inset(0 50% 0 0);transform-origin:50% 65%;animation:halloweenWingLeft var(--flap) ease-in-out infinite}
.halloween-bat-wing.right{clip-path:inset(0 0 0 50%);transform-origin:50% 65%;animation:halloweenWingRight var(--flap) ease-in-out infinite}
.halloween-bat-center{clip-path:inset(0 33% 0 33%)}
.halloween-ghost-body img{animation:halloweenGhostBob 3.6s ease-in-out infinite}
.halloween-fall-lane{position:absolute;top:0;bottom:0;overflow:hidden;pointer-events:none}
.halloween-central{opacity:.1!important}
.halloween-over-content{opacity:.12!important;transition:opacity .45s ease}
.halloween-decoration{position:absolute;opacity:.88}
.halloween-decoration.candle{filter:drop-shadow(0 0 6px #ffad3844)}
.halloween-spider{top:var(--thread);animation:halloweenSpiderSwing var(--duration) var(--delay) ease-in-out infinite;transform-origin:50% calc(-1*var(--thread));opacity:.65}
.halloween-thread{position:absolute;left:50%;bottom:100%;width:1px;height:var(--thread);background:linear-gradient(#ffffff08,#ffffff66)}
@keyframes halloweenSpiderSwing{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(7deg)}}
.halloween-paused,.halloween-paused *{animation-play-state:paused!important}
@keyframes halloweenFall{0%{transform:translate3d(0,0,0) rotate(var(--start-turn))}100%{transform:translate3d(var(--drift),calc(100vh + 200px),0) rotate(var(--turn))}}
@keyframes halloweenWingLeft{0%,100%{transform:rotate(-4deg) scaleY(1)}50%{transform:rotate(16deg) scaleY(.42)}}
@keyframes halloweenWingRight{0%,100%{transform:rotate(4deg) scaleY(1)}50%{transform:rotate(-16deg) scaleY(.42)}}
@keyframes halloweenGhostBob{0%,100%{transform:translateY(-8px) rotate(-4deg)}50%{transform:translateY(9px) rotate(4deg)}}
@media(max-width:600px){.halloween-falling{opacity:.55}.halloween-bat,.halloween-ghost{opacity:.65}}
@media(prefers-reduced-motion:reduce){.halloween-art-layer{display:none}}
.display-reduce .halloween-art-layer{display:none}
