.gallery-shell{max-width:1280px;width:100%;margin:0 auto;padding:48px clamp(20px,4vw,56px) 64px}
.gallery-shell .page-heading{margin-bottom:32px}.gallery-shell .page-heading p{color:var(--color-ink-soft);font-size:18px}
.album-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.album-card{display:block;background:#fff;border:1px solid var(--color-border-2);border-radius:var(--radius-card);overflow:hidden;box-shadow:0 4px 18px rgba(15,28,43,.04)}
.album-card:hover,.album-card:focus-visible{outline:2px solid var(--color-brand);outline-offset:3px}
.album-cover{position:relative;aspect-ratio:4/3;background:var(--color-bg-tint)}.album-cover img{display:block;width:100%;height:100%;object-fit:cover}
.album-cover span{position:absolute;left:12px;bottom:12px;padding:6px 10px;border-radius:6px;background:rgba(15,28,43,.8);color:#fff;font-size:13px}
.album-card-body{padding:20px}.album-card time{font-size:14px;color:var(--color-muted)}.album-card h2{font-size:23px;line-height:1.2;margin:10px 0 18px}.album-card p{margin:0;color:var(--color-brand);font-weight:600}
.album-pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:24px;margin:36px 0}.album-pagination a,.gallery-article-link{display:inline-block;color:var(--color-brand);padding:10px 0;text-decoration:underline;text-underline-offset:3px}
.legacy-albums{margin-top:36px;border-top:1px solid var(--color-border);padding-top:20px}.legacy-albums summary{cursor:pointer;padding:12px 0;font-size:18px;font-weight:600}
.album-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.album-photo{display:block;aspect-ratio:4/3;background:var(--color-bg-tint);border-radius:8px;overflow:hidden}.album-photo img{width:100%;height:100%;object-fit:cover;display:block}.album-photo:focus-visible{outline:3px solid var(--color-brand);outline-offset:3px}
body.photo-lightbox-open{overflow:hidden}.photo-lightbox{width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:rgba(10,18,28,.98);color:#fff}.photo-lightbox::backdrop{background:rgba(10,18,28,.85)}
.photo-lightbox-toolbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:8px 16px}.photo-lightbox button{width:48px;height:48px;padding:0;border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.35);color:#fff;border-radius:8px;font-size:34px;line-height:1;cursor:pointer}.photo-lightbox button:focus-visible{outline:2px solid #fff;outline-offset:3px}
.photo-lightbox-stage{height:calc(100% - 140px);position:relative;display:flex;align-items:center;justify-content:center;touch-action:pan-y}.photo-lightbox-stage img{max-width:calc(100% - 140px);max-height:100%;object-fit:contain}.photo-lightbox-stage button{position:absolute;top:50%;transform:translateY(-50%);z-index:1}.photo-lightbox-stage [data-photo-prev]{left:12px}.photo-lightbox-stage [data-photo-next]{right:12px}.photo-lightbox-caption{padding:12px 24px;margin:0;text-align:center;max-height:76px;overflow:auto;font-size:15px;line-height:1.4}
@media(max-width:900px){.album-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.album-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.gallery-shell{padding:28px 20px 40px}.album-grid{grid-template-columns:1fr;gap:24px}.album-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.photo-lightbox-stage img{max-width:100%}.photo-lightbox-stage button{top:auto;bottom:8px;transform:none}.photo-lightbox-caption{font-size:14px}}

.album-author-group{margin-bottom:36px}.album-credit{font-size:1.2rem;line-height:1.5;margin:18px 0 14px;color:#24566b}
