Changing current.src immediately triggered the new image to render while the element was still mid-opacity-transition (partially visible), causing the next queued photo to briefly flash through the crossfade. Now we wait for the transitionend event before setting the new preload src. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>