/* MaxPC2003 · Halloween v2. Inerte hasta que halloween.js crea sus capas (solo del 26/10 al 1/11/2026). */
.hw-layer{position:fixed;inset:0;z-index:1200;pointer-events:none;overflow:hidden;contain:strict}
.hw-layer *,.hw-webs *,.hw-scene *{pointer-events:none}
.hw-layer.hw-paused *{animation-play-state:paused!important}
.hw-ghost{position:absolute;left:0;top:var(--y,30%);width:var(--s,54px);will-change:transform;opacity:var(--o,.5);animation:hw-fly var(--d,40s) linear var(--dl,0s) infinite;transform:translate3d(-120px,0,0)}
.hw-ghost.rev{animation-name:hw-fly-rev}
.hw-ghost svg{display:block;width:100%;height:auto;filter:drop-shadow(0 0 8px rgba(190,160,255,.55));animation:hw-wobble var(--w,3.2s) ease-in-out infinite}
@keyframes hw-fly{to{transform:translate3d(calc(100vw + 120px),0,0)}}
@keyframes hw-fly-rev{from{transform:translate3d(calc(100vw + 120px),0,0) scaleX(-1)}to{transform:translate3d(-120px,0,0) scaleX(-1)}}
@keyframes hw-wobble{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-14px) rotate(4deg)}}
.hw-bat{position:absolute;left:0;top:var(--y,14%);width:34px;opacity:.75;will-change:transform;animation:hw-bat 18s linear var(--dl,6s) infinite;transform:translate3d(-80px,0,0)}
.hw-bat svg{display:block;width:100%;height:auto;animation:hw-flap .35s ease-in-out infinite}
@keyframes hw-bat{0%{transform:translate3d(-80px,0,0)}12%{transform:translate3d(-80px,0,0)}100%{transform:translate3d(calc(100vw + 80px),-40px,0)}}
@keyframes hw-flap{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.55)}}
.hw-pumpkin{position:absolute;width:var(--ps,36px);animation:hw-glow 3.2s ease-in-out infinite}
.hw-pumpkin.bl{left:10px;bottom:10px}.hw-pumpkin.br{right:10px;bottom:10px}.hw-pumpkin.tl{left:10px;top:10px}.hw-pumpkin.tr{right:10px;top:10px}
.hw-pumpkin svg{display:block;width:100%;height:auto}
@keyframes hw-glow{0%,100%{filter:drop-shadow(0 0 6px rgba(255,150,40,.4))}50%{filter:drop-shadow(0 0 16px rgba(255,170,60,.9))}}
/* tarántula vista desde arriba */
.hw-ara{position:absolute;left:0;top:0;opacity:0;will-change:transform;filter:drop-shadow(7px 12px 8px rgba(0,0,0,.5))}
.hw-ara i{display:block;width:100%;height:100%;background-repeat:no-repeat}
/* telarañas en las esquinas superiores de la página */
.hw-webs{position:absolute;top:0;left:0;right:0;height:0;z-index:1190;overflow:visible}
.hw-web{position:absolute;top:0;width:clamp(110px,14vw,200px);aspect-ratio:1;opacity:.8}
.hw-web.tl{left:0}.hw-web.tr{right:0;transform:scaleX(-1)}
.hw-web img,.hw-web svg{display:block;width:100%;height:100%;object-fit:contain}
.hw-web.l{mix-blend-mode:multiply}.hw-web.d{mix-blend-mode:screen}
/* escena del cementerio al final de la página */
.hw-scene{position:relative;z-index:1190;overflow:hidden;line-height:0;min-height:clamp(150px,24vw,330px);background:#07050e;border-top:1px solid rgba(255,150,40,.28);box-shadow:0 -14px 28px -8px rgba(7,5,14,.45);margin:0}
.hw-scene picture,.hw-scene .hw-yard{display:block;width:100%;height:auto}
.hw-scene .hw-yard{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 38%);mask-image:linear-gradient(to bottom,transparent 0,#000 38%)}
.hw-yard-svg{min-height:clamp(150px,24vw,330px)}
.hw-pk{position:absolute;bottom:6%;width:var(--w,12%);max-width:150px;mix-blend-mode:screen;animation:hw-flick var(--fd,3.2s) ease-in-out var(--fl,0s) infinite}
.hw-pk img,.hw-pk svg{display:block;width:100%;height:auto}
.hw-pk.svg{mix-blend-mode:normal}
@keyframes hw-flick{0%,100%{opacity:1;filter:brightness(1)}18%{opacity:.82;filter:brightness(.85)}22%{opacity:1;filter:brightness(1.15)}55%{opacity:.9;filter:brightness(.95)}62%{opacity:1;filter:brightness(1.2)}}
.hw-cal{position:absolute;left:62%;bottom:2%;width:clamp(150px,19vw,300px);aspect-ratio:1;mix-blend-mode:screen}
.hw-cal img,.hw-cal video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.hw-cal video{opacity:0;transition:opacity .6s}
.hw-cal.on video{opacity:1}
/* cinta de invitación (sitios de MaxPC2003) */
.hw-pill{position:fixed;left:50%;bottom:12px;transform:translateX(-50%);z-index:1199;display:flex;align-items:center;gap:.6rem;max-width:min(94vw,640px);padding:.45rem .5rem .45rem .9rem;border-radius:999px;background:rgba(27,16,48,.94);color:#ffd9a0;font:600 13px/1.25 system-ui,-apple-system,"Segoe UI",sans-serif;box-shadow:0 6px 24px rgba(0,0,0,.35);border:1px solid rgba(255,150,40,.55);pointer-events:auto}
.hw-pill a{color:#ffb454;text-decoration:underline;text-underline-offset:2px;pointer-events:auto}
.hw-pill a:focus-visible,.hw-pill button:focus-visible{outline:2px solid #ffb454;outline-offset:2px}
.hw-pill button{pointer-events:auto;flex:none;width:26px;height:26px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:#ffd9a0;font:700 15px/1 system-ui;cursor:pointer}
@media (max-width:520px){.hw-pill{font-size:12px;bottom:8px;left:62px;right:10px;transform:none;max-width:none;border-radius:16px;padding:.4rem .4rem .4rem .75rem}.hw-pill.hw-pill-l{left:96px;right:62px}}
@media (min-width:521px){.hw-pill.hw-pill-r{left:auto;right:var(--pr,170px);transform:none}}
@media (max-width:700px){.hw-pk{max-width:90px}.hw-cal{left:56%}}
/* sin movimiento: decoración fija */
.hw-static .hw-ghost{animation:none;transform:translate3d(var(--sx,20vw),0,0)}
.hw-static .hw-ghost svg,.hw-static .hw-bat,.hw-static .hw-pumpkin,.hw-static .hw-pk{animation:none}
.hw-static .hw-bat{display:none}
@media print{.hw-layer,.hw-pill,.hw-webs,.hw-scene{display:none!important}}
