.image-placeholder {
  background: var(--color-border);
  border-radius: 0.5rem;
  height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 1.5rem;
  color: var(--color-text-muted);
}

@layer components {
  /* ── Attachment gallery (post & event show pages) ──
     A lone image centers at a comfortable medium width and keeps its
     natural ratio. Several images flow into uniform cropped tiles so a
     mix of aspect ratios stays tidy instead of pinning to the left. */
  .attachment-images {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 0.75rem;
    margin-block: 1.5rem;
  }

  .attachment-images:has(> :only-child) {
    grid-template-columns: min(100%, 600px);
    justify-content: center;
  }

  .attachment-images__item {
    width: 100%;
    height: auto;
    border-radius: 0.5rem;
  }

  /* Several images → uniform cropped tiles so mixed aspect ratios stay tidy.
     Single images (above) keep their natural ratio. */
  .attachment-images:not(:has(> :only-child)) .attachment-images__item {
    aspect-ratio: 4 / 3;
    object-fit: cover;
  }

  .wiki-image {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-radius: 0.5rem;
    margin-top: 1.5rem;
  }
}