Replaces GPU 7×7/5×5 Gaussian blur (98 texture reads/px) with CPU-side Gaussian blur (sigma 2.0) + 4× bilinear upscale + RGBA8 convert in fog_state.gd. GL compatibility mode doesn't bilinear-filter R8 textures; RGBA8 at 4× resolution resolves this. Squared exp_fade at the explored/unexplored boundary keeps fog opaque near tile content edges, fixing the staircase artifact. Shader now does 2 texture reads per pixel. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>