/* Shared live / Codex scenery. Numeric feedback stays above the canvas. */
.pump-vfx-canvas{position:fixed;inset:0;width:100vw;height:100vh;z-index:9900;pointer-events:none}
.pump-vfx-tag{position:fixed;z-index:10070;pointer-events:none;color:#fff4dd;font:900 clamp(15px,1.3vw,23px)/1.15 'Outfit',sans-serif;text-align:center;white-space:nowrap;text-shadow:0 2px 4px #100716,0 0 14px var(--pump-accent);animation:pumpTag 1.5s ease-out both}
@keyframes pumpTag{0%{opacity:0;transform:translate(-50%,10px) scale(.6)}18%{opacity:1;transform:translate(-50%,-4px) scale(1.08)}65%{opacity:1}100%{opacity:0;transform:translate(-50%,-62px) scale(.95)}}
.pump-state-aura,.pump-fear-orbit{position:absolute;inset:0;pointer-events:none;z-index:7;border-radius:inherit}
.pump-state-aura>b{position:absolute;inset:2px;border-radius:inherit;border:1px solid var(--pump-accent);box-shadow:inset 0 0 15px color-mix(in srgb,var(--pump-secondary) 30%,transparent),0 0 12px color-mix(in srgb,var(--pump-accent) 45%,transparent);animation:pumpStateBreath 2.8s ease-in-out infinite alternate}
.pump-state-crown{position:absolute;width:60px;height:60px;top:-26px;left:calc(50% - 30px);filter:drop-shadow(0 0 8px var(--pump-accent));display:none}
.pump-state-aura.is-king .pump-state-crown{display:block;animation:pumpCrownFloat 3s ease-in-out infinite alternate}
.pump-state-weapon{position:absolute;right:-22px;bottom:18%;width:85px;height:100px;object-fit:contain;filter:drop-shadow(0 0 9px var(--pump-accent));transform:rotate(14deg);animation:pumpWeaponReady 1.8s ease-in-out infinite alternate}
.pump-state-aura.is-ready>b{border-width:2px;box-shadow:inset 0 0 12px var(--pump-accent),0 0 15px var(--pump-secondary)}
.pump-state-aura svg,.pump-fear-orbit svg,.pump-night-world svg{width:100%;height:100%;fill:color-mix(in srgb,var(--pump-accent) 55%,transparent);stroke:var(--pump-accent);stroke-width:2}
.pump-state-aura[data-pump-skin="cyber"]>b{border-radius:2px;clip-path:polygon(0 0,40% 0,40% 2%,60% 2%,60% 0,100% 0,100% 100%,60% 100%,60% 98%,40% 98%,40% 100%,0 100%)}
.pump-state-aura[data-pump-skin="mese"]>b{border-style:dotted;border-width:3px}
.pump-state-aura[data-pump-skin="vip"]>b{border-style:double;border-width:4px}
.pump-state-aura[data-pump-skin="kalandor"]>b{border-style:dashed}
@keyframes pumpStateBreath{to{opacity:.55}}
@keyframes pumpCrownFloat{to{transform:translateY(-7px) rotate(6deg)}}
@keyframes pumpWeaponReady{to{transform:translateY(-8px) rotate(6deg);filter:drop-shadow(0 0 17px var(--pump-accent))}}
.pump-fear-orbit{inset:15% -5% 30%;animation:pumpFearOrbit 6s linear infinite}
.pump-fear-orbit>i{position:absolute;left:calc(50% - 16px);top:calc(50% - 16px);width:32px;height:32px;transform:rotate(calc(var(--i)*90deg)) translateX(85px) rotate(calc(var(--i)*-90deg));filter:drop-shadow(0 0 5px var(--pump-secondary))}
@keyframes pumpFearOrbit{to{transform:rotate(360deg)}}
.pump-night-world{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;border-radius:inherit;animation:pumpWorldEnter .9s ease-out both}
.pump-night-wash{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 100%,color-mix(in srgb,var(--pump-secondary) 18%,transparent),transparent 65%),linear-gradient(0deg,color-mix(in srgb,var(--pump-accent) 8%,transparent),transparent 35%)}
.pump-night-world>i{position:absolute;left:var(--x);top:var(--y);width:42px;height:42px;opacity:.48;filter:drop-shadow(0 0 9px var(--pump-accent));animation:pumpWorldDrift 7s ease-in-out calc(var(--i)*-.8s) infinite alternate}
.pump-night-world>img{position:absolute;width:90px;height:90px;object-fit:contain;left:calc(50% - 45px);top:calc(50% - 45px);opacity:.16;filter:drop-shadow(0 0 20px var(--pump-accent))}
.pump-night-world[data-pump-skin="cyber"] .pump-night-wash{background:repeating-linear-gradient(0deg,transparent 0 39px,#ff741f13 40px 41px),repeating-linear-gradient(90deg,transparent 0 59px,#68d7ff10 60px 61px);mask-image:linear-gradient(transparent 15%,#000 80%)}
.pump-night-world[data-pump-skin="cyber"]>i{animation-timing-function:steps(8,end)}
.pump-night-world[data-pump-skin="vip"] .pump-night-wash{background:conic-gradient(from 20deg at 50% 100%,transparent 0 60deg,#ffdf8420 64deg,transparent 68deg 110deg,#bc7bff17 115deg,transparent 120deg)}
.pump-night-world[data-pump-skin="mese"]>i{border:1px solid #79eaff77;border-radius:50%;box-shadow:inset -3px -5px 12px #ff79dd44}
.pump-night-world[data-pump-skin="kalandor"] .pump-night-wash{background:repeating-radial-gradient(ellipse at 20% 80%,transparent 0 38px,#e8bd5b13 40px 41px,transparent 43px 58px)}
@keyframes pumpWorldEnter{from{opacity:0}to{opacity:1}}
@keyframes pumpWorldDrift{to{transform:translate(22px,-22px) rotate(18deg)}}
/* Retain the resource UI, replacing its old Halloween-only ornamentation. */
.mrpump-fear-meter{--pump-accent:#ff791c;--pump-secondary:#a65aff;position:relative;display:flex;align-items:center;gap:4px;height:32px;align-self:flex-end;z-index:4}
.mrpump-fear-meter-icon{width:34px;height:34px;object-fit:contain;filter:drop-shadow(0 0 5px var(--pump-accent))}
.mrpump-fear-meter-track{position:relative;width:92px;height:19px;overflow:hidden;border:2px solid var(--pump-accent);border-radius:5px;background:#150f1e;box-shadow:0 0 8px color-mix(in srgb,var(--pump-accent) 45%,transparent)}
.mrpump-fear-meter-fill{position:absolute;inset:0 auto 0 0;width:var(--mrpump-fear-fill,0%);background:linear-gradient(90deg,var(--pump-secondary),var(--pump-accent));box-shadow:inset 0 1px 3px #fff8;transition:width .4s ease-out}
.mrpump-fear-meter-track>i{position:absolute;top:0;bottom:0;width:1px;background:#fff9}
.mrpump-fear-meter-track>i[data-milestone="25"]{left:25%}.mrpump-fear-meter-track>i[data-milestone="50"]{left:50%}.mrpump-fear-meter-track>i[data-milestone="75"]{left:75%}
.mrpump-fear-meter-track>i.is-reached{background:#fff;box-shadow:0 0 4px #fff}
.mrpump-fear-meter.is-harvest-ready .mrpump-fear-meter-track{border-color:#fff3ce;box-shadow:0 0 12px var(--pump-accent)}
.mrpump-fear-meter[data-pump-skin="mese"] .mrpump-fear-meter-track{border-radius:12px}
.mrpump-fear-meter[data-pump-skin="vip"] .mrpump-fear-meter-track{border-style:double;border-width:3px}
.mrpump-fear-meter[data-pump-skin="cyber"] .mrpump-fear-meter-fill{background:repeating-linear-gradient(90deg,var(--pump-accent) 0 8px,#26222d 9px 11px)}
.mrpump-fear-meter[data-pump-skin="kalandor"] .mrpump-fear-meter-track{background:#322819;border-color:#c89c54}
.pump-meter-flow{--pump-meter-ink:#201024;--pump-meter-speed:7s;position:absolute;inset:0 auto 0 0;display:flex;width:200%;pointer-events:none;animation:pumpMeterProcession var(--pump-meter-speed) linear infinite}
.pump-meter-flow>span{display:flex;align-items:center;justify-content:space-around;width:50%;flex-shrink:0}
.pump-meter-flow i{display:block;width:14px;height:14px;flex:0 0 14px;opacity:.9;animation:pumpMeterEmber 2.4s ease-in-out calc(var(--i)*-.6s) infinite}
.pump-meter-flow img,.pump-meter-flow svg{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 1px 1px #160c21)}
.pump-meter-flow svg{fill:var(--pump-accent);stroke:#fff1ce;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.mrpump-fear-meter-track>i[data-milestone]{z-index:2;pointer-events:none}
.mrpump-fear-meter[data-pump-skin="base"] .pump-meter-flow i[data-motif="bat"]{animation-name:pumpMeterFlutter}
.mrpump-fear-meter[data-pump-skin="mese"] .pump-meter-flow{--pump-meter-speed:9s;--pump-meter-ink:#632768}
.mrpump-fear-meter[data-pump-skin="mese"] .pump-meter-flow svg{fill:#ffb1e9;stroke:#bcfcff}
.mrpump-fear-meter[data-pump-skin="mese"] .pump-meter-flow i{animation-name:pumpMeterBubble;animation-duration:3s}
.mrpump-fear-meter[data-pump-skin="mese"] .pump-meter-flow i[data-motif="star"]{animation-name:pumpMeterTwinkle}
.mrpump-fear-meter[data-pump-skin="vip"] .pump-meter-flow{--pump-meter-speed:8s;--pump-meter-ink:#48216a}
.mrpump-fear-meter[data-pump-skin="vip"] .pump-meter-flow i{width:12px;height:12px;flex-basis:12px;filter:drop-shadow(0 0 2px #fff2ae);animation-name:pumpMeterGlint}
.mrpump-fear-meter[data-pump-skin="vip"] .pump-meter-flow i[data-motif="crown"]{animation-name:pumpMeterCrown}
.mrpump-fear-meter[data-pump-skin="cyber"] .pump-meter-flow{--pump-meter-speed:5.5s;animation-timing-function:steps(40,end)}
.mrpump-fear-meter[data-pump-skin="cyber"] .pump-meter-flow i{animation-name:pumpMeterSignal;animation-timing-function:steps(1,end);animation-duration:2s}
.mrpump-fear-meter[data-pump-skin="cyber"] .pump-meter-flow svg{fill:#ffad57;stroke:#92edff}
.mrpump-fear-meter[data-pump-skin="kalandor"] .pump-meter-flow{--pump-meter-speed:8.5s;--pump-meter-ink:#332c19}
.mrpump-fear-meter[data-pump-skin="kalandor"] .pump-meter-flow i{animation-name:pumpMeterTrail;animation-duration:3.2s}
.mrpump-fear-meter[data-pump-skin="kalandor"] .pump-meter-flow i[data-motif="compass"]{animation-name:pumpMeterCompass;animation-duration:4s}
.mrpump-fear-meter[data-pump-skin="kalandor"] .pump-meter-flow i[data-motif="leaf"] svg{fill:#8eb768}
.mrpump-fear-meter[data-pump-skin="halloween"] .pump-meter-flow{--pump-meter-speed:6s;--pump-meter-ink:#2e1338}
.mrpump-fear-meter[data-pump-skin="halloween"] .pump-meter-flow svg{stroke:#b4ffe6}
.mrpump-fear-meter[data-pump-skin="halloween"] .pump-meter-flow i{animation-name:pumpMeterHaunt;animation-duration:3s}
.mrpump-fear-meter[data-pump-skin="halloween"] .pump-meter-flow i[data-motif="ghost"] svg{fill:#9effde}
.mrpump-fear-meter[data-pump-skin="halloween"] .pump-meter-flow i[data-motif="bat"]{animation-name:pumpMeterFlutter;animation-duration:1.4s}
.mrpump-fear-meter[data-pump-skin="halloween"] .pump-meter-flow i[data-motif="web"]{animation-name:pumpMeterWeb;animation-duration:5s}
.mrpump-fear-meter.is-harvest-ready .pump-meter-flow{--pump-meter-speed:3.8s}
.mrpump-fear-meter.is-harvest-ready .pump-meter-flow i{animation-duration:1.2s;filter:drop-shadow(0 0 2px var(--pump-secondary))}
@keyframes pumpMeterProcession{to{transform:translateX(-50%)}}
@keyframes pumpMeterEmber{0%,100%{opacity:.7;transform:translateY(1px) scale(.88)}50%{opacity:1;transform:translateY(-1px) scale(1)}}
@keyframes pumpMeterFlutter{0%,100%{transform:scaleX(1) rotate(-8deg)}50%{transform:scaleX(.65) rotate(8deg)}}
@keyframes pumpMeterBubble{0%,100%{transform:translateY(1px) scale(.8);opacity:.65}50%{transform:translateY(-1px) scale(1);opacity:1}}
@keyframes pumpMeterTwinkle{0%,100%{transform:scale(.7) rotate(-15deg);opacity:.6}50%{transform:scale(1) rotate(15deg);opacity:1}}
@keyframes pumpMeterGlint{0%,100%{opacity:.65;transform:scale(.85) rotate(-8deg)}50%{opacity:1;transform:scale(1.05) rotate(8deg)}}
@keyframes pumpMeterCrown{0%,100%{transform:translateY(1px)}50%{transform:translateY(-1px);opacity:1}}
@keyframes pumpMeterSignal{0%,100%{opacity:.9;transform:translateX(0)}20%{opacity:.45;transform:translateX(1px)}24%,65%{opacity:1;transform:translateX(0)}70%{opacity:.6;transform:translateX(-1px)}}
@keyframes pumpMeterTrail{0%,100%{transform:translateY(1px) rotate(-16deg)}50%{transform:translateY(-1px) rotate(16deg)}}
@keyframes pumpMeterCompass{0%,100%{transform:rotate(-25deg)}50%{transform:rotate(25deg)}}
@keyframes pumpMeterHaunt{0%,100%{transform:translateY(1px) rotate(-7deg);opacity:.6}50%{transform:translateY(-1px) rotate(7deg);opacity:1}}
@keyframes pumpMeterWeb{0%,100%{transform:rotate(-18deg);opacity:.6}50%{transform:rotate(18deg);opacity:1}}
.pump-lunge-layer{z-index:200!important;overflow:visible!important}
.v3-card.pump-card-lunge{z-index:250!important;pointer-events:none;will-change:translate}
@media(prefers-reduced-motion:reduce){.pump-meter-flow,.pump-meter-flow i{animation:none!important}}
body.v3-vfx-disabled .pump-meter-flow,body.v3-vfx-disabled .pump-meter-flow i{animation:none!important}
@media(prefers-reduced-motion:reduce){.pump-state-aura *,.pump-fear-orbit,.pump-night-world,.pump-night-world>i{animation:none!important}.pump-vfx-tag{animation-duration:.8s}.pump-fear-orbit>i{transform:rotate(calc(var(--i)*90deg)) translateX(65px)}}
body.v3-vfx-disabled .pump-night-world,body.v3-vfx-disabled .pump-state-aura,body.v3-vfx-disabled .pump-fear-orbit{display:none}
