.gallery-toolbar,.viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.gallery-toolbar a{color:#175247;text-decoration:underline}
.event-gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.gallery-card{position:relative;height:465px;border-radius:32px;overflow:hidden;background:#175247;color:white}
.gallery-preview{display:block;width:100%;height:100%;border:0;padding:0;cursor:zoom-in;text-align:left;color:inherit;background:transparent}
.gallery-preview img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.gallery-preview:hover img{transform:scale(1.03)}
.gallery-label{position:absolute;top:20px;left:20px;right:20px;display:flex;justify-content:space-between;gap:8px;pointer-events:none}
.gallery-label span,.gallery-download{padding:10px 14px;border-radius:12px;background:rgb(5 16 30 / 85%);font-size:14px;backdrop-filter:blur(12px)}
.gallery-download{position:absolute;bottom:20px;left:20px;right:20px;text-align:center;color:white}
.gallery-action{display:inline-block;background:#175247;color:white;padding:14px 22px;border-radius:12px;cursor:pointer;border:0}
#gallery-more{display:block;margin:32px auto 0}
#gallery-status{padding:40px 0;line-height:1.7}
[hidden],#gallery-more[hidden]{display:none!important}
#photo-viewer{position:fixed;inset:0;margin:auto;width:min(1100px,95vw);max-height:94dvh;overflow:auto;border:0;border-radius:24px;padding:24px;background:#05101e;color:white;z-index:10000}
#photo-viewer::backdrop{background:rgb(0 0 0 / 85%)}
#photo-viewer button{cursor:pointer;padding:10px 14px;border-radius:10px;background:#ffffff18;color:white}
.viewer-image{display:grid;place-items:center;min-height:200px;margin-bottom:20px}
.viewer-image img{display:block;max-width:100%;max-height:65dvh;object-fit:contain}
.viewer-toolbar:last-child{margin-bottom:0}
.gallery-preview:focus-visible,.gallery-download:focus-visible,.gallery-action:focus-visible,#photo-viewer :focus-visible{outline:3px solid #b4e50d;outline-offset:-4px}
@media(max-width:1199px){.event-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:899px){.event-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:599px){.event-gallery-grid{grid-template-columns:1fr}.gallery-card{height:440px}#photo-viewer{padding:16px}}
@media(prefers-reduced-motion:reduce){.gallery-preview img{transition:none}}
