Previously the active class was applied via requestAnimationFrame before the image had decoded, causing a brief blank-then-flash. Now loadSlide waits for onload before transitioning, and advanceSlide checks complete/naturalWidth (or waits for onload) on the preloaded slot before doing the swap. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>