Index: src/views/pages/post.ejs
===================================================================
--- src/views/pages/post.ejs	(revision c9011316126f54bb7a22b2ce22abefc25d66f82a)
+++ src/views/pages/post.ejs	(revision f2fff7e0e1ddc527ddd31f179b86ac6c0c962302)
@@ -106,21 +106,22 @@
       if (d) location.href = 'https://' + d + '/authorize_interaction?uri=' + encodeURIComponent(uri||'');
     }
+    function closeForm(f){ if (!f) return; if (f._btn) f._btn.style.display = ''; f.remove(); }
     document.addEventListener('click', function(e){
       var cancel = e.target.closest && e.target.closest('.fedi-remote-cancel');
-      if (cancel) { var f0 = cancel.closest('.fedi-remote-form'); if (f0) f0.remove(); return; }
+      if (cancel) { closeForm(cancel.closest('.fedi-remote-form')); return; }
       var b = e.target.closest && e.target.closest('.fedi-remote-reply-btn');
       if (!b) return;
       e.preventDefault();
-      var mine = (b.nextElementSibling && b.nextElementSibling.classList && b.nextElementSibling.classList.contains('fedi-remote-form')) ? b.nextElementSibling : null;
-      var any = document.querySelector('.fedi-remote-form'); if (any) any.remove();
-      if (mine) return; // clicking again closes it
+      closeForm(document.querySelector('.fedi-remote-form')); // close any open one (restores its button)
       var f = document.createElement('form');
       f.className = 'fedi-remote-form';
       f.dataset.uri = b.getAttribute('data-fedi-uri') || '';
+      f._btn = b;
       f.innerHTML = '<input type="text" autocomplete="off" spellcheck="false">'
         + '<button type="submit" class="btn btn-primary fedi-remote-go" aria-label="ok">&rarr;</button>'
         + '<button type="button" class="fedi-remote-cancel" aria-label="x">&times;</button>';
       var inp = f.querySelector('input');
-      inp.placeholder = b.getAttribute('data-fedi-ph') || '@name@mastodon.social';
+      inp.placeholder = b.getAttribute('data-fedi-ph') || '@name@server.social';
+      b.style.display = 'none';                  // replace the button in place → no layout jump
       b.parentNode.insertBefore(f, b.nextSibling);
       inp.focus();
