Index: src/views/pages/admin.ejs
===================================================================
--- src/views/pages/admin.ejs	(revision 1ecbf71b0ab8b91f272785c385b0cd8d715b818d)
+++ src/views/pages/admin.ejs	(revision 297c77de57b09b006ce0c4b342071e244263cefb)
@@ -55,8 +55,8 @@
     <% } %>
     <% if (typeof apEnabled === 'undefined' || apEnabled) { %>
-      <a href="/tijdlijn" class="btn">🌐 <%= t('tl.title') %></a>
-      <a href="/meldingen" class="btn">🔔 <%= t('notif.title') %></a>
+      <a href="/timeline" class="btn">🌐 <%= t('tl.title') %></a>
+      <a href="/notifications" class="btn">🔔 <%= t('notif.title') %></a>
       <a href="/fediverse" class="btn">🐘 <%= t('admin.b_fediverse') %></a>
-      <a href="/blokkeren" class="btn">🚫 <%= t('blk.title') %></a>
+      <a href="/blocking" class="btn">🚫 <%= t('blk.title') %></a>
     <% } %>
     <a href="/admin/updates" class="btn"><%= t('admin.b_updates') %></a>
Index: src/views/pages/blocks.ejs
===================================================================
--- src/views/pages/blocks.ejs	(revision 1ecbf71b0ab8b91f272785c385b0cd8d715b818d)
+++ src/views/pages/blocks.ejs	(revision 297c77de57b09b006ce0c4b342071e244263cefb)
@@ -6,5 +6,5 @@
   <% if (typeof error !== 'undefined' && error) { %><div class="alert alert-error"><%= error %></div><% } %>
 
-  <form method="post" action="/blokkeren/add" class="bl-form">
+  <form method="post" action="/blocking/add" class="bl-form">
     <input type="text" name="target" placeholder="@naam@server.social  •  server.social" autocomplete="off" spellcheck="false" required>
     <button type="submit" class="btn btn-primary"><%= t('blk.block_btn') %></button>
@@ -19,5 +19,5 @@
           <span class="bl-kind"><%= b.kind === 'domain' ? '🌐' : '👤' %></span>
           <span class="bl-label"><%= b.label || b.target %></span>
-          <form method="post" action="/blokkeren/remove"><input type="hidden" name="target" value="<%= b.target %>"><button type="submit" class="bl-unblock"><%= t('blk.unblock') %></button></form>
+          <form method="post" action="/blocking/remove"><input type="hidden" name="target" value="<%= b.target %>"><button type="submit" class="bl-unblock"><%= t('blk.unblock') %></button></form>
         </li>
       <% }); %>
Index: src/views/pages/timeline.ejs
===================================================================
--- src/views/pages/timeline.ejs	(revision 1ecbf71b0ab8b91f272785c385b0cd8d715b818d)
+++ src/views/pages/timeline.ejs	(revision 297c77de57b09b006ce0c4b342071e244263cefb)
@@ -47,12 +47,12 @@
 
           <div class="tl-actions">
-            <form method="post" action="/tijdlijn/like" class="tl-act-form"><input type="hidden" name="note" value="<%= p.id %>"><input type="hidden" name="author" value="<%= p.author_uri %>"><button type="submit" class="tl-act" title="<%= t('fedi.likes') %>">⭐</button></form>
+            <form method="post" action="/timeline/like" class="tl-act-form"><input type="hidden" name="note" value="<%= p.id %>"><input type="hidden" name="author" value="<%= p.author_uri %>"><button type="submit" class="tl-act" title="<%= t('fedi.likes') %>">⭐</button></form>
             <% if (p.boosted) { %>
-            <form method="post" action="/tijdlijn/unboost" class="tl-act-form"><input type="hidden" name="note" value="<%= p.id %>"><input type="hidden" name="author" value="<%= p.author_uri %>"><button type="submit" class="tl-act tl-act-on" title="<%= t('tl.unboost') %>">🔁</button></form>
+            <form method="post" action="/timeline/unboost" class="tl-act-form"><input type="hidden" name="note" value="<%= p.id %>"><input type="hidden" name="author" value="<%= p.author_uri %>"><button type="submit" class="tl-act tl-act-on" title="<%= t('tl.unboost') %>">🔁</button></form>
             <% } else { %>
-            <form method="post" action="/tijdlijn/boost" class="tl-act-form"><input type="hidden" name="note" value="<%= p.id %>"><input type="hidden" name="author" value="<%= p.author_uri %>"><button type="submit" class="tl-act" title="<%= t('fedi.boosts') %>">🔁</button></form>
+            <form method="post" action="/timeline/boost" class="tl-act-form"><input type="hidden" name="note" value="<%= p.id %>"><input type="hidden" name="author" value="<%= p.author_uri %>"><button type="submit" class="tl-act" title="<%= t('fedi.boosts') %>">🔁</button></form>
             <% } %>
             <button type="button" class="tl-act fedi-remote-reply-btn" data-fedi-uri="<%= p.id %>" data-fedi-ph="<%= t('fedi.remote_ph') %>" title="<%= t('fedi.remote_reply') %>">↩</button>
-            <form method="post" action="/blokkeren/add" class="tl-act-form" onsubmit="return confirm('<%= t('tl.block') %>?');"><input type="hidden" name="target" value="<%= p.author_uri %>"><button type="submit" class="tl-act tl-act-block" title="<%= t('tl.block') %>">🚫</button></form>
+            <form method="post" action="/blocking/add" class="tl-act-form" onsubmit="return confirm('<%= t('tl.block') %>?');"><input type="hidden" name="target" value="<%= p.author_uri %>"><button type="submit" class="tl-act tl-act-block" title="<%= t('tl.block') %>">🚫</button></form>
           </div>
         </li>
Index: src/views/pages/volgend.ejs
===================================================================
--- src/views/pages/volgend.ejs	(revision 1ecbf71b0ab8b91f272785c385b0cd8d715b818d)
+++ src/views/pages/volgend.ejs	(revision 297c77de57b09b006ce0c4b342071e244263cefb)
@@ -10,5 +10,5 @@
   </div>
 
-  <form method="post" action="/tijdlijn/follow" class="tl-follow">
+  <form method="post" action="/timeline/follow" class="tl-follow">
     <input type="text" name="handle" placeholder="@naam@server.social of site.com" autocomplete="off" spellcheck="false" required>
     <button type="submit" class="btn btn-primary"><%= t('tl.follow_btn') %></button>
@@ -27,9 +27,9 @@
             <% if (f.status === 'pending') { %><span class="tl-pending"><%= t('tl.pending') %></span><% } %>
           </span>
-          <form method="post" action="/tijdlijn/autoboost" class="tl-foll-ab" title="<%= t('tl.autoboost_hint') %>">
+          <form method="post" action="/timeline/autoboost" class="tl-foll-ab" title="<%= t('tl.autoboost_hint') %>">
             <input type="hidden" name="actor_uri" value="<%= f.actor_uri %>">
             <label><input type="checkbox" name="auto_boost" value="1" <%= f.auto_boost ? 'checked' : '' %> onchange="this.form.submit()"> ✨ <%= t('tl.autoboost') %></label>
           </form>
-          <form method="post" action="/tijdlijn/unfollow"><input type="hidden" name="actor_uri" value="<%= f.actor_uri %>"><button type="submit" class="tl-unfollow"><%= t('tl.unfollow') %></button></form>
+          <form method="post" action="/timeline/unfollow"><input type="hidden" name="actor_uri" value="<%= f.actor_uri %>"><button type="submit" class="tl-unfollow"><%= t('tl.unfollow') %></button></form>
         </li>
       <% }); %>
Index: src/views/partials/fedi-tabs.ejs
===================================================================
--- src/views/partials/fedi-tabs.ejs	(revision 1ecbf71b0ab8b91f272785c385b0cd8d715b818d)
+++ src/views/partials/fedi-tabs.ejs	(revision 297c77de57b09b006ce0c4b342071e244263cefb)
@@ -1,35 +1,34 @@
 <%# Shared tab bar for the unified Fediverse section. Owner/admin-only.
     Param: active = 'feed' | 'following' | 'reacties' | 'meldingen' | 'blokkeren'.
-    Responsive: horizontal tabs that scroll on narrow screens. %>
+    All tabs share the content width equally (flex:1) and always fit (ellipsis).
+    "Back to site" lives in the top nav, not here. %>
 <% var _a = (typeof active !== 'undefined') ? active : ''; %>
 <% var _nu = (typeof notifUnread !== 'undefined') ? notifUnread : 0; %>
-<div class="fedi-bar">
-  <a class="btn btn-primary fedi-bar-back" href="/"><%= t('nav.back_to_site') %></a>
-  <nav class="fedi-tabs" aria-label="Fediverse">
-    <a href="/tijdlijn" class="fedi-tab<%= _a === 'feed' ? ' is-active' : '' %>"
-       hx-get="/tijdlijn?partial=1" hx-target="#pcms-main" hx-swap="innerHTML" hx-push-url="/tijdlijn" hx-indicator="#pcms-loading"><%= t('tl.tab_feed') %></a>
-    <a href="/volgend" class="fedi-tab<%= _a === 'following' ? ' is-active' : '' %>"
-       hx-get="/volgend?partial=1" hx-target="#pcms-main" hx-swap="innerHTML" hx-push-url="/volgend" hx-indicator="#pcms-loading"><%= t('tl.tab_following') %></a>
-    <a href="/fediverse" class="fedi-tab<%= _a === 'reacties' ? ' is-active' : '' %>"
-       hx-get="/fediverse?partial=1" hx-target="#pcms-main" hx-swap="innerHTML" hx-push-url="/fediverse" hx-indicator="#pcms-loading"><%= t('tl.tab_replies') %></a>
-    <a href="/meldingen" class="fedi-tab<%= _a === 'meldingen' ? ' is-active' : '' %>"
-       hx-get="/meldingen?partial=1" hx-target="#pcms-main" hx-swap="innerHTML" hx-push-url="/meldingen" hx-indicator="#pcms-loading"><%= t('notif.title') %><% if (_nu > 0) { %> <span class="fedi-tab-badge"><%= _nu > 9 ? '9+' : _nu %></span><% } %></a>
-    <a href="/blokkeren" class="fedi-tab<%= _a === 'blokkeren' ? ' is-active' : '' %>"
-       hx-get="/blokkeren?partial=1" hx-target="#pcms-main" hx-swap="innerHTML" hx-push-url="/blokkeren" hx-indicator="#pcms-loading"><%= t('blk.title') %></a>
-  </nav>
-</div>
+<nav class="fedi-tabs" aria-label="Fediverse">
+  <a href="/timeline" class="fedi-tab<%= _a === 'feed' ? ' is-active' : '' %>"
+     hx-get="/timeline?partial=1" hx-target="#pcms-main" hx-swap="innerHTML" hx-push-url="/timeline" hx-indicator="#pcms-loading"><%= t('tl.tab_feed') %></a>
+  <a href="/following" class="fedi-tab<%= _a === 'following' ? ' is-active' : '' %>"
+     hx-get="/following?partial=1" hx-target="#pcms-main" hx-swap="innerHTML" hx-push-url="/following" hx-indicator="#pcms-loading"><%= t('tl.tab_following') %></a>
+  <a href="/fediverse" class="fedi-tab<%= _a === 'reacties' ? ' is-active' : '' %>"
+     hx-get="/fediverse?partial=1" hx-target="#pcms-main" hx-swap="innerHTML" hx-push-url="/fediverse" hx-indicator="#pcms-loading"><%= t('tl.tab_replies') %></a>
+  <a href="/notifications" class="fedi-tab<%= _a === 'meldingen' ? ' is-active' : '' %>"
+     hx-get="/notifications?partial=1" hx-target="#pcms-main" hx-swap="innerHTML" hx-push-url="/notifications" hx-indicator="#pcms-loading"><span class="fedi-tab-label"><%= t('notif.title') %></span><% if (_nu > 0) { %><span class="fedi-tab-badge"><%= _nu > 9 ? '9+' : _nu %></span><% } %></a>
+  <a href="/blocking" class="fedi-tab<%= _a === 'blokkeren' ? ' is-active' : '' %>"
+     hx-get="/blocking?partial=1" hx-target="#pcms-main" hx-swap="innerHTML" hx-push-url="/blocking" hx-indicator="#pcms-loading"><%= t('blk.title') %></a>
+</nav>
 <style>
-.fedi-bar { margin: 0 0 1.25rem; }
-/* Big, full-width "back to site" button at the top of the Fediverse section. */
-.fedi-bar-back { display: block; width: 100%; box-sizing: border-box; text-align: center; margin: 0 0 1rem; padding: .7rem 1rem; }
-/* Tabs centered, wrap onto multiple rows on narrow screens (no scrollbar). */
-.fedi-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: .1rem .25rem;
+/* All 5 tabs share the width equally and always fit (truncate with ellipsis if needed). */
+.fedi-tabs { display: flex; margin: 0 0 1.25rem;
   border-bottom: 1px solid color-mix(in srgb, var(--ink, #000) 10%, transparent); }
-.fedi-tab { padding: .55rem .85rem; white-space: nowrap; text-decoration: none;
-  color: var(--ink-soft, #888); font-weight: 600; border-bottom: 2px solid transparent; margin-bottom: -1px; }
+.fedi-tab { flex: 1 1 0; min-width: 0; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
+  padding: .6rem .4rem; text-decoration: none; font-weight: 600; font-size: .95rem;
+  color: var(--ink-soft, #888); border-bottom: 2px solid transparent; margin-bottom: -1px;
+  display: inline-flex; align-items: center; justify-content: center; gap: .3rem; }
 .fedi-tab:hover { color: var(--ink, #000); }
 .fedi-tab.is-active { color: var(--accent, #06c); border-bottom-color: var(--accent, #06c); }
-.fedi-tab-badge { display: inline-block; min-width: 1.15em; padding: 0 .3em; border-radius: 999px;
-  background: var(--accent, #e8b04b); color: #fff; font-size: .68rem; line-height: 1.5; text-align: center; vertical-align: middle; }
-@media (max-width: 520px) { .fedi-tab { padding: .55rem .6rem; font-size: .92rem; } }
+.fedi-tab-label { overflow: hidden; text-overflow: ellipsis; }
+.fedi-tab-badge { flex: 0 0 auto; min-width: 1.15em; padding: 0 .3em; border-radius: 999px;
+  background: var(--accent, #e8b04b); color: #fff; font-size: .66rem; line-height: 1.5; text-align: center; }
+@media (max-width: 520px) { .fedi-tab { padding: .55rem .25rem; font-size: .82rem; } }
+@media (max-width: 380px) { .fedi-tab { font-size: .74rem; } }
 </style>
Index: src/views/partials/profile-sheet.ejs
===================================================================
--- src/views/partials/profile-sheet.ejs	(revision 1ecbf71b0ab8b91f272785c385b0cd8d715b818d)
+++ src/views/partials/profile-sheet.ejs	(revision 297c77de57b09b006ce0c4b342071e244263cefb)
@@ -65,6 +65,6 @@
       <% if (typeof canManageFedi !== 'undefined' && canManageFedi) { %>
       <li role="none">
-        <a href="/tijdlijn" class="profile-sheet-item" role="menuitem" data-close-sheet
-           hx-get="/tijdlijn?partial=1" hx-target="#pcms-main" hx-swap="innerHTML" hx-push-url="/tijdlijn" hx-indicator="#pcms-loading">
+        <a href="/timeline" class="profile-sheet-item" role="menuitem" data-close-sheet
+           hx-get="/timeline?partial=1" hx-target="#pcms-main" hx-swap="innerHTML" hx-push-url="/timeline" hx-indicator="#pcms-loading">
           <svg class="psi-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="18" cy="5" r="3"/><circle cx="6" cy="12" r="3"/><circle cx="18" cy="19" r="3"/><line x1="8.59" y1="13.51" x2="15.42" y2="17.49"/><line x1="15.41" y1="6.51" x2="8.59" y2="10.49"/></svg>
           <span class="psi-label"><%= t('nav.fediverse') %></span>
Index: src/views/partials/topnav.ejs
===================================================================
--- src/views/partials/topnav.ejs	(revision 1ecbf71b0ab8b91f272785c385b0cd8d715b818d)
+++ src/views/partials/topnav.ejs	(revision 297c77de57b09b006ce0c4b342071e244263cefb)
@@ -14,4 +14,6 @@
 const _siteUrlBase = (typeof siteUrlBase !== 'undefined' && siteUrlBase) ? siteUrlBase : '';
 const _isAdmin     = typeof bodyClass !== 'undefined' && bodyClass.indexOf('on-admin') >= 0;
+// Fediverse pages (on-special) get the same top-nav "back to site" treatment as admin.
+const _isSpecial   = typeof bodyClass !== 'undefined' && bodyClass.indexOf('on-special') >= 0;
 const _hasSearch   = !site || site.show_search === undefined || site.show_search;
 const _canPost     = user && (typeof canMutate === 'undefined' || canMutate)
@@ -24,5 +26,5 @@
     <!-- Brand block (always visible) -->
     <div class="masthead-brand">
-      <% if (_isAdmin) { %>
+      <% if (_isAdmin || _isSpecial) { %>
         <a href="<%= _siteUrlBase %>/" class="nav-link nav-link-admin"><%= t('nav.back_to_site') %></a>
       <% } else if (typeof tenancy !== 'undefined' && tenancy === 'hub') { %>
@@ -57,5 +59,5 @@
     <nav class="top-nav top-nav-desktop" aria-label="Hoofdnavigatie">
 
-      <% if (!_isAdmin) { %>
+      <% if (!_isAdmin && !_isSpecial) { %>
         <a class="nav-link" href="<%= _siteUrlBase %>/archive"
            hx-get="<%= _siteUrlBase %>/archive?partial=1" hx-target="#pcms-main"
@@ -100,6 +102,6 @@
 
       <% if (user && typeof canManageFedi !== 'undefined' && canManageFedi) { %>
-        <a class="nav-btn nav-notif" href="/meldingen" aria-label="<%= t('notif.title') %>" title="<%= t('notif.title') %>"
-           hx-get="/meldingen?partial=1" hx-target="#pcms-main" hx-swap="innerHTML" hx-push-url="/meldingen" hx-indicator="#pcms-loading">
+        <a class="nav-btn nav-notif" href="/notifications" aria-label="<%= t('notif.title') %>" title="<%= t('notif.title') %>"
+           hx-get="/notifications?partial=1" hx-target="#pcms-main" hx-swap="innerHTML" hx-push-url="/notifications" hx-indicator="#pcms-loading">
           <svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 8a6 6 0 0 0-12 0c0 7-3 9-3 9h18s-3-2-3-9"/><path d="M13.73 21a2 2 0 0 1-3.46 0"/></svg>
           <% if (typeof notifUnread !== 'undefined' && notifUnread > 0) { %><span class="notif-badge"><%= notifUnread > 9 ? '9+' : notifUnread %></span><% } %>
@@ -156,7 +158,7 @@
               <% } %>
               <% if (typeof canManageFedi !== 'undefined' && canManageFedi) { %>
-                <a href="/tijdlijn" role="menuitem" class="udi"
-                   hx-get="/tijdlijn?partial=1" hx-target="#pcms-main" hx-swap="innerHTML"
-                   hx-push-url="/tijdlijn" hx-indicator="#pcms-loading">
+                <a href="/timeline" role="menuitem" class="udi"
+                   hx-get="/timeline?partial=1" hx-target="#pcms-main" hx-swap="innerHTML"
+                   hx-push-url="/timeline" hx-indicator="#pcms-loading">
                   <svg class="udi-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="18" cy="5" r="3"/><circle cx="6" cy="12" r="3"/><circle cx="18" cy="19" r="3"/><line x1="8.59" y1="13.51" x2="15.42" y2="17.49"/><line x1="15.41" y1="6.51" x2="8.59" y2="10.49"/></svg>
                   <span><%= t('nav.fediverse') %></span>
