.halloween-rain{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:5;contain:layout style paint}
.halloween-pumpkin{position:absolute;top:-52px;left:var(--left);width:var(--size);height:auto;opacity:.7;filter:drop-shadow(0 3px 3px #0002);animation:pumpkin-fall var(--duration) linear var(--delay) infinite}
@keyframes pumpkin-fall{0%{transform:translate3d(0,-50px,0) rotate(-12deg);opacity:0}8%{opacity:.7}85%{opacity:.7}100%{transform:translate3d(var(--drift),calc(100vh + 110px),0) rotate(300deg);opacity:0}}
.halloween-ghost{position:fixed;left:0;top:0;z-index:6;width:46px;height:53px;pointer-events:none;opacity:0;transform:translate3d(-100px,-100px,0);filter:drop-shadow(0 6px 8px #0003);transition:opacity .3s ease;will-change:transform}
.halloween-ghost.is-visible{opacity:.9}
.halloween-audio{appearance:none;position:absolute;right:calc(100% + 12px);bottom:8px;display:flex;align-items:center;justify-content:center;gap:6px;min-width:92px;min-height:52px;padding:8px 10px;border:2px solid #a4131c;border-radius:999px;background:#fff;color:#7f0c14;box-shadow:0 5px 20px #0002;font:700 13px Arial,Helvetica,sans-serif;line-height:1.1;white-space:nowrap;cursor:pointer}
.halloween-audio:hover,.halloween-audio:focus-visible{background:#fff2ed;outline-color:#a4131c}
.halloween-audio[aria-pressed="true"]{background:#a4131c;color:#fff}
@keyframes ghost-roam{0%{transform:translate3d(0,-90px,0) rotate(-8deg)}25%{transform:translate3d(34vw,27vh,0) rotate(12deg)}50%{transform:translate3d(-4vw,52vh,0) rotate(-12deg)}75%{transform:translate3d(30vw,76vh,0) rotate(10deg)}100%{transform:translate3d(0,calc(100vh + 100px),0) rotate(-8deg)}}
.halloween-ghost.is-roaming{display:block;left:19vw;top:-70px;width:38px;height:44px;opacity:.85;transition:none;animation:ghost-roam 11s linear -3s infinite}
@media(max-width:600px){.halloween-pumpkin{opacity:.5}.halloween-audio{right:calc(100% + 8px);bottom:7px;min-width:94px;min-height:50px;padding:6px 10px}}
@media(prefers-reduced-motion:reduce){.halloween-rain,.halloween-ghost{display:none!important}}
