.gallery-page { min-height: 70vh; }
.gallery-header { padding: 8rem 0 3rem; }
.gallery-thumbnail { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.gallery-photo { display: block; border-radius: .5rem; overflow: hidden; }
.gallery-photo:focus, .gallery-album:focus { outline: 3px solid #4840ff; outline-offset: 4px; }
.gallery-album { overflow: hidden; border-radius: .6rem; transition: box-shadow .2s; }
.gallery-album:hover { text-decoration: none; box-shadow: 0 .5rem 1.5rem rgba(0,0,0,.15); }
.gallery-placeholder { display: flex; align-items: center; justify-content: center; aspect-ratio: 4 / 3; background: #eee; color: #666; font-size: 3rem; }
.gallery-description { white-space: pre-line; max-width: 48rem; }
.gallery-photos figcaption { overflow-wrap: anywhere; }
@media (max-width: 575px) { .gallery-header { padding: 7rem 0 2rem; } .gallery-header h1 { font-size: 2rem; } }
