diff --git a/AGENTS.md b/AGENTS.md
index 129a3c78..1f6d5e58 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -129,6 +129,7 @@ callbacks and hot paths.
- Never hard-code the app's name. The brand is a build-time `VITE_PLATFORM_*` variable, so user-facing copy interpolates `PLATFORM_NAME` from `@app/env`, and `PLATFORM_URL`, `PLATFORM_LOGO`, `PLATFORM_ABOUT` for the rest of it. Each is set by the deployment, so don't write a `"Flotilla"` fallback behind one either.
- Svelte 5 runes (`$state`, `$derived`, `$effect`) only in UI components
- TailwindCSS styling with css components customized by theme. See lib/components for examples.
+- A component class goes in `@layer components`, in its own file under `lib/components`. An unlayered rule beats a layered one whatever the specificity, so a class outside the layer can never be overridden by a utility in markup. The third-party overrides in `base.css` stay unlayered. The library defaults they beat are unlayered too.
- Comments, naming, conditionals and single-use indirection are covered by the Cleanup Pass above.
- Do not use `any`. If there are type errors related to `unknown`, they are likely because the upstream definition of the data is incorrect.
- When dynamically building classes, use `cx` from `classnames` rather than embedded ternaries or svelte 4's old `class:` syntax.
diff --git a/src/app/components/ContentLinkBlock.svelte b/src/app/components/ContentLinkBlock.svelte
index 4958a9c8..20ff39d1 100644
--- a/src/app/components/ContentLinkBlock.svelte
+++ b/src/app/components/ContentLinkBlock.svelte
@@ -77,7 +77,7 @@
{#if isRoomOrRelay}
-
+
{:else if isAudio}
{:else if isVideo}
@@ -130,6 +130,6 @@
{:catch}
-
+
{/await}
{/if}
diff --git a/src/app/components/ContentLinkBlockAudio.svelte b/src/app/components/ContentLinkBlockAudio.svelte
index f84db095..7c8e7617 100644
--- a/src/app/components/ContentLinkBlockAudio.svelte
+++ b/src/app/components/ContentLinkBlockAudio.svelte
@@ -46,7 +46,7 @@
{#if failed}
- {displayUrl(url)}
+ {displayUrl(url)}
{:else if source}
diff --git a/src/app/components/ContentLinkBlockImage.svelte b/src/app/components/ContentLinkBlockImage.svelte
index 75124d86..271b2555 100644
--- a/src/app/components/ContentLinkBlockImage.svelte
+++ b/src/app/components/ContentLinkBlockImage.svelte
@@ -71,7 +71,7 @@
{#if hasError}
-
+
{displayUrl(url)}
diff --git a/src/app/components/ContentLinkInline.svelte b/src/app/components/ContentLinkInline.svelte
index aeab3825..da76ddc8 100644
--- a/src/app/components/ContentLinkInline.svelte
+++ b/src/app/components/ContentLinkInline.svelte
@@ -21,11 +21,11 @@
{displayUrl(url)}
{:else}
-
+
{/if}
diff --git a/src/app/components/InfoZapperError.svelte b/src/app/components/InfoZapperError.svelte
index 68f3190a..2bb65824 100644
--- a/src/app/components/InfoZapperError.svelte
+++ b/src/app/components/InfoZapperError.svelte
@@ -30,7 +30,7 @@
Unable to Zap
- Zapping isn't possible right now because
+ Zapping isn't possible right now because
{#if $zapper}
their zap receiver isn't correctly set up.
{:else}
diff --git a/src/app/components/ProfileLink.svelte b/src/app/components/ProfileLink.svelte
index 56aeee9d..b9cbd66d 100644
--- a/src/app/components/ProfileLink.svelte
+++ b/src/app/components/ProfileLink.svelte
@@ -18,8 +18,6 @@
const openProfile = () => pushModal(ProfileDetail, {pubkey, url})
-