/* Seasonal accents retain the existing blue/gold identity and never intercept input. */
.v28Hero,.kidBrandBar,.familyBrand,.hero{position:relative}
html.phHalloween .v28Hero::after,html.phHalloween .kidBrandBar::after,html.phHalloween .familyBrand::after,html.phHalloween .hero::after{content:"";position:absolute;top:0;left:0;width:clamp(48px,10vw,105px);height:105px;background:url("halloween-web.svg") top left/contain no-repeat;pointer-events:none;z-index:1;opacity:.65}
.phSeasonToggle{font:inherit;font-size:12px;border:1px solid #8aa9cb;border-radius:12px;padding:8px 12px;min-height:40px;background:#fff!important;color:#173c75!important;cursor:pointer;margin:6px}
.v38KidHeaderPal img.phGhostPal:not([hidden]){display:block!important}
.v38KidHeaderPal img.phGhostPal[hidden]{display:none!important}
@media(prefers-reduced-motion:reduce){.v28HeroPal,.v38KidHeaderPal,.v28SplashPal,.v28KidSplashPal{animation:none!important;transition:none!important}}

/* Visible corner webs on every portal, outside document flow and never interactive. */
.phSeasonDecor{display:none;pointer-events:none!important;position:fixed;inset:0;z-index:20}
html.phHalloween .phSeasonDecor{display:block}
.phSeasonDecor::before,.phSeasonDecor::after{content:"";position:absolute;top:0;width:100px;height:100px;background:url("halloween-web.svg") top left/contain no-repeat;opacity:.85;pointer-events:none}
.phSeasonDecor::before{left:0}.phSeasonDecor::after{right:0;transform:scaleX(-1)}
@media(max-width:600px){.phSeasonDecor::before,.phSeasonDecor::after{width:64px;height:64px}}

/* A small seasonal ribbon: static artwork, high contrast text, normal document flow. */
.phSeasonBanner{display:none;box-sizing:border-box;width:100%;align-items:center;justify-content:center;gap:16px;margin:12px 0 16px;padding:10px 18px;min-height:60px;border:1px solid #a692bc;border-radius:18px;background:linear-gradient(110deg,#f6effc,#fff6df);color:#392451;box-shadow:0 3px 10px #3520500a;font-family:inherit;isolation:isolate}
html.phHalloween .phSeasonBanner{display:flex}
.phSeasonBanner strong{font-size:22px;line-height:1.25;letter-spacing:.025em;text-align:center;color:#392451!important}
.phSeasonBanner svg{display:block;width:100%;height:100%}
.phSeasonBat{width:52px;height:30px;flex:0 0 52px;fill:#57406f;transform:rotate(-8deg)}
.phSeasonPumpkin{width:37px;height:37px;flex:0 0 37px}
.phSeasonDecor::before,.phSeasonDecor::after{width:128px;height:128px;opacity:.9}
@media(max-width:600px){.phSeasonBanner{gap:10px;padding:9px 12px;min-height:54px;border-radius:14px}.phSeasonBanner strong{font-size:18px}.phSeasonBat{width:36px;height:24px;flex-basis:36px}.phSeasonPumpkin{width:29px;height:29px;flex-basis:29px}.phSeasonDecor::before,.phSeasonDecor::after{width:68px;height:68px}}
