diff --git a/src/components/SearchPalette.tsx b/src/components/SearchPalette.tsx
index a8bca51..e7e1b61 100644
--- a/src/components/SearchPalette.tsx
+++ b/src/components/SearchPalette.tsx
@@ -197,6 +197,11 @@ export function SearchPalette({ isOpen, onClose, onSelect, initialQuery = '' }:
trapTabKey(e, panelRef.current)
}
+ /* Closed palette must not render at all: the backdrop is `position: fixed;
+ inset: 0`, so rendering it unconditionally left the modal permanently on
+ screen (and ate every click on the page underneath). */
+ if (!isOpen) return null
+
return (