/* FIX47 — animated Halloween background, scoped only to the Halloween theme */
body.season-halloween .h40-scenery{
  --h47-pan-x: 0px;
  --h47-pan-y: 0px;
  --h47-glow-main: rgba(255, 127, 36, 0.40);
  --h47-glow-soft: rgba(255, 184, 92, 0.22);
  --h47-fog: rgba(165, 86, 64, 0.16);
  --h47-ember: rgba(255, 186, 92, 0.95);
  overflow: hidden;
}
body.season-halloween .h40-scenery .h40-left,
body.season-halloween .h40-scenery .h40-right{
  will-change: transform, filter, opacity;
  transform: translate3d(0, 0, 0);
}
body.season-halloween .h40-scenery .h40-left{
  transform: translate3d(calc(var(--h47-pan-x) * -0.28), calc(var(--h47-pan-y) * -0.10), 0);
}
body.season-halloween .h40-scenery .h40-right{
  transform: translate3d(calc(var(--h47-pan-x) * 0.28), calc(var(--h47-pan-y) * -0.10), 0);
}
body.season-halloween .h40-scenery .h40-left::after,
body.season-halloween .h40-scenery .h40-right::after{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  mix-blend-mode: screen;
  opacity: .8;
  filter: blur(10px);
  animation: h47PumpkinFlicker 3.4s steps(7, end) infinite alternate;
}
body.season-halloween .h40-scenery .h40-left::after{
  background:
    radial-gradient(circle at 17% 66%, rgba(255, 162, 67, .34) 0, transparent 11%),
    radial-gradient(circle at 25% 77%, rgba(255, 111, 38, .28) 0, transparent 14%),
    radial-gradient(circle at 31% 73%, rgba(255, 188, 114, .16) 0, transparent 18%);
}
body.season-halloween .h40-scenery .h40-right::after{
  background:
    radial-gradient(circle at 81% 68%, rgba(255, 161, 68, .30) 0, transparent 11%),
    radial-gradient(circle at 72% 77%, rgba(255, 113, 36, .26) 0, transparent 14%),
    radial-gradient(circle at 63% 73%, rgba(255, 190, 118, .14) 0, transparent 18%);
  animation-delay: -1.2s;
}

body.season-halloween .h40-scenery .h47-moon-glow{
  position: absolute;
  right: 11%;
  top: 4%;
  width: clamp(180px, 24vw, 390px);
  aspect-ratio: 1;
  border-radius: 50%;
  background:
    radial-gradient(circle, rgba(255, 195, 117, .22) 0, rgba(255, 154, 61, .18) 24%, rgba(255, 104, 18, .12) 48%, rgba(255, 82, 0, .08) 64%, transparent 78%);
  filter: blur(14px);
  opacity: .75;
  mix-blend-mode: screen;
  animation: h47MoonPulse 8s ease-in-out infinite;
}

body.season-halloween .h40-scenery .h47-fog{
  position: absolute;
  left: -16%;
  right: -16%;
  bottom: -8%;
  pointer-events: none;
  border-radius: 50%;
  background:
    radial-gradient(ellipse at 25% 60%, rgba(182, 96, 72, .14) 0, transparent 48%),
    radial-gradient(ellipse at 75% 58%, rgba(116, 68, 96, .12) 0, transparent 52%),
    radial-gradient(ellipse at 50% 100%, rgba(68, 47, 59, .28) 0, transparent 70%);
  filter: blur(24px);
  will-change: transform, opacity;
}
body.season-halloween .h40-scenery .h47-fog-a{
  height: 26%;
  opacity: .78;
  animation: h47FogDriftA 18s ease-in-out infinite alternate;
}
body.season-halloween .h40-scenery .h47-fog-b{
  height: 38%;
  opacity: .50;
  animation: h47FogDriftB 26s ease-in-out infinite alternate;
}

body.season-halloween .h40-scenery .h47-embers,
body.season-halloween .h40-scenery .h47-embers::before,
body.season-halloween .h40-scenery .h47-embers::after{
  position: absolute;
  inset: 0;
  pointer-events: none;
}
body.season-halloween .h40-scenery .h47-embers{
  opacity: .95;
  mix-blend-mode: screen;
}
body.season-halloween .h40-scenery .h47-embers::before,
body.season-halloween .h40-scenery .h47-embers::after{
  content: "";
  background-repeat: repeat;
  filter: drop-shadow(0 0 3px rgba(255, 126, 30, .35));
}
body.season-halloween .h40-scenery .h47-embers::before{
  background-image:
    radial-gradient(circle, rgba(255, 205, 125, .95) 0 1px, transparent 1.9px),
    radial-gradient(circle, rgba(255, 143, 54, .88) 0 1.4px, transparent 2.2px),
    radial-gradient(circle, rgba(255, 111, 17, .82) 0 1.2px, transparent 2px);
  background-size: 180px 220px, 250px 260px, 320px 300px;
  background-position: 10% 100%, 70% 110%, 40% 105%;
  animation: h47EmbersRise 18s linear infinite;
  opacity: .72;
}
body.season-halloween .h40-scenery .h47-embers::after{
  background-image:
    radial-gradient(circle, rgba(255, 182, 88, .78) 0 1.5px, transparent 2.4px),
    radial-gradient(circle, rgba(255, 121, 28, .70) 0 1.1px, transparent 1.9px);
  background-size: 300px 340px, 220px 260px;
  background-position: 20% 116%, 88% 102%;
  animation: h47EmbersRiseSlow 26s linear infinite;
  opacity: .4;
}

body.season-halloween .h40-scenery .h47-bat{
  position: absolute;
  width: clamp(28px, 3.2vw, 54px);
  height: clamp(15px, 1.7vw, 30px);
  opacity: 0;
  background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 48'%3E%3Cpath fill='%23160b13' d='M5 25c4-10 12-16 23-18 5-1 8-5 11-7 5 4 7 9 9 14 2-5 4-10 9-14 3 2 6 6 11 7 11 2 19 8 23 18-6-3-11-5-16-5-2 0-4 1-5 3-2 4-2 8-5 11-6-2-11-7-17-15-6 8-11 13-17 15-3-3-3-7-5-11-1-2-3-3-5-3-5 0-10 2-16 5Z'/%3E%3C/svg%3E");
  filter: drop-shadow(0 0 10px rgba(255, 132, 36, .14));
  transform-origin: center;
  will-change: transform, opacity;
}
body.season-halloween .h40-scenery .h47-bat-a{ top: 15%; left: -8%; animation: h47BatFlyA 15s linear infinite; }
body.season-halloween .h40-scenery .h47-bat-b{ top: 21%; left: -10%; animation: h47BatFlyB 18s linear infinite -6s; }
body.season-halloween .h40-scenery .h47-bat-c{ top: 11%; left: -12%; animation: h47BatFlyC 22s linear infinite -12s; }

@keyframes h47PumpkinFlicker{
  0%,100%{opacity:.36;filter:blur(10px) brightness(.88)}
  12%{opacity:.55;filter:blur(9px) brightness(1.15)}
  33%{opacity:.44;filter:blur(11px) brightness(.96)}
  52%{opacity:.72;filter:blur(8px) brightness(1.28)}
  77%{opacity:.49;filter:blur(10px) brightness(1.02)}
}
@keyframes h47MoonPulse{
  0%,100%{opacity:.58;transform:scale(.98)}
  50%{opacity:.88;transform:scale(1.04)}
}
@keyframes h47FogDriftA{
  from{transform:translate3d(-6%, 0, 0)}
  to{transform:translate3d(8%, -2%, 0)}
}
@keyframes h47FogDriftB{
  from{transform:translate3d(5%, 0, 0)}
  to{transform:translate3d(-8%, 2%, 0)}
}
@keyframes h47EmbersRise{
  0%{transform:translateY(12%);opacity:0}
  8%{opacity:.72}
  100%{transform:translateY(-22%);opacity:0}
}
@keyframes h47EmbersRiseSlow{
  0%{transform:translateY(18%);opacity:0}
  12%{opacity:.42}
  100%{transform:translateY(-18%);opacity:0}
}
@keyframes h47BatFlyA{
  0%{transform:translate3d(-8vw, 2vh, 0) scale(.70) rotate(-4deg);opacity:0}
  10%{opacity:.14}
  42%{opacity:.22}
  100%{transform:translate3d(110vw, -3vh, 0) scale(1.02) rotate(6deg);opacity:0}
}
@keyframes h47BatFlyB{
  0%{transform:translate3d(-10vw, 3vh, 0) scale(.58) rotate(-2deg);opacity:0}
  12%{opacity:.10}
  38%{opacity:.17}
  100%{transform:translate3d(110vw, -6vh, 0) scale(.92) rotate(8deg);opacity:0}
}
@keyframes h47BatFlyC{
  0%{transform:translate3d(-12vw, 1vh, 0) scale(.50) rotate(-3deg);opacity:0}
  10%{opacity:.08}
  34%{opacity:.14}
  100%{transform:translate3d(112vw, -2vh, 0) scale(.84) rotate(5deg);opacity:0}
}

@media (max-width: 1100px){
  body.season-halloween .h40-scenery .h47-moon-glow{right:4%; top:7%; width:clamp(150px, 20vw, 260px)}
  body.season-halloween .h40-scenery .h47-fog-a{height:24%}
  body.season-halloween .h40-scenery .h47-fog-b{height:30%}
}
@media (max-width: 700px){
  body.season-halloween .h40-scenery .h47-moon-glow{right:-6%; top:14%; opacity:.38}
  body.season-halloween .h40-scenery .h47-embers::before{opacity:.40}
  body.season-halloween .h40-scenery .h47-embers::after{opacity:.22}
  body.season-halloween .h40-scenery .h47-fog-a{opacity:.54}
  body.season-halloween .h40-scenery .h47-fog-b{opacity:.36}
  body.season-halloween .h40-scenery .h47-bat{display:none}
}
@media (prefers-reduced-motion: reduce){
  body.season-halloween .h40-scenery .h47-fog,
  body.season-halloween .h40-scenery .h47-embers::before,
  body.season-halloween .h40-scenery .h47-embers::after,
  body.season-halloween .h40-scenery .h47-bat,
  body.season-halloween .h40-scenery .h40-left::after,
  body.season-halloween .h40-scenery .h40-right::after,
  body.season-halloween .h40-scenery .h47-moon-glow{
    animation: none !important;
  }
  body.season-halloween .h40-scenery .h40-left,
  body.season-halloween .h40-scenery .h40-right{
    transform: none !important;
  }
}
