.project{max-width:1320px;padding-top:18px}.back,.project-end{font-size:11px;letter-spacing:.04em}.back{display:inline-block;padding:14px 0}.project-heading{margin:48px 0 38px;display:flex;justify-content:space-between;gap:25px;align-items:end}.project-heading h1{font-size:clamp(28px,4vw,52px);letter-spacing:.1em;text-indent:0;line-height:1.2}.project-heading p{font-size:8px;line-height:2;letter-spacing:.15em;margin:0}.project-heading p span{display:block;text-align:right;color:var(--quiet)}.hero{display:block;background:white;padding:24px;position:relative}.hero img{display:block;width:100%;max-height:740px;object-fit:contain}.hero>span{position:absolute;bottom:38px;right:38px;background:var(--background);padding:12px 16px;font-size:8px;letter-spacing:.15em}.introduction{display:grid;grid-template-columns:1fr 2fr;gap:60px;padding:80px 0 95px}.eyebrow{font-size:9px;letter-spacing:.16em;margin:7px 0}.description{font-size:clamp(15px,1.5vw,19px);font-weight:300;line-height:1.9;max-width:690px;margin:0}.gallery-heading{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #353b3725;padding:26px 0}.gallery-heading h2{font-size:17px;font-weight:300;margin:0}.gallery-heading>span{font-size:8px;letter-spacing:.15em;color:var(--quiet)}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.gallery>a{position:relative;display:block;background:white;padding:10px}.gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.gallery a>span{display:block;font-size:8px;color:var(--quiet);padding:10px 2px 2px;letter-spacing:.1em}.project-end{display:flex;justify-content:space-between;gap:25px;border-top:1px solid #353b3725;margin-top:65px;padding-top:30px}.lightbox{border:0;padding:24px;background:#f4f2ec;color:var(--ink);width:100vw;height:100dvh;max-width:none;max-height:none}.lightbox::backdrop{background:#f4f2ec}.lightbox[open]{display:grid;grid-template-rows:44px minmax(0,1fr) 54px;gap:12px}.lightbox-top,.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.12em}.lightbox button{border:0;background:none;color:inherit;font:inherit;min-width:48px;min-height:44px;cursor:pointer}.lightbox-stage{min-height:0;display:flex;align-items:center;justify-content:center;touch-action:pan-y}.lightbox-stage img{width:100%;height:100%;object-fit:contain}.lightbox-bottom{max-width:300px;width:100%;margin:auto}.lightbox-bottom button{font-size:24px}body.gallery-open{overflow:hidden}button:focus-visible{outline:1px solid var(--ink)}@media(max-width:700px){.project-heading{display:block;margin-top:25px}.project-heading p{margin-top:18px}.project-heading p span{text-align:left}.hero{padding:10px}.hero>span{bottom:20px;right:20px}.introduction{grid-template-columns:1fr;gap:20px;padding:45px 0 55px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.gallery>a{padding:6px}.lightbox{padding:12px}.project-end{font-size:10px}.description{line-height:1.8}}
/* Translucent white photo viewer, with full-height left/right tap targets. */
.lightbox{width:calc(100vw - 64px);height:calc(100dvh - 64px);max-width:1440px;max-height:1000px;margin:auto;padding:20px 24px;background:rgb(255 255 255 / .82);box-shadow:0 22px 90px #27302626;border:1px solid #ffffffb3;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.lightbox::backdrop{background:rgb(255 255 255 / .68);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.lightbox-stage{position:relative}.lightbox-stage img{filter:drop-shadow(0 8px 20px #00000012)}
.lightbox .stage-nav{position:absolute;top:0;bottom:0;width:50%;display:flex;align-items:center;padding:18px;border-radius:0}.stage-previous{left:0;justify-content:flex-start}.stage-next{right:0;justify-content:flex-end}
.stage-nav span{display:flex;align-items:center;justify-content:center;width:46px;height:46px;background:#ffffffe0;box-shadow:0 3px 20px #00000014;border:1px solid #353b3710;border-radius:50%;font-size:24px;transition:background .2s}.stage-nav:hover span{background:white}.lightbox .stage-nav:focus-visible{outline:1px solid var(--ink);outline-offset:-3px}
@media(max-width:700px){.lightbox{width:calc(100vw - 20px);height:calc(100dvh - 40px);padding:12px}.lightbox .stage-nav{padding:6px}.stage-nav span{width:36px;height:36px;font-size:20px}}
.hero.sketch-toggle{width:100%;border:0;cursor:pointer;color:inherit}.hero-pair{display:block;position:relative;aspect-ratio:4/3;max-height:740px}.hero-pair img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.hero-photo{opacity:0;transition:opacity 900ms ease-in-out}.sketch-toggle.is-realized .hero-photo{opacity:1}.sketch-toggle:focus-visible{outline:1px solid var(--ink);outline-offset:6px}.lightbox-stage>.outgoing-photo{position:absolute;inset:0;pointer-events:none}.lightbox .stage-nav{z-index:2}@media(prefers-reduced-motion:reduce){.hero-photo{transition:none}}
.hero>.hero-pair{position:relative;bottom:auto;right:auto;background:transparent;padding:0}
/* Keep both reveal layers centered at every viewport width. */
.hero>.hero-pair{width:100%;max-height:none;margin-inline:auto;aspect-ratio:4/3}
.hero-pair img{max-height:none;object-position:center}
/* Safari's default tap highlight otherwise darkens half of the photo. */
.lightbox button{-webkit-tap-highlight-color:transparent;-webkit-appearance:none;appearance:none;user-select:none;-webkit-user-select:none}
.lightbox .stage-nav:active{background:transparent}

/* Full-viewport white mobile viewer, including landscape phones. */
@media (max-width:700px), (hover:none) and (pointer:coarse){
 .lightbox{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;margin:0;border:0;border-radius:0;box-sizing:border-box;padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:rgb(255 255 255 / .97);box-shadow:none;overflow:hidden;overscroll-behavior:contain}
 .lightbox[open]{grid-template-rows:44px minmax(0,1fr) 26px;gap:4px}
 .lightbox::backdrop{background:white}
 .lightbox .stage-nav,.lightbox-bottom .previous,.lightbox-bottom .next{display:none}
 .lightbox-bottom{justify-content:center;gap:14px;max-width:none;font-size:9px}
 .lightbox-bottom::after{content:'SWIPE TO EXPLORE';font-size:8px;letter-spacing:.12em;color:var(--quiet)}
 .lightbox-stage{min-width:0;touch-action:pan-y pinch-zoom}
 .lightbox-stage img{object-fit:contain;user-select:none;-webkit-user-select:none;-webkit-user-drag:none}
 .lightbox-top{font-size:9px;gap:10px}
}
@media (orientation:landscape) and (max-height:600px){
 .lightbox{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;margin:0;box-sizing:border-box;border:0;padding:env(safe-area-inset-top) max(8px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(8px,env(safe-area-inset-left));background:rgb(255 255 255 / .97)}
 .lightbox[open]{grid-template-rows:36px minmax(0,1fr) 20px;gap:0}
 .lightbox .stage-nav,.lightbox-bottom .previous,.lightbox-bottom .next{display:none}
 .lightbox-bottom{justify-content:center}
 .lightbox .close{min-height:36px}
}
/* Thumb-friendly controls outside the photograph on phones. */
@media (max-width:700px), (hover:none) and (pointer:coarse){
 .lightbox[open]{grid-template-rows:44px minmax(0,1fr) 60px}
 .lightbox-bottom{display:flex;justify-content:space-between;max-width:420px;width:100%;gap:16px;padding:0 12px;box-sizing:border-box}
 .lightbox-bottom::after{content:none}
 .lightbox-bottom .previous,.lightbox-bottom .next{display:flex;align-items:center;justify-content:center;min-width:64px;min-height:52px;font-size:28px;border:1px solid #353b3715;border-radius:50%;background:rgb(255 255 255 / .8)}
}
@media (orientation:landscape) and (max-height:600px){
 .lightbox[open]{grid-template-rows:36px minmax(0,1fr) 20px}
 .lightbox-stage{margin-inline:64px}
 .lightbox .stage-nav{display:flex;top:0;bottom:0;width:56px;padding:0;justify-content:center}
 .lightbox .stage-previous{left:-64px;right:auto}
 .lightbox .stage-next{right:-64px;left:auto}
 .lightbox .stage-nav span{width:46px;height:46px;box-shadow:none;background:white;border:1px solid #353b3715}
 .lightbox-bottom{justify-content:center;padding:0}
 .lightbox-bottom .previous,.lightbox-bottom .next{display:none}
}
