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

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

.neptune-header {
  /* same layout as .gallery-header: left-aligned, same widths */
  padding: 160px var(--section-padding) 48px;
}

/* canonical .neptune-label / .neptune-title live in base.css */
.neptune-label {
  justify-content: center;
  color: var(--text-muted);
  margin-bottom: 16px;
}

.neptune-label::after { background: var(--text-muted); }

/* canonical .neptune-subtitle lives in base.css */
.neptune-subtitle { margin-bottom: 12px; }

/* ── Photo Grid — centered 2×2, same width as every other page ──
   no max-width of its own: --section-padding IS the site-wide width cap,
   and a cap on the padded box would crush the photos on wide screens */
.neptune-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto 0px auto;
  column-gap: 12px;
  row-gap: 6px;
  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;
  aspect-ratio: 1 / 1;
  opacity: 0;
  transform: translateY(16px) scale(0.97);
  transition: opacity var(--dur-reveal) var(--ease-out), transform var(--dur-reveal) var(--ease-out);
  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%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: 50% 33%;
  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: 10px;
  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: background var(--dur-control) ease, color var(--dur-control) ease, border-color var(--dur-control) 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(--line-faint);
  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;
}

.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: 10px;
    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: 10px;
    gap: 2px;
  }

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