.project-photo-filters{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 12px}.project-photo-filters button{font:inherit;font-size:13px;padding:11px 18px;min-height:44px;border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer}.project-photo-filters button[aria-pressed=true]{background:var(--dark);border-color:var(--dark);color:#fff}.gallery-count{font-size:12px;color:var(--muted);margin-bottom:24px}
.project-photo-grid{columns:3;column-gap:24px}.project-photo{break-inside:avoid;display:inline-block;width:100%;margin:0 0 24px;background:var(--panel);border:1px solid var(--line)}.project-photo>a{display:block;position:relative;overflow:hidden}.project-photo img{display:block;width:100%;height:auto;max-width:100%;object-fit:contain;transition:transform .25s}.project-photo a:hover img{transform:scale(1.025)}.photo-expand{position:absolute;right:12px;bottom:12px;display:grid;place-items:center;width:34px;height:34px;color:#fff;background:#17221bce}.project-photo figcaption{padding:19px 20px}.project-photo figcaption>span{color:var(--accent-dark);text-transform:uppercase;font-size:10px;letter-spacing:.12em}.project-photo h3{font-size:19px;margin:9px 0 0;line-height:1.3;letter-spacing:-.02em}
.photo-viewer{width:min(1200px,96vw);max-width:96vw;max-height:94dvh;padding:14px 18px;background:var(--asi-charcoal,#181d1b);color:var(--asi-cream,#f9faf5);border:1px solid #60705f;overflow:auto}.photo-viewer::backdrop{background:#020805e8}.photo-viewer-bar,.photo-viewer-bottom{display:flex;align-items:center;justify-content:space-between;gap:18px}.photo-viewer p{margin:0;font-size:13px;color:#f3f6ef}.photo-viewer button{padding:9px 15px;min-width:44px;min-height:44px;background:var(--asi-surface-raised,#303d35);border:1px solid #8b9a88;color:#fff;cursor:pointer;font:inherit}.photo-viewer>img{display:block;width:100%;height:min(70dvh,850px);object-fit:contain;margin:12px 0}.photo-viewer-bottom>p{text-align:center}.photo-viewer:focus-visible,.photo-viewer button:focus-visible,.project-photo-filters button:focus-visible{outline:3px solid #ffbd89;outline-offset:3px}
@media(max-width:950px){.project-photo-grid{columns:2}}@media(max-width:560px){.project-photo-grid{columns:1}.project-photo-filters{gap:8px}.project-photo-filters button{flex:1 1 42%;padding:11px}.photo-viewer{padding:10px}.photo-viewer>img{height:64dvh}.photo-viewer-bottom{gap:10px}}
@media(prefers-reduced-motion:reduce){.project-photo img{transition:none}}
.project-photo[hidden]{display:none!important}
