/* Blog cover images; card content and dialog behavior stay unchanged. */
.news-art.has-image { height: auto; aspect-ratio: 3 / 2; }
.news-image { display: block; width: 100%; height: 100%; object-fit: cover; }
.news-art.has-image::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, #0004, transparent 35%, #000a); pointer-events: none; }
.news-art.has-image .news-number, .news-art.has-image .news-art-label { z-index: 1; color: #fff; text-shadow: 0 1px 4px #0008; }
.article-cover { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 4px; margin: 0 0 28px; }
