Index: src/assets/css/style.css
===================================================================
--- src/assets/css/style.css	(revision b607d4dd94335c25d91a4e8986c68fccd00e0a9e)
+++ src/assets/css/style.css	(revision 86fa2d2795c9ba37e01a9f0c0315a1ca031b645d)
@@ -2401,4 +2401,7 @@
 .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 {
