.luca-halloween{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:25;contain:strict}
.luca-bat{position:absolute;left:0;top:0;width:66px;opacity:0;animation:luca-bat-flight 24s linear infinite;--height:22vh;--dip:36vh;--rise:16vh;--delay:0s;animation-delay:var(--delay)}
.luca-bat svg{width:100%;overflow:visible;fill:#231b29;stroke:#df8a37;stroke-width:.8;filter:drop-shadow(0 0 3px #ed8d3659)}
.luca-bat-wings{transform-origin:60px 30px;animation:luca-bat-flap .38s ease-in-out infinite alternate}
.luca-bat-1{width:44px;--height:29vh;--dip:40vh;--rise:23vh;--delay:1.1s}
.luca-bat-2{width:54px;--height:66vh;--dip:51vh;--rise:61vh;--delay:12s;animation-direction:reverse}
.luca-bat-3{width:36px;--height:60vh;--dip:46vh;--rise:55vh;--delay:13s;animation-direction:reverse}
@keyframes luca-bat-flight{0%{opacity:0;transform:translate(-100px,var(--height)) rotate(-9deg)}3%{opacity:.92}14%{transform:translate(30vw,var(--dip)) rotate(8deg)}27%{transform:translate(68vw,var(--rise)) rotate(-8deg)}38%{opacity:.92}42%,100%{opacity:0;transform:translate(calc(100vw + 100px),var(--height)) rotate(7deg)}}
@keyframes luca-bat-flap{from{transform:scaleY(1)}to{transform:scaleY(.35)}}
.luca-halloween.paused *{animation-play-state:paused!important}
@media(max-width:600px){.luca-bat{width:50px}.luca-bat-1{width:33px}.luca-bat-2{width:42px}.luca-bat-3{width:29px}}
@media(prefers-reduced-motion:reduce){.luca-halloween{display:none}}
@media print{.luca-halloween{display:none}}

/* Halloween accents: entirely decorative, never capture taps. */
.luca-web{position:absolute;top:0;width:clamp(55px,9vw,115px);opacity:.37;pointer-events:none}
.luca-web-left{left:0}.luca-web-right{right:0;transform:scaleX(-1)}
.luca-web svg{width:100%;display:block}
.luca-witch{position:absolute;top:0;left:0;width:116px;opacity:0;animation:luca-witch-flight 34s linear 6s infinite;filter:drop-shadow(0 0 4px #df8a373d)}
.luca-witch svg{width:100%;display:block}
@keyframes luca-witch-flight{0%{opacity:0;transform:translate(calc(100vw + 130px),18vh) rotate(-5deg)}3%{opacity:.95}12%{transform:translate(65vw,24vh) rotate(5deg)}24%{transform:translate(28vw,13vh) rotate(-5deg)}34%{opacity:.95}38%,100%{opacity:0;transform:translate(-170px,21vh) rotate(3deg)}}
header{position:relative}
.luca-pumpkins{position:absolute;bottom:-12px;right:8px;display:flex;align-items:flex-end;pointer-events:none;gap:0}
.luca-pumpkins svg{width:54px;filter:drop-shadow(0 3px 7px #0009)}
.luca-pumpkins svg+svg{width:38px;margin-left:-12px;transform:rotate(9deg)}
.luca-pumpkin-light{animation:luca-lantern-glow 3s ease-in-out infinite alternate}
@keyframes luca-lantern-glow{from{opacity:.7}to{opacity:1;filter:drop-shadow(0 0 3px #ffdb75)}}
@media(max-width:600px){.luca-witch{width:88px}.luca-pumpkins svg{width:39px}.luca-pumpkins svg+svg{width:29px}.luca-pumpkins{bottom:-9px}}
@media(prefers-reduced-motion:reduce){.luca-pumpkin-light{animation:none}}
@media print{.luca-pumpkins{display:none}}

/* Forward-facing witches, brighter white webs, and pumpkin clusters. */
.luca-web{opacity:.82;filter:drop-shadow(0 1px 2px #0009)}
.luca-witch>svg{transform:scaleX(-1)}
.luca-witch-second{width:94px;animation:luca-witch-return 34s linear 9s infinite}
.luca-witch-second>svg{transform:none}
@keyframes luca-witch-return{0%{opacity:0;transform:translate(-170px,43vh) rotate(4deg)}3%{opacity:.95}12%{transform:translate(28vw,36vh) rotate(-4deg)}24%{transform:translate(65vw,46vh) rotate(4deg)}34%{opacity:.95}38%,100%{opacity:0;transform:translate(calc(100vw + 130px),38vh) rotate(-3deg)}}
.luca-pumpkins svg:nth-child(3){width:44px;margin-left:-10px;transform:rotate(-7deg)}
.luca-season-host{position:relative}
.luca-pumpkins-extra{position:relative;bottom:auto;right:auto;justify-content:center;margin:12px auto 0;grid-column:1/-1;width:max-content;max-width:100%}
.luca-pumpkins-extra svg{width:62px}
.luca-pumpkins-extra svg+svg{width:45px}
.luca-pumpkins-extra svg:nth-child(3){width:53px}
@media(max-width:600px){.luca-witch-second{width:75px}.luca-pumpkins svg:nth-child(3){width:32px}.luca-pumpkins-extra svg{width:48px}.luca-pumpkins-extra svg+svg{width:35px}.luca-pumpkins-extra svg:nth-child(3){width:41px}}

/* White bat outlines, falling jack-o-lanterns and Halloween string lights. */
.luca-bat svg{stroke:#fff;stroke-width:1.5;paint-order:stroke fill;filter:drop-shadow(0 0 2px #ffffff75)}
.luca-pumpkin-drop{position:absolute;top:-65px;left:var(--x);width:var(--size);opacity:0;animation:luca-pumpkin-rain var(--duration) linear var(--delay) infinite;filter:drop-shadow(0 0 5px #ef7b2638)}
.luca-pumpkin-drop svg{display:block;width:100%}
@keyframes luca-pumpkin-rain{0%{opacity:0;transform:translate3d(0,0,0) rotate(-15deg)}8%{opacity:.85}45%{transform:translate3d(var(--sway),48vh,0) rotate(14deg)}88%{opacity:.85}100%{opacity:0;transform:translate3d(0,calc(100vh + 100px),0) rotate(-18deg)}}
.luca-spooky-lights{position:absolute;top:0;left:0;right:0;height:32px;display:flex;justify-content:space-around;align-items:flex-start;border-top:2px solid #77717e;pointer-events:none}
.luca-spooky-bulb{display:block;position:relative;flex:none;width:9px;height:15px;border-radius:40% 40% 50% 50%;margin-top:6px;background:#ff9b28;color:#ff8525;box-shadow:0 0 7px 2px currentColor,0 0 19px 3px #ff85253d;animation:luca-light-breathe 4s ease-in-out var(--pulse-delay) infinite alternate;transform:rotate(-8deg)}
.luca-spooky-bulb::before{content:'';position:absolute;top:-6px;left:2px;width:5px;height:7px;background:#6f6478;border-radius:1px}
.luca-spooky-bulb:nth-child(even){background:#c889ff;color:#a94cfa;box-shadow:0 0 7px 2px currentColor,0 0 19px 3px #a94cfa44;margin-top:10px;transform:rotate(8deg)}
.luca-spooky-bulb:nth-child(even)::before{height:11px;top:-10px}
@keyframes luca-light-breathe{from{opacity:.65}to{opacity:1}}
@media(max-width:600px){.luca-pumpkin-drop:nth-of-type(3n){display:none}.luca-spooky-bulb{width:7px;height:12px}.luca-spooky-bulb:nth-child(3n){display:none}}
