Index: src/assets/css/style.css
===================================================================
--- src/assets/css/style.css	(revision 86fa2d2795c9ba37e01a9f0c0315a1ca031b645d)
+++ src/assets/css/style.css	(revision 38120c7ecacf8fe6e6b22191e9bbcad5017b94c4)
@@ -1937,7 +1937,8 @@
         color-mix(in srgb, var(--accent, #888) 6%, var(--paper-2, var(--paper))) 100%);
 }
-.post-list-cover img {
+.post-list-cover img, .post-list-cover video {
     width: 100%; height: 100%;
-    object-fit: cover;
+    object-fit: cover;                 /* fill the square, keep aspect, crop the overflow, centered */
+    object-position: center;
     display: block;
     background-color: #fff;            /* transparent logos sit on white once loaded */
@@ -2401,7 +2402,4 @@
 .grid-tile-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; transition: opacity .4s ease; }
 .grid-tile-img.is-loading { opacity: 0; }
-/* A video cover keeps its own aspect ratio inside the square tile (centered, letterboxed) instead
-   of zoom-cropping a wide video to fill. Images stay object-fit:cover. */
-video.grid-tile-img { object-fit: contain; background: var(--paper-2, #0a0e1a); }
 .grid-tile:hover { transform: scale(0.98); }
 .grid-tile-overlay {
Index: src/views/partials/post-card.ejs
===================================================================
--- src/views/partials/post-card.ejs	(revision 86fa2d2795c9ba37e01a9f0c0315a1ca031b645d)
+++ src/views/partials/post-card.ejs	(revision 38120c7ecacf8fe6e6b22191e9bbcad5017b94c4)
@@ -154,6 +154,4 @@
   }
   .post-list-cover img.is-loading { opacity: 0; }
-  /* A video cover keeps its aspect ratio (centered, letterboxed) in the square slot, not zoom-cropped. */
-  .post-list-cover video { object-fit: contain; background: var(--paper-2, #0a0e1a); }
 
   /* Re-apply rounded corners on slightly larger phones */
Index: src/views/shell.ejs
===================================================================
--- src/views/shell.ejs	(revision 86fa2d2795c9ba37e01a9f0c0315a1ca031b645d)
+++ src/views/shell.ejs	(revision 38120c7ecacf8fe6e6b22191e9bbcad5017b94c4)
@@ -216,5 +216,5 @@
 
 <!-- v9 stylesheet (full palette system) -->
-<link rel="stylesheet" href="/assets/css/style.css?v=65">
+<link rel="stylesheet" href="/assets/css/style.css?v=66">
 <script>
 /* iOS safe-area, built by hand. env(safe-area-inset-top) resolves to 0 on this iOS in
