.halloween-scene-frame{position:fixed;inset:0;z-index:9999;width:100%;height:100%;border:0;background:#07080b}.halloween-scene-open{overflow:hidden}.halloween-bat-flight{position:fixed;inset:0;z-index:10000;overflow:hidden;pointer-events:none;background:#0000;animation:halloween-nightfall 1.4s ease-in forwards}.halloween-flying-bat{position:absolute;left:var(--sx);top:var(--sy);width:var(--size);height:calc(var(--size)*.7);color:#81788d;filter:drop-shadow(0 0 13px #b7a7ca99);animation:halloween-bat-swarm 1.35s cubic-bezier(.22,.62,.2,1) var(--delay) both}.halloween-flying-bat svg{display:block;width:100%;height:100%;animation:halloween-bat-flap .13s ease-in-out infinite alternate}.halloween-bat-flight-away{animation:halloween-reveal-scene .26s ease-out forwards}@keyframes halloween-bat-swarm{0%{transform:translate(-50%,-50%) scale(.08) rotate(-8deg);opacity:0}8%{opacity:1}100%{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(var(--grow));opacity:1;color:#000;filter:drop-shadow(0 0 0 #0000)}}@keyframes halloween-nightfall{0%{background-color:#0000}82%{background-color:#0008}100%{background-color:#000}}@keyframes halloween-reveal-scene{to{opacity:0}}@keyframes halloween-bat-flap{from{transform:scaleY(.68)}to{transform:scaleY(1.1)}}@media(prefers-reduced-motion:reduce){.halloween-bat-flight,.halloween-flying-bat,.halloween-flying-bat svg{animation-duration:.01ms!important;animation-delay:0ms!important}}
