@Yaroslav_Bulatov None of what I’ve mentioned requires you to mess with the theme. All that CSS can be placed in code injection.
Moreover, the method you suggest is what I used to use but which I abandoned for what I deemed to be a superior method (see my explanation here). That is, when you utilise image cards you take advantage of all present (and possibly future) built-in functionality. Lazy-loaded images, responsive images, and possibly more.