.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin:36px 0 60px}
.photo-tile{padding:0;border:1px solid #c6c2ba;background:#e9e4da;text-align:left;color:#181817;overflow:hidden}
.photo-tile img{display:block;width:100%;height:230px;object-fit:cover;background:#181817}
.photo-tile span{display:block;padding:17px 20px;font-size:16px;line-height:1.4}
.photo-tile:hover{border-color:#181817;background:#ded7ca}
.viewer-open{overflow:hidden}
.photo-viewer{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:#101010;color:#fff;overflow:hidden}
.photo-viewer[open]{display:grid;grid-template-columns:72px minmax(0,1fr) 72px;grid-template-rows:64px minmax(0,1fr) 70px}
.photo-viewer::backdrop{background:#101010}
.viewer-stage{grid-column:2;grid-row:2;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center}
.viewer-image{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
.viewer-image[hidden],.viewer-error[hidden]{display:none}
.viewer-close,.viewer-prev,.viewer-next{border:1px solid #ffffff60;background:#282828;color:#fff;border-radius:50%;width:48px;height:48px;font-size:32px;line-height:1;display:flex;align-items:center;justify-content:center;z-index:1}
.viewer-close{position:absolute;right:12px;top:8px}
.viewer-prev{grid-column:1;grid-row:2;align-self:center;justify-self:center}
.viewer-next{grid-column:3;grid-row:2;align-self:center;justify-self:center}
.viewer-caption{grid-column:2;grid-row:3;margin:0;text-align:center;align-self:center;line-height:1.4;font-size:15px}
.viewer-error{max-width:480px;text-align:center;line-height:1.6}
@media(max-width:1000px){.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.photo-grid{gap:16px;grid-template-columns:1fr}.photo-tile img{height:auto;aspect-ratio:4/3}.photo-viewer[open]{grid-template-columns:48px minmax(0,1fr) 48px}.viewer-prev,.viewer-next{width:38px;height:38px}.viewer-caption{font-size:14px}}
