Index: src/assets/css/style.css
===================================================================
--- src/assets/css/style.css	(revision dfc537997e6219369822c5c2f644ec369da2ec58)
+++ src/assets/css/style.css	(revision 1f0c85b8b71d3d922a668938399462fdb3b1ae3b)
@@ -2182,9 +2182,21 @@
     padding: .6rem;
     display: flex;
-    align-items: flex-end;
+    flex-direction: column;
+    justify-content: flex-end;
+    align-items: flex-start;
     background: linear-gradient(to top, rgba(0,0,0,.65) 0%, rgba(0,0,0,0) 50%);
     opacity: 0;
     transition: opacity .2s;
     pointer-events: none; /* klik moet naar de <a> eronder gaan, niet naar de overlay */
+}
+/* Bron-site (cirkel-feed): toont bij hover "van <site>" onder de titel. */
+.grid-tile-overlay-src {
+    color: #fff; opacity: .85;
+    font-size: .72rem; margin-top: .2rem;
+    display: inline-flex; align-items: center;
+}
+.grid-tile-overlay-src::before { content: "⛓"; margin-right: .25rem; font-size: .9em; }
+.grid-tile-gradient-src {
+    margin-top: .3rem; font-size: .72rem; opacity: .8;
 }
 .grid-tile-overlay strong {
Index: src/views/partials/post-tile.ejs
===================================================================
--- src/views/partials/post-tile.ejs	(revision dfc537997e6219369822c5c2f644ec369da2ec58)
+++ src/views/partials/post-tile.ejs	(revision 1f0c85b8b71d3d922a668938399462fdb3b1ae3b)
@@ -7,4 +7,5 @@
 const _hasCover = !!post.cover_image_url;
 const _typeLabel = (post.type && post.type !== 'post') ? post.type : '';
+const _src = post.source_name || '';   // bron-site (cirkel-feed: van welke site komt deze post)
 const _base = (typeof siteUrlBase !== 'undefined' && siteUrlBase) ? siteUrlBase : '';
 const _external = post.external_url || null;
@@ -27,7 +28,9 @@
     <div class="grid-tile-overlay">
       <strong><%= post.title || '(untitled)' %></strong>
+      <% if (_src) { %><span class="grid-tile-overlay-src">van <%= _src %></span><% } %>
     </div>
   <% } else { %>
     <span class="grid-tile-title"><%= post.title || '(untitled)' %></span>
+    <% if (_src) { %><span class="grid-tile-gradient-src">van <%= _src %></span><% } %>
   <% } %>
 </a>
Index: src/views/shell.ejs
===================================================================
--- src/views/shell.ejs	(revision dfc537997e6219369822c5c2f644ec369da2ec58)
+++ src/views/shell.ejs	(revision 1f0c85b8b71d3d922a668938399462fdb3b1ae3b)
@@ -163,5 +163,5 @@
 
 <!-- v9 stylesheet (full palette system) -->
-<link rel="stylesheet" href="/assets/css/style.css?v=13">
+<link rel="stylesheet" href="/assets/css/style.css?v=14">
 
 <!-- Audio player styles: loaded on every page so the mini-player works
