Index: src/assets/js/audio-player.js
===================================================================
--- src/assets/js/audio-player.js	(revision 0dbb5c14a391c55db20fd75acf91c9876095ea7e)
+++ src/assets/js/audio-player.js	(revision 230e44682e487f793fa625a807aea1d6616cf03a)
@@ -566,19 +566,31 @@
   //    via htmx zodat de audio blijft spelen. Geen post bekend → val terug op de sheet.
   //  - MOBIEL: altijd de uitgebreide speler-sheet openen (huidig gedrag).
-  function goToPost(url) {
+  function scrollToTrack(trackId) {
+    if (!trackId) { window.scrollTo(0, 0); return; }
+    const el = document.getElementById('track-' + trackId);
+    if (!el) { window.scrollTo(0, 0); return; }
+    el.scrollIntoView({ block: 'center', behavior: 'smooth' });
+    el.classList.add('pat-flash');
+    setTimeout(() => el.classList.remove('pat-flash'), 1600);
+  }
+  function goToPost(url, trackId) {
+    const hash = trackId ? ('#track-' + trackId) : '';
     if (window.htmx && url.charAt(0) === '/') {
       try {
-        window.htmx.ajax('GET', url, { target: '#pcms-main', swap: 'innerHTML' });
-        history.pushState({}, '', url);
-        window.scrollTo(0, 0);
+        const p = window.htmx.ajax('GET', url, { target: '#pcms-main', swap: 'innerHTML' });
+        history.pushState({}, '', url + hash);
+        // Na de swap naar de track scrollen (klein uitstel zodat de globale
+        // afterSwap-top-scroll eerst is geweest); val terug op top als niet gevonden.
+        const go = () => setTimeout(() => scrollToTrack(trackId), 60);
+        if (p && typeof p.then === 'function') p.then(go); else setTimeout(go, 150);
         return;
       } catch (e) { /* val terug op volledige navigatie */ }
     }
-    location.href = url;
+    location.href = url + hash;
   }
   expandTrigger.addEventListener('click', () => {
     const t = queue[currentIndex];
     const isDesktop = window.matchMedia && window.matchMedia('(min-width: 768px)').matches;
-    if (isDesktop && t && t.postUrl) { goToPost(t.postUrl); return; }
+    if (isDesktop && t && t.postUrl) { goToPost(t.postUrl, t.id); return; }
     openSheet();
   });
