.album-preview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; max-width: 850px; border-radius: 16px; overflow: hidden; background: #142320; border: 1px solid #d4b57a45; }
.album-preview-photo { position: relative; display: block; min-width: 0; overflow: hidden; aspect-ratio: 1.25; }
.album-preview-photo:first-child { grid-column: 1 / -1; aspect-ratio: 2.4; }
.album-preview-photo img { width: 100%; height: 100%; display: block; object-fit: contain; }
.album-remaining { position: absolute; inset: 0; display: grid; place-items: center; background: #0915109e; color: #fff8e9; font-size: clamp(30px, 6vw, 52px); font-weight: 750; }
.album-preview-action { margin-top: 24px; }
.album-preview-action .button { min-height: 54px; }
.album-heading { margin-bottom: 32px; }
.album-heading > .eyebrow { margin-top: 32px; color: var(--house-gold); }
.album-heading h1 { font: 400 clamp(32px, 5vw, 64px)/1.15 Georgia, serif; color: var(--house-ivory); overflow-wrap: anywhere; }
.album-count { color: var(--house-mint); font-weight: 600; }
.album-grid { columns: 4; column-gap: 18px; }
.album-grid figure { margin: 0 0 18px; break-inside: avoid; }
.album-grid a { display: block; border-radius: 10px; overflow: hidden; background: #142320; }
.album-grid img { display: block; width: 100%; height: auto; aspect-ratio: auto; }
.album-grid a:focus-visible, .album-preview:focus-visible { outline: 3px solid var(--house-gold); outline-offset: 4px; }
.album-viewer .viewer-position { margin: 0 auto 12px; font-size: 18px; color: var(--house-mint); }
.album-viewer > img { height: min(62dvh, 850px); touch-action: pan-y; }
.viewer-controls { display: flex; justify-content: center; gap: 16px; margin: 20px auto; }
.viewer-controls .button { min-height: 52px; min-width: 125px; }
.viewer-controls button:disabled { opacity: .45; cursor: default; }
@media (max-width: 1000px) { .album-grid { columns: 3; } }
@media (max-width: 600px) {
    .album-grid { columns: 2; column-gap: 10px; }
    .album-grid figure { margin-bottom: 10px; }
    .album-preview-photo:first-child { aspect-ratio: 1.8; }
    .album-preview-action .button { width: 100%; }
    .album-viewer .memory-dialog-bar { align-items: center; }
    .album-viewer .memory-dialog-bar h2 { font-size: 19px; }
    .viewer-controls { gap: 10px; }
}
