.enemySpriteWrap{position:relative}
.enemy-frame:not(.enemy-frame-idle){position:absolute;left:50%;bottom:0;opacity:0;visibility:hidden;pointer-events:none;transform:translateX(-50%);transform-origin:center bottom}
#enemy[data-enemy-tier="boss"] .enemy-frame{width:148px;height:148px;max-width:190px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 8px 10px rgba(0,0,0,.55))}
#enemy[data-enemy-tier="boss"].attacking .enemy-frame-idle{opacity:0!important;visibility:hidden!important}
#enemy[data-enemy-tier="boss"].attacking.phase-anticipation .enemy-frame-anticipation,
#enemy[data-enemy-tier="boss"].attacking.phase-contact .enemy-frame-contact,
#enemy[data-enemy-tier="boss"].attacking.phase-follow-through .enemy-frame-follow-through,
#enemy[data-enemy-tier="boss"].attacking.phase-recover .enemy-frame-idle{opacity:1!important;visibility:visible!important}
#enemy[data-enemy-tier="boss"].attacking.phase-contact .enemy-frame-contact{filter:drop-shadow(-7px 6px 10px rgba(255,210,90,.36))}
@media(max-width:600px){#enemy[data-enemy-tier="boss"] .enemy-frame{width:143px;height:143px;transform:translateX(-50%) translateY(9px)}}
@media(prefers-reduced-motion:reduce){#enemy[data-enemy-tier="boss"].attacking .enemy-frame:not(.enemy-frame-idle){display:none!important}#enemy[data-enemy-tier="boss"].attacking .enemy-frame-idle{opacity:1!important;visibility:visible!important}}

/* v3.8.15 — universal boss entrance, built from the current boss sprite. */
.bossEntrance{position:absolute;inset:0;z-index:28;pointer-events:none;overflow:hidden;opacity:0;visibility:hidden}
.bossEntrance.show{opacity:1;visibility:visible}.bossEntranceShade{position:absolute;inset:0;background:linear-gradient(#02050bd9,#07111bbd 70%,#140d08d9);animation:boss-shade 2.35s both}.bossEntranceFlash{position:absolute;inset:0;background:radial-gradient(circle at 72% 72%,#fff7cf 0 3%,#ffb43a99 9%,transparent 28%);opacity:0;animation:boss-flash 2.35s both}.bossEntranceBanner{position:absolute;left:50%;top:17%;transform:translateX(-50%);display:grid;text-align:center;gap:2px;white-space:nowrap;text-shadow:0 3px 12px #000;animation:boss-banner 2.35s both}.bossEntranceBanner small{font-size:10px;font-weight:950;letter-spacing:.28em;color:#ffc760}.bossEntranceBanner b{font-size:clamp(22px,7vw,34px);font-weight:1000;letter-spacing:.08em;color:#fff;border-block:2px solid #e65438;padding:6px 18px;background:#260907b8}#battleArena.boss-entering~.qcard{pointer-events:none;opacity:.72}#enemy[data-enemy-tier="boss"].boss-drop{z-index:29;animation:boss-drop 2.35s cubic-bezier(.18,.72,.2,1) both}#battleArena.boss-landed{animation:boss-landing-shake .38s linear both}
@keyframes boss-drop{0%{transform:translateY(-190%);filter:brightness(.15) drop-shadow(0 14px 5px #0009)}30%{transform:translateY(-190%);filter:brightness(.15) drop-shadow(0 14px 5px #0009)}43%{transform:translateY(8%);filter:brightness(.7) drop-shadow(0 10px 10px #000)}52%{transform:translateY(-5%);filter:brightness(1.15)}62%,100%{transform:translateY(0);filter:brightness(1)}}@keyframes boss-shade{0%{opacity:0}12%,68%{opacity:1}100%{opacity:0}}@keyframes boss-flash{0%,38%,55%,100%{opacity:0}42%{opacity:1}}@keyframes boss-banner{0%,48%{opacity:0;transform:translate(-50%,-10px) scale(.9)}57%,82%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,4px) scale(1.03)}}@keyframes boss-landing-shake{0%,100%{transform:translate(0)}20%{transform:translate(-5px,3px)}40%{transform:translate(5px,-2px)}60%{transform:translate(-3px,2px)}80%{transform:translate(3px,-1px)}}
@media(prefers-reduced-motion:reduce){#enemy[data-enemy-tier="boss"].boss-drop{animation:none}.bossEntranceShade,.bossEntranceFlash{display:none}.bossEntranceBanner{animation:boss-banner-reduced 1.4s both}#battleArena.boss-landed{animation:none}@keyframes boss-banner-reduced{0%,100%{opacity:0}15%,80%{opacity:1}}}
