/* Precise desktop pointer; touch and editable fields retain native interaction. */
html.px-pointer-active,html.px-pointer-active *{cursor:none!important}
.px-pointer-layer{position:fixed;inset:0;z-index:2147483647;pointer-events:none!important;overflow:visible;contain:layout style;--pointer-ice:#9ae5e8;--pointer-dim:#16747a;--pointer-hit:#ff4656}
.px-pointer-layer *{pointer-events:none!important}
.px-pointer{position:absolute;left:0;top:0;width:40px;height:40px;opacity:0;will-change:transform;filter:drop-shadow(0 1px 2px #000) drop-shadow(0 0 3px #7cdadd25);transition:opacity 75ms linear}
.px-pointer.is-visible{opacity:1}
.px-pointer svg{display:block;width:100%;height:100%;overflow:visible}
.px-pointer .pointer-shell{stroke:var(--pointer-ice);stroke-width:1.45;fill:#062c31d9;stroke-linejoin:miter}
.px-pointer .pointer-core{stroke:var(--pointer-ice);stroke-width:1;fill:#13747b55;opacity:.85;transform-origin:5px 5px;transition:transform 130ms ease,fill 130ms ease}
.px-pointer .pointer-fragments{fill:none;stroke:var(--pointer-dim);stroke-width:1.3;transition:stroke 130ms ease}
.px-pointer.is-action .pointer-core{transform:translate(1.5px,1.5px);fill:#8de6ed44}
.px-pointer.is-action .pointer-fragments{stroke:var(--pointer-ice)}
.px-pointer.is-pressed .pointer-shell{stroke:var(--pointer-hit)}
.px-impact{position:absolute;width:0;height:0;left:0;top:0}
.px-hit{position:absolute;left:0;top:0;width:48px;height:48px;color:var(--pointer-ice);transform:translate(-50%,-50%)}
.px-hit.is-critical{width:58px;height:58px;color:var(--pointer-hit)}
.px-hit svg{width:100%;height:100%;display:block;overflow:visible;animation:px-hit 620ms ease-out both;filter:drop-shadow(0 0 3px #080a0e)}
.px-hit .hit-outer{stroke:var(--pointer-hit);stroke-width:1.6;fill:none;stroke-linecap:square}
.px-hit .hit-inner{stroke:currentColor;stroke-width:1;fill:none}
@keyframes px-hit{0%{opacity:1;transform:scale(.68)}18%{opacity:1;transform:scale(1)}65%{opacity:.8;transform:scale(1.08)}100%{opacity:0;transform:scale(1.16)}}
.px-damage{position:absolute;display:flex;align-items:center;gap:7px;white-space:nowrap;line-height:1;transform:translate(-50%,-100%);font:700 30px/1 var(--display,'Barlow Condensed',monospace);color:#fff;text-shadow:0 2px 1px #000,1px 0 2px #000,-1px 0 2px #000,0 0 9px #000;animation:px-damage 940ms cubic-bezier(.12,.55,.25,1) both}
.px-damage strong{font:inherit}
.px-damage.is-critical{font-size:44px;color:#ff4656}
.px-damage-label{font:700 18px/1 var(--mono,monospace);letter-spacing:1px}
@keyframes px-damage{0%{opacity:0;transform:translate(-50%,-85%) scale(.86)}12%{opacity:1;transform:translate(-50%,-115%) scale(1.08)}35%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--damage-drift,0px)),calc(-100% - 56px)) scale(.96)}}
@media(prefers-reduced-motion:reduce){.px-pointer,.px-pointer .pointer-core,.px-pointer .pointer-fragments{transition:none}.px-hit svg,.px-damage{animation:px-hit-static 320ms linear both}@keyframes px-hit-static{0%,70%{opacity:1}100%{opacity:0}}}
@media(forced-colors:active){html.px-pointer-active,html.px-pointer-active *{cursor:auto!important}.px-pointer,.px-hit{display:none}}
