:root{color-scheme:light;--bg:#faf6ef;--fg:#000;--muted:#68645f;--line:#d9d9d9;--accent:#fa5c40;--ease:cubic-bezier(.2,.7,.2,1);--radius:20px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.25 'Helvetica Neue',Arial,sans-serif;letter-spacing:-.03em}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid currentColor;outline-offset:6px}a:hover{text-decoration:none}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400;letter-spacing:-.05em;text-wrap:balance}p{text-wrap:pretty}img{max-width:100%;display:block}button{background:none;border:0}a,button,summary{touch-action:manipulation}.wrap{width:min(100% - 96px,1344px);margin-inline:auto}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:var(--bg);color:#000;padding:15px}.skip:focus{top:12px}.site-header{height:112px;padding:0 48px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:25px;position:relative;z-index:3;font-size:13px}.home .site-header{position:absolute;top:0;left:0;width:100%;color:white}.nav-left,.nav-right{display:flex;align-items:center;gap:28px}.nav-right{justify-content:flex-end}.brand{display:flex;align-items:center;gap:8px;font-size:22px;letter-spacing:-.06em}.brand span{font-size:11px;letter-spacing:.14em;max-width:100px}.menu-toggle{width:34px;height:44px;padding:8px 3px;display:flex;flex-direction:column;justify-content:center;gap:6px}.menu-toggle span{display:block;width:24px;height:1px;background:currentColor;transition:transform .2s}.menu-toggle:hover span:first-child{transform:translateX(4px)}.menu-toggle:hover span:last-child{transform:translateX(-4px)}.text-link{display:inline-flex;gap:24px;align-items:center;font-size:14px;padding-block:8px}.text-link span,.back-top{transition:transform .2s var(--ease)}.text-link:hover span{transform:translate(3px,-3px)}.desktop-link,.text-link{position:relative}.desktop-link:after,.text-link:after{content:'';position:absolute;bottom:0;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .2s}.desktop-link:hover:after,.text-link:hover:after{transform:scaleX(1)}.hero{height:100svh;min-height:640px;position:relative;isolation:isolate;overflow:hidden;color:white;background:#20201e}.hero-image{position:absolute;inset:-12% 0;z-index:-1}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:50% 61%}.hero-overline{position:absolute;top:150px;left:48px;right:48px;display:flex;justify-content:space-between;font-size:11px;letter-spacing:.01em}.hero h1{position:absolute;bottom:155px;left:48px;right:48px;display:flex;justify-content:space-between;align-items:flex-end;gap:60px;font-size:clamp(46px,5.6vw,82px);line-height:1}.hero h1 span{max-width:500px}.hero h1 span:last-child{text-align:right;max-width:490px}.hero h1 span{animation:hero-in 1.1s var(--ease) both}.hero h1 span:last-child{animation-delay:.16s}.hero-bottom{position:absolute;left:48px;right:48px;bottom:34px;display:flex;align-items:flex-end;justify-content:space-between;font-size:11px;letter-spacing:.01em}.scroll-cue{display:flex;align-items:center;gap:16px}.scroll-cue span{font-size:30px;display:block;animation:nudge 2s var(--ease) infinite}.hero-index{opacity:.8}.manifesto{padding-block:120px 130px}.eyebrow{font-size:11px;letter-spacing:.04em;text-transform:uppercase;display:flex;gap:12px;align-items:center}.dot{width:7px;height:7px;border-radius:50%;background:var(--accent);display:inline-block}.manifesto-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:100px;margin-top:55px;align-items:end}.manifesto h2{font-size:clamp(48px,5.7vw,80px);line-height:1.02;max-width:600px}.manifesto-copy p{font-size:20px;line-height:1.4;max-width:405px;margin-bottom:25px}.manifesto-copy .text-link{font-size:13px}.section-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:60px}.section-head>span{font-size:12px;color:var(--muted)}.mosaic{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:75px 28px;align-items:start}.collection{display:block;min-width:0}.collection-1{grid-column:1/8}.collection-2{grid-column:9/13;margin-top:150px}.collection-3{grid-column:2/6}.collection-4{grid-column:7/13;margin-top:100px}.collection-5{grid-column:1/7}.collection-6{grid-column:8/13;margin-top:150px}.collection-7{grid-column:2/6}.collection-8{grid-column:7/13;margin-top:80px}.collection-9{grid-column:3/10;margin-top:30px}.collection-frame{overflow:hidden;border-radius:var(--radius);position:relative;transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .2s var(--ease);isolation:isolate}.collection-frame img{width:100%;aspect-ratio:1.2;object-fit:cover;transition:transform .7s var(--ease),filter .4s;filter:saturate(.8)}.collection:nth-child(3n + 2) img,.collection-3 img,.collection-7 img{aspect-ratio:.8}.collection-9 img{aspect-ratio:1.35}.collection:hover img{transform:scale(1.055);filter:saturate(1)}.collection-caption{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.collection-caption h3{font-size:24px;letter-spacing:-.03em}.collection-caption>span{font-size:10px;color:var(--muted)}.card-arrow{position:absolute;right:20px;bottom:20px;border:1px solid #fff8;color:white;width:42px;height:42px;border-radius:100px;display:grid;place-items:center;opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s}.collection:hover .card-arrow,.collection:focus-visible .card-arrow{opacity:1;transform:none}.collections{padding-bottom:130px}.photo-passage{height:85svh;min-height:500px;overflow:hidden;position:relative;color:white;background:#333}.photo-passage>div{position:absolute;inset:-15% 0}.photo-passage img{width:100%;height:100%;object-fit:cover}.photo-passage>p{position:absolute;left:48px;bottom:100px;font-size:clamp(45px,6vw,84px);line-height:1;letter-spacing:-.05em}.photo-passage>span{position:absolute;bottom:35px;left:48px;font-size:11px}.approach{padding-block:130px;display:grid;grid-template-columns:1fr 1fr;gap:90px}.approach h2{font-size:clamp(45px,5vw,70px);line-height:1.02;margin:40px 0 30px}.approach-list{padding-top:65px}details{border-top:1px solid var(--line);padding:24px 0}details:last-child{border-bottom:1px solid var(--line)}summary{cursor:pointer;display:flex;align-items:center;gap:20px;list-style:none;font-size:26px;letter-spacing:-.04em}summary::-webkit-details-marker{display:none}.detail-number{font-size:10px;letter-spacing:0;color:var(--muted)}.detail-plus{margin-left:auto;transition:transform .2s}details[open] .detail-plus{transform:rotate(45deg)}details p{padding:22px 40px 8px;font-size:16px;line-height:1.5;color:var(--muted);max-width:500px}details[open] p{animation:detail-in .24s ease-out}.invitation{padding-block:70px 90px;border-top:1px solid var(--line)}.invitation>a{display:flex;justify-content:space-between;align-items:center;font-size:clamp(48px,9.9vw,142px);letter-spacing:-.06em;margin:35px 0 40px;line-height:1.1}.invitation>a span{transition:transform .3s}.invitation>a:hover span{transform:translate(10px,-10px)}.invitation>div{display:flex;justify-content:space-between;font-size:12px}.site-footer{display:flex;justify-content:space-between;gap:30px;padding-block:35px 45px;border-top:1px solid var(--line);font-size:11px;line-height:1.5}.footer-brand{font-size:22px;letter-spacing:-.06em}.site-footer nav{display:flex;gap:24px}.site-footer a:hover{text-decoration:underline}.scroll-progress{position:fixed;bottom:0;left:0;z-index:10;height:3px;width:100%;background:var(--accent);transform:scaleX(var(--progress,0));transform-origin:left;pointer-events:none}.cursor-label{position:fixed;left:0;top:0;z-index:6;pointer-events:none;border-radius:100px;padding:13px 18px;background:var(--bg);font-size:12px;opacity:0;transition:opacity .15s;white-space:nowrap}.cursor-label.active{opacity:1}.reveal{opacity:1}.motion-ready .reveal{opacity:0;transform:translateY(35px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.motion-ready .reveal.visible{opacity:1;transform:none}dialog{border:0;color:var(--fg);background:var(--bg)}dialog::backdrop{background:#0009}#site-menu{width:min(760px,100vw);max-height:100dvh;margin:0 0 0 auto;height:100dvh;padding:110px 55px 40px}#site-menu[open]{display:flex;flex-direction:column;animation:menu-in .32s var(--ease)}.menu-close{position:absolute;right:35px;top:35px;font-size:14px}#site-menu nav{display:flex;flex-direction:column;margin-block:40px;flex:1}#site-menu nav a{font-size:clamp(32px,5vw,55px);padding:14px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;transition:padding .2s}#site-menu nav a:hover{padding-left:15px}#site-menu nav span{font-size:12px;padding-top:10px}#site-menu>p:last-child{font-size:12px;color:var(--muted)}#viewer{background:#101010;color:white;width:100vw;height:100dvh;max-width:none;max-height:none;padding:65px 55px}#viewer[open]{display:flex;align-items:center;justify-content:center;animation:detail-in .24s ease-out}#viewer figure{text-align:center}#viewer img{max-width:82vw;max-height:78dvh;object-fit:contain}#viewer figcaption{font-size:12px;margin-top:15px}#viewer button{position:absolute;color:white;padding:15px;border:1px solid #fff5;border-radius:100px}.close{top:20px;right:25px}.prev{left:12px}.next{right:12px}
/* Imported pages retain their text and routes, with the same gallery canvas. */
.inner-page #main{min-height:65vh}.inner-page #main>main>article{padding:0}.inner-page #main section{padding:35px 6%}.inner-page #main section section{padding:20px 0}.inner-page #main h1{font-size:clamp(48px,8vw,110px);margin:25px 0 45px}.inner-page #main h2{font-size:clamp(35px,5vw,65px);margin:25px 0}.inner-page #main h3{font-size:clamp(23px,3vw,34px);line-height:1.2;margin:25px 0;max-width:950px}.inner-page #main p{max-width:850px;line-height:1.5;margin-bottom:22px}.inner-page #main img{border-radius:20px;max-height:85vh;object-fit:contain;margin:25px auto;width:auto;max-width:100%}.inner-page #main a:not(.photo){text-decoration:underline;text-underline-offset:4px}.source-image{max-width:1000px;margin:25px auto}.inner-page .accordion-item{padding:18px 0;border-bottom:1px solid var(--line)}.inner-page label{display:block;margin-top:15px}.inner-page input,.inner-page textarea{display:block;width:100%;max-width:100%;padding:12px 20px;background:transparent;border:1px solid var(--line);border-radius:100px}.inner-page textarea{border-radius:20px}.contact-page{max-width:1500px;margin:auto;padding:65px 6%}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:45px;align-items:start}.contact-form fieldset{border:0;padding:0;margin:24px 0 0;min-width:0}.contact-form legend{font-size:24px}.contact-name{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-form input,.contact-form textarea{margin-top:6px}.contact-form button{margin-top:24px;padding:12px 25px;opacity:.5}.form-status{font-size:14px;border-left:2px solid var(--line);padding-left:16px}.contact-detail{grid-column:1/-1;width:100%}.photos{columns:3;column-gap:22px}.photo{display:block;break-inside:avoid}.inner-page .photo img{width:100%;height:auto;max-height:none}.back{display:inline-block;margin-top:35px}
@keyframes hero-in{from{opacity:0;transform:translateY(45px)}to{opacity:1;transform:none}}@keyframes nudge{0%,100%{transform:translateY(-3px)}50%{transform:translateY(5px)}}@keyframes detail-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes menu-in{from{transform:translateX(60px);opacity:0}to{transform:none;opacity:1}}
@media(min-width:1700px){.hero h1{font-size:90px}.hero h1 span{max-width:580px}}@media(max-width:900px){.wrap{width:calc(100% - 48px)}.site-header{padding-inline:24px;gap:12px}.nav-left,.nav-right{gap:16px}.desktop-link{display:none}.hero h1,.hero-overline,.hero-bottom{left:24px;right:24px}.hero h1{gap:30px;font-size:7vw}.manifesto-layout{gap:45px;grid-template-columns:1.2fr 1fr}.manifesto-copy p{font-size:17px}.mosaic{gap:50px 20px}.collection-2,.collection-6{margin-top:90px}.approach{gap:45px}.site-footer{flex-wrap:wrap}.photo-passage>p,.photo-passage>span{left:24px}.contact-layout{grid-template-columns:1fr}}
@media(max-width:600px){.wrap{width:calc(100% - 40px)}.site-header{height:85px;padding-inline:20px;grid-template-columns:35px 1fr auto}.brand{justify-self:center;font-size:19px;gap:5px}.brand span{font-size:8px;letter-spacing:.08em}.nav-right .text-link{font-size:11px;gap:8px}.hero{min-height:650px}.hero-overline{top:115px;left:20px;right:20px;font-size:9px}.hero h1{left:20px;right:20px;bottom:155px;flex-direction:column;align-items:flex-start;font-size:clamp(46px,11.5vw,65px);gap:35px}.hero h1 span{max-width:85%}.hero h1 span:last-child{align-self:flex-end;max-width:85%}.hero-image img{object-position:50% 59%}.hero-bottom{left:20px;right:20px;bottom:26px;font-size:9px}.hero-bottom>span:first-child{max-width:100px;line-height:1.5}.hero-index{display:none}.scroll-cue{gap:10px}.manifesto{padding-block:80px}.manifesto-layout{grid-template-columns:1fr;gap:30px;margin-top:35px}.manifesto h2{font-size:51px}.manifesto-copy{max-width:350px;margin-left:25px}.section-head{margin-bottom:35px}.section-head>span{display:none}.mosaic{grid-template-columns:repeat(6,minmax(0,1fr));gap:40px 15px}.collection-1,.collection-4,.collection-9{grid-column:1/7;margin:0}.collection-2,.collection-5,.collection-7{grid-column:1/6;margin:0}.collection-3,.collection-6,.collection-8{grid-column:2/7;margin:0}.collection-caption h3{font-size:22px}.collections{padding-bottom:80px}.card-arrow{opacity:1;transform:none}.photo-passage{height:70svh;min-height:450px}.photo-passage>p{font-size:45px;left:20px;bottom:100px}.photo-passage>span{left:20px}.approach{padding-block:80px;grid-template-columns:1fr;gap:25px}.approach h2{margin-top:30px}.approach-list{padding-top:10px}.invitation{padding-block:50px}.invitation>a{font-size:14vw;margin-block:30px}.invitation>div{font-size:10px;gap:25px}.site-footer{display:grid;grid-template-columns:1fr 1fr;gap:25px 10px}.site-footer nav{flex-direction:column;gap:10px}.back-top{align-self:end;justify-self:end}.footer-brand{font-size:19px}.contact-name{grid-template-columns:1fr}.photos{columns:2}.cursor-label{display:none}#site-menu{padding:100px 25px 35px}#viewer{padding:65px 35px}.inner-page #main section{padding:25px 5%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion-ready .reveal{opacity:1;transform:none}[data-parallax],.collection-frame,.collection:hover img{transform:none!important}.cursor-label{display:none}}
@media print{.site-header,.site-footer,dialog,.cursor-label,.scroll-progress{display:none!important}.reveal,.motion-ready .reveal{opacity:1;transform:none}.hero{height:600px}body{background:white}.contact-layout{grid-template-columns:1fr 1fr}.contact-form{break-inside:avoid}}

/* Transparent horizontal mark and language navigation. */
.site-header{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
.brand{justify-self:center;display:block;width:300px;line-height:0}
.brand-logo{width:100%;height:auto;max-height:100px;object-fit:contain}
.home .brand-logo{filter:invert(1)}
.nav-right{gap:20px}
.language-switch{display:flex;align-items:center;gap:7px;flex-shrink:0;font-size:11px;letter-spacing:.02em}
.language-switch a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:26px;opacity:.6}
.language-switch a[aria-current="page"]{opacity:1;text-decoration:underline;text-underline-offset:5px}
.language-switch a:hover{opacity:1}
@media(max-width:1100px){.site-header .nav-left,.site-header .nav-right{gap:14px}.brand{width:250px}}
@media(max-width:900px){.brand{width:240px}}
@media(max-width:600px){.site-header{padding-inline:16px;gap:8px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.brand{width:clamp(140px,43vw,180px)}.brand-logo{max-height:65px}.nav-right>.text-link{display:none}.language-switch{gap:2px;font-size:10px}.language-switch a{min-width:24px}.site-header .nav-right{gap:0}}

/* Shared gallery layout: fit each frame and caption in the viewport. */
.version-switch{display:flex;flex-wrap:wrap;gap:12px 24px;margin:-30px 0 40px;font-size:12px}
.version-switch a{padding-block:10px;color:var(--muted);text-underline-offset:5px}
.version-switch a[aria-current="page"]{color:var(--fg);text-decoration:underline}
.version-switch a:hover{text-decoration:underline}
/* 112px navigation + 5rem for caption, spacing and tilt clearance.
   svh keeps the full frame visible even while mobile browser controls are open. */
.mosaic--v2{--frame-height:max(1px,calc(100vh - 112px - 5rem));--frame-height:max(1px,calc(100svh - 112px - 5rem))}
.mosaic--v2 .collection{
 --frame-ratio:calc(4 / 3);
 width:min(100%,calc(var(--frame-height) * var(--frame-ratio)));
 scroll-margin-top:112px;
}
.mosaic--v2 .collection:nth-child(3n + 2),
.mosaic--v2 .collection-3,
.mosaic--v2 .collection-7{--frame-ratio:calc(4 / 5)}
.mosaic--v2 .collection-1{--frame-ratio:calc(479 / 732)}
.mosaic--v2 .collection-2{--frame-ratio:calc(333 / 468)}
.mosaic--v2 .collection-2,
.mosaic--v2 .collection-4,
.mosaic--v2 .collection-6,
.mosaic--v2 .collection-8{justify-self:end}
.mosaic--v2 .collection-frame{aspect-ratio:var(--frame-ratio)}
.mosaic--v2 .collection .collection-frame img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
@media(max-width:600px){
 .version-switch{margin:-10px 0 30px;gap:6px 20px}
 .mosaic--v2{--frame-height:max(1px,calc(100vh - 85px - 5rem));--frame-height:max(1px,calc(100svh - 85px - 5rem));grid-template-columns:minmax(0,1fr);gap:40px}
 .mosaic--v2 .collection{grid-column:1 / -1;margin:0;justify-self:center;scroll-margin-top:85px}
}

/* Dark at the navigation, fading into the opening photograph. */
.hero::before{
 content:"";
 position:absolute;
 inset:0 0 auto;
 height:clamp(260px,45svh,520px);
 background:linear-gradient(to bottom,rgba(0,0,0,.72) 0%,rgba(0,0,0,.38) 48%,rgba(0,0,0,0) 100%);
 pointer-events:none;
 z-index:-1;
}

/* Contact: active delivery states, scoped to the existing form. */
.contact-form button[type=submit]{opacity:1;border:1px solid currentColor;border-radius:9999px;min-height:44px;transition:background .2s,color .2s}
.contact-form button[type=submit]:hover{background:var(--fg);color:var(--bg)}
.contact-form button[type=submit]:disabled{opacity:.5;cursor:wait}
#contact-status[hidden]{display:none}
#contact-status[data-state=error]{border-color:var(--fg)}

/* Formspree field layout, adapted to AryPhotoFactory and scoped to contact. */
.contact-form.fs-form fieldset{display:grid;gap:24px}
.contact-form.fs-form legend{margin-bottom:24px}
.contact-form.fs-form .fs-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.contact-form.fs-form .fs-label{margin:0;font-size:14px;line-height:1.4}
.contact-form.fs-form .fs-input,.contact-form.fs-form .fs-textarea{margin:0;font:inherit;color:var(--fg);background:transparent;border:1px solid var(--line)}
.contact-form.fs-form .fs-input{min-height:48px}
.contact-form.fs-form .fs-textarea{resize:vertical;min-height:150px}
.contact-form.fs-form .fs-input:focus-visible,.contact-form.fs-form .fs-textarea:focus-visible{border-color:var(--fg);outline:2px solid var(--fg);outline-offset:3px}
.contact-form.fs-form .fs-button-group{display:flex;justify-content:flex-end}
.contact-form.fs-form .fs-button{margin:0;min-height:48px;padding:14px 28px}
