.gallery-v2 { padding: 64px 24px 80px; text-align: center; }
.gallery-v2 .section__title { justify-content: center; }
.gallery-v2 .carousel {
  --sx: 50%; --sy: 50%;
  position: relative; max-width: 920px; margin: 0 auto 56px; border: 1px solid var(--v2-glass-border);
  background: var(--v2-void-raised); overflow: hidden;
}
.gallery-v2 .carousel::before {
  content: ''; position: absolute; inset: 0; z-index: 2; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;
  background: radial-gradient(360px circle at var(--sx) var(--sy), var(--v2-gold-soft), transparent 70%);
}
.gallery-v2 .carousel:hover::before { opacity: 0.4; }
.gallery-v2 .carousel__viewport { overflow: hidden; }
.gallery-v2 .carousel__track { display: flex; }
.gallery-v2 .carousel__slide { flex: 0 0 100%; display: none; }
.gallery-v2 .carousel__slide.is-active { display: block; }
.gallery-v2 .carousel__slide img { width: 100%; height: 520px; object-fit: cover; display: block; }
.gallery-v2 .carousel__slide--contain img { object-fit: contain; background: var(--v2-void); }
.gallery-v2 .carousel__slide figcaption {
  font-family: var(--v2-font-mono); font-size: 0.8rem; color: var(--v2-ink-soft); padding: 14px 20px;
  border-top: 1px solid var(--v2-glass-border); text-align: left;
}
.gallery-v2 .carousel__arrow {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 44px; height: 44px; border-radius: 50%;
  border: 1px solid var(--v2-glass-border); background: rgba(10,10,13,0.7); color: var(--v2-ink); backdrop-filter: blur(6px);
  display: flex; align-items: center; justify-content: center; cursor: pointer; transition: border-color 0.2s ease, color 0.2s ease;
}
.gallery-v2 .carousel__arrow:hover { border-color: var(--v2-gold); color: var(--v2-gold); }
.gallery-v2 .carousel__arrow--prev { left: 14px; }
.gallery-v2 .carousel__arrow--next { right: 14px; }
.gallery-v2 .carousel__dots { position: absolute; bottom: 62px; left: 50%; transform: translateX(-50%); z-index: 3; display: flex; gap: 8px; }
.gallery-v2 .carousel__dot { width: 7px; height: 7px; border-radius: 50%; border: none; background: rgba(244,241,234,0.3); cursor: pointer; padding: 0; }
.gallery-v2 .carousel__dot.is-active { background: var(--v2-gold); }
@media (max-width: 640px) { .gallery-v2 .carousel__slide img { height: 360px; } }
