/* Axe blade marks the hotspot; all artwork is transparent to pointer input. */
.axe-cursor,.axe-cursor-impact{position:fixed;width:60px;height:60px;pointer-events:none!important;z-index:2147483646;filter:drop-shadow(0 2px 2px #0006)}
.axe-cursor{top:0;left:0;opacity:0;will-change:transform}
.axe-cursor.is-visible{opacity:1}
.axe-cursor svg,.axe-cursor-impact svg{display:block;width:100%;height:100%;overflow:visible}
.axe-target{opacity:0;transform:scale(.65);transform-origin:32px 32px;transition:opacity .16s,transform .2s}
.axe-tool{transform-origin:32px 32px;transition:transform .18s}
.is-aiming .axe-target{opacity:1;transform:scale(1)}
.is-aiming .axe-tool{transform:translate(8px,-9px) rotate(-18deg)}
.axe-impact-ring{opacity:0;transform-origin:32px 32px}
.axe-cursor-impact .axe-target{opacity:1;transform:scale(1)}
.axe-cursor-impact{animation:axe-impact-fade .75s ease-out forwards}
.axe-cursor-impact .axe-tool{animation:axe-stick .48s ease-out both}
.axe-cursor-impact .axe-impact-ring{animation:axe-ring .4s ease-out both}
@keyframes axe-stick{0%{transform:translate(12px,-16px) rotate(-35deg)}25%{transform:translate(0,0) rotate(5deg)}42%{transform:rotate(-5deg)}60%{transform:rotate(3deg)}80%,100%{transform:rotate(0)}}
@keyframes axe-ring{10%{opacity:.9;transform:scale(.7)}100%{opacity:0;transform:scale(1.7)}}
@keyframes axe-impact-fade{0%,70%{opacity:1}100%{opacity:0}}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  html.axe-cursor-active,html.axe-cursor-active *{cursor:none!important}
}
@media(prefers-reduced-motion:reduce),(hover:none),(pointer:coarse){.axe-cursor,.axe-cursor-impact{display:none!important}}
