/* V14: real projects, original photographs and an accessible photo viewer. */
.project-gallery-link{display:block;text-decoration:none}
.project-gallery-link:focus-visible,.gallery-photo:focus-visible{outline:3px solid var(--red);outline-offset:6px}
.project-photo-count{position:absolute;top:14px;left:14px;padding:8px 11px;background:#011b2ee8;color:#fff;font-size:12px;line-height:1.2}
.project-gallery-label{display:flex;gap:12px;align-items:center;margin-top:15px;font-size:13px;font-weight:600}
.project-gallery-label .arrow-icon{width:15px;height:15px}
.project-story{background:#edf0ee;padding-top:32px;padding-bottom:65px}
.project-story-intro{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center}
.project-story-intro h1{max-width:620px;font-size:clamp(38px,4.3vw,64px)}
.project-story-intro .eyebrow{font-size:11px;letter-spacing:1.6px;line-height:1.7}
.project-story-lead{font-size:17px;line-height:1.85;color:var(--muted);max-width:540px;margin:27px 0}
.project-story-count{font-size:12px;letter-spacing:1px;text-transform:uppercase;margin:25px 0;color:var(--ink)}
.project-story-nav{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin-top:30px}
.project-story-nav a{display:flex;gap:22px;border-bottom:1px solid #aab9b7;padding-bottom:10px;font-size:14px}
.project-story-nav a:hover{color:#bf1923}
.gallery-figure{margin:0;min-width:0}
.gallery-photo{display:block;position:relative;width:100%;padding:0;background:#d5ddd9;border:0;color:var(--ink);overflow:hidden;cursor:zoom-in}
.gallery-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.gallery-cover{background:transparent}
.gallery-cover img{max-height:590px;aspect-ratio:auto;object-fit:contain}
.gallery-enlarge{position:absolute;bottom:14px;right:14px;background:#edf0eef2;display:flex;align-items:center;gap:13px;padding:11px 14px;font-size:12px}
.gallery-enlarge .arrow-icon{width:16px;height:16px}
.gallery-photo:hover .gallery-enlarge{background:#011b2e;color:white}
.gallery-figure figcaption{font-size:12px;line-height:1.6;color:#526570;padding-top:12px}
.project-story-section{padding-top:65px;margin-top:50px;border-top:1px solid #b7c4c0;scroll-margin-top:0}
.project-story-section>header{max-width:620px;margin-bottom:30px}
.project-story-section h2{font-size:clamp(30px,3vw,44px);line-height:1.1;margin:0 0 16px}
.project-story-section>header>p:last-child{font-size:16px;line-height:1.8;color:var(--muted)}
.project-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.project-story-end{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-top:65px;padding-top:35px;border-top:1px solid #b7c4c0}
.project-story-end .text-link{font-size:14px}
.photo-dialog{width:min(1100px,94vw);max-height:94dvh;background:#011b2e;color:#fff;overflow:auto;padding:48px 20px 16px;border:0}
.photo-dialog #dialog-image{display:block;width:100%;height:calc(88dvh - 145px);max-height:none;object-fit:contain;background:#011b2e}
.photo-dialog .dialog-close{top:5px;right:10px;background:transparent;color:white;width:44px;height:44px;font-size:30px}
.dialog-toolbar{display:flex;align-items:center;justify-content:center;gap:22px;margin-top:12px}
.dialog-description{text-align:center;flex:1;min-width:0}
.photo-dialog #dialog-caption{margin:0;padding:0;line-height:1.5;font-size:14px}
#dialog-counter{display:block;color:#bdcbcf;font-size:12px;margin-top:6px}
.dialog-toolbar>button{border:1px solid #627985;background:transparent;color:white;width:48px;height:44px;font-size:24px;flex-shrink:0;cursor:pointer}
.dialog-toolbar>button:hover{background:#274050}
.dialog-toolbar>button[hidden]{display:none}
.photo-dialog button:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media(max-width:800px){
 .project-story-intro{gap:30px;grid-template-columns:1fr}
 .project-story-intro h1{font-size:42px;max-width:600px}
 .project-story-lead{max-width:none;margin:20px 0;font-size:16px}
 .project-story-intro>.gallery-figure{width:100%;max-width:680px;margin:auto}
 .gallery-cover img{max-height:640px}
 .project-story-nav{margin-top:24px}
 .project-story-end{flex-direction:column;align-items:flex-start}
}
@media(max-width:560px){
 .project-story{padding:25px 24px 45px}
 .project-story-intro h1{font-size:38px}
 .project-story-intro .eyebrow{font-size:10px;letter-spacing:1px}
 .project-story-lead{font-size:15px}
 .project-photo-grid{grid-template-columns:1fr;gap:25px}
 .project-story-section{padding-top:35px;margin-top:35px}
 .project-story-section>header>p:last-child{font-size:15px}
 .project-story-end{margin-top:40px}
 .project-story-end .button{width:100%;font-size:13px;justify-content:space-between;padding:18px}
 .photo-dialog{width:96vw;padding-left:10px;padding-right:10px}
 .photo-dialog #dialog-caption{font-size:12px}
 .dialog-toolbar{gap:10px}
 .dialog-toolbar>button{width:44px}
}

/* V15: show selected installation photographs in their full portrait frame. */
.project-photo-grid-portrait{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.project-photo-grid-portrait .gallery-photo img{aspect-ratio:3/4;object-fit:contain}
@media(max-width:1100px){.project-photo-grid-portrait{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.project-photo-grid-portrait{grid-template-columns:1fr}}
