/* Three image positions shuffle like print proofs on the studio table. */
.project-gallery-section{max-width:1180px;margin:0 auto;scroll-margin-top:120px}
.project-section-title{font-size:clamp(28px,3vw,40px);line-height:1.12;letter-spacing:-.03em;font-weight:var(--headline-weight);margin:0 0 32px}
.project-gallery{width:100%;--proof-surface:#242421}
.project-gallery-images,.project-gallery-stage{display:grid;gap:48px}
.project-gallery-frame,.project-gallery-neighbor{display:grid;place-items:center;grid-template-rows:minmax(0,1fr);min-width:0;min-height:0;margin:0;padding:clamp(8px,1vw,12px);border:1px solid rgb(245 241 231 / .16);border-radius:12px;background:rgb(245 241 231 / .075);-webkit-backdrop-filter:blur(16px) saturate(110%);backdrop-filter:blur(16px) saturate(110%);overflow:hidden}
.project-gallery-frame{aspect-ratio:16/9}
.project-gallery-frame>img,.project-gallery-neighbor>img{display:block;min-width:0;min-height:0;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}
.project-gallery-caption{font-size:14px;line-height:1.5;text-align:center;color:var(--muted);margin:20px auto 0;max-width:65ch}
.project-gallery [hidden]{display:none!important}
.project-gallery.is-enhanced .project-gallery-images{position:relative;display:block;height:auto;aspect-ratio:2.5;max-height:58svh;overflow:hidden;isolation:isolate}
.project-gallery.is-enhanced .project-gallery-stage{position:absolute;inset:0;z-index:2;display:block;pointer-events:none}
.project-gallery.is-enhanced .project-gallery-frame{position:absolute;min-height:0;grid-template-rows:minmax(0,1fr);align-content:stretch;transform-origin:center;pointer-events:auto}
.project-gallery-neighbor{position:absolute;z-index:1;color:var(--paper);cursor:pointer;transform-origin:center}
.project-gallery-neighbor>img{pointer-events:none}
.project-gallery-neighbor-error{display:grid;place-items:center;height:100%;font-size:14px;padding:12px}
.project-gallery-neighbor:hover>img{opacity:.85}
.project-gallery.is-shuffling :is(.project-gallery-neighbor,.project-gallery-enlarge){pointer-events:none}
.project-gallery-tools{display:flex;flex-direction:column;align-items:center;gap:8px;margin:8px 0 0}
.project-gallery-proofs{display:flex;flex-wrap:wrap;justify-content:center;max-width:100%;gap:0}
.project-gallery-proof{display:grid;place-items:center;flex:0 0 16px;width:16px;height:28px;min-height:28px;padding:0;border:0;background:transparent;color:var(--paper);border-radius:6px;cursor:pointer}
.project-gallery-proof::after{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.6;transition:opacity .2s,transform .2s,color .2s}
.project-gallery-proof[aria-pressed="true"]{color:var(--accent)}
.project-gallery-proof[aria-pressed="true"]::after{opacity:1;transform:scale(1.3)}
.project-gallery-proof:hover::after{opacity:1}
.project-gallery-arrows{display:flex;gap:16px}
.project-gallery-arrow{display:grid;place-items:center;width:76px;height:46px;flex:none;padding:10px;border:1px solid rgb(245 241 231 / .2);border-radius:100px;background:rgb(245 241 231 / .09);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:var(--paper);transition:background .22s var(--ease-out),border-color .22s var(--ease-out)}
.project-gallery-arrow svg{display:block;width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.project-gallery-previous svg{transform:rotate(180deg)}
.project-gallery-arrow:hover:not(:disabled){background:rgb(245 241 231 / .17);border-color:rgb(245 241 231 / .4)}
.project-gallery-arrow:disabled{opacity:.3;cursor:default}
.project-gallery-arrow:active:not(:disabled){background:rgb(245 241 231 / .23)}
.project-gallery-proof:focus-visible,.project-gallery-arrow:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.project-gallery-neighbor:focus-visible{outline:3px solid var(--accent);outline-offset:-4px}
.project-gallery-enlarge{position:absolute;inset:0;display:block;width:100%;height:100%;padding:0;border:0;border-radius:4px;background:transparent;color:var(--paper);cursor:zoom-in}
.project-gallery-enlarge>span{position:absolute;right:10px;bottom:10px;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:rgb(23 23 23 / .66);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;transition:opacity .18s var(--ease-out)}
.project-gallery-enlarge svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.project-gallery-enlarge:hover>span,.project-gallery-enlarge:focus-visible>span{opacity:1}
.project-gallery-enlarge:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.project-lightbox{position:fixed;inset:0;width:100%;height:100%;max-width:100%;max-height:100%;margin:0;padding:72px 32px 32px;border:0;background:transparent;color:var(--paper);overflow:hidden;cursor:zoom-out}
.project-lightbox[open]{display:grid;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);place-items:center}
.project-lightbox::backdrop{background:rgb(12 12 11 / .92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.project-lightbox>img{display:block;min-width:0;min-height:0;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;border-radius:3px}
.project-lightbox-close{position:absolute;top:16px;right:24px;display:grid;place-items:center;width:44px;height:44px;padding:10px;border:1px solid rgb(245 241 231 / .25);border-radius:50%;background:rgb(245 241 231 / .09);color:var(--paper)}
.project-lightbox-close svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.project-lightbox-close:hover{background:rgb(245 241 231 / .2)}
.project-lightbox-close:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
html:has(.project-lightbox[open]){overflow:hidden}
.project-gallery-image-error{padding:24px 12px;text-align:center;color:var(--muted);font-size:16px;line-height:1.55;margin:0;max-width:40ch}
.project-gallery-image-error a{display:block;margin-top:12px;color:var(--paper);text-underline-offset:.24em}
.project-gallery-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

.project-window-body{width:min(1312px,100%);padding:110px 48px 180px}
.project-window-heading{padding:30px 0 64px}
.project-window-heading h2{font-size:clamp(44px,6.6vw,96px)}
.project-window-details.project-copy{max-width:1120px;margin:clamp(72px,9vw,128px) auto 0}
.project-copy .project-chapter{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:clamp(32px,5vw,72px);scroll-margin-top:120px;margin:0;padding:clamp(32px,5vw,64px)}
.project-copy .project-section-title{font-size:clamp(28px,3vw,40px);line-height:1.12;letter-spacing:-.03em;margin:0}
.project-copy .project-context{background:var(--paper);color:var(--ink);border-radius:12px}
.project-copy .project-decisions{padding-top:clamp(80px,10vw,144px);padding-bottom:0}
.project-decisions>.project-section-title{color:var(--accent)}
.project-copy :is(h3,h4):not(.project-section-title){font-size:clamp(24px,2.5vw,34px);line-height:1.18;letter-spacing:-.025em;margin:0 0 24px;font-weight:var(--headline-weight)}
.project-copy p{font-size:var(--text-size);line-height:1.65;max-width:68ch;color:var(--muted);margin:0 0 24px}
.project-copy p:last-child{margin-bottom:0}
.project-copy .project-context p{color:#42423d}
.project-copy .project-decision{margin:0 0 64px;scroll-margin-top:120px}
.project-copy .project-decision:last-child{margin-bottom:0}
.project-detail .detail-hero{max-width:960px;margin:0 auto 64px}
.project-detail .detail-hero h1{margin-bottom:24px}
.project-detail>.project-info.nav-shell{position:static;inset:auto;z-index:auto;transform:none;width:100%;max-width:960px;min-height:44px;margin:0 auto 48px;padding:0;border-radius:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}
.project-detail>.project-info .project-info-links{justify-content:flex-start;flex-wrap:wrap;gap:12px 28px;margin:0}
.project-detail>.project-info .nav-link{min-height:44px;padding:0;font-size:15px;background:transparent;transform:none;transition:color .2s var(--ease-out)}
.project-detail>.project-info .nav-link:hover,.project-detail>.project-info .nav-link:focus-visible{color:var(--accent)}
.project-detail .project-copy{max-width:1120px;margin:clamp(72px,9vw,128px) auto 0}
.project-detail .detail-actions,.project-detail .project-outcome{max-width:960px;margin:80px auto 0}
.project-detail .project-outcome p{font-size:var(--text-size);line-height:1.65;max-width:65ch;color:var(--muted)}
.project-detail .project-outcome .button{margin-top:12px}
.project-detail{padding-bottom:180px}
body:has(.project-detail)>.mobile-contact-cta{display:none}

@media(max-width:900px){
 .project-copy .project-chapter{grid-template-columns:1fr;gap:32px;padding:40px}
 .project-copy .project-decisions{padding-top:80px;padding-bottom:0}
 .project-copy .project-chapter-copy{max-width:68ch}
}
@media(max-width:700px){
 .project-window-body{padding:96px 24px 180px}
 .project-window-heading{padding:22px 0 48px}
 .project-window-heading h2{font-size:clamp(38px,10.8vw,64px)}
 .project-gallery-section{scroll-margin-top:108px}
 .project-gallery.is-enhanced .project-gallery-images{aspect-ratio:2.222222;max-height:50svh}
 .project-gallery-enlarge>span{right:7px;bottom:7px;width:32px;height:32px;opacity:1;max-width:calc(100% - 14px);max-height:calc(100% - 14px)}
 .project-gallery-enlarge svg{width:18px;height:18px}
 .project-lightbox{padding:68px 12px 20px}
 .project-lightbox-close{right:16px}

 .project-section-title{margin-bottom:24px}
 .project-gallery-caption{font-size:13px;margin-top:16px}
 .project-copy .project-chapter{padding:32px 24px;gap:28px;scroll-margin-top:108px}
 .project-copy .project-decisions{padding:64px 0 0}
 .project-copy .project-decision{margin-bottom:48px}
 .project-copy :is(h3,h4):not(.project-section-title){font-size:25px;margin-bottom:20px}
 .project-detail .detail-hero{margin-bottom:48px}
 .project-detail .detail-actions,.project-detail .project-outcome{margin-top:64px}
}
@media(hover:none),(pointer:coarse){.project-gallery-enlarge>span{opacity:1}}
@media(prefers-reduced-motion:reduce){
 .project-gallery-arrow,.project-gallery-proof::after,.project-gallery-enlarge>span{transition:none}
}

.project-gallery.is-enhanced .project-gallery-images{touch-action:pan-y pinch-zoom}
.project-gallery-frame>img,.project-gallery-neighbor>img{-webkit-user-drag:none;user-select:none;-webkit-user-select:none}
