diff --git a/README.md b/README.md
index 77ba3ef..6eb19c2 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# shared-memory
+#
A self-hosted MCP server that gives Claude Code sessions a **shared, persistent
memory** plus a **reusable snippet library**, behind your own OIDC login.
diff --git a/apps/web/app/icon.svg b/apps/web/app/icon.svg
index 6150af7..8b71486 100644
--- a/apps/web/app/icon.svg
+++ b/apps/web/app/icon.svg
@@ -5,12 +5,17 @@
Three retrieval signals - vector, full-text, tags - converging on a single
memory. The direct match runs straight through at full strength; the two
ranked neighbours fall back, which is the fusion the search actually does.
- Opacity is held equal on the outer pair so the mark stays balanced at 16px.
+
+ Every proportion here is set by the 16px browser-tab case. The outer pair
+ is held at .7 (not .55) because below that it rasterises away entirely,
+ the strokes stop at x=30 so the gap to the node doesn't fill in, and the
+ node is r=8.5 so it still reads as a disc. Geometry is identical to
+ public/logo.svg; only the palette differs.
-->
-
-
-
+
+
+
-
+
diff --git a/apps/web/public/lockup.svg b/apps/web/public/lockup.svg
new file mode 100644
index 0000000..21ecd95
--- /dev/null
+++ b/apps/web/public/lockup.svg
@@ -0,0 +1,24 @@
+
diff --git a/apps/web/public/logo.svg b/apps/web/public/logo.svg
index 2d0a8c2..3b0c153 100644
--- a/apps/web/public/logo.svg
+++ b/apps/web/public/logo.svg
@@ -3,12 +3,20 @@
-
-
-
+
+
+
-
+
diff --git a/docs/assets/lockup.svg b/docs/assets/lockup.svg
new file mode 100644
index 0000000..03e0a7c
--- /dev/null
+++ b/docs/assets/lockup.svg
@@ -0,0 +1,24 @@
+