.gallery-page .site-header { position: relative; }
.gallery-lightbox-open { overflow: hidden; }
.gallery-intro { padding: clamp(4rem, 7vw, 7rem) var(--page-padding) clamp(3.5rem, 6vw, 6rem); text-align: center; }
.gallery-intro h1 { font-family: var(--display); font-size: clamp(3.5rem, 8vw, 8rem); font-weight: 500; letter-spacing: .07em; line-height: .85; margin: 0; text-transform: uppercase; }
.gallery-intro p { font-family: var(--interface); font-size: .66rem; letter-spacing: .18em; margin: 1.5rem 0 .8rem; text-transform: uppercase; }
.gallery-intro em { color: var(--muted); font-family: var(--display); font-size: clamp(1.1rem, 1.5vw, 1.45rem); }
.gallery-book { display: grid; gap: clamp(.45rem, .85vw, .85rem); grid-auto-flow: dense; grid-auto-rows: clamp(1.8rem, 4vw, 4rem); grid-template-columns: repeat(12, minmax(0, 1fr)); padding: 0 var(--page-padding) clamp(7rem, 12vw, 12rem); }
.photo { cursor: zoom-in; margin: 0; min-width: 0; }
.photo img { display: block; height: 100%; object-fit: cover; transition: opacity .2s ease, transform .2s ease; width: 100%; }
.photo:hover img { opacity: .9; transform: scale(1.008); }
.photo:focus-visible { outline: 1px solid var(--ivory); outline-offset: 4px; }
.photo-space { grid-column: span 7; grid-row: span 4; }
.photo-five-working { grid-column: span 5; grid-row: span 3; }
.photo-liv-kael { grid-column: span 3; grid-row: span 4; }
.photo-liv-nili { grid-column: span 5; grid-row: span 3; }
.photo-pad { grid-column: span 2; grid-row: span 2; }
.photo-nili-kael { grid-column: span 4; grid-row: span 3; }
.photo-sheets { grid-column: span 4; grid-row: span 3; }
.photo-khera-mic, .photo-braskai-mic { grid-column: span 2; grid-row: span 3; }
.photo-nili-drums { grid-column: span 3; grid-row: span 3; }
.photo-transition { grid-column: span 4; grid-row: span 3; }
.photo-pizza { grid-column: span 5; grid-row: span 3; }
.photo-laughter { grid-column: span 2; grid-row: span 4; }
.photo-silence { grid-column: span 7; grid-row: span 4; }
.photo-sleeping { grid-column: span 3; grid-row: span 2; }
.photo-space img { object-position: center 35%; }
.photo-five-working img { object-position: center 24%; }
.photo-liv-kael img { object-position: center 24%; }
.photo-liv-nili img { object-position: center 30%; }
.photo-pad img { object-position: center 58%; }
.photo-nili-kael img { object-position: center 27%; }
.photo-sheets img { object-position: center 28%; }
.photo-khera-mic img { object-position: center 18%; }
.photo-braskai-mic img { object-position: center 18%; }
.photo-nili-drums img { object-position: 55% 24%; }
.photo-transition img { object-position: center 28%; }
.photo-pizza img { object-position: center 42%; }
.photo-laughter img { object-position: center 18%; }
.photo-silence img { object-position: center 22%; }
.photo-sleeping img { object-position: 48% 18%; }
.gallery-lightbox { align-items: center; background: rgba(5, 5, 4, .985); display: grid; inset: 0; justify-items: center; padding: clamp(1rem, 3vw, 3rem); position: fixed; z-index: 100; }
.gallery-lightbox[hidden] { display: none; }
.gallery-lightbox-image { height: auto; max-height: calc(100svh - 4rem); max-width: min(92vw, 100rem); width: auto; }
.gallery-lightbox-close, .gallery-lightbox-prev, .gallery-lightbox-next { background: transparent; border: 0; color: var(--ivory); cursor: pointer; font-family: var(--display); position: absolute; }
.gallery-lightbox-close { font-size: 1.8rem; padding: 1rem; right: 1rem; top: 1rem; }
.gallery-lightbox-prev, .gallery-lightbox-next { font-size: clamp(2rem, 4vw, 4rem); padding: 2rem 1rem; top: 50%; transform: translateY(-50%); }
.gallery-lightbox-prev { left: 1rem; }.gallery-lightbox-next { right: 1rem; }
.gallery-lightbox-count { bottom: 1.5rem; color: var(--muted); font-family: var(--interface); font-size: .63rem; letter-spacing: .14em; position: absolute; }
@media (max-width: 760px) {
  .gallery-page .site-header { position: absolute; }
  .gallery-intro { padding-bottom: 3.5rem; padding-top: 7rem; }
  .gallery-intro h1 { font-size: clamp(3.25rem, 15vw, 5rem); }
  .gallery-book { gap: .45rem; grid-auto-rows: clamp(4rem, 18vw, 7rem); grid-template-columns: repeat(2, minmax(0, 1fr)); padding-bottom: 7rem; }
  .photo-space, .photo-five-working, .photo-liv-nili, .photo-nili-kael, .photo-sheets, .photo-transition, .photo-pizza, .photo-silence { grid-column: span 2; grid-row: span 3; }
  .photo-liv-kael, .photo-khera-mic, .photo-braskai-mic { grid-column: span 1; grid-row: span 3; }
  .photo-laughter { grid-column: span 1; grid-row: span 4; }
  .photo-pad, .photo-nili-drums, .photo-sleeping { grid-column: span 1; grid-row: span 2; }
  .photo:hover img { opacity: 1; transform: none; }
  .gallery-lightbox { padding: 1rem; }
  .gallery-lightbox-image { max-height: calc(100svh - 7rem); max-width: 100%; }
  .gallery-lightbox-prev, .gallery-lightbox-next { bottom: .25rem; font-size: 2.5rem; padding: 1rem; top: auto; transform: none; }
  .gallery-lightbox-prev { left: 16%; }.gallery-lightbox-next { right: 16%; }
  .gallery-lightbox-count { bottom: 1rem; }
}
@media (prefers-reduced-motion: reduce) { .photo img { transition: none; } }
