diff --git a/GOTCHAS.md b/GOTCHAS.md
index 50db1cf..4c01b6a 100644
--- a/GOTCHAS.md
+++ b/GOTCHAS.md
@@ -1,6 +1,6 @@
# site/ — gotchas
-Hand-authored static tree for **silentmode.st**. No build step. Served by nginx
+Hand-authored static tree for **silentmode.st**. No build step. Served by Angie (nginx fork)
from `/opt/silent-mode/site/` on the VPS (ssh alias `silentmode`), and mirrored
to Sia (`s3://bns/silentmode/` → `silentmode.bch`) by the
`silentmode-sia-sync.timer` on the VPS every 5 minutes. Anything that lands in
@@ -38,7 +38,7 @@ it is skipped the 48 GB disk climbs ~245 MB per release.
## Bump `shared.css?v=` whenever shared.css changes
-nginx sends no `Cache-Control` for `.css`, so browsers cache `shared.css`
+Angie sends no `Cache-Control` for `.css`, so browsers cache `shared.css`
heuristically (10% of its age since `Last-Modified`; it sat unchanged for
weeks, so returning visitors kept the old copy for days). When the logo rule
was added on 2026-09-07 every page except Hephaestus (inline nav CSS) showed
@@ -49,7 +49,7 @@ each time the file changes. Same applies to the Sia mirror via the gateway.
## URLs have no trailing slash; links are site-root-relative
Since 2026-09-20 the canonical URL of every silentmode.st page is `/tools`,
-`/sirius`, `/choose/free` — nginx 301s `/tools/` → `/tools` and serves
+`/sirius`, `/choose/free` — Angie 301s `/tools/` → `/tools` and serves
`/tools/index.html` from it. Consequences for authors:
- A page at `/x/index.html` is viewed at `/x`, so the browser's directory is `/`.
@@ -66,8 +66,8 @@ Since 2026-09-20 the canonical URL of every silentmode.st page is `/tools`,
**Sub-sites deployed from other repos keep their trailing-slash URLs** because
their asset paths are relative: `deviant/`, `sirius-x/`, `theseus-x/`,
-`hephaestus.x/`, `fly.x/`, `code/`. The list lives in the nginx vhost
-(`location ~ ^/(deviant|sirius-x|theseus-x|…)`) and in `serve-site.mjs`; add
+`hephaestus.x/`, `fly.x/`, `code/`. The list lives in the Angie vhost
+(`location ~ ^/(deviant|sirius-x|theseus-x|…)` in `VPS/SilentMode/silentmode-st.angie.conf`) and in `serve-site.mjs`; add
any new foreign mirror to both.
## `/theseus` vs `/theseus-x/` (and `/sirius` vs `/sirius-x/`)
@@ -95,7 +95,7 @@ Theseus (origin `bns:// Two interlocking chain links, one acid green — the family mark for
every Silent Mode product. Kit below: logo, wordmark, avatar, banner, palette,
- usage. Every asset is a scalable SVG; raster it to whatever platform demands
- a PNG.Silent Mode — brand
Small palette on purpose — one accent, one text tone, three greys, diff --git a/brand/og.png b/brand/og.png index e7dc229..9dd88dc 100644 Binary files a/brand/og.png and b/brand/og.png differ diff --git a/brand/social/avatar-1024.png b/brand/social/avatar-1024.png new file mode 100644 index 0000000..2de5b8b Binary files /dev/null and b/brand/social/avatar-1024.png differ diff --git a/brand/social/avatar-400.png b/brand/social/avatar-400.png new file mode 100644 index 0000000..19a4b9f Binary files /dev/null and b/brand/social/avatar-400.png differ diff --git a/brand/social/facebook-cover-820x312.png b/brand/social/facebook-cover-820x312.png new file mode 100644 index 0000000..452e985 Binary files /dev/null and b/brand/social/facebook-cover-820x312.png differ diff --git a/brand/social/instagram-square-1080x1080.png b/brand/social/instagram-square-1080x1080.png new file mode 100644 index 0000000..a6fc38e Binary files /dev/null and b/brand/social/instagram-square-1080x1080.png differ diff --git a/brand/social/linkedin-banner-1584x396.png b/brand/social/linkedin-banner-1584x396.png new file mode 100644 index 0000000..c7a87d0 Binary files /dev/null and b/brand/social/linkedin-banner-1584x396.png differ diff --git a/brand/social/x-header-1500x500.png b/brand/social/x-header-1500x500.png new file mode 100644 index 0000000..f669758 Binary files /dev/null and b/brand/social/x-header-1500x500.png differ diff --git a/brand/social/x-post-1200x675.png b/brand/social/x-post-1200x675.png new file mode 100644 index 0000000..884867b Binary files /dev/null and b/brand/social/x-post-1200x675.png differ
Social media and icons
+Ready-made PNGs at the sizes each platform wants. Same mark, same + palette, rendered from the SVGs above; nothing here needs editing before upload. + X, GitHub, Discord, LinkedIn, Instagram and Facebook all refuse SVG for avatars + and headers, so use these.
+ +Headers and banners
+Mark, wordmark, one-line description and the two addresses. The layout keeps + the left 60% clear of platform overlays; the avatar sits over the bottom-left + on X without covering text.
+Post and link cards
+For tweets, announcements and anywhere a 16:9 image is embedded. The 1200×630 + version is what every silentmode.st page advertises as its Open Graph image, + so shared links already show it.
+Avatars and app icons
+Avatar: mark over the wordmark on the dark ground, safe inside a circle crop. + Icons: the mark alone on flat
+#0b0e14for + favicons, PWA manifests and store listings.Regenerate the whole set + after a palette or mark change with
+node scripts/brand-assets.mjs+ in the repo; it renders every size from one template.