The JavaScript canvas noise loop was replaced with a CSS-only SVG grain filter, an IntersectionObserver was added to pause rendering when off-screen, and prefers-reduced-motion support was wired into both the component and the tactical stylesheet. - #192
Merged