diff --git a/docs/img/vigil-active.png b/docs/img/vigil-active.png
new file mode 100644
index 0000000..ae800db
Binary files /dev/null and b/docs/img/vigil-active.png differ
diff --git a/docs/img/vigil-locate.png b/docs/img/vigil-locate.png
new file mode 100644
index 0000000..20cabd3
Binary files /dev/null and b/docs/img/vigil-locate.png differ
diff --git a/docs/img/vigil-signal.png b/docs/img/vigil-signal.png
new file mode 100644
index 0000000..b6f7813
Binary files /dev/null and b/docs/img/vigil-signal.png differ
diff --git a/docs/index.html b/docs/index.html
index aae8449..c29f5d0 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -40,6 +40,7 @@
+
+
+
+
+
screenshots
+
Spot it, then walk it down.
+
No account, no map tiles, no cloud — it all runs on the
+ phone. See what's moving with you, wave off your own gear, and when
+ something's left over, home in on it.
+
+
+
+
+
+ The active list Every tracker seen moving with you — signal, places, and how long ago. Tap “It's mine” and your own gear drops out.
+
+
+
+ Locate mode Pick a suspect and walk — the ripple strengthens as you close in. No signal yet? Keep moving.
+
+
+
+ Getting warmer Live signal strength as you approach — −52 dBm is close. “Make it ring” forces a silent tracker to give itself up.
+
+
+
+
+
diff --git a/docs/style.css b/docs/style.css
index a66326c..57ed04c 100644
--- a/docs/style.css
+++ b/docs/style.css
@@ -1089,3 +1089,35 @@ pre.code .prompt { color: var(--accent-hot); user-select: none; }
/* VIGIL: logo mark in nav/footer (img instead of a glyph) */
.nav-logo { display: inline-block; vertical-align: middle; border-radius: 7px; }
.nav-brand .nav-logo { margin-right: 3px; }
+
+/* ============================================================
+ SCREENSHOTS GALLERY
+ ============================================================ */
+.shots {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ gap: 2.6rem;
+ margin-top: 2.8rem;
+ align-items: start;
+}
+.shots .shot { margin: 0; display: flex; flex-direction: column; align-items: center; }
+.shots .phone { width: 260px; max-width: 100%; }
+.shots figcaption {
+ margin-top: 1.4rem;
+ max-width: 260px;
+ color: var(--text-muted);
+ font-size: 0.9rem;
+ line-height: 1.55;
+ text-align: center;
+}
+.shots figcaption strong {
+ display: block;
+ color: var(--text);
+ font-family: var(--display);
+ font-size: 1rem;
+ margin-bottom: 0.3rem;
+}
+@media (max-width: 820px) {
+ .shots { grid-template-columns: 1fr; gap: 3rem; }
+ .shots .phone { width: 256px; }
+}