/* Equal-size photographs with continuous horizontal browsing. */
.gallery-page :focus-visible{outline:2px solid var(--red);outline-offset:5px}
.gallery-enhanced .archive-rail{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.gallery-enhanced .archive-rail .archive-grid{
  --card-width:clamp(240px,26vw,350px);
  position:relative;display:flex;align-items:flex-start;gap:18px;
  width:100%;min-width:0;margin:0;padding:0 0 38px;
  overflow-x:auto;overflow-y:hidden;scroll-snap-type:none;scroll-behavior:auto;
  scrollbar-width:none;user-select:none;-webkit-user-select:none;
  cursor:grab;overscroll-behavior-x:contain;
}
.gallery-enhanced .archive-grid::-webkit-scrollbar{display:none}
.gallery-strip{position:relative;display:block;flex:0 0 var(--card-width);width:var(--card-width);padding:0;border:0;background:transparent;color:var(--white);aspect-ratio:4/5;cursor:grab;-webkit-tap-highlight-color:transparent}
.gallery-enhanced .archive-rail .gallery-strip img{display:block;width:100%;max-width:100%;height:100%;margin:0;aspect-ratio:4/5;object-fit:contain;border:1px solid rgba(255,255,255,.22);pointer-events:none;-webkit-user-drag:none}
.strip-label{position:absolute;inset:auto 0 -25px;display:flex;justify-content:space-between;gap:12px;color:rgba(255,255,255,.52);font:700 10px/1 var(--mono);letter-spacing:.12em;pointer-events:none}
.strip-label>span:first-child{color:var(--red)}
.gallery-enhanced .archive-grid.is-dragging,.is-dragging .gallery-strip{cursor:grabbing}
.rail-controls{display:grid;grid-template-columns:minmax(80px,1fr) auto;gap:24px;align-items:center;padding:12px 0 0;border-top:1px solid rgba(255,255,255,.18)}
.rail-position{display:block;width:100%;min-width:0;height:32px;margin:0;background:transparent;appearance:none;-webkit-appearance:none;cursor:ew-resize;accent-color:var(--red)}
.rail-position::-webkit-slider-runnable-track{height:2px;border:0;background:linear-gradient(to right,var(--red) var(--rail-progress,0%),rgba(255,255,255,.3) var(--rail-progress,0%))}
.rail-position::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:14px;height:14px;margin-top:-6px;border:3px solid var(--black);border-radius:50%;background:var(--red);box-shadow:0 0 0 1px var(--red)}
.rail-position::-moz-range-track{height:2px;background:rgba(255,255,255,.3)}
.rail-position::-moz-range-progress{height:2px;background:var(--red)}
.rail-position::-moz-range-thumb{width:10px;height:10px;border:2px solid var(--black);border-radius:50%;background:var(--red);box-shadow:0 0 0 1px var(--red)}
.rail-controls .swipe-guide{margin:0}
.gallery-is-modal{overflow:hidden}
.gallery-page .gallery-detail{width:min(96vw,1480px);height:min(94dvh,980px);max-height:94dvh;overflow:hidden;padding:0;border:1px solid rgba(255,255,255,.2);background:var(--black);color:var(--white)}
.gallery-page .gallery-detail[open]{display:grid;grid-template-rows:60px minmax(0,1fr) 44px}
.gallery-detail-bar{min-width:0;grid-template-columns:minmax(0,1fr) auto auto;gap:24px}
.gallery-detail-bar span{line-height:1.5}
.gallery-detail-bar strong{max-width:45vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:rgba(255,255,255,.6);font-weight:500}
.gallery-detail-bar button{min-width:42px;min-height:42px}
.gallery-page .gallery-detail-stage{display:block;min-height:0;height:auto;padding:18px 24px;touch-action:pan-y;cursor:grab}
.gallery-detail-stage>[data-gallery-image]{display:block;width:100%;height:100%;min-height:0;object-fit:contain;user-select:none;-webkit-user-drag:none;pointer-events:none}
.gallery-detail-hint{margin:0;display:grid;place-items:center;color:rgba(255,255,255,.55);font-size:11px;letter-spacing:.1em;border-top:1px solid rgba(255,255,255,.16)}
@media(max-width:720px){
  .gallery-enhanced .archive-rail .archive-grid{--card-width:min(76vw,310px);gap:14px}
  .rail-controls{gap:18px}
  .rail-controls .swipe-guide{font-size:11px}
  .gallery-page .gallery-detail{width:100vw;max-width:none;height:100dvh;max-height:none;border:0}
  .gallery-page .gallery-detail[open]{grid-template-rows:58px minmax(0,1fr) 44px}
  .gallery-detail-bar{padding:8px 12px;grid-template-columns:1fr auto;gap:8px}
  .gallery-detail-bar strong{display:none}
  .gallery-page .gallery-detail-stage{padding:12px}
}
