.archive-list--sns {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(3, 1fr);
  margin: 0 auto;
  @media (max-width: 768px) {
    grid-template-columns: 1fr 1fr;
  }
  @media (max-width: 480px) {
    grid-template-columns: 1fr;
  }
}
.sns-block {
  * {
    transition: var(--transition-all);
  }
  position: relative;
  aspect-ratio: 1 / 1;
  background-color: var(--color-background);

  overflow: hidden;
  .sns-block__image {
    img {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 0.3s ease;
      &:hover {
        transform: scale(1.05);
      }
    }
  }

  .sns-block__content {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    min-height: 20%;
    display: grid;
    align-items: center;
    padding: var(--space-xs);
    padding-top: var(--space-md);
    color: var(--color-background);
    text-align: center;
    font-size: var(--font-xs);
    > div {
      z-index: 2;
      position: relative;
    }
    &:before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      backdrop-filter: blur(10px);
      mask-image: linear-gradient(to bottom, transparent 0%, black 100%);
      -webkit-mask-image: linear-gradient(
        to bottom,
        transparent 0%,
        black 100%
      );
      z-index: 1;
    }
    &:after {
      content: "";
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      width: 100%;
      height: 100%;
      background: linear-gradient(
        to top,
        rgba(0, 0, 0, 0.5) 0%,
        transparent 100%
      );
      z-index: 1;
    }
  }
  .sns-block__title {
    width: 100%;
    @media (max-width: 768px) {
      text-align: left;
    }
  }
  .sns-block__meta {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    padding: var(--space-xs);
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: var(--space-xs);
  }
  .sns-block__category {
    display: inline-block;
    line-height: 1;
    padding: var(--space-xs) var(--space-sm);
    background-color: var(--color-primary);
    color: var(--color-background);
    border-radius: var(--radius-full);
    font-size: var(--font-xs);
    opacity: var(--opacity-80);
  }
}
