/* Theme-independent illustrated scenes. Text surfaces have explicit contrast. */
.class-boss[data-boss="halloween-pumpkin"]{--boss-hue:#e6a352}
.class-boss[data-boss="halloween-ghost"]{--boss-hue:#91c8cd}
.class-boss[data-boss="halloween-spider"]{--boss-hue:#b79bd9}
.class-boss[data-boss^="halloween-"]{border-color:var(--boss-hue);background:linear-gradient(125deg,color-mix(in srgb,var(--boss-hue) 14%,var(--panel,#242438)),var(--panel,#242438));color:var(--text,#ecebf1)}
.class-boss[data-boss^="halloween-"] .boss-heading h2,.class-boss[data-boss^="halloween-"] .boss-summary,.class-boss[data-boss^="halloween-"] details{color:var(--text-bright,var(--text,#f1edf4))}
.class-boss[data-boss^="halloween-"] .boss-eyebrow,.class-boss[data-boss^="halloween-"] .boss-numbers{color:var(--text-muted,#ded0c3)}
.class-boss[data-boss^="halloween-"] .boss-art img{object-fit:contain;max-height:170px}
.boss-arrival[data-boss^="halloween-"] .boss-flight{width:clamp(125px,17vw,210px);left:auto;right:2%;top:auto;bottom:10%;animation:hw-boss-hello 5.5s ease both;filter:drop-shadow(0 8px 16px #17142a55)}
.boss-arrival[data-boss^="halloween-"]>i{display:none}
.boss-hazard[data-kind^="halloween-"]{background:transparent;animation:none}
.boss-hazard[data-kind^="halloween-"] .boss-hazard-label{top:auto;bottom:20px;max-width:min(430px,calc(100vw - 40px));padding:8px 15px;border-color:#edc68b88;background:#24223aef;color:#fff2d7;font-size:clamp(11px,1vw,15px);box-shadow:0 3px 12px #15132233}
.hw-boss-vine{position:absolute;bottom:-30px;left:calc(var(--hw-i)*17px - 20px);height:min(58vh,410px);width:100px;transform-origin:50% 100%;animation:hw-vine-grow 6s ease both;animation-delay:calc(var(--hw-i)*-.1s);opacity:.88}
.hw-boss-vine:nth-of-type(even){left:auto;right:calc(var(--hw-i)*9px - 20px);scale:-1 1}
.hw-boss-vine svg{width:100%;height:100%;overflow:visible}
.hw-boss-letter{position:absolute;width:clamp(60px,8vw,115px);left:1%;top:calc(14% + var(--hw-i)*15%);animation:hw-ghost-float 3s ease-in-out infinite alternate;animation-delay:calc(var(--hw-i)*-.7s);opacity:.8}
.hw-boss-letter:nth-of-type(even){left:auto;right:1%;animation-direction:alternate-reverse}
.hw-boss-letter img{width:100%;height:auto;display:block}
.hw-boss-letter b{position:absolute;inset:49% 0 auto;text-align:center;color:#315773;font:900 clamp(18px,2.2vw,32px)/1 var(--font-ui,sans-serif)}
.hw-boss-web{position:absolute;top:0;left:0;width:min(19vw,250px);aspect-ratio:1;color:#c6c9e0;opacity:.7;animation:hw-web-appear 6s ease both}
.hw-boss-web:nth-of-type(even){left:auto;right:0;scale:-1 1}
.hw-boss-web svg{width:100%;height:100%}
.hw-boss-spider{position:absolute;right:8px;top:0;width:clamp(70px,10vw,130px);height:45vh;border-right:1px solid #bdb5d3;transform-origin:100% 0;animation:hw-spider-drop 6s ease both}
.hw-boss-spider img{position:absolute;bottom:-45px;right:-38px;width:100%;height:auto}
/* The convoy retains its familiar camel silhouettes and readable reward HUD. */
.caravan-event.hw-caravan{background:#15162b;color:#f8ead4}
.hw-caravan .caravan-heading{background:linear-gradient(120deg,#25213a,#182a35)}
.hw-caravan .caravan-heading header>span{color:#d8ba84}
.hw-caravan .caravan-heading h1{color:#ffe0a8;text-shadow:0 2px 12px #15132340}
.hw-caravan .caravan-heading header p{color:#dedfe5}
.hw-caravan .caravan-route{color:#c9dabd;border-color:#83936e66;background:#293747}
.hw-caravan .caravan-sky{background:radial-gradient(ellipse at 72% 22%,#58687144,transparent 45%),linear-gradient(#171b35,#344250 65%,#686256)}
.hw-caravan .caravan-moon{background:#fff0ba;box-shadow:0 0 0 14px #fff0ba06,0 0 48px #f3dcae30}
.hw-caravan .caravan-ridge.back{background:#293347}
.hw-caravan .caravan-ridge.front{background:#243a43}
.hw-caravan .caravan-road{background:linear-gradient(0deg,#777257,#77765d00)}
.hw-caravan .caravan-oasis{opacity:.4;filter:saturate(.5)}
.hw-caravan .caravan-cart>img{filter:drop-shadow(0 0 10px #a4d8b844)}
.hw-caravan .caravan-cart>span{color:#f8e5c2;background:#23283cb8;text-shadow:none;border:1px solid #e3c58344;border-radius:8px;padding:3px 9px}
.hw-caravan .caravan-camel{filter:drop-shadow(0 0 8px #c4d7ca42)}
.hw-caravan .camel-body>path:nth-of-type(2),.hw-caravan .camel-body>path:nth-of-type(3),.hw-caravan .camel-body>path:nth-of-type(4),.hw-caravan .camel-body>path:nth-of-type(5){fill:#bad1be;stroke:#769791}
.hw-caravan .camel-leg.near>path:first-child{stroke:#bad1be}
.hw-caravan .camel-leg.far>path:first-child{stroke:#72938b}
.hw-caravan .camel-leg.near>circle{fill:#9fb9a7}
.hw-caravan .caravan-clouds{opacity:.14}
.hw-caravan .camel-dust{opacity:.3}
.hw-caravan .camel-treasure{opacity:0}
.hw-camel-pumpkin{display:none}
.hw-caravan .hw-camel-pumpkin{display:block}
.hw-caravan .caravan-lantern{display:block!important;background:#ffd580;box-shadow:0 0 15px #ffcc7370;border-color:#cda76b}
.hw-caravan .caravan-guide{filter:drop-shadow(0 0 12px #b9e5cb30)}
.hw-caravan .caravan-clock,.hw-caravan .caravan-total{background:#182637ed;color:#ffe0a8;border-color:#beaa7480}
.hw-caravan .caravan-total small,.hw-caravan .caravan-total span{color:#d3dce0}
.hw-caravan footer{background:#182635;color:#f8e5c2;border-top-color:#eed3a04d}
.hw-caravan .caravan-chest>span,.hw-caravan .caravan-rules>span{color:#cad7da}
.hw-caravan .caravan-rewards li{color:#e2f4ce;background:#213a35ed;border-color:#c6d5a74d}
.hw-caravan-atmosphere{position:absolute;inset:0;overflow:hidden;pointer-events:none;contain:strict;z-index:1}
.hw-caravan-mist{position:absolute;inset:auto -10% 0;height:20%;border-radius:50%;background:radial-gradient(ellipse,#c2d8c61c,transparent 65%);animation:hw-mist 17s ease-in-out infinite alternate}
.hw-caravan-firefly{position:absolute;left:calc(7% + var(--hw-i)*17%);top:calc(61% + var(--hw-i)*4%);width:4px;height:4px;border-radius:50%;background:#e8dfa6;box-shadow:0 0 8px #e9d992;animation:hw-firefly 4s ease-in-out infinite alternate;animation-delay:calc(var(--hw-i)*-.6s)}
.hw-caravan-bat{position:absolute;top:calc(5% + var(--hw-i)*9%);left:calc(8% + var(--hw-i)*34%);width:clamp(28px,3.5vw,55px);color:#101729b3;animation:hw-bat-glide 8s ease-in-out infinite alternate;animation-delay:calc(var(--hw-i)*-2s)}
.hw-caravan-bat svg{display:block;width:100%}
.hw-pumpkin-opening .caravan-treasure-rays{background:conic-gradient(from 0deg,transparent,#ffd6a12b,transparent,#adcdba3d,transparent,#d4bbf236,transparent);opacity:.75}
.hw-pumpkin-opening>strong{color:#ffe5bd}
.hw-pumpkin-opening .hw-candy{--hw-candy:#f4b675;position:absolute;z-index:5;left:50%;top:43%;display:block;width:23px;height:14px;margin:0;padding:0;border-radius:50%;background:repeating-linear-gradient(115deg,var(--hw-candy) 0 5px,#fff4cd 5px 9px);box-shadow:inset 0 0 0 1px #fff5dc80;animation:hw-candy-burst 2.1s cubic-bezier(.16,.65,.3,1) both;animation-delay:calc(var(--hw-i)*.04s);pointer-events:none}
.hw-candy:nth-of-type(3n){--hw-candy:#a6d4b7}
.hw-candy:nth-of-type(3n + 1){--hw-candy:#bba0d8}
.hw-candy::before,.hw-candy::after{content:'';position:absolute;width:9px;height:13px;top:0;left:-6px;background:var(--hw-candy);clip-path:polygon(0 0,100% 28%,100% 72%,0 100%,25% 50%)}
.hw-candy::after{left:auto;right:-6px;scale:-1 1}
@keyframes hw-boss-hello{0%,100%{transform:translate(150%,20px) rotate(8deg);opacity:0}22%,74%{transform:translate(0,0) rotate(-4deg);opacity:1}}
@keyframes hw-vine-grow{0%,100%{transform:translateY(75%) rotate(-12deg);opacity:0}25%,75%{transform:translateY(0) rotate(3deg);opacity:.88}}
@keyframes hw-ghost-float{from{transform:translate(0,-9px) rotate(-6deg)}to{transform:translate(8px,12px) rotate(6deg)}}
@keyframes hw-web-appear{0%,100%{opacity:0;transform:scale(.8)}25%,75%{opacity:.7;transform:scale(1)}}
@keyframes hw-spider-drop{0%,100%{transform:translateY(-110%)}28%,70%{transform:translateY(-15%) rotate(-5deg)}}
@keyframes hw-mist{to{transform:translate(8%,15%)}}
@keyframes hw-firefly{from{transform:translate(-8px,8px);opacity:.3}to{transform:translate(15px,-15px);opacity:.85}}
@keyframes hw-bat-glide{from{transform:translate(-20px,10px) rotate(-8deg)}to{transform:translate(45px,-8px) rotate(8deg)}}
@keyframes hw-candy-burst{0%{transform:translate(-50%,-50%) rotate(0) scale(.2);opacity:0}15%{opacity:1}75%{opacity:1}100%{transform:translate(var(--hw-x),var(--hw-y)) rotate(calc(var(--hw-i)*71deg)) scale(.75);opacity:0}}
@media(max-width:600px){.hw-boss-vine{width:55px;left:-20px;height:42vh}.hw-boss-vine:nth-of-type(even){right:-20px}.hw-boss-letter{width:60px;opacity:.6}.hw-boss-letter:nth-of-type(n+3){display:none}.hw-boss-web{width:110px;opacity:.5}.hw-boss-spider{width:65px;right:14px;height:31vh}.boss-hazard[data-kind^="halloween-"] .boss-hazard-label{bottom:calc(100px + env(safe-area-inset-bottom,0px))}.hw-caravan .caravan-cart>span{padding:2px 4px}}
/* Both the event switch and system preference disable motion immediately. */
.hw-motion-off .hw-caravan *,.hw-scenes-motion-off .hw-caravan *,.hw-scene-calm *{animation:none!important;transition:none!important}
.hw-motion-off .hw-caravan-atmosphere,.hw-scenes-motion-off .hw-caravan-atmosphere,.hw-scene-calm .hw-caravan-atmosphere,.hw-motion-off .hw-candy,.hw-scenes-motion-off .hw-candy,.hw-motion-off .hw-boss-vine,.hw-motion-off .hw-boss-letter,.hw-motion-off .hw-boss-web,.hw-motion-off .hw-boss-spider,.hw-scenes-motion-off .hw-boss-vine,.hw-scenes-motion-off .hw-boss-letter,.hw-scenes-motion-off .hw-boss-web,.hw-scenes-motion-off .hw-boss-spider{display:none!important}
.hw-motion-off .boss-arrival[data-boss^="halloween-"],.hw-scenes-motion-off .boss-arrival[data-boss^="halloween-"]{display:none!important}
@media(prefers-reduced-motion:reduce){.hw-caravan *,.class-boss[data-boss^="halloween-"] *{animation:none!important;transition:none!important}.hw-caravan-atmosphere,.hw-candy,.hw-boss-vine,.hw-boss-letter,.hw-boss-web,.hw-boss-spider,.boss-arrival[data-boss^="halloween-"]{display:none!important}}
