.project-page{background:#ede7dc}
.project-intro{min-height:0;padding:7rem 5vw 3rem;border:0}
.project-intro h1{font-size:clamp(4.5rem,11vw,11rem);max-width:none}
.project-intro .kicker,.project-number,.project-hero figcaption{display:none}
.project-description[hidden]{display:none}
.back-link{left:5vw;top:2rem}
.project-hero{max-width:none;width:62%;margin:1rem 5vw 8rem auto;padding:0}
.project-hero img{max-height:86svh;width:100%;height:auto;object-fit:contain}
.project-gallery{max-width:1600px;padding:0 5vw 7rem;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:5vw 2.5vw;align-items:start}
.project-gallery figure,.project-gallery figure:nth-child(3n){grid-column:span 5;margin:0;min-height:0;overflow:visible}
.project-gallery figure:nth-child(6n+1){grid-column:1 / span 6}
.project-gallery figure:nth-child(6n+2){grid-column:8 / span 5;margin-top:15vw}
.project-gallery figure:nth-child(6n+3){grid-column:3 / span 7;margin-top:2vw}
.project-gallery figure:nth-child(6n+4){grid-column:1 / span 4;margin-top:9vw}
.project-gallery figure:nth-child(6n+5){grid-column:6 / span 7}
.project-gallery figure:nth-child(6n){grid-column:4 / span 5;margin-block:3vw}
.photo-open{display:block;width:100%;border:0;background:transparent;padding:0;cursor:zoom-in;overflow:visible}
.project-gallery img{max-height:88svh;width:100%;height:auto;object-fit:contain;transition:transform .65s cubic-bezier(.2,.7,.2,1),box-shadow .65s}
.project-hero img{transition:transform .65s cubic-bezier(.2,.7,.2,1)}
@media(hover:hover){.photo-open:hover img,.photo-open:focus-visible img{transform:scale(1.025);box-shadow:0 20px 40px #15211d18}}
.photo-open:focus-visible{outline:2px solid #294d3e;outline-offset:8px}
.reveal-photo{opacity:0;transform:translateY(32px);transition:opacity .8s,transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal-photo.in-view{opacity:1;transform:translateY(0)}
.next-project{background:transparent;border-top:1px solid #15211d33;padding:3rem 5vw}
.next-project:hover{background:#e4dece}
.viewer-open{overflow:hidden}
dialog.photo-viewer{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border:0;padding:4rem 5rem;background:#0b0e0df5;color:#fff;overflow:hidden}
dialog.photo-viewer[open]{display:flex;align-items:center;justify-content:center;animation:none}
.photo-viewer::backdrop{background:#0b0e0d}
.photo-viewer .viewer-image{width:100%;height:100%;object-fit:contain;min-height:0}
.photo-viewer button{position:absolute;z-index:2;border:1px solid #ffffff55;color:#fff;background:#111b;padding:.7rem 1rem;cursor:pointer}
.viewer-close{top:1rem;right:1rem}.viewer-prev{left:1rem;top:50%}.viewer-next{right:1rem;top:50%}
.viewer-count{position:absolute;bottom:1.2rem;left:50%;transform:translateX(-50%);font-size:.75rem;letter-spacing:.15em}
@media(max-width:700px){.project-intro{padding:6rem 20px 2rem}.back-link{left:20px}.project-intro h1{font-size:4.3rem}.project-hero{width:85%;margin:1rem 20px 4rem auto}.project-gallery{padding:0 20px 4rem;gap:2.5rem 12px}.project-gallery figure:nth-child(6n+1){grid-column:1/span 10}.project-gallery figure:nth-child(6n+2){grid-column:4/span 9;margin-top:0}.project-gallery figure:nth-child(6n+3){grid-column:1/-1;margin-top:0}.project-gallery figure:nth-child(6n+4){grid-column:1/span 8;margin-top:0}.project-gallery figure:nth-child(6n+5){grid-column:4/span 9}.project-gallery figure:nth-child(6n){grid-column:2/span 10;margin:0}.project-gallery img{max-height:80svh}.photo-viewer .viewer-image{height:100%}dialog.photo-viewer{padding:4rem 12px}.viewer-prev,.viewer-next{top:auto;bottom:.6rem}.next-project{padding:2rem 20px}}
@media(prefers-reduced-motion:reduce){.reveal-photo{opacity:1;transform:none;transition:none}.photo-open img{transition:none}}
/* Compact magazine spacing. */
.project-hero{width:40%;margin:0 10vw 2rem auto}
.project-hero img{max-height:60svh}
.project-gallery{max-width:1180px;padding:0 4vw 3rem;gap:1.5rem 1.4rem;grid-template-columns:repeat(12,minmax(0,1fr));align-items:center}
.project-gallery figure:nth-child(6n+1){grid-column:1/span 6}
.project-gallery figure:nth-child(6n+2){grid-column:7/span 6;margin-top:3rem}
.project-gallery figure:nth-child(6n+3){grid-column:2/span 5;margin-top:0}
.project-gallery figure:nth-child(6n+4){grid-column:7/span 5;margin-top:1rem}
.project-gallery figure:nth-child(6n+5){grid-column:1/span 6}
.project-gallery figure:nth-child(6n){grid-column:7/span 6;margin:0}
.project-gallery img{max-height:58svh}
@media(max-width:700px){.project-hero{width:66%;margin:0 20px 1.5rem auto}.project-hero img{max-height:52svh}.project-gallery{padding:0 14px 2rem;gap:16px 12px}.project-gallery figure:nth-child(odd){grid-column:1/span 6;margin:0}.project-gallery figure:nth-child(even){grid-column:7/span 6;margin:1.5rem 0 0}.project-gallery img{max-height:40svh}}

/* Each frame follows the photo's natural ratio, without letterboxing or cropping. */
.project-gallery{display:block;columns:3;column-gap:8px;max-width:1180px;padding:0 3vw 2rem}
.project-gallery figure,.project-gallery figure:nth-child(n){display:block;break-inside:avoid;margin:0 0 8px;padding:0;position:relative;overflow:visible}
.project-gallery img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}
.project-hero{margin-bottom:8px}
.project-hero .photo-open{width:auto;margin:auto}
.project-hero img{width:auto;max-width:100%;height:auto;max-height:60svh;margin:auto}
.project-gallery figure:hover,.project-gallery figure:focus-within{z-index:4}
@media(hover:hover){.photo-open:hover img,.photo-open:focus-visible img{transform:scale(1.075);box-shadow:0 16px 36px #15211d30}}
@media(max-width:700px){.project-gallery{columns:2;column-gap:6px;padding:0 12px 2rem}.project-gallery figure:nth-child(n){margin:0 0 6px}.project-gallery img{max-height:none}.project-hero{margin-bottom:6px}}
