Index: src/views/pages/news.ejs
===================================================================
--- src/views/pages/news.ejs	(revision 0596945917047f2e8963b16e2ef73366d22a62e4)
+++ src/views/pages/news.ejs	(revision 515cf1a67cad06eb3a51a911df89d992e16275ac)
@@ -101,6 +101,4 @@
           </div>
 
-          <div class="tl-content"><%- p.content %></div>
-
           <%
             var media = []; try { media = JSON.parse(p.media_json || '[]'); } catch (e) { media = []; }
@@ -109,5 +107,11 @@
             var auds = media.filter(function(m){ return m && m.url && m.type && /^audio\//.test(m.type); });
             var _nsfwVisual = !!p.nsfw && (imgs.length || vids.length || auds.length);
+            var _nsfwText = !!p.nsfw && !(imgs.length || vids.length || auds.length);
           %>
+          <% if (_nsfwText) { %>
+            <div class="tl-content nsfw-media"><span class="nsfw-veil"><span class="nsfw-veil-label">🔞 <%= p.cw || t('post.nsfw_warning') %></span><span class="nsfw-veil-btn"><%= t('post.nsfw_show') %></span></span><%- p.content %></div>
+          <% } else { %>
+            <div class="tl-content"><%- p.content %></div>
+          <% } %>
           <% if (_nsfwVisual) { %><div class="nsfw-media"><% } %>
           <% if (imgs.length) { %>
Index: src/views/pages/post.ejs
===================================================================
--- src/views/pages/post.ejs	(revision 0596945917047f2e8963b16e2ef73366d22a62e4)
+++ src/views/pages/post.ejs	(revision 515cf1a67cad06eb3a51a911df89d992e16275ac)
@@ -181,5 +181,5 @@
                       aria-hidden="true"><% if (rp.nsfw) { %><span class="nsfw-veil"><span class="nsfw-veil-label">🔞 <%= rp.content_warning || t('post.nsfw_warning') %></span><span class="nsfw-veil-btn"><%= t('post.nsfw_show') %></span></span><% } %></span>
               <% } else { %>
-                <span class="post-related-cover post-related-cover--empty" aria-hidden="true"></span>
+                <span class="post-related-cover post-related-cover--empty<%= rp.nsfw ? ' nsfw-media' : '' %>" aria-hidden="true"><% if (rp.nsfw) { %><span class="nsfw-veil"><span class="nsfw-veil-label">🔞 <%= rp.content_warning || t('post.nsfw_warning') %></span><span class="nsfw-veil-btn"><%= t('post.nsfw_show') %></span></span><% } %></span>
               <% } %>
               <span class="post-related-meta">
