/* News media: keep complete square artwork and animated GIFs in a stable frame.
   Load after site-shell.css and the page stylesheet. */
:is(.mm-home, .mm-news-page) .mm-news-list {
  --mm-news-image-size: 128px;
}

:is(.mm-home, .mm-news-page) .mm-news-link {
  grid-template-columns: var(--mm-news-image-size) minmax(0, 1fr) 24px;
  gap: 24px;
}

:is(.mm-home, .mm-news-page) .mm-news-image {
  position: relative;
  display: grid;
  place-items: center;
  width: var(--mm-news-image-size);
  height: var(--mm-news-image-size);
  min-width: 0;
  min-height: 0;
  flex: 0 0 var(--mm-news-image-size);
  aspect-ratio: 1;
  overflow: hidden;
  border: 1px solid #7c648c1f;
  border-radius: 15px;
  background: linear-gradient(145deg, #ded6e9, #d3c9e1);
  color: #9b80b0;
}

/* Absolute positioning avoids an intrinsic image enlarging the grid track.
   Both dimensions now resolve against the frame, even before a GIF loads. */
:is(.mm-home, .mm-news-page) .mm-news-image > img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  max-width: 100%;
  max-height: 100%;
  margin: 0;
  padding: 7px;
  object-fit: contain;
  object-position: center;
  transform: none;
  transition: none;
}

:is(.mm-home, .mm-news-page) .mm-news-link:hover .mm-news-image > img {
  transform: none;
}

:is(.mm-home, .mm-news-page) .mm-news-content {
  min-width: 0;
}

@media (max-width: 600px) {
  :is(.mm-home, .mm-news-page) .mm-news-list {
    --mm-news-image-size: 96px;
  }

  :is(.mm-home, .mm-news-page) .mm-news-link {
    grid-template-columns: var(--mm-news-image-size) minmax(0, 1fr) 16px;
    gap: 14px;
  }

  :is(.mm-home, .mm-news-page) .mm-news-image {
    border-radius: 12px;
  }

  :is(.mm-home, .mm-news-page) .mm-news-image > img {
    padding: 5px;
  }
}

@media (max-width: 420px) {
  :is(.mm-home, .mm-news-page) .mm-news-list {
    --mm-news-image-size: 84px;
  }

  :is(.mm-home, .mm-news-page) .mm-news-link {
    gap: 12px;
  }
}
