Godot 4.6 OpenGL3 compatibility mode does not support 'return' in fragment(). The early returns on lines 68 and 82 caused silent shader compilation failure, making the fog overlay render as a no-op — the root cause of the Sprint 22 fog regression. Restructured to if/else-if/else chain preserving identical logic. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>