goToSlide() was replaceState()-ing, so paging through the viewer left a single history entry — browser Back skipped every plate you'd looked at. It now pushState()s on each user-driven slide (guarded to fire only when the index actually changes), popstate slides the viewer back/forward without stacking entries, and the first entry on a directly-loaded plate page is tagged with its slug so Back to it is handled in-place. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DZPmxGywFnAhmYJB1eh9fm