.lucky7-menu.halloween-active{background:var(--season-background);color:var(--ink)}
.lucky7-menu.halloween-active.botanical-wallpaper::before{background-image:radial-gradient(ellipse at 85% 15%,#8a3ca92b,transparent 55%),radial-gradient(ellipse at 8% 85%,#dd620e1a,transparent 50%),linear-gradient(var(--season-background),var(--season-background));}
.halloween-active .site-header{background:color-mix(in srgb,var(--season-background) 95%,transparent)}
.halloween-active .product-card{border:1px solid var(--line)}
.lucky7-menu.halloween-active :is(.promo-intro h1 em,.promo-intro p,.promo-intro .eyebrow,.promo-gallery-heading .eyebrow,.home-menu-heading .eyebrow,.catalog-title .eyebrow){color:var(--ink)}
.lucky7-menu.halloween-active :is(.solid-button,.back-button,.details-link,.selection-button,.promo-menu-link,.promo-share,.promo-download,.promo-arrow,.promo-video-actions button,.photo-toggle,.filter-button,.favorite-button,.promo-rotation-toggle,.remove-button,.detail-footer button){color:var(--season-on-accent)}
.lucky7-menu.halloween-active .catalog-display-options{background:var(--surface);border-color:var(--line)}
.lucky7-menu.halloween-active .product-layout-options button[aria-pressed=true]{color:var(--season-on-accent)}
.lucky7-menu.halloween-active .photo-switch::after{background:var(--season-on-accent)}
#seasonal-backdrop{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;contain:layout paint;opacity:var(--season-opacity);}
.seasonal-sprite{position:absolute;display:block;pointer-events:none;transform-origin:center;will-change:transform}
.seasonal-sprite img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 10px 25px #0009)}
.seasonal-moon{width:clamp(170px,24vw,330px);height:clamp(170px,24vw,330px);right:-3%;top:8%;opacity:.85;animation:moon-glow 9s ease-in-out infinite alternate}
.seasonal-witches{width:clamp(180px,23vw,300px);right:-6%;top:16%;animation:witch-flight var(--season-duration) ease-in-out infinite alternate;}
.seasonal-ghosts{width:clamp(95px,12vw,165px);top:45%;left:-3%;animation:ghost-float 12s ease-in-out infinite alternate}
.seasonal-ghosts.sprite-two{left:auto;right:-5%;top:73%;width:115px;animation-delay:-7s;transform:scaleX(-1)}
.seasonal-bats{width:clamp(65px,8vw,115px);left:9%;top:23%;animation:bat-flight var(--season-duration) ease-in-out infinite alternate}
.seasonal-bats.sprite-two{left:73%;top:56%;width:85px;animation-delay:-9s}
.seasonal-bats.sprite-three{left:45%;top:80%;width:60px;animation-delay:-17s}
.seasonal-pumpkins{width:clamp(100px,15vw,190px);left:-2%;bottom:1%;animation:pumpkin-rock 9s ease-in-out infinite alternate}
.seasonal-zombies{width:clamp(120px,17vw,230px);height:clamp(180px,26vw,340px);right:-5%;bottom:-3%;animation:zombie-rise 16s ease-in-out infinite alternate}
.seasonal-web{position:absolute;width:clamp(120px,17vw,230px);top:0;color:var(--season-secondary);opacity:.48}
.seasonal-web svg{width:100%;height:auto;stroke-width:1}.web-left{left:0}.web-right{right:0;transform:scaleX(-1)}
.seasonal-divider{position:relative;display:flex;align-items:center;justify-content:center;gap:18px;min-height:86px;margin:18px 0;pointer-events:none;color:var(--season-secondary);opacity:.8}
.seasonal-divider>span:not(.seasonal-sprite){height:1px;flex:1;max-width:210px;background:linear-gradient(90deg,transparent,var(--season-secondary),transparent)}
.seasonal-divider .seasonal-sprite{position:relative;flex:0 0 76px;width:76px;height:76px;inset:auto;animation:divider-float 7s ease-in-out infinite alternate}
.seasonal-pause{position:fixed;right:12px;bottom:12px;z-index:19;min-height:36px;padding:7px 11px;border-radius:18px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:11px;box-shadow:0 3px 18px #0006;}
.seasonal-paused .seasonal-decor *{animation-play-state:paused!important}
.halloween-active:has(dialog[open]) .seasonal-decor *{animation-play-state:paused!important}
.seasonal-ghosts.sprite-two img{transform:scaleX(-1)}
@keyframes moon-glow{to{opacity:.68;transform:scale(1.03)}}
@keyframes witch-flight{0%{transform:translate(0,0) rotate(-6deg)}50%{transform:translate(-28vw,7vh) rotate(2deg)}100%{transform:translate(-62vw,-2vh) rotate(-4deg)}}
@keyframes ghost-float{to{transform:translate(25px,-65px) rotate(8deg)}}
@keyframes bat-flight{0%{transform:translate(0,0) rotate(-10deg) scale(.9)}50%{transform:translate(17vw,30px) rotate(8deg) scale(1.08)}100%{transform:translate(28vw,-45px) rotate(-4deg) scale(.95)}}
@keyframes pumpkin-rock{to{transform:rotate(7deg) translateY(-7px)}}
@keyframes zombie-rise{0%,15%{transform:translateY(45%)}70%,100%{transform:translateY(0) rotate(-5deg)}}
@keyframes divider-float{to{transform:translateY(-8px) rotate(5deg)}}
@media(max-width:760px){.seasonal-pause{bottom:78px;right:8px;font-size:10px}.seasonal-witches{top:20%;width:170px}.seasonal-moon{top:12%;right:-12%;width:190px}.seasonal-zombies{width:140px;height:215px;right:-14%;bottom:3%}.seasonal-pumpkins{width:110px;left:-8%;bottom:7%}.seasonal-ghosts{width:100px;left:-10%}.seasonal-web{width:135px}.seasonal-divider{min-height:64px;margin:12px 0}.seasonal-divider .seasonal-sprite{width:60px;height:60px;flex-basis:60px}}
@media(prefers-reduced-motion:reduce){.seasonal-decor *{animation:none!important;will-change:auto}.seasonal-pause{display:none}}

/* Foreground decorations never take taps or focus away from the menu. */
.seasonal-spider{position:fixed;top:0;right:clamp(20px,7vw,110px);width:76px;height:calc(var(--spider-descent,38px) + 84px);z-index:32;pointer-events:none;--spider-descent:38px;filter:drop-shadow(0 5px 5px #0007)}
.spider-silk{position:absolute;top:0;left:50%;width:1px;height:calc(var(--spider-descent) + 18px);background:linear-gradient(#d9c7e0a6,#fce4ff);transition:height .18s ease-out}
.spider-body{position:absolute;top:var(--spider-descent);left:0;width:76px;height:80px;transform-origin:50% 0;transform:rotate(var(--spider-sway,0deg));transition:top .18s ease-out,transform .25s ease-out}
.spider-body svg{width:100%;height:100%;overflow:visible}
.halloween-active:has(dialog[open]) .seasonal-spider,.seasonal-transitioning .seasonal-spider{visibility:hidden}
.seasonal-paused .spider-body,.seasonal-paused .spider-silk{transition:none}
.seasonal-transition{position:fixed;inset:0;z-index:2000;overflow:hidden;pointer-events:none;isolation:isolate;contain:layout paint;--transition-time:1450ms;animation:seasonal-curtain var(--transition-time) linear both}
.transition-slime{animation-name:slime-curtain}
.swarm-veil{position:absolute;inset:0;background:#08040f;animation:swarm-veil var(--transition-time) linear both}
.transition-bats{--transition-time:2200ms;animation-name:food-curtain}
.transition-bats .swarm-veil{background:radial-gradient(ellipse at 40% 35%,#48215d,var(--season-background,#100b1c) 72%);animation-name:food-veil}
.food-swarm{position:absolute;inset:0;perspective:900px}
.food-bat{position:absolute;left:var(--x);top:var(--y);width:var(--bat-size);aspect-ratio:760/512;animation:food-flight 1900ms cubic-bezier(.2,.65,.35,1) var(--delay) both;will-change:transform;backface-visibility:hidden}
.food-bat.depth-far{z-index:0;--depth-opacity:.76}.food-bat.depth-middle{z-index:1;--depth-opacity:1}.food-bat.depth-near{z-index:2;--depth-opacity:1}
.food-bat-figure{display:block;width:100%;height:100%;transform:scaleX(var(--facing));animation:food-bank var(--flutter) ease-in-out var(--phase) infinite alternate}
.food-bat img{display:block;width:100%;height:auto;object-fit:contain;user-select:none}
@keyframes food-curtain{0%,80%{opacity:1}100%{opacity:0}}
@keyframes food-veil{0%,14%{opacity:0}40%,58%{opacity:1}90%,100%{opacity:0}}
@keyframes food-flight{0%{opacity:0;transform:translate3d(var(--entry-x),var(--entry-y),0) rotate(var(--bank)) scale(.6)}20%{opacity:var(--depth-opacity)}43%,59%{opacity:var(--depth-opacity);transform:translate3d(-50%,-50%,0) rotate(var(--settle)) scale(1)}100%{opacity:0;transform:translate3d(var(--exit-x),var(--exit-y),0) rotate(var(--bank)) scale(.76)}}
@keyframes food-bank{from{transform:translateY(-3px) scaleX(var(--facing)) rotateY(-18deg) rotate(-3deg)}to{transform:translateY(3px) scaleX(var(--facing)) rotateY(20deg) rotate(3deg)}}
.slime-impact{position:absolute;inset:0;pointer-events:none}
.slime-cover{position:absolute;inset:0;overflow:hidden;background:radial-gradient(ellipse at 28% 20%,#d2f638aa,transparent 60%),radial-gradient(ellipse at 75% 70%,#1c670dd9,transparent 68%),linear-gradient(140deg,#579912,#8dc911 42%,#34750b);animation:slime-cover var(--transition-time) linear both}
.slime-cover::after{content:"";position:absolute;inset:-25%;background:linear-gradient(112deg,transparent 30%,#f5ffc61a 43%,#edffa62b 47%,transparent 55%);animation:slime-sheen var(--transition-time) ease-out both}
.slime-splash-art{position:absolute;left:50%;top:44%;z-index:1;width:max(112vw,104vh);max-width:none;height:auto;pointer-events:none;user-select:none;transform-origin:50% 50%;animation:slime-impact var(--transition-time) cubic-bezier(.18,.68,.32,1) both;will-change:transform,opacity}
.slime-droplets{position:absolute;inset:0;z-index:2}
.slime-drop{position:absolute;left:50%;top:43%;width:var(--drop);height:calc(var(--drop)*var(--stretch));border-radius:47% 53% 57% 43% / 40% 45% 55% 60%;background:radial-gradient(ellipse at 30% 20%,#f4ffcfde,#dfff9a55 14%,transparent 30%),radial-gradient(ellipse at 40% 35%,#c0f823,#72b611 60%,#245d0b);box-shadow:inset -2px -3px 4px #1e4d0755,0 3px 5px #183b0826;animation:slime-droplet 650ms cubic-bezier(.12,.7,.28,1) calc(110ms + var(--delay)) both}
@keyframes seasonal-curtain{0%,73%{opacity:1}100%{opacity:0}}
@keyframes swarm-veil{0%,12%{opacity:0}39%,76%{opacity:1}100%{opacity:0}}
@keyframes slime-curtain{0%,90%{opacity:1}100%{opacity:0}}
@keyframes slime-cover{0%,12%{opacity:0}26%,40%{opacity:1}78%,100%{opacity:0}}
@keyframes slime-sheen{from{transform:translateX(-15%) rotate(-6deg)}to{transform:translateX(15%) rotate(4deg)}}
@keyframes slime-impact{0%{opacity:0;transform:translate(-50%,-50%) rotate(-10deg) scale(.12,.08)}14%{opacity:1;transform:translate(-50%,-50%) rotate(-4deg) scale(.46,.38)}32%{opacity:1;transform:translate(-50%,-50%) rotate(2deg) scale(1.12,.98)}44%{opacity:1;transform:translate(-50%,-47%) rotate(4deg) scale(1.15,1.1)}64%{opacity:1;transform:translate(-50%,-25%) rotate(6deg) scale(1.08,1.18)}100%{opacity:0;transform:translate(-50%,110vh) rotate(8deg) scale(1.06,1.25)}}
@keyframes slime-droplet{0%{opacity:0;transform:rotate(var(--angle)) translateY(0) scale(.2)}18%{opacity:1}100%{opacity:0;transform:rotate(var(--angle)) translateY(calc(var(--distance)*-1)) scale(1.25)}}
@media(max-width:760px){.seasonal-spider{right:20px;width:58px}.spider-body{width:58px;height:62px}}
@media(prefers-reduced-motion:reduce){.seasonal-spider,.seasonal-transition{display:none}}
