/* Halloween layer (functions-halloween.php). Everything shows only while <html> carries .ph-hw, set in <head> inside the window. */
.ph-hw-web,.ph-hw-skel,.ph-hw-mini,.ph-hw-pumpkin{display:none}
.ph-header .ph-logo .ph-hw-logo{display:block;height:50px;max-width:none;overflow:visible;width:auto}
@media (max-width:640px){.ph-header .ph-logo .ph-hw-logo{height:40px}}

/* Header: the bar and the desktop nav go see-through over a green header, so the web hangs behind their content. */
.ph-hw .ph-header{background-color:var(--ph-green)}
.ph-hw .ph-header .ph-bar{background-color:transparent;position:relative}
@media (min-width:1101px){.ph-hw .ph-header .ph-nav{background-color:transparent}}

.ph-hw .ph-hw-web{display:block;height:620px;left:0;overflow:hidden;pointer-events:none;position:absolute;top:0;width:340px;z-index:-1}
.ph-hw-web__svg{color:rgba(248,244,232,.5);height:290px;left:0;position:absolute;top:0;width:290px}
.ph-hw-web__thread{background-color:rgba(248,244,232,.65);height:1px;left:0;position:absolute;top:0;transform:scaleY(0);transform-origin:50% 0;width:1px}
.ph-hw-spider{left:0;position:absolute;top:0;width:28px;will-change:transform}
.ph-hw-spider svg{display:block;filter:drop-shadow(0 0 1px rgba(248,244,232,.9)) drop-shadow(0 2px 4px rgba(0,0,0,.4));height:auto;width:28px}
.ph-hw-spider .lg{animation:ph-hw-legs .5s ease-in-out infinite alternate;transform-box:fill-box}
.ph-hw-spider .l2,.ph-hw-spider .r1,.ph-hw-spider .l4,.ph-hw-spider .r3{animation-delay:-.25s}
.ph-hw-spider .l1,.ph-hw-spider .l2,.ph-hw-spider .l3,.ph-hw-spider .l4{transform-origin:100% 0}
.ph-hw-spider .r1,.ph-hw-spider .r2,.ph-hw-spider .r3,.ph-hw-spider .r4{transform-origin:0 0}
.ph-hw-spider.is-busy .lg{animation-duration:.18s}
@keyframes ph-hw-legs{to{transform:rotate(9deg)}}

/* Skeleton: stands where the logo's player was (hidden once he is placed). */
.ph-hw-skel-on .ph-hw-logo .ph-hw-man{opacity:0}
.ph-hw-logo .ph-hw-word{transform-box:fill-box;transform-origin:50% 100%}
.ph-hw .ph-hw-skel{display:block;left:0;pointer-events:none;position:absolute;top:0;width:20px;will-change:transform}
.ph-hw-skel svg{display:block;height:auto;overflow:visible;width:100%}
.ph-hw-skel .sk{transform-box:view-box;transform-origin:35px 120px}
.ph-hw-skel .sk-legL,.ph-hw-skel .sk-legR{transform-box:view-box;transform-origin:35px 83px}
.ph-hw-skel .sk-armL,.ph-hw-skel .sk-armR{transform-box:view-box;transform-origin:35px 38px}
.ph-hw-skel .sk-head{transform-box:view-box;transform-origin:35px 33px}
.ph-hw-skel .sk-jaw{transform-box:fill-box;transform-origin:50% 0}
.ph-hw-skel.is-walk .sk{animation:ph-hw-waddle .5s ease-in-out infinite alternate}
.ph-hw-skel.is-walk .sk-legL{animation:ph-hw-stepA .5s ease-in-out infinite alternate}
.ph-hw-skel.is-walk .sk-legR,.ph-hw-skel.is-walk .sk-armL{animation:ph-hw-stepB .5s ease-in-out infinite alternate}
.ph-hw-skel.is-walk .sk-head{animation:ph-hw-headbob .5s ease-in-out infinite alternate}
.ph-hw-skel.is-climb .sk-legL,.ph-hw-skel.is-climb .sk-armR{animation:ph-hw-stepA .22s ease-in-out infinite alternate}
.ph-hw-skel.is-climb .sk-legR,.ph-hw-skel.is-climb .sk-armL{animation:ph-hw-stepB .22s ease-in-out infinite alternate}
.ph-hw-skel.is-walk .sk-jaw,.ph-hw-skel.is-shake .sk-jaw{animation:ph-hw-chatter .3s steps(2) infinite}
.ph-hw-skel.is-shake .sk{animation:ph-hw-shake .12s linear infinite alternate}
@keyframes ph-hw-waddle{from{transform:rotate(-6deg)}to{transform:rotate(6deg)}}
@keyframes ph-hw-stepA{from{transform:rotate(-18deg)}to{transform:rotate(16deg)}}
@keyframes ph-hw-stepB{from{transform:rotate(16deg)}to{transform:rotate(-18deg)}}
@keyframes ph-hw-headbob{from{transform:rotate(-7deg)}to{transform:rotate(7deg)}}
@keyframes ph-hw-chatter{50%{transform:translateY(2px)}}
@keyframes ph-hw-shake{from{transform:rotate(-9deg) translateX(-1px)}to{transform:rotate(9deg) translateX(1px)}}

/* Mini pumpkin dozing on the header's bottom edge. */
.ph-hw .ph-hw-mini{background:none;border:0;bottom:-42px;cursor:pointer;display:block;height:54px;opacity:0;padding:0;pointer-events:none;position:absolute;right:max(20px,calc((100vw - 1470px) / 2 + 300px));width:54px}
.ph-hw .ph-hw-mini.is-on{pointer-events:auto}
.ph-hw .ph-header:has(.ph-nav.is-open) .ph-hw-mini{visibility:hidden}
.ph-hw-mini .ph-hw-jack{animation:ph-hw-chill 3.4s ease-in-out infinite;transform-origin:50% 90%}
.ph-hw-mini__zz{color:#FFD24A;font:800 11px/1 Manrope,sans-serif;opacity:0;position:absolute;right:-12px;top:-10px;animation:ph-hw-zz 3.4s ease-in-out infinite}
.ph-hw .ph-header .ph-hw-mini:focus-visible{border-radius:50%;outline:2px solid #FFD24A;outline-offset:2px}
@keyframes ph-hw-chill{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg) translateY(-1px)}}
@keyframes ph-hw-zz{0%,30%{opacity:0;transform:translate(0,4px)}50%{opacity:1}80%{opacity:0;transform:translate(6px,-10px)}100%{opacity:0}}
@media (max-width:1100px){.ph-hw .ph-hw-mini{bottom:-34px;height:46px;right:118px;width:46px}}
@media (max-width:640px){
	.ph-hw .ph-hw-web{height:460px;width:220px}
	.ph-hw-web__svg{height:190px;width:190px}
	.ph-hw-spider,.ph-hw-spider svg{width:20px}
	.ph-hw .ph-hw-mini{bottom:-28px;height:40px;right:96px;width:40px}
}

/* Pumpkin hero: darker stage with an orange glow; the pumpkin replaces the bag. */
.ph-hw .ph-hero .ph-hero__stage{background:radial-gradient(60% 70% at 72% 50%,rgba(255,140,30,.22),transparent 60%),radial-gradient(120% 90% at 78% 40%,#1B4D44 0%,#0D3A31 50%,#071F1A 100%)}
.ph-hw .ph-hero .ph-hero__orbit{pointer-events:none;z-index:3}
.ph-hw .ph-hero .ph-hero__bag .ph-hw-pumpkin~.ph-hero__bubble{display:none}
.ph-hw .ph-hw-pumpkin{-webkit-tap-highlight-color:transparent;background:none;border:0;border-radius:50%;cursor:pointer;display:block;height:100%;padding:0;pointer-events:auto;position:absolute;inset:0;width:100%}
.ph-hw .ph-hero .ph-hw-pumpkin:focus-visible{outline:2px solid #FFD24A;outline-offset:6px}
.ph-hw-jack{display:block;filter:drop-shadow(0 26px 40px rgba(0,0,0,.45)) drop-shadow(0 0 40px rgba(255,140,20,.35));height:100%;overflow:visible;transition:transform .15s var(--ease-out);width:100%}
.ph-hw-pumpkin:active .ph-hw-jack{transform:scale(.97)}
.ph-hw-face,.ph-hw-spill{animation:ph-hw-flicker 2.6s infinite steps(1,end)}
.ph-hw-mouth{transform-box:fill-box;transform-origin:50% 0}
@keyframes ph-hw-flicker{0%{opacity:1}12%{opacity:.82}14%{opacity:1}40%{opacity:.9}43%{opacity:1}70%{opacity:.78}72%{opacity:.96}88%{opacity:.86}90%{opacity:1}}
.ph-hw-pumpkin__hint{animation:ph-hw-pulse 2.4s ease-in-out infinite;background-color:#FF8A00;border-radius:20px;bottom:-4%;box-shadow:0 6px 18px rgba(255,138,0,.45);color:#2A1200;font:800 12px/1.5 Manrope,sans-serif;left:50%;padding:4px 11px;pointer-events:none;position:absolute;transform:translateX(-50%);white-space:nowrap}
@keyframes ph-hw-pulse{0%,100%{transform:translateX(-50%)}50%{transform:translateX(-50%) scale(1.07)}}
.ph-hw-pumpkin.is-used .ph-hw-pumpkin__hint{display:none}
.ph-hw .ph-hero .ph-hero__item{pointer-events:none}

/* Coupon ticket. */
.ph-hw-coupon{left:50%;opacity:0;pointer-events:auto;position:absolute;top:50%;width:38%;z-index:6}
.ph-hw-coupon[hidden]{display:none}
.ph-hw-coupon--header{left:0;top:0;width:min(300px,calc(100vw - 32px))}
.ph-hw-coupon__in{background:linear-gradient(135deg,#FFB347,#FF7A00);border-radius:14px;box-shadow:0 18px 40px rgba(0,0,0,.4),0 0 0 2px rgba(255,255,255,.35) inset;color:#2A1200;font-family:Manrope,sans-serif;padding:40px 9% 9%;position:relative;text-align:center;
	-webkit-mask:radial-gradient(circle 9px at 0 50%,transparent 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 9px at 100% 50%,transparent 98%,#000) right/51% 100% no-repeat;
	mask:radial-gradient(circle 9px at 0 50%,transparent 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 9px at 100% 50%,transparent 98%,#000) right/51% 100% no-repeat}
.ph-hw-coupon--header .ph-hw-coupon__in{padding:40px 24px 22px}
.ph-hw-coupon small{display:block;font-size:11px;font-weight:800;letter-spacing:.1em;line-height:1.5;opacity:.8;text-transform:uppercase}
.ph-hw-coupon strong{display:block;font-size:clamp(18px,2.2vw,26px);font-weight:800;line-height:1.1;margin:2px 0 6px}
.ph-hw-coupon--header strong{font-size:24px}
.ph-hw-coupon .ph-hw-coupon__code{align-items:center;background-color:rgba(255,255,255,.55);border:1.5px dashed #7A3A00;border-radius:8px;color:#2A1200;cursor:pointer;display:flex;font:800 15px/1.2 Manrope,sans-serif;gap:6px;justify-content:center;letter-spacing:.08em;margin:0;min-height:0;padding:5px 8px;text-transform:none;transition:background-color .2s ease;width:100%}
.ph-hw-coupon .ph-hw-coupon__code:hover{background-color:rgba(255,255,255,.75)}
.ph-hw-coupon .ph-hw-coupon__code:focus-visible{outline:2px solid #2A1200;outline-offset:2px}
.ph-hw-coupon__code svg{flex:none;height:14px;width:14px}
.ph-hw-coupon__fine{display:block;font-size:10.5px;font-weight:600;line-height:1.4;margin-top:6px;opacity:.8}
.ph-hw-coupon .ph-hw-coupon__x{align-items:center;background-color:rgba(255,255,255,.55);border:0;border-radius:50%;color:#2A1200;cursor:pointer;display:flex;height:30px;justify-content:center;margin:0;min-height:0;padding:0;position:absolute;right:8px;top:8px;transition:background-color .2s ease;width:30px}
.ph-hw-coupon .ph-hw-coupon__x svg{display:block;height:12px;width:12px}
.ph-hw-coupon .ph-hw-coupon__x:hover{background-color:rgba(255,255,255,.85)}
.ph-hw-coupon .ph-hw-coupon__x:focus-visible{outline:2px solid #2A1200;outline-offset:2px}
@media (pointer:coarse){.ph-hw-coupon .ph-hw-coupon__x::before{content:"";inset:-7px;position:absolute}}
@media (max-width:1100px){.ph-hw-coupon--hero{width:56%}}
@media (max-width:640px){
	.ph-hw-coupon--hero strong{font-size:17px}
	.ph-hw-coupon--hero .ph-hw-coupon__code{font-size:13px}
}

/* Reduced motion: everything rests in its end state. */
@media (prefers-reduced-motion:reduce){
	.ph-hw-spider .lg,.ph-hw-skel *,.ph-hw-mini .ph-hw-jack,.ph-hw-face,.ph-hw-spill,.ph-hw-pumpkin__hint{animation:none!important}
	.ph-hw-mini__zz{animation:none;opacity:1}
	.ph-hw-jack{transition:none}
	.ph-hw-pumpkin:active .ph-hw-jack{transform:none}
}
