diff --git a/scraper/internal/server/ui.go b/scraper/internal/server/ui.go
index ddba39f..0980c92 100644
--- a/scraper/internal/server/ui.go
+++ b/scraper/internal/server/ui.go
@@ -119,7 +119,7 @@ func (s *Server) respond(w http.ResponseWriter, r *http.Request, title, fragment
// ─── GET / — book catalogue ───────────────────────────────────────────────────
const homeTmpl = `
-
+
libnovel
Browse Rankings
@@ -205,6 +205,10 @@ const homeTmpl = `
var continueGrid = document.getElementById('continue-reading-grid');
var availableHeading = document.getElementById('available-heading');
+ // Clear any stale cards from a previous render (e.g. HTMX re-executing this
+ // script after a history restore) before re-populating.
+ if (continueGrid) continueGrid.innerHTML = '';
+
if (inProgress.length > 0) {
var moved = 0;
inProgress.forEach(function(slug) {