/* Halloween 2026 – Schleim-Intro und versteckte Kürbisse (nur 31.10. bis Mo 02.11.2026 18:00, assets/halloween.js) */
html.hw-lock{overflow:hidden}
.hw-ov{position:fixed;inset:0;z-index:100000;background:transparent;cursor:pointer;transition:opacity .4s}
.hw-ov.hw-aus{opacity:0;pointer-events:none}
.hw-cv{position:absolute;inset:0;width:100%;height:100%;display:block;filter:url(#hw-goo) drop-shadow(0 14px 22px rgba(0,0,0,.45))}
@supports not (filter:url(#x)){.hw-cv{filter:drop-shadow(0 14px 22px rgba(0,0,0,.45))}}
.hw-txt{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%) scale(.6);opacity:0;text-align:center;color:#06110a;pointer-events:none;transition:transform .45s cubic-bezier(.2,1.4,.4,1),opacity .35s}
.hw-txt.an{opacity:1;transform:translate(-50%,-50%) scale(1)}
.hw-txt.weg{opacity:0;transform:translate(-50%,-30%) scale(1.05);transition:opacity .3s,transform .5s}
.hw-h{display:block;font:900 clamp(44px,11vw,120px)/0.95 "Big Shoulders Display",Impact,sans-serif;text-transform:uppercase;letter-spacing:.02em;text-shadow:0 2px 0 #9dff5a,0 10px 30px rgba(0,0,0,.35)}
.hw-s{display:block;margin-top:14px;font:700 clamp(15px,2.4vw,24px)/1.2 Archivo,system-ui,sans-serif}
.hw-skip{position:absolute;right:16px;bottom:max(16px,env(safe-area-inset-bottom));padding:10px 18px;border:1px solid rgba(255,255,255,.5);border-radius:999px;background:rgba(0,0,0,.55);color:#fff;font:600 14px Archivo,system-ui,sans-serif;cursor:pointer;z-index:2}
.hw-skip:focus-visible{outline:2px solid #9dff5a;outline-offset:2px}

.hw-wrap{position:absolute;left:0;top:0;width:100%;pointer-events:none;z-index:5;overflow:hidden}
.hw-d{position:absolute;width:calc(56px * var(--s,1));height:calc(56px * var(--s,1));pointer-events:none;opacity:.85;filter:drop-shadow(0 4px 10px rgba(0,0,0,.4));animation-delay:var(--d,0s)}
.hw-d svg{width:100%;height:100%;display:block;overflow:visible}
.hw-d-k{animation:hw-bob 3.6s ease-in-out infinite}
.hw-d-k .hw-face{animation:hw-flicker 2.6s ease-in-out infinite;animation-delay:var(--d,0s)}
.hw-d-g{opacity:.75;animation:hw-geist-schweb 5s ease-in-out infinite}
.hw-d-f{width:calc(64px * var(--s,1));height:calc(30px * var(--s,1));opacity:.8;animation:hw-flattern 4.5s ease-in-out infinite}
.hw-d-f svg{animation:hw-fluegel .5s ease-in-out infinite}
@keyframes hw-bob{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-8px) rotate(4deg)}}
@keyframes hw-flicker{0%,100%{opacity:.85}45%{opacity:1}55%{opacity:.7}}
@keyframes hw-geist-schweb{0%,100%{transform:translate(0,0) rotate(-3deg)}50%{transform:translate(6px,-16px) rotate(4deg)}}
@keyframes hw-flattern{0%,100%{transform:translate(0,0)}30%{transform:translate(-22px,-18px)}60%{transform:translate(14px,-30px)}}
@keyframes hw-fluegel{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.6)}}
@media (prefers-reduced-motion:reduce){.hw-d,.hw-d svg,.hw-d .hw-face{animation:none}}
.hw-geist{position:fixed;left:-160px;width:120px;z-index:100001;cursor:pointer;animation:hw-fliegen 8.5s ease-in-out forwards;filter:drop-shadow(0 10px 24px rgba(0,0,0,.45))}
.hw-geist.hw-von-links{left:auto;right:-160px;animation-name:hw-fliegen-l}
.hw-geist svg{width:100%;display:block;animation:hw-schweben 1.6s ease-in-out infinite}
.hw-geist .hw-gk{opacity:.96}
.hw-geist .hw-buh{position:absolute;left:50%;top:-14px;transform:translate(-50%,-100%) scale(.6);white-space:nowrap;padding:8px 14px;border-radius:14px;background:#fff;color:#1a1f2b;font:700 15px Archivo,system-ui,sans-serif;opacity:0;animation:hw-buh 8.5s ease-in-out forwards;box-shadow:0 8px 20px rgba(0,0,0,.3)}
.hw-geist .hw-buh:after{content:"";position:absolute;left:50%;bottom:-7px;width:14px;height:14px;background:#fff;transform:translateX(-50%) rotate(45deg)}
.hw-geist.hw-g-weg{animation:hw-g-weg .5s ease-in forwards}
@keyframes hw-fliegen{0%{transform:translateX(0) rotate(-6deg)}18%{transform:translateX(calc(30vw + 160px)) rotate(6deg)}40%{transform:translateX(calc(42vw + 160px)) rotate(-4deg)}60%{transform:translateX(calc(44vw + 160px)) rotate(4deg)}100%{transform:translateX(calc(100vw + 340px)) rotate(-8deg)}}
@keyframes hw-fliegen-l{0%{transform:translateX(0) rotate(6deg)}18%{transform:translateX(calc(-30vw - 160px)) rotate(-6deg)}40%{transform:translateX(calc(-42vw - 160px)) rotate(4deg)}60%{transform:translateX(calc(-44vw - 160px)) rotate(-4deg)}100%{transform:translateX(calc(-100vw - 340px)) rotate(8deg)}}
@keyframes hw-schweben{0%,100%{translate:0 0}50%{translate:0 -12px}}
@keyframes hw-buh{0%,25%{opacity:0;transform:translate(-50%,-100%) scale(.6)}33%,62%{opacity:1;transform:translate(-50%,-100%) scale(1)}72%,100%{opacity:0;transform:translate(-50%,-120%) scale(.8)}}
@keyframes hw-g-weg{to{opacity:0;transform:scale(1.4) translateY(-40px)}}
@media (max-width:600px){.hw-geist{width:90px}}
@media (prefers-reduced-motion:reduce){.hw-geist{animation:none;left:50%;right:auto;margin-left:-60px;opacity:1}.hw-geist svg{animation:none}.hw-geist .hw-buh{animation:none;opacity:1;transform:translate(-50%,-100%)}}
