/* ══════════════════════════════════════
   NEPTUNE — Shuffle Page
   ══════════════════════════════════════ */

/* ── Header ── */
.neptune-page {
  min-height: 100vh;
  padding-bottom: 120px;
}

.neptune-header {
  text-align: center;
  padding: 160px var(--section-padding) 48px;
  max-width: 600px;
  margin: 0 auto;
}

.neptune-label {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  letter-spacing: 3.5px;
  text-transform: uppercase;
  color: var(--text-muted);
  font-weight: 300;
  margin-bottom: 16px;
}

.neptune-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(40px, 6vw, 64px);
  font-weight: 300;
  font-style: italic;
  line-height: 1.1;
  margin-bottom: 20px;
  letter-spacing: -0.5px;
}

.neptune-subtitle {
  font-family: 'Montserrat', sans-serif;
  font-size: 13px;
  line-height: 1.8;
  color: var(--mid);
  letter-spacing: 0.04em;
  font-weight: 300;
}

/* ── Photo Grid — centered 2×2 ── */
.neptune-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto 0px auto;
  column-gap: 12px;
  row-gap: 6px;
  max-width: 900px;
  margin: 0 auto;
  padding: 0 var(--section-padding);
}

/* Top row aligns to bottom, bottom row aligns to top — all four touch at center */
.neptune-photo:nth-child(1),
.neptune-photo:nth-child(2) {
  grid-row: 1;
  align-self: end;
}

.neptune-photo:nth-child(3),
.neptune-photo:nth-child(4) {
  grid-row: 3;
  align-self: start;
}

.neptune-photo {
  overflow: hidden;
  opacity: 0;
  transform: translateY(16px) scale(0.97);
  transition: opacity 0.45s ease, transform 0.45s ease;
  transition-delay: var(--delay, 0s);
  background: rgba(128,128,128,0.1);
}

.neptune-photo.visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.neptune-photo img {
  width: 100%;
  display: block;
  transition: transform 0.6s ease;
}

.neptune-photo:hover img {
  transform: scale(1.03);
}

/* ── Shuffle Button — sits exactly on the cross line between all four photos ── */
.neptune-shuffle-wrap {
  grid-column: 1 / -1;
  grid-row: 2;
  justify-self: center;
  align-self: center;
  z-index: 10;
  pointer-events: none;
}

.neptune-shuffle-btn {
  pointer-events: auto;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  font-family: 'Montserrat', sans-serif;
  font-size: 8px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #fff;
  background: rgba(90, 140, 180, 0.35);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid rgba(122, 155, 181, 0.25);
  border-radius: 50%;
  box-shadow: var(--glass-shadow);
  width: 76px;
  height: 76px;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s ease;
  white-space: nowrap;
}

.neptune-shuffle-btn:hover {
  background: rgba(90, 140, 180, 0.5);
  color: #fff;
  border-color: rgba(122, 155, 181, 0.4);
}

.shuffle-paw {
  font-size: 18px;
  display: inline-block;
  transition: transform 0.3s ease;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,0.3));
  line-height: 1;
}

.neptune-shuffle-btn:hover .shuffle-paw {
  animation: paw-wobble 0.5s ease;
}

@keyframes paw-wobble {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(-12deg); }
  75% { transform: rotate(12deg); }
}

.neptune-photo-count {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--light);
  text-align: center;
  margin-top: 24px;
}

/* ── Admin Edit Mode — show all photos in masonry layout ── */
.neptune-grid.admin-all {
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: auto;
  gap: 12px;
  max-width: 1200px;
}

.neptune-grid.admin-all .neptune-photo {
  align-self: stretch;
}

@media (max-width: 768px) {
  .neptune-grid.admin-all {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ── Responsive ── */
@media (max-width: 768px) {
  .neptune-header {
    padding: 120px var(--section-padding) 32px;
  }

  .neptune-grid {
    column-gap: 8px;
    row-gap: 4px;
  }

  .neptune-shuffle-btn {
    width: 56px;
    height: 56px;
    font-size: 7px;
    letter-spacing: 1px;
    gap: 3px;
  }

  .shuffle-paw {
    font-size: 16px;
  }
}

@media (max-width: 480px) {
  .neptune-grid {
    column-gap: 6px;
    row-gap: 3px;
  }

  .neptune-shuffle-btn {
    width: 48px;
    height: 48px;
    font-size: 6px;
    gap: 2px;
  }

  .shuffle-paw {
    font-size: 14px;
  }
}
