Index: src/views/partials/lees-article.ejs
===================================================================
--- src/views/partials/lees-article.ejs	(revision f5cf299d117e37bf9b4a410dcf3f49ad46836e62)
+++ 	(revision )
@@ -1,39 +1,0 @@
-<%
-// Eén artikel in de meeslepende tijdlijn, met zijn schildwachten.
-//
-// Dit is precies het stuk dat bij het overscrollen wordt ingeruild, dus alles
-// wat de navigatie nodig heeft staat erin: welke buren er zijn, en waar ze
-// wonen. De client leest die van data-attributen en hoeft niets te onthouden --
-// na een verwisseling klopt de staat vanzelf, want hij komt uit het nieuwe stuk.
-//
-// De schildwachten staan BINNEN dit blok en niet eromheen: zouden ze buiten
-// staan, dan blijven ze na een swap naar het vorige bericht wijzen.
-var _b = (typeof siteUrlBase !== 'undefined' && siteUrlBase) ? siteUrlBase : '';
-var _newer = (typeof newerPost !== 'undefined' && newerPost) ? newerPost : null;
-var _older = (typeof olderPost !== 'undefined' && olderPost) ? olderPost : null;
-%>
-<article class="lees-article"
-         id="lees-article"
-         data-slug="<%= post.slug %>"
-         data-newer="<%= _newer ? _newer.slug : '' %>"
-         data-older="<%= _older ? _older.slug : '' %>"
-         data-base="<%= _b %>">
-
-  <%# Schildwacht BOVEN: verschijnt pas als je voorbij de bovenrand trekt.
-      Leeg als er niets nieuwers is -- dan hoort er ook niets te gebeuren. %>
-  <div class="lees-sentinel lees-sentinel--prev" data-dir="newer" aria-hidden="true"
-       <% if (!_newer) { %>hidden<% } %>><span class="lees-cue">⏫</span></div>
-
-  <header class="lees-head">
-    <h1 class="lees-title"><%= post.title || '' %></h1>
-    <% if (post.published_at) { %>
-      <p class="lees-when"><%= formatDateTime(post.published_at) %></p>
-    <% } %>
-  </header>
-
-  <%- include('post-body', { post: post, access: entry.access, teaser: entry.teaser, _base: _b }) %>
-
-  <%# Schildwacht ONDER. %>
-  <div class="lees-sentinel lees-sentinel--next" data-dir="older" aria-hidden="true"
-       <% if (!_older) { %>hidden<% } %>><span class="lees-cue">⏬</span></div>
-</article>
Index: src/views/partials/post-body.ejs
===================================================================
--- src/views/partials/post-body.ejs	(revision f5cf299d117e37bf9b4a410dcf3f49ad46836e62)
+++ src/views/partials/post-body.ejs	(revision b67edbdfb84f7d125475d92c470edf68a7886ccf)
@@ -19,8 +19,12 @@
 var _b = (typeof _base !== 'undefined' && _base) ? _base : '';
 var _href = _b + '/' + post.slug;
+// Het lijf komt als eigen waarde binnen en wordt NIET uit `post` gevist. De rij
+// draagt nog de ruwe `content`; door alleen te tonen wat de aanroeper bewust
+// meegeeft, kan een gesloten poort hier niets laten ontsnappen.
+var _html = (typeof content_html !== 'undefined' && content_html) ? content_html : '';
 %>
 
 <% if (_acc === 'full') { %>
-  <div class="post-content"><%- post.content_html %></div>
+  <div class="post-content"><%- _html %></div>
 
 <% } else if (_acc === 'paid') { %>
Index: src/views/partials/read-article.ejs
===================================================================
--- src/views/partials/read-article.ejs	(revision b67edbdfb84f7d125475d92c470edf68a7886ccf)
+++ src/views/partials/read-article.ejs	(revision b67edbdfb84f7d125475d92c470edf68a7886ccf)
@@ -0,0 +1,31 @@
+<%
+// Eén bericht in de leesstroom.
+//
+// Dit is het stuk dat de client AANVULT: bij de onderrand komt de oudere buur
+// eronder, bij de bovenrand de nieuwere erboven. Geen sprongen, geen
+// scrollpositie die stiekem verzet wordt -- de stroom groeit gewoon in de
+// richting waarin je leest, en de browser snapt naar de grenzen.
+//
+// Elk artikel draagt zijn eigen buren, dus de client hoeft niets te onthouden:
+// wat er nog te halen valt staat op het stuk dat er al is.
+var _b = (typeof siteUrlBase !== 'undefined' && siteUrlBase) ? siteUrlBase : '';
+var _newer = (typeof newerPost !== 'undefined' && newerPost) ? newerPost : null;
+var _older = (typeof olderPost !== 'undefined' && olderPost) ? olderPost : null;
+%>
+<article class="read-post"
+         data-slug="<%= post.slug %>"
+         data-newer="<%= _newer ? _newer.slug : '' %>"
+         data-older="<%= _older ? _older.slug : '' %>"
+         data-base="<%= _b %>"
+         data-title="<%= post.title || '' %>"
+         aria-label="<%= post.title || '' %>">
+  <header class="read-head">
+    <h1 class="read-title"><%= post.title || '' %></h1>
+    <% if (post.published_at) { %><p class="read-when"><%= formatDateTime(post.published_at) %></p><% } %>
+  </header>
+
+  <%- include('post-body', {
+        post: post, access: entry.access, teaser: entry.teaser,
+        content_html: entry.content_html, _base: _b,
+      }) %>
+</article>
