diff --git a/preview/film-title.html b/preview/film-title.html
new file mode 100644
index 0000000..4f3e3e3
--- /dev/null
+++ b/preview/film-title.html
@@ -0,0 +1,57 @@
+
+
+
+
+ KeyFinder — film title
+
+
+
+
+

+
KEYFINDER
+
// PASSIVE SECRET DISCOVERY
+
v2.2.1 · 80+ PATTERNS · 10 ATTACK SURFACES · LOCAL-ONLY
+
+
+
diff --git a/preview/film/dash.png b/preview/film/dash.png
new file mode 100644
index 0000000..e70dfb1
Binary files /dev/null and b/preview/film/dash.png differ
diff --git a/preview/film/popup.png b/preview/film/popup.png
new file mode 100644
index 0000000..345c57c
Binary files /dev/null and b/preview/film/popup.png differ
diff --git a/preview/film/title.png b/preview/film/title.png
new file mode 100644
index 0000000..ac068d7
Binary files /dev/null and b/preview/film/title.png differ
diff --git a/store/listing-copy.md b/store/listing-copy.md
index 0c2679b..be6dd6a 100644
--- a/store/listing-copy.md
+++ b/store/listing-copy.md
@@ -131,4 +131,4 @@ The extension scans visited pages locally for leaked secrets and stores findings
- [x] Screenshots 1280×800 — `store/`
- [x] Privacy policy — `PRIVACY.md` (host its raw GitHub URL in store dashboards that ask: `https://github.com/momenbasel/keyFinder/blob/master/PRIVACY.md`)
- [x] Homepage URL — `https://github.com/momenbasel/keyFinder`
-- [ ] Promotional video (optional on both stores — see below)
+- [x] Promotional video — `store/store-demo.mp4` (1280×720, 30 fps, 12.3 s: title card → console pan → popup; upload to YouTube as unlisted and paste the link in both store dashboards)
diff --git a/store/store-demo.mp4 b/store/store-demo.mp4
new file mode 100644
index 0000000..56f712c
Binary files /dev/null and b/store/store-demo.mp4 differ