body {
  margin: 0;
  background: #fff;
  color: #000;
  font-family: sans-serif;
}

header {
  text-align: center;
  padding: 2rem 2rem;
}

header h1 {
  font-size: 3rem;   /* 2rem → 3remに拡大 */
  font-weight: bold; /* 太字にして存在感アップ */
  letter-spacing: 8px; /* 少し字間を広げるとアートっぽくなる */
}

header h1 a {
  text-decoration: none; /* 下線を消す */
  color: inherit;        /* 黒文字を維持 */
}

.gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr); /* PCは4列 */
  gap: 50px;
  padding: 3rem 3rem 3rem;
}

.item {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

.item img,
.item video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.item video {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;       /* デフォルト非表示 */
  transition: opacity 0.3s ease;
}

.item:hover video {
  opacity: 1;       /* hoverで動画表示 */
}

.item:hover img {
  opacity: 0;       /* hoverでサムネを消す */
}

/* タブレットサイズ以下（画面幅768px以下） */
@media (max-width: 768px) {
  .gallery {
    grid-template-columns: repeat(2, 1fr); /* 2列に変更 */
    gap: 20px;
    padding: 0 1.5rem 2rem;
  }

  header h1 {
    font-size: 2rem; /* ヘッダー文字も少し縮小 */
  }
}

/* スマホサイズ（画面幅480px以下） */
@media (max-width: 500px) {
  .gallery {
    grid-template-columns: 1fr; /* 1列 */
    gap: 15px;
    padding: 0 1rem 2rem;
  }

  header h1 {
    font-size: 2rem; /* ヘッダー文字も少し縮小 */
  }
}