.item-throw{position:fixed;width:56px;height:64px;border:3px solid #1b1d1f;border-radius:14px;background:#d4ff3f;box-shadow:4px 4px 0 #1b1d1f;display:grid;place-items:center;font-size:38px;pointer-events:none}.comic-hit-echo{position:fixed;display:block;pointer-events:none;z-index:2;transform-origin:50% 70%;animation:comic-impact-echo .48s ease-out both}.comic-hit-echo .face{width:100%;height:100%;object-fit:contain}.comic-impact-slash{position:fixed;transform:translate(-50%,-50%) rotate(-12deg);font-size:clamp(24px,6vw,45px);font-weight:1000;font-style:italic;white-space:nowrap;color:#ffad62;-webkit-text-stroke:2px #1b1d1f;paint-order:stroke fill;text-shadow:4px 4px 0 #1b1d1f,7px 8px 0 #d4ff3f;pointer-events:none;animation:comic-judgement .6s ease-out both}.comic-impact.attack{font-size:clamp(27px,5.3vw,54px);background:#d4ff3f;box-shadow:6px 7px 0 #1b1d1f,10px 11px 0 #bba3ff}.comic-hit-bit{animation-delay:55ms}.comic-shock-ring{border-width:7px}
@keyframes comic-impact-echo{0%{opacity:1;transform:scale(1.22,.78) rotate(-9deg);filter:brightness(1.7) saturate(.2)}16%{opacity:1;transform:scale(1.22,.78) rotate(-9deg);filter:brightness(1.4)}46%{opacity:.7;transform:scale(.87,1.15) rotate(7deg);filter:brightness(1)}100%{opacity:0;transform:scale(1.2) rotate(-3deg);filter:brightness(1)}}@keyframes comic-judgement{0%{opacity:0;transform:translate(-50%,-50%) rotate(-19deg) scale(2)}20%{opacity:1;transform:translate(-50%,-50%) rotate(-12deg) scale(.95)}65%{opacity:1;transform:translate(-50%,-50%) rotate(-12deg) scale(1)}100%{opacity:0;transform:translate(-50%,-100%) rotate(-12deg) scale(1.05)}}
@media(prefers-reduced-motion:reduce){.comic-hit-echo,.comic-impact-slash,.item-throw,.comic-hit-bit,.comic-shock-ring{display:none!important}}
/* 道具拖拽 */
.item-slot{touch-action:none}
.item-ghost{position:fixed;left:0;top:0;width:56px;height:64px;border:3px solid #1b1d1f;border-radius:14px;background:#d4ff3f;box-shadow:4px 4px 0 #1b1d1f;display:grid;place-items:center;font-size:38px;line-height:1;pointer-events:none;z-index:80;will-change:transform}
.item-ghost.is-drop-ready{background:#c6ff4d;box-shadow:0 0 0 5px #d4ff3f55,5px 5px 0 #1b1d1f}
.item-slot.is-dragging{opacity:.32}
.item-slot.is-armed{transform:scale(.94)}
.is-item-target{outline:3px solid #d4ff3f;outline-offset:5px;filter:drop-shadow(0 0 10px #d4ff3f88)}
/* ===== 伤害数字：放大砸下 + 摆动 + 上浮消失（按力度缩放） ===== */
@keyframes impact-pop{
  0%{transform:translate(-50%,-50%) scale(.25) rotate(-16deg);opacity:0}
  30%{transform:translate(-50%,-50%) scale(calc(1.45 * var(--pow,1))) rotate(5deg);opacity:1}
  48%{transform:translate(-50%,-52%) scale(calc(1.05 * var(--pow,1))) rotate(-4deg)}
  66%{transform:translate(-50%,-58%) scale(calc(.98 * var(--pow,1))) rotate(2deg);opacity:1}
  100%{transform:translate(-50%,-92%) scale(calc(.9 * var(--pow,1))) rotate(-1deg);opacity:0}
}
.comic-impact{animation:impact-pop .9s cubic-bezier(.18,1.5,.36,1) both!important;will-change:transform,opacity;letter-spacing:1px}

/* 数字背后一圈爆炸线 */
.comic-impact:before{content:'';position:absolute;left:50%;top:50%;width:1.7em;height:1.7em;margin:-.85em 0 0 -.85em;
  border-radius:50%;background:
    repeating-conic-gradient(from 0deg,#1b1d1f 0deg 5deg,transparent 5deg 22deg);
  opacity:.16;animation:impact-ring .9s ease-out both;pointer-events:none;z-index:-1}
@keyframes impact-ring{0%{transform:scale(.3) rotate(0);opacity:0}35%{opacity:.22}100%{transform:scale(1.5) rotate(28deg);opacity:0}}

/* 暴击/大伤害：闪一下黄光（不涉及红） */
.comic-impact.attack{filter:drop-shadow(0 0 10px #d4ff3faa)}
/* 数字不要撑破屏幕 */
.comic-impact{max-width:90vw;white-space:nowrap;overflow:hidden}
.comic-impact.attack{font-size:clamp(21px,4.4vw,38px)!important}