/* The photographer's full portrait framing is retained throughout the album. */
.gallery-grid.curated-album {grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:auto;align-items:center;gap:clamp(22px,4vw,64px) 16px;padding-block:20px 40px}
.gallery-grid.curated-album .gallery-item {grid-column:var(--album-column);grid-row:var(--album-row);aspect-ratio:2/3;width:100%;border-radius:2px;box-shadow:0 12px 36px #183c350c}
.gallery-grid.curated-album .gallery-item.photo-wide {aspect-ratio:3/2}
.gallery-grid.curated-album .gallery-item img {width:100%;height:100%;object-fit:cover}
.album-number {position:absolute;left:14px;bottom:14px;display:grid;place-items:center;min-width:32px;height:32px;border:1px solid #ffffff7a;border-radius:50%;color:#fff;background:#183c354d;backdrop-filter:blur(6px);font:500 .65rem/1 'Nunito Sans',sans-serif;letter-spacing:.06em}
.gallery-grid.curated-album .gallery-item::after {display:none}
.memory-reel {padding-top:24px}
.reel-controls {display:flex;align-items:center;gap:10px;padding:0 24px 20px;color:#f8f1dc}
.reel-hint {margin-right:auto;font-size:.8rem;letter-spacing:.025em}
.reel-controls .reel-motion-toggle {position:static;min-height:44px;margin:0}
.reel-arrow {flex:0 0 44px;width:44px;height:44px;padding:0;border:1px solid #d6c38a65;border-radius:50%;background:transparent;color:inherit;cursor:pointer;font-size:1.35rem;transition:background .2s,transform .2s}
.reel-arrow:hover {background:#ffffff15}.reel-arrow:active {transform:scale(.94)}
.memory-reel-track,.memory-reel-card {cursor:grab;touch-action:pan-x pan-y;user-select:none;-webkit-user-select:none}
.memory-reel-track.is-dragging,.memory-reel-track.is-dragging .memory-reel-card {cursor:grabbing}
.memory-reel-card img {-webkit-user-drag:none}
.memory-reel-track:focus-visible,.reel-arrow:focus-visible {outline:2px solid #dfbd70;outline-offset:4px}
.memory-reel-card {aspect-ratio:2/3}
.memory-reel-card.photo-wide {aspect-ratio:3/2;flex-basis:clamp(405px,45vw,675px);width:clamp(405px,45vw,675px)}
.living-photo > img.wedding-portrait {object-position:50% 35%;animation-name:portrait-breath;transform-origin:50% 40%}
.intro-main > img.wedding-portrait,.timeline-photo > img.wedding-portrait {object-fit:contain;background:#f9f7f1}
.timeline-photo:has(.wedding-portrait) {width:min(100%,300px);height:auto;aspect-ratio:2/3}
@keyframes portrait-breath {from {transform:scale(1)}to {transform:scale(1.025)}}
@media(max-width:620px){
  .gallery-grid.curated-album{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 12px;padding-block:0 20px}
  .gallery-grid.curated-album .gallery-item{grid-column:auto;grid-row:auto}
  .gallery-grid.curated-album .album-position-0,.gallery-grid.curated-album .album-position-3,.gallery-grid.curated-album .gallery-item.photo-wide{grid-column:1/-1;width:92%;justify-self:center}
  .gallery-grid.curated-album .album-position-2,.gallery-grid.curated-album .album-position-5{margin-top:44px}
  .memory-reel-card.photo-wide{flex-basis:382px;width:382px}
  .reel-controls{flex-wrap:wrap;padding-inline:16px;gap:8px}.reel-hint{flex-basis:100%;margin-bottom:4px;font-size:.75rem}.reel-controls .reel-motion-toggle{margin-right:auto}
}
@media(prefers-reduced-motion:reduce){.living-photo > img.wedding-portrait{animation:none;transform:none}}
