.halloween-bat-swarm{z-index:70;pointer-events:none;position:fixed;inset:0;overflow:hidden}.halloween-bat{left:0;top:var(--halloween-bat-top);width:var(--halloween-bat-size);color:#2a1740;animation:halloween-bat-flight var(--halloween-bat-duration) linear var(--halloween-bat-delay) both;position:absolute}.dark .halloween-bat{color:#c4b5fd}.halloween-bat svg{transform-origin:50% 45%;width:100%;height:auto;animation:.17s ease-in-out infinite alternate halloween-bat-flap;display:block}@keyframes halloween-bat-flight{0%{transform:translate(-12vw)}25%{transform:translate(22vw, calc(var(--halloween-bat-wave) * -1))}50%{transform:translate(52vw, var(--halloween-bat-wave))}75%{transform:translate(82vw, calc(var(--halloween-bat-wave) * -1))}to{transform:translate(112vw, var(--halloween-bat-wave))}}@keyframes halloween-bat-flap{0%{transform:scaleY(1)}to{transform:scaleY(.35)}}.halloween-boo-ghost{z-index:70;pointer-events:none;width:min(18rem,48vw);animation:2.8s cubic-bezier(.2,.8,.2,1) both halloween-ghost-peek;position:fixed;bottom:0;left:2rem}.halloween-boo-ghost img{width:100%;height:auto;display:block}.halloween-boo-bubble{background:var(--card);color:var(--foreground);white-space:nowrap;border:4px solid #f97316;border-radius:9999px;padding:.3rem 1.3rem;font-size:clamp(1.5rem,5vw,2.6rem);font-weight:800;animation:2.8s both halloween-boo-bubble;position:absolute;top:0;left:68%;box-shadow:0 10px 30px #00000038}@keyframes halloween-ghost-peek{0%{transform:translateY(110%)rotate(-6deg)}22%{transform:translateY(6%)rotate(3deg)}30%{transform:translateY(12%)rotate(-2deg)}76%{transform:translateY(12%)rotate(1deg)}to{transform:translateY(110%)rotate(-4deg)}}@keyframes halloween-boo-bubble{0%,22%{opacity:0;transform:translateY(-30%)scale(.6)}30%{opacity:1;transform:translateY(-30%)scale(1.08)}36%,72%{opacity:1;transform:translateY(-30%)scale(1)}82%,to{opacity:0;transform:translateY(-30%)scale(1)}}.halloween-banner-stack{z-index:90;pointer-events:none;flex-direction:column;gap:.75rem;width:min(92vw,42rem);display:flex;position:fixed;top:4.75rem;left:50%;transform:translate(-50%)}.halloween-banner{background:var(--card);color:var(--foreground);pointer-events:auto;border:4px solid #f97316;border-radius:1.25rem;align-items:center;gap:1.1rem;padding:1.1rem 3rem 1.1rem 1.25rem;animation:.55s cubic-bezier(.2,1.4,.3,1) both halloween-banner-drop;display:flex;position:relative;box-shadow:0 22px 60px #0000004d}.halloween-banner-ghost{flex-shrink:0;width:5.5rem;height:auto;animation:2.4s ease-in-out infinite alternate halloween-ghost-bob}.halloween-banner-title{color:#ea580c;font-size:2rem;font-weight:800;line-height:1.15}.dark .halloween-banner-title{color:#fb923c}.halloween-banner-body{margin-top:.35rem;font-size:1.3rem;line-height:1.4}.halloween-banner-close{color:var(--muted-foreground);border-radius:9999px;padding:.35rem;position:absolute;top:.6rem;right:.6rem}.halloween-banner-close:hover{background:var(--muted);color:var(--foreground)}@keyframes halloween-banner-drop{0%{opacity:0;transform:translateY(-140%)}to{opacity:1;transform:translateY(0)}}.halloween-ghost-crowd{z-index:70;pointer-events:none;animation:1.6s ease-out both halloween-crowd-arrive;position:fixed;inset:0;overflow:hidden}.halloween-wandering-ghost{width:var(--halloween-ghost-size);animation:halloween-ghost-wander var(--halloween-ghost-duration) ease-in-out var(--halloween-ghost-delay) infinite alternate;position:absolute;top:0;left:0}.halloween-wandering-ghost-body img{width:100%;height:auto;animation:2.6s ease-in-out infinite alternate halloween-ghost-bob;display:block}.halloween-ghost-crowd[data-fleeing] .halloween-wandering-ghost-body{animation:.6s ease-in forwards halloween-crowd-flee}@keyframes halloween-ghost-wander{0%{transform:translate(var(--halloween-ghost-x0), var(--halloween-ghost-y0))}33%{transform:translate(var(--halloween-ghost-x1), var(--halloween-ghost-y1))}66%{transform:translate(var(--halloween-ghost-x2), var(--halloween-ghost-y2))}to{transform:translate(var(--halloween-ghost-x3), var(--halloween-ghost-y3))}}@keyframes halloween-crowd-arrive{0%{opacity:0}to{opacity:1}}@keyframes halloween-crowd-flee{to{opacity:0;translate:0 -60px;scale:.3}}@keyframes halloween-ghost-bob{0%{transform:translateY(-10px)rotate(-3deg)}to{transform:translateY(10px)rotate(3deg)}}.halloween-bug-spider{pointer-events:none;transform-origin:50% 0;flex-direction:column;align-items:center;width:18px;margin-left:-9px;transition:margin-left .38s cubic-bezier(.2,.8,.2,1);animation:3.2s ease-in-out infinite alternate halloween-spider-sway;display:flex;position:absolute;top:-48px;left:50%}.halloween-bug-spider-thread{background:linear-gradient(to bottom, transparent, var(--muted-foreground));width:1px;height:26px;transition:height .38s cubic-bezier(.2,.8,.2,1)}[data-bug-report-floating-button]:has(>button:hover) .halloween-bug-spider-thread{height:3px}.halloween-bug-spider-body{color:#1f1f1f;cursor:default;pointer-events:auto;background:0 0;border:0;border-radius:9999px;width:18px;height:18px;padding:0;display:block}.dark .halloween-bug-spider-body{color:#e8edf2}.halloween-bug-spider-body:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.halloween-bug-spider-body svg{width:18px;height:18px;display:block}.halloween-bug-spider[data-tries="1"]{margin-left:-44px}.halloween-bug-spider[data-tries="1"] .halloween-bug-spider-thread{animation:.7s ease-out halloween-spider-scurry-a}.halloween-bug-spider[data-tries="2"]{margin-left:24px}.halloween-bug-spider[data-tries="2"] .halloween-bug-spider-thread{animation:.7s ease-out halloween-spider-scurry-b}.halloween-bug-spider[data-tries="3"] .halloween-bug-spider-thread{height:30px}.halloween-bug-spider-caught{background:var(--card);color:var(--foreground);white-space:nowrap;border:2px solid #f97316;border-radius:9999px;padding:.15rem .6rem;font-size:.8rem;font-weight:700;animation:4.5s both halloween-spider-caught;position:absolute;top:26px;right:calc(100% + 8px);box-shadow:0 6px 18px #0000002e}@keyframes halloween-spider-sway{0%{transform:rotate(-7deg)}to{transform:rotate(7deg)}}@keyframes halloween-spider-scurry-a{30%{height:3px}}@keyframes halloween-spider-scurry-b{30%{height:3px}}@keyframes halloween-spider-caught{0%{opacity:0;transform:scale(.6)}10%,80%{opacity:1;transform:scale(1)}to{opacity:0}}.halloween-moon{color:#fde68a;cursor:default;filter:drop-shadow(0 0 6px #fde68a8c);opacity:.8;background:0 0;border:0;border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;margin-left:.5rem;padding:0;transition:opacity .2s,transform .6s cubic-bezier(.2,1.4,.3,1),filter .3s}.halloween-moon svg{width:1.05rem;height:1.05rem}.halloween-moon:hover{opacity:1}.halloween-moon:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.halloween-moon[data-risen]{filter:drop-shadow(0 0 14px #fde68af2);opacity:1;transform:scale(1.5)}.halloween-maze-trigger{cursor:default;background:0 0;border:0;border-radius:1rem;padding:0;position:absolute;inset:0}.halloween-maze-trigger:focus-visible{outline:2px solid var(--ring);outline-offset:4px}.halloween-maze{--halloween-maze-light-x:-999px;--halloween-maze-light-y:-999px;z-index:80;overscroll-behavior:contain;touch-action:none;-webkit-user-select:none;user-select:none;background:#030208;outline:none;animation:.45s ease-out both halloween-lights-fall;position:fixed;inset:0;overflow:hidden}.halloween-maze[data-phase=playing]{cursor:none}.halloween-maze-board{background:radial-gradient(circle at 50% 40%,#1d1033,#0b0614 75%);border-radius:6px;position:absolute}.halloween-maze-board svg{filter:drop-shadow(0 0 5px #a78bfabf);display:block;overflow:visible}.halloween-maze-walls{fill:none;stroke:#a78bfa;stroke-width:.14px;stroke-linecap:square}.halloween-maze-darkness{pointer-events:none;-webkit-mask-image:radial-gradient(circle at var(--halloween-maze-light-x) var(--halloween-maze-light-y), transparent 0, transparent var(--halloween-maze-light-clear), black var(--halloween-maze-light-dark));-webkit-mask-image:radial-gradient(circle at var(--halloween-maze-light-x) var(--halloween-maze-light-y), transparent 0, transparent var(--halloween-maze-light-clear), black var(--halloween-maze-light-dark));mask-image:radial-gradient(circle at var(--halloween-maze-light-x) var(--halloween-maze-light-y), transparent 0, transparent var(--halloween-maze-light-clear), black var(--halloween-maze-light-dark));background:#030208;transition:opacity .7s ease-out;position:absolute;inset:0}.halloween-maze[data-phase=escaped] .halloween-maze-darkness{opacity:0}.halloween-maze-marker{pointer-events:none;filter:drop-shadow(0 0 10px #fb923ce6);font-size:2rem;line-height:1;position:absolute;transform:translate(-50%,-50%)}.halloween-maze-exit{filter:drop-shadow(0 0 12px #facc15f2);animation:1.8s ease-in-out infinite alternate halloween-exit-glow}.halloween-maze-player{top:var(--halloween-maze-light-y);left:var(--halloween-maze-light-x);pointer-events:none;background:#fdba74;border-radius:9999px;width:14px;height:14px;margin:-7px 0 0 -7px;position:absolute;box-shadow:0 0 14px 5px #fb923ccc}.halloween-maze-heading{color:#f5f3ff;pointer-events:none;text-align:center;padding:1rem 6rem .5rem;position:absolute;top:0;left:0;right:0}.halloween-maze-title{color:#fb923c;letter-spacing:.06em;text-shadow:0 0 14px #fb923c99;text-transform:uppercase;font-size:1.6rem;font-weight:800}.halloween-maze-instructions{color:#ddd6fe;margin-top:.25rem;font-size:1rem}.halloween-maze-score{color:#a78bfa;font-variant-numeric:tabular-nums;margin-top:.2rem;font-size:.9rem}.halloween-maze-leave{color:#ddd6fe;cursor:pointer;background:#1e1030d9;border:1px solid #a78bfa80;border-radius:9999px;align-items:center;gap:.35rem;padding:.45rem .8rem;font-size:.9rem;display:inline-flex;position:absolute;top:1rem;right:1rem}.halloween-maze-leave:hover{background:#3c1e5af2}.halloween-maze-boo{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;animation:.9s ease-out both halloween-maze-boo;display:flex;position:absolute;inset:0}.halloween-maze-boo img{width:min(22rem,60vw);height:auto}.halloween-maze-boo span{color:#fb923c;text-shadow:0 0 30px #fb923ccc;margin-top:-1rem;font-size:clamp(3rem,12vw,7rem);font-weight:900}.halloween-maze-escaped{color:#f5f3ff;text-align:center;background:#180c28f0;border:3px solid #fb923c;border-radius:1.25rem;flex-direction:column;gap:.75rem;width:min(92vw,26rem);padding:1.5rem;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 40px #fb923c73}.halloween-maze-button{color:#1c0f02;cursor:pointer;background:#fb923c;border-radius:9999px;padding:.5rem 1.1rem;font-weight:700}.halloween-maze-button:hover{background:#fdba74}@media (max-width:767px){.halloween-maze-heading{text-align:left;padding:.75rem 5.5rem .25rem .75rem}.halloween-maze-title{font-size:1.15rem}.halloween-maze-instructions{font-size:.85rem}.halloween-maze-marker{font-size:1.4rem}.halloween-maze-leave{top:.75rem;right:.75rem}}@keyframes halloween-lights-fall{0%{opacity:0}to{opacity:1}}@keyframes halloween-exit-glow{0%{opacity:.7}to{opacity:1}}@keyframes halloween-maze-boo{0%{opacity:0;transform:scale(.4)}18%{opacity:1;transform:scale(1.08)}30%{transform:scale(1)}75%{opacity:1}to{opacity:0;transform:scale(1.1)}}.halloween-not-found-ghost{animation:2.4s ease-in-out infinite alternate halloween-ghost-bob}@media (prefers-reduced-motion:reduce){.halloween-bat-swarm,.halloween-ghost-crowd{display:none}.halloween-boo-ghost{animation-name:halloween-fade-in-out;transform:translateY(12%)}.halloween-banner{animation:none}.halloween-maze-boo{animation-name:halloween-fade-in-out}.halloween-banner-ghost,.halloween-bug-spider,.halloween-bug-spider-thread,.halloween-maze-exit,.halloween-not-found-ghost{animation:none}.halloween-bug-spider,.halloween-bug-spider-thread,.halloween-moon{transition:none}}@keyframes halloween-fade-in-out{0%{opacity:0}15%,80%{opacity:1}to{opacity:0}}@media print{.halloween-bat-swarm,.halloween-boo-ghost,.halloween-banner-stack,.halloween-ghost-crowd,.halloween-bug-spider,.halloween-maze{display:none}}