#portfolio[hidden],a[hidden]{display:none!important}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto;gap:24px}
.gallery-shot{display:block;padding:0;margin:0;min-height:0!important;overflow:hidden;position:relative;aspect-ratio:4/5;border-radius:20px;background:var(--surface,#eee);opacity:1;filter:none;transform:none}
.gallery-shot::before,.gallery-shot::after{content:none}
.gallery-shot button{border:0;padding:0;display:block;width:100%;height:100%;cursor:zoom-in;background:transparent}
.gallery-shot img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.gallery-shot button:hover img{transform:scale(1.025)}
.gallery-shot button:focus-visible{outline:3px solid currentColor;outline-offset:-5px}
.gallery-shot figcaption{position:absolute;inset:auto 0 0;padding:32px 20px 18px;color:white;background:linear-gradient(transparent,rgba(0,0,0,.8));pointer-events:none;overflow-wrap:anywhere}
.gallery-lightbox{max-width:min(96vw,1100px);max-height:94vh;padding:48px 20px 20px;border:1px solid #888;border-radius:20px;background:#141414;color:#fff}
.gallery-lightbox::backdrop{background:rgba(0,0,0,.8)}
.gallery-lightbox img{display:block;max-width:100%;max-height:72vh;margin:auto;object-fit:contain}
.gallery-lightbox p{overflow-wrap:anywhere}.gallery-close{position:absolute;right:12px;top:4px;font-size:32px;background:none;color:inherit;border:0;cursor:pointer}
@media(max-width:800px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}
@media(max-width:440px){.portfolio-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.gallery-shot img{transition:none}}
