/* IXH — tactical crosshair cursor (defense areas only) */
.xh{position:fixed;left:0;top:0;pointer-events:none;z-index:2147483646;opacity:0;transition:opacity .18s ease;will-change:transform}
.xh.on{opacity:1}
.xh-ring{width:52px;height:52px;margin:-26px 0 0 -26px;border:1.5px solid rgba(225,29,46,.85);border-radius:50%;transition:opacity .18s ease,width .2s ease,height .2s ease,margin .2s ease,border-color .2s ease}
.xh-aim{width:50px;height:50px;margin:-25px 0 0 -25px}
.xh-aim i{position:absolute;display:block}
/* centre dot */
.xh-aim .d{left:50%;top:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:#e11d2e;box-shadow:0 0 6px rgba(225,29,46,.8)}
/* cross ticks */
.xh-aim .t{background:rgba(225,29,46,.9)}
.xh-aim .tn,.xh-aim .ts{left:50%;width:1.5px;height:9px;margin-left:-.75px}
.xh-aim .tn{top:6px}.xh-aim .ts{bottom:6px}
.xh-aim .tw,.xh-aim .te{top:50%;height:1.5px;width:9px;margin-top:-.75px}
.xh-aim .tw{left:6px}.xh-aim .te{right:6px}
/* corner brackets */
.xh-aim .c{width:8px;height:8px;border:0 solid rgba(225,29,46,.85);transition:transform .2s ease}
.xh-aim .c1{left:0;top:0;border-left-width:1.5px;border-top-width:1.5px}
.xh-aim .c2{right:0;top:0;border-right-width:1.5px;border-top-width:1.5px}
.xh-aim .c3{left:0;bottom:0;border-left-width:1.5px;border-bottom-width:1.5px}
.xh-aim .c4{right:0;bottom:0;border-right-width:1.5px;border-bottom-width:1.5px}
/* hover over a link/button: lock-on */
.xh-lock .xh-aim .c1{transform:translate(-5px,-5px)}
.xh-lock .xh-aim .c2{transform:translate(5px,-5px)}
.xh-lock .xh-aim .c3{transform:translate(-5px,5px)}
.xh-lock .xh-aim .c4{transform:translate(5px,5px)}
.xh-lock .xh-ring{width:34px;height:34px;margin:-17px 0 0 -17px;border-color:#ff2a3c}
.xh-down .xh-aim .d{transform:scale(1.5)}
/* hide native cursor inside the zone (text fields keep their caret) */
.xh-zone,.xh-zone *{cursor:none!important}
.xh-zone input,.xh-zone textarea,.xh-zone select,.xh-zone [contenteditable]{cursor:auto!important}
.xh-text .xh{opacity:0!important}
@media (hover:none),(pointer:coarse){.xh{display:none!important}.xh-zone,.xh-zone *{cursor:auto!important}}
@media (prefers-reduced-motion:reduce){.xh-ring{transition:none}}
