/* Exhibition: native image proportions, a full composition per project. */
.project-exhibition{display:block;max-width:1320px;margin:auto;perspective:1600px}
.project-scene{position:relative;padding-bottom:clamp(90px,18svh,190px);min-height:100svh}
.project-exhibition .project{position:sticky;top:110px;display:block;margin:0;width:100%;padding:26px 30px 12px;background:#101214;border:1px solid #30353a;box-shadow:0 30px 80px #0005;transform-origin:50% 20%}
.project-exhibition .project figcaption{display:flex;flex-direction:row;align-items:center;gap:30px;border:0;padding:0 0 24px}
.project-exhibition .project-number{font-size:48px;font-weight:400;letter-spacing:-3px;color:#dce7ed;min-width:90px;text-align:left;line-height:1}
.project-number small{font-size:12px;letter-spacing:0;color:#8b979f;margin-left:10px}
.project-title{flex:1;display:flex;align-items:center;justify-content:space-between;gap:25px}
.project-title h3{font-size:clamp(24px,2.7vw,42px);letter-spacing:-1.3px}
.project-title>span{font-size:13px;color:#adb7c0;text-align:right}
.project-exhibition .project-open{background:none;overflow:visible;display:flex;flex-direction:column;align-items:center}
.project-exhibition .project-open img{width:100%;height:auto;max-height:calc(100svh - 295px);aspect-ratio:auto;object-fit:contain;object-position:center;transform:none;filter:none;border:0;transition:none}
.project-exhibition .project-open:hover img{transform:none;filter:none}
.project-exhibition .project-view{position:static;display:flex;justify-content:space-between;align-items:center;align-self:stretch;transform:none;min-height:48px;margin-top:14px;padding:12px 0;border-top:1px solid #30383f;background:transparent;color:#c9d3dc;font-size:12px;letter-spacing:.2px}
.project-view b{transition:transform .35s}
.project-open:hover .project-view b{transform:translate(4px,-4px)}
.project-open:focus-visible{outline-offset:5px}
.project-scene:focus-within .project{transform:none!important;opacity:1!important}
.project-scene:last-child{padding-bottom:40px;min-height:0}
.orbit-project img{aspect-ratio:auto;object-fit:contain}
/* Supporting photography also retains its entire original frame. */
.closer{height:auto;min-height:0;max-height:none;max-width:1920px;margin:40px auto;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:5%;padding:50px var(--pad);overflow:visible;isolation:auto}
.closer-media{position:relative;inset:auto;z-index:auto}
.closer-media img{width:100%;height:auto;object-fit:contain;object-position:center;transform:none;filter:saturate(.8)}
.closer-shade{display:none}
.closer-copy{position:static}
.closer h2{font-size:clamp(31px,3.6vw,60px);line-height:1.13}
.closer p{font-size:16px}
.reveal-line{display:block;padding-block:3px}
.reveal-line>span{display:block}
/* Progressive enhancement: readable, stationary content without motion support. */
@property --reveal{syntax:'<number>';inherits:false;initial-value:1}
[data-motion]{--reveal:1;transform-origin:center}
[data-motion="rise"]{transform:translate3d(0,calc((1 - var(--reveal))*65px),0);opacity:calc(.45 + var(--reveal)*.55)}
[data-motion="service"]{transform:translate3d(calc((1 - var(--reveal))*42px),0,0);opacity:calc(.5 + var(--reveal)*.5)}
[data-motion="project"]{transform:perspective(1600px) translate3d(0,calc((1 - var(--reveal))*70px),0) rotateX(calc((1 - var(--reveal))*5deg)) scale(calc(.92 + var(--reveal)*.08));opacity:calc(.6 + var(--reveal)*.4)}
[data-motion="contact"]{transform:translate3d(0,calc((1 - var(--reveal))*65px),0) scale(calc(.93 + var(--reveal)*.07));opacity:calc(.5 + var(--reveal)*.5)}
[data-motion="turn"]{display:inline-block;transform:rotate(calc((1 - var(--reveal))*-120deg))}
@keyframes reveal-scroll{from{--reveal:0}to{--reveal:1}}
@supports(animation-timeline:view()){@media(prefers-reduced-motion:no-preference){
  [data-motion]{animation:reveal-scroll linear both;animation-timeline:view();animation-range:entry 0% entry 100%}
  .project-exhibition [data-motion]{animation-range:entry 0% entry 80%}
}}
/* The pause control stays available while exploring the whole page. */
.motion-toggle.is-floating{position:fixed;bottom:22px;right:22px;z-index:70;background:#101519f2;font-size:11px;min-height:40px;padding:12px 16px;box-shadow:0 4px 25px #0005}
.is-paused [data-motion]{animation:none!important;--reveal:1!important;transform:none!important;opacity:1!important}
.is-paused .project-exhibition .project{position:relative;top:auto}
@media(max-width:767px){
 .project-scene{min-height:0;padding-bottom:50px}
 .project-exhibition .project{position:relative;top:auto;padding:18px 12px 6px;margin:0}
 .project-exhibition .project figcaption{gap:16px;align-items:start;padding:0 3px 20px}
 .project-exhibition .project-number{font-size:32px;min-width:54px;letter-spacing:-1.5px}
 .project-number small{font-size:10px;margin-left:5px}
 .project-title{display:block}
 .project-title h3{font-size:23px;letter-spacing:-.7px;line-height:1.2}
 .project-title>span{display:block;text-align:left;font-size:11px;margin-top:9px}
 .project-exhibition .project-open img{width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}
 .project-exhibition .project-view{font-size:11px;margin-top:9px;min-height:44px}
 .project-scene:last-child{padding-bottom:0}
 .closer{grid-template-columns:1fr;gap:32px;padding:25px 24px;margin:0 auto 35px}
 .closer h2{font-size:clamp(34px,7vw,50px)}
 .closer-copy{position:static}
 .closer-media img{width:100%;height:auto}
 .motion-toggle.is-floating{bottom:14px;right:14px;font-size:10px;min-height:38px;padding:10px 12px}
 [data-motion="service"]{transform:translate3d(calc((1 - var(--reveal))*14px),0,0)}
 [data-motion="rise"]{transform:translate3d(0,calc((1 - var(--reveal))*35px),0)}
}
@media(max-height:620px) and (min-width:768px){.project-exhibition .project{position:relative;top:auto}.project-exhibition .project-open img{max-height:none}.project-scene{min-height:0;padding-bottom:80px}}
@media(prefers-reduced-motion:reduce){[data-motion]{animation:none!important;--reveal:1!important;transform:none!important;opacity:1!important}.project-exhibition .project{position:relative;top:auto}.project-scene{min-height:0;padding-bottom:65px}.motion-toggle.is-floating{display:none}}
