/* Reticles share the camera's exact viewport center. Their gaps reflect the
   current weapon cone; no CSS easing delays a change in simulated accuracy. */
#crosshair{position:absolute;left:50%;top:50%;width:256px;height:256px;transform:translate(-50%,-50%);border:0;border-radius:0;background:none;pointer-events:none;--reticle-gap:8px}
#crosshair .weapon-reticle{display:block;width:100%;height:100%;overflow:visible;fill:none;stroke-linecap:butt;stroke-linejoin:miter}
#crosshair .reticle-edge{stroke:#07131f;stroke-width:3.8;stroke-opacity:.9}
#crosshair .reticle-ink{stroke:#fff;stroke-width:1.8}
#crosshair[data-fine=true] .reticle-edge{stroke-width:3.2}
#crosshair[data-fine=true] .reticle-ink{stroke-width:1.2}
#crosshair .reticle-right{transform:translateX(var(--reticle-gap))}
#crosshair .reticle-left{transform:translateX(calc(-1 * var(--reticle-gap)))}
#crosshair .reticle-bottom{transform:translateY(var(--reticle-gap))}
#crosshair .reticle-top{transform:translateY(calc(-1 * var(--reticle-gap)))}
#crosshair .reticle-corner-se{transform:translate(var(--reticle-gap),var(--reticle-gap))}
#crosshair .reticle-corner-sw{transform:translate(calc(-1 * var(--reticle-gap)),var(--reticle-gap))}
#crosshair .reticle-corner-nw{transform:translate(calc(-1 * var(--reticle-gap)),calc(-1 * var(--reticle-gap)))}
#crosshair .reticle-corner-ne{transform:translate(var(--reticle-gap),calc(-1 * var(--reticle-gap)))}
