.haunted-scene,.haunted-pet{--haunt-edge:calc(var(--spacing) * 4);--haunt-string-width:1px;--haunt-hinge-angle:9deg;--haunt-counter-angle:-9deg;--haunt-nudge:calc(var(--spacing) * 3);--haunt-moon-size:calc(var(--spacing) * 14);--haunt-moon-string:calc(var(--spacing) * 7);--haunt-moon-x:82%;--haunt-ghost-size:calc(var(--spacing) * 8);--haunt-skeleton-width:calc(var(--spacing) * 45);--haunt-skeleton-height:calc(var(--spacing) * 50);--haunt-skeleton-bottom:calc(var(--spacing) * 17);--haunt-cat-size:calc(var(--spacing) * 24);--haunt-paper-ease:cubic-bezier(.45, 0, .55, 1);--haunt-flight-x:calc(var(--spacing) * 14);--haunt-flight-y:calc(var(--spacing) * 7);--haunt-drift:calc(var(--spacing) * 6);--haunt-rise:calc(var(--spacing) * -80)}.haunted-scene{z-index:1;pointer-events:none;color:var(--campaign);contain:layout paint;position:absolute;inset:0;overflow:clip}.haunted-moon{top:var(--haunt-moon-string);left:var(--haunt-moon-x);width:var(--haunt-moon-size);height:var(--haunt-moon-size);transform-origin:center calc(var(--haunt-moon-string) * -1);animation:haunted-paper-sway 4s var(--haunt-paper-ease) infinite alternate;position:absolute}.haunted-moon:before{content:"";height:var(--haunt-moon-string);border-left:var(--haunt-string-width) dashed var(--campaign);position:absolute;bottom:100%;left:50%}.haunted-moon svg{width:100%;height:100%}.haunted-paper-bat{width:100%;height:100%;display:block;overflow:visible}.haunted-bat{--bat-x:7%;--bat-y:8%;--bat-size:calc(var(--spacing) * 15);--bat-angle:-14deg;--bat-flight-time:9s;--bat-flight-delay:-2s;--bat-flap-time:.46s;left:var(--bat-x);top:var(--bat-y);width:var(--bat-size);aspect-ratio:2;rotate:var(--bat-angle);animation:haunted-bat-flight var(--bat-flight-time) var(--haunt-paper-ease) var(--bat-flight-delay) infinite;position:absolute}.haunted-bat-wing{transform-box:fill-box;animation:haunted-wing-flap var(--bat-flap-time) ease-in-out infinite alternate}.haunted-bat-wing-left{transform-origin:100%}.haunted-bat-wing-right{transform-origin:0;animation-delay:-80ms}.haunted-bat:nth-child(2){--bat-x:17%;--bat-y:3%;--bat-size:calc(var(--spacing) * 9);--bat-angle:12deg;--bat-flight-time:12s;--bat-flight-delay:-7s;--bat-flap-time:.34s}.haunted-bat:nth-child(3){--bat-x:24%;--bat-y:11%;--bat-size:calc(var(--spacing) * 7);--bat-angle:-8deg;--bat-flight-time:10s;--bat-flight-delay:-5s;--bat-flap-time:.39s}.haunted-bat:nth-child(4){--bat-x:72%;--bat-y:5%;--bat-size:calc(var(--spacing) * 9);--bat-angle:16deg;--bat-flight-time:13s;--bat-flight-delay:-9s;--bat-flap-time:.32s}.haunted-bat:nth-child(5){--bat-x:88%;--bat-y:20%;--bat-size:calc(var(--spacing) * 7);--bat-angle:-20deg;--bat-flight-time:11s;--bat-flight-delay:-4s;--bat-flap-time:.42s}.haunted-bat:nth-child(6){--bat-x:4%;--bat-y:63%;--bat-size:calc(var(--spacing) * 8);--bat-angle:10deg;--bat-flight-time:14s;--bat-flight-delay:-6s;--bat-flap-time:.36s}.haunted-ghost{width:var(--haunt-ghost-size);height:var(--haunt-ghost-size);color:var(--foreground);opacity:.75;animation:haunted-ghost-float 7s var(--haunt-paper-ease) infinite;position:absolute}.haunted-ghost-left{top:58%;left:8%}.haunted-ghost-right{animation-delay:-3.5s;display:none;top:34%;right:4%}.haunted-skeleton{right:0;bottom:var(--haunt-skeleton-bottom);width:var(--haunt-skeleton-width);height:var(--haunt-skeleton-height);transform-origin:50% 90%;animation:haunted-skeleton-rock 5s var(--haunt-paper-ease) infinite;position:absolute}.haunted-skeleton img{transform-origin:bottom;animation:haunted-skeleton-breathe 3.4s var(--haunt-paper-ease) infinite alternate}.haunted-candles{--candle-width:calc(var(--spacing) * 2);--candle-height:calc(var(--spacing) * 8);--candle-flame-height:calc(var(--spacing) * 2);bottom:calc(var(--spacing) * 5);gap:calc(var(--spacing) * 2);height:calc(var(--spacing) * 12);align-items:end;display:flex;position:absolute;left:48%}.haunted-candle{width:var(--candle-width);height:var(--candle-height);border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--foreground);display:block;position:relative}.haunted-candle:nth-child(2){--candle-height:calc(var(--spacing) * 11)}.haunted-candle:nth-child(3){--candle-height:calc(var(--spacing) * 6)}.haunted-candle:before{content:"";bottom:calc(100% + var(--spacing));width:var(--candle-width);height:var(--candle-flame-height);background:var(--campaign);transform-origin:bottom;border-radius:60% 40% 50% 50%;animation:.68s ease-in-out infinite alternate haunted-flame-flicker;position:absolute}.haunted-candle:nth-child(2):before{animation-duration:.53s;animation-delay:-170ms}.haunted-candle:nth-child(3):before{animation-duration:.79s;animation-delay:-420ms}.haunted-candle:after{content:"";top:calc(var(--spacing) * 2);left:var(--spacing);width:var(--spacing);height:calc(var(--spacing) * 3);background:var(--foreground);border-radius:var(--radius-sm);transform-origin:top;animation:6s ease-in-out infinite haunted-wax-drip;position:absolute}.haunted-embers{position:absolute;inset:0}.haunted-ember{--ember-x:8%;--ember-delay:-1s;--ember-duration:9s;bottom:0;left:var(--ember-x);width:calc(var(--spacing) * .75);height:calc(var(--spacing) * .75);background:var(--campaign);opacity:0;animation:haunted-ember-rise var(--ember-duration) linear var(--ember-delay) infinite;border-radius:50%;position:absolute}.haunted-ember:nth-child(3n+2){--ember-duration:12s;width:calc(var(--spacing) * .5);height:calc(var(--spacing) * .5)}.haunted-ember:nth-child(2){--ember-x:14%;--ember-delay:-7s}.haunted-ember:nth-child(3){--ember-x:22%;--ember-delay:-4s}.haunted-ember:nth-child(4){--ember-x:30%;--ember-delay:-8s}.haunted-ember:nth-child(5){--ember-x:38%;--ember-delay:-2s}.haunted-ember:nth-child(6){--ember-x:46%;--ember-delay:-6s}.haunted-ember:nth-child(7){--ember-x:54%;--ember-delay:-3s}.haunted-ember:nth-child(8){--ember-x:62%;--ember-delay:-9s}.haunted-ember:nth-child(9){--ember-x:70%;--ember-delay:-5s}.haunted-ember:nth-child(10){--ember-x:78%;--ember-delay:-1.5s}.haunted-ember:nth-child(11){--ember-x:86%;--ember-delay:-6.5s}.haunted-ember:nth-child(12){--ember-x:94%;--ember-delay:-3.5s}.haunted-pet{z-index:20;left:var(--haunt-edge);bottom:calc(var(--spacing) * 24);width:var(--haunt-cat-size);height:var(--haunt-cat-size);pointer-events:none;position:absolute}.haunted-cat-walk{width:100%;height:100%;display:block;position:relative}.haunted-cat-walk canvas{width:100%;height:100%;position:absolute;inset:0}.haunted-cat-idle{width:100%;height:100%;display:block;position:relative}.haunted-cat-idle canvas{width:100%;height:100%;position:absolute;inset:0}.haunted-scene:not([data-animate=true]) *,.haunted-scene:not([data-animate=true]) :before,.haunted-scene:not([data-animate=true]) :after,.haunted-pet:not([data-animate=true]),.haunted-pet:not([data-animate=true]) *{animation-play-state:paused}.haunted-scene[data-animate=true] *,.haunted-scene[data-animate=true] :before,.haunted-scene[data-animate=true] :after,.haunted-pet[data-animate=true],.haunted-pet[data-animate=true] *{animation-play-state:running}@keyframes haunted-paper-sway{0%{transform:rotate(var(--haunt-counter-angle))}to{transform:rotate(var(--haunt-hinge-angle))}}@keyframes haunted-ghost-float{0%,to{opacity:.55;transform:translate(0)rotate(-7deg)}25%{transform:translate(var(--haunt-drift), calc(var(--haunt-nudge) * -1)) rotate(4deg);opacity:.8}50%{transform:translate(calc(var(--haunt-drift) * .5), var(--haunt-nudge)) rotate(8deg);opacity:.7}75%{transform:translate(calc(var(--haunt-drift) * -.5), calc(var(--haunt-nudge) * .5)) rotate(-3deg);opacity:.85}}@keyframes haunted-bat-flight{0%,to{transform:translate(0)rotate(-8deg)}25%{transform:translate(var(--haunt-flight-x), calc(var(--haunt-flight-y) * -.5)) rotate(12deg)}50%{transform:translate(calc(var(--haunt-flight-x) * .6), var(--haunt-flight-y)) rotate(4deg)}75%{transform:translate(calc(var(--haunt-flight-x) * -.4), calc(var(--haunt-flight-y) * .5)) rotate(-12deg)}}@keyframes haunted-wing-flap{0%{transform:scaleY(1)rotate(0)}to{transform:scaleY(.18)rotate(8deg)}}@keyframes haunted-skeleton-rock{0%,to{transform:translateY(0)rotate(-3deg)}30%{transform:translateY(calc(var(--spacing) * -2)) rotate(3deg)}65%{transform:translateY(var(--spacing)) rotate(-1deg)}}@keyframes haunted-skeleton-breathe{0%{transform:scale(1)}to{transform:scale(1.025,1.035)}}@keyframes haunted-flame-flicker{0%,to{opacity:.85;transform:scale(.85,1.1)rotate(-9deg)}35%{opacity:1;transform:scale(1.15,.8)rotate(7deg)}70%{opacity:.9;transform:scale(.9,1.25)rotate(-4deg)}}@keyframes haunted-wax-drip{0%,25%,to{transform:scaleY(.4)}70%{transform:scaleY(1.6)}}@keyframes haunted-ember-rise{0%{opacity:0;transform:translate(0)}15%{opacity:.5}50%{transform:translate(var(--haunt-drift), calc(var(--haunt-rise) * .5));opacity:.35}to{transform:translate(calc(var(--haunt-drift) * -.5), var(--haunt-rise));opacity:0}}@media (min-width:40rem){.haunted-scene,.haunted-pet{--haunt-skeleton-width:calc(var(--spacing) * 60);--haunt-skeleton-height:calc(var(--spacing) * 66);--haunt-cat-size:calc(var(--spacing) * 36);--haunt-edge:calc(var(--spacing) * 6)}.haunted-ghost-left,.haunted-ghost-right{display:block}.haunted-bat{--bat-y:14%}.haunted-bat:nth-child(2){--bat-y:9%}.haunted-bat:nth-child(3){--bat-y:19%}}@media (min-width:64rem){.haunted-scene{--haunt-moon-size:calc(var(--spacing) * 21);--haunt-moon-string:calc(var(--spacing) * 11);--haunt-skeleton-width:calc(var(--spacing) * 80);--haunt-skeleton-height:calc(var(--spacing) * 90);--haunt-skeleton-bottom:calc(var(--spacing) * 17);--haunt-ghost-size:calc(var(--spacing) * 12)}.haunted-skeleton{right:var(--haunt-edge)}.haunted-candles{left:18%}}@media (prefers-reduced-motion:reduce){html:not([data-motion=full]) .haunted-scene *,html:not([data-motion=full]) .haunted-scene :before,html:not([data-motion=full]) .haunted-scene :after,html:not([data-motion=full]) .haunted-pet,html:not([data-motion=full]) .haunted-pet *{transition:none!important;animation:none!important}}
.halloween-atmosphere{--atmosphere-web-size:calc(var(--spacing) * 24);--atmosphere-web-stroke:.75px;z-index:2;pointer-events:none;-webkit-user-select:none;user-select:none;color:var(--muted-foreground);position:absolute;inset:0;overflow:clip}.halloween-corner-web{width:var(--atmosphere-web-size);height:var(--atmosphere-web-size);stroke-width:var(--atmosphere-web-stroke);opacity:.32;position:absolute;top:0}.halloween-corner-web-left{left:0}.halloween-corner-web-right{right:0;transform:scaleX(-1)}@media (min-width:40rem){.halloween-atmosphere{--atmosphere-web-size:calc(var(--spacing) * 40)}}@media (min-width:80rem){.halloween-atmosphere{--atmosphere-web-size:calc(var(--spacing) * 52)}}
