diff --git a/src/components/auth-gate.tsx b/src/components/auth-gate.tsx
index 6a85d44..2ec5eb9 100644
--- a/src/components/auth-gate.tsx
+++ b/src/components/auth-gate.tsx
@@ -16,7 +16,7 @@ export function AuthGate({ message, className }: AuthGateProps) {
return (
diff --git a/src/components/reply-composer.tsx b/src/components/reply-composer.tsx
index 4777e72..49a2067 100644
--- a/src/components/reply-composer.tsx
+++ b/src/components/reply-composer.tsx
@@ -1,5 +1,7 @@
/**
- * ReplyComposer - Fixed bottom bar for replying to topics and replies.
+ * ReplyComposer - Sticky bottom bar for replying to topics and replies.
+ * Sticks to viewport bottom while scrolling; settles into flow at page end
+ * so the footer remains accessible.
* Collapse/expand states, reply targeting with quote banner.
* Supports keyboard shortcuts: `r` to open (via imperative ref), `Escape` to collapse.
*/
@@ -170,7 +172,7 @@ export const ReplyComposer = forwardRef
return (
@@ -186,7 +188,7 @@ export const ReplyComposer = forwardRef
return (
@@ -208,7 +210,7 @@ export const ReplyComposer = forwardRef
diff --git a/src/components/topic-detail-client.tsx b/src/components/topic-detail-client.tsx
index 1ceb92f..877d46d 100644
--- a/src/components/topic-detail-client.tsx
+++ b/src/components/topic-detail-client.tsx
@@ -166,7 +166,7 @@ export function TopicDetailClient({ topic, replies }: TopicDetailClientProps) {
{/* Reply thread with reply buttons */}
-