/* Halloween portado del launcher Abrak: araña, murciélagos, fantasmas, niebla y apariciones. */
.season-layer{position:fixed;inset:0;z-index:30;overflow:hidden;pointer-events:none}
.season-layer,.season-layer *{pointer-events:none}
html[data-season="halloween"] .season-layer::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 58%,rgba(70,16,0,.18) 100%)}
.season-layer i{position:absolute;display:block}

html[data-season="halloween"] .hw-spider{position:absolute;top:0;right:7%;display:flex;flex-direction:column;align-items:center;transform-origin:top center;animation:hw-spider-drop 9s ease-in-out infinite}
html[data-season="halloween"] .hw-spider__thread{width:1px;height:160px;background:linear-gradient(#b4b4b433,#c8c8c8cc)}
html[data-season="halloween"] .hw-spider__body{width:34px;margin-top:-6px;transform-origin:top center;animation:hw-spider-sway 3s ease-in-out infinite;filter:drop-shadow(0 0 6px rgba(255,122,26,.75)) drop-shadow(0 2px 3px rgba(0,0,0,.45))}
@keyframes hw-spider-drop{0%,to{transform:translateY(-60px)}45%,60%{transform:translateY(40px)}}
@keyframes hw-spider-sway{0%,to{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}

html[data-season="halloween"] .hw-bat{position:absolute;left:-80px;opacity:0;color:#241018;filter:drop-shadow(0 0 1px rgba(255,176,80,.95)) drop-shadow(0 0 8px rgba(255,98,18,.85));animation-name:hw-bat-fly;animation-timing-function:linear;animation-iteration-count:infinite;animation-fill-mode:both}
html[data-season="halloween"] .hw-bat__wave{animation-name:hw-bat-wave;animation-timing-function:ease-in-out;animation-iteration-count:infinite}
html[data-season="halloween"] .hw-bat__svg{display:block;transform-origin:center 40%;animation:hw-bat-flap .22s ease-in-out infinite alternate}
@keyframes hw-bat-fly{0%{opacity:0;transform:translateX(0)}3%{opacity:1}45%{opacity:1;transform:translateX(calc(100vw + 160px))}46%,to{opacity:0;transform:translateX(calc(100vw + 160px))}}
@keyframes hw-bat-wave{0%,to{transform:translateY(0)}50%{transform:translateY(-40px)}}
@keyframes hw-bat-flap{0%{transform:scaleY(1)}to{transform:scaleY(.35)}}

html[data-season="halloween"] .hw-ghost{position:absolute;bottom:18%;left:1.5%;width:46px;opacity:.62;filter:drop-shadow(0 0 10px rgba(190,160,255,.6));animation:hw-ghost-float 6s ease-in-out infinite}
html[data-season="halloween"] .hw-ghost svg{display:block;width:100%;height:auto}
html[data-season="halloween"] .hw-ghost--right{left:auto;right:1.5%;bottom:42%;width:36px;animation-duration:7.5s;animation-delay:-3s}
@keyframes hw-ghost-float{0%,to{opacity:.4;transform:translate(0) rotate(-4deg)}50%{opacity:.8;transform:translate(8px,-26px) rotate(4deg)}}

html[data-season="halloween"] .hw-fog{position:absolute;left:-10%;right:-10%;bottom:-40px;height:160px;filter:blur(12px);background:radial-gradient(ellipse at 20% 80%,#ff7a1a2e,#0000 60%),radial-gradient(ellipse at 70% 90%,#8246c82e,#0000 60%);animation:hw-fog-drift 14s ease-in-out infinite alternate}
@keyframes hw-fog-drift{0%{transform:translateX(-4%)}to{transform:translateX(4%)}}

html[data-season="halloween"] .hw-pop{position:absolute;inset:0}
html[data-season="halloween"] .hw-pop-spider{position:absolute;top:0;left:22%;display:flex;flex-direction:column;align-items:center;transform:translateY(-110%);animation:hw-pop-spider-cycle 36s linear infinite;animation-delay:5s;animation-fill-mode:both}
html[data-season="halloween"] .hw-pop-spider__thread{width:1.5px;height:38vh;background:#d2d2d2d9}
html[data-season="halloween"] .hw-pop-spider__body{width:70px;margin-top:-10px;filter:drop-shadow(0 0 8px rgba(255,80,20,.65)) drop-shadow(0 4px 8px rgba(0,0,0,.5));animation:hw-pop-spider-wiggle .36s ease-in-out infinite alternate}
@keyframes hw-pop-spider-cycle{0%{transform:translateY(-110%)}1.15%{transform:translateY(12px)}1.6%,6.4%{transform:translateY(0)}8.9%,100%{transform:translateY(-110%)}}
@keyframes hw-pop-spider-wiggle{0%{transform:rotate(-10deg) scale(1)}to{transform:rotate(10deg) scale(1.08)}}

html[data-season="halloween"] .hw-pop-bat{position:absolute;top:40%;left:62%;width:80px;opacity:0;transform:translate(-50%,-50%) scale(.2);filter:drop-shadow(0 0 10px rgba(255,122,26,.8));animation:hw-pop-bat-cycle 48s linear infinite;animation-delay:18s;animation-fill-mode:both}
@keyframes hw-pop-bat-cycle{0%,100%{opacity:0;transform:translate(-50%,-50%) scale(.2) rotate(-8deg)}.44%{opacity:1;transform:translate(-50%,-50%) scale(.35) rotate(-4deg)}.88%{transform:translate(-50%,-60%) scale(.6) rotate(8deg)}1.46%{opacity:1;transform:translate(-50%,-45%) scale(.9) rotate(-6deg)}2.48%{opacity:.95;transform:translate(-50%,-50%) scale(8) rotate(0)}2.92%{opacity:0;transform:translate(-50%,-50%) scale(11)}}

html[data-season="halloween"] .hw-pop-ghost{position:absolute;top:35%;right:0;width:110px;transform:translateX(120%);filter:drop-shadow(0 0 16px rgba(190,160,255,.8));animation:hw-pop-ghost-cycle 40s linear infinite;animation-delay:11s;animation-fill-mode:both}
html[data-season="halloween"] .hw-pop-ghost svg{display:block;width:100%;height:auto}
html[data-season="halloween"] .hw-pop-ghost__bubble{position:absolute;top:-34px;left:-40px;padding:4px 12px;border-radius:12px;background:#fff;color:#1b1b2a;font:700 18px/1.2 'DM Sans',sans-serif;white-space:nowrap;opacity:0;animation:hw-pop-bubble-cycle 40s linear infinite;animation-delay:11s;animation-fill-mode:both}
@keyframes hw-pop-ghost-cycle{0%,100%{transform:translateX(120%) rotate(0)}1.5%{transform:translateX(-30%) rotate(-12deg)}2.25%,4.88%{transform:translateX(-20%) rotate(-6deg)}7.5%{transform:translateX(120%) rotate(0)}}
@keyframes hw-pop-bubble-cycle{0%,1.65%,7.5%,100%{opacity:0;transform:scale(.5)}2.1%,4.65%{opacity:1;transform:scale(1)}5.25%{opacity:0;transform:scale(.8)}}

html[data-season="halloween"] .hw-pop-pumpkin{position:absolute;bottom:0;left:36%;width:120px;transform:translate(-50%,110%);filter:drop-shadow(0 0 18px rgba(255,140,30,.85));animation:hw-pop-pumpkin-cycle 52s linear infinite;animation-delay:26s;animation-fill-mode:both}
html[data-season="halloween"] .hw-pumpkin__face{animation:hw-pumpkin-glow 2.4s ease-in-out infinite}
@keyframes hw-pop-pumpkin-cycle{0%,100%{transform:translate(-50%,110%) rotate(0)}1.35%{transform:translate(-50%,-30%) rotate(-10deg)}1.88%{transform:translate(-50%,-10%) rotate(6deg) scale(1.05,.95)}2.42%,3.77%{transform:translate(-50%,-15%) rotate(0)}5.38%{transform:translate(-50%,110%) rotate(0)}}
@keyframes hw-pumpkin-glow{0%,to{opacity:1}45%{opacity:.55}50%{opacity:1}55%{opacity:.7}}

html[data-season="halloween"] .hw-pop-swarm{position:absolute;top:45%;left:50%;width:54px;opacity:0;transform:translate(-50%,-50%) scale(.3);filter:drop-shadow(0 0 8px rgba(255,122,26,.75));animation:hw-pop-swarm-cycle 56s linear infinite;animation-delay:calc(34s + var(--lag,0ms));animation-fill-mode:both}
@keyframes hw-pop-swarm-cycle{0%,100%{opacity:0;transform:translate(-50%,-50%) scale(.3)}.29%{opacity:1}2.86%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1.6) rotate(20deg)}}

.flake{top:-8vh;left:calc(var(--i) * 4.6%);width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 8px #f4e7c4;opacity:.85;animation:season-fall linear infinite;animation-duration:calc(9s + var(--i) * .45s);animation-delay:calc(var(--i) * -1.1s)}
.flake:nth-child(odd){width:4px;height:4px;background:#f0d78c}
.star{top:calc(6% + var(--i) * 10%);left:calc(8% + var(--i) * 11%);width:8px;height:8px;background:#f4e7c4;clip-path:polygon(50% 0,61% 35%,100% 38%,70% 59%,79% 100%,50% 76%,21% 100%,30% 59%,0 38%,39% 35%);opacity:.8;animation:season-twinkle 2.8s ease-in-out infinite;animation-delay:calc(var(--i) * .35s)}
@keyframes season-fall{0%{transform:translate3d(0,-12vh,0) rotate(0deg)}100%{transform:translate3d(36px,112vh,0) rotate(220deg)}}
@keyframes season-twinkle{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}

@media(max-width:600px){
  html[data-season="halloween"] .hw-pop-spider__body{width:50px}
  html[data-season="halloween"] .hw-pop-ghost{width:80px}
  html[data-season="halloween"] .hw-pop-pumpkin{width:90px}
  html[data-season="halloween"] .hw-bat--extra,html[data-season="halloween"] .hw-ghost{display:none}
}
@media(prefers-reduced-motion:reduce){
  .season-layer i,html[data-season="halloween"] .hw-bat,html[data-season="halloween"] .hw-ghost,html[data-season="halloween"] .hw-pop{display:none}
  html[data-season="halloween"] .hw-spider,html[data-season="halloween"] .hw-spider__body,html[data-season="halloween"] .hw-fog,html[data-season="halloween"] .hw-pumpkin__face{animation:none}
}
