.photo-gallery{background:var(--sand);color:var(--ink)}
.photo-gallery .eyebrow{color:#876322}
.photo-gallery .sectionhead{align-items:start}
.gallery-hint{display:inline-block;margin-top:12px;font-size:12px;font-weight:800;color:#3b4249}
.work .gallery-hint{color:#d0d4d8}
.project-photo-link{position:absolute;inset:0;z-index:3;display:block;cursor:zoom-in}
.project-photo-link:focus-visible{outline:3px solid var(--gold2);outline-offset:-5px}
.project-photo-link .photo-zoom{top:14px;right:14px;bottom:auto}
#gallery-more{scroll-margin-top:110px}
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.photo-card{margin:0;min-width:0;background:#fff}
.photo-card.feature{grid-column:span 2}
.photo-card a{display:block;height:100%}
.photo-frame{display:block;position:relative;overflow:hidden;background:#161b20;aspect-ratio:4/3}
.photo-card.feature .photo-frame{aspect-ratio:auto;height:clamp(230px,28vw,355px)}
.photo-card.feature+ .photo-card .photo-frame{aspect-ratio:auto;height:clamp(230px,28vw,355px)}
.photo-frame img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.photo-frame .portrait-preview{object-position:center 65%}
.photo-card a:hover img{transform:scale(1.025)}
.photo-zoom{position:absolute;right:12px;bottom:12px;display:grid;place-items:center;width:38px;height:38px;background:var(--gold);color:#111;font-size:25px;font-weight:500}
.photo-caption{display:block;padding:19px 20px 21px}
.photo-caption strong{display:block;font-size:14px;letter-spacing:.7px}
.photo-caption small{display:block;margin-top:7px;font-size:13px;line-height:1.55;color:#5d646b}
.photo-pair-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin:48px 0 22px}
.photo-pair-heading h3{margin:0;font-size:29px;letter-spacing:-.7px}
.photo-pair-heading p{max-width:490px;margin:0;color:var(--muted);line-height:1.65}
.photo-pair{grid-template-columns:repeat(2,minmax(0,1fr))}
.photo-pair .photo-frame{aspect-ratio:4/3}
.photo-dialog{width:min(1180px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:0;border:1px solid #444b52;background:#0c0f12;color:#fff;overflow:auto;box-shadow:0 24px 100px #0008}
.photo-dialog::backdrop{background:rgba(4,6,8,.92)}
body.photo-viewer-open{overflow:hidden}
.photo-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 20px;border-bottom:1px solid #30363d}
.photo-toolbar h2{font-size:13px;letter-spacing:1.5px;margin:0}
.photo-dialog button{min-width:44px;min-height:44px;padding:10px 16px;border:1px solid #535b64;background:transparent;color:#fff;font:inherit;font-size:13px;font-weight:700;cursor:pointer;touch-action:manipulation}
.photo-dialog button:hover{background:#252b32}
#photo-close{white-space:nowrap}
.photo-dialog :focus-visible{outline-color:var(--gold2);outline-offset:2px}
.photo-stage{margin:0;display:grid;place-items:center;min-height:120px;background:#080a0c}
.photo-stage img{width:100%;height:min(65dvh,720px);object-fit:contain}
.photo-footer{padding:18px 20px 20px}
.photo-controls{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px}
.photo-count{font-size:12px;letter-spacing:1px;color:#b9bfc6;text-align:center}
.photo-caption-row{display:flex;align-items:start;justify-content:space-between;gap:24px}
#photo-caption{margin:0;font-size:15px;line-height:1.55}
.photo-original{font-size:12px;color:var(--gold2);text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
@media(max-width:960px){.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-card.feature{grid-column:span 2}.photo-card.feature .photo-frame{height:auto;aspect-ratio:16/9}.photo-card.feature+ .photo-card .photo-frame{height:auto;aspect-ratio:4/3}.photo-pair-heading{flex-direction:column;align-items:start}}
@media(max-width:610px){.photo-grid{grid-template-columns:1fr;gap:20px}.photo-card.feature{grid-column:auto}.photo-card.feature .photo-frame{aspect-ratio:4/3}.photo-pair .photo-frame{aspect-ratio:4/5}.photo-dialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px)}.photo-toolbar,.photo-footer{padding:12px}.photo-stage img{height:52dvh}.photo-caption-row{display:block}.photo-original{display:inline-block;padding:14px 0 2px}.photo-dialog button{padding:10px 12px}.photo-controls{gap:8px}.photo-pair-heading h3{font-size:26px}}
