/* Antonio Flavio: moving photographic chapters. */
:root{--ease-out:cubic-bezier(.22,1,.36,1);--section-curve:clamp(50px,8vw,120px)}
::selection{background:#d8dbc7;color:#292c24}
.site-header{position:relative;z-index:20;transition:background .35s,color .35s,box-shadow .35s,height .35s}
.home-page .site-header{position:fixed;height:104px}
.home-page .site-header.is-scrolled{height:80px;background:rgba(247,245,239,.97);color:var(--ink);box-shadow:0 1px 0 #292c2414;backdrop-filter:blur(12px)}
.home-page .site-header.is-scrolled .button.outline{color:var(--ink);border-color:#454b3560}
.home-page .site-header.is-scrolled .button.outline:hover{background:var(--olive);color:white}
.brand{font-size:2.15rem}.brand small{letter-spacing:.38em}
.nav a:not(.button):after{transition:width .45s var(--ease-out)}
.button{position:relative;isolation:isolate;overflow:hidden;transition:color .35s,background .35s,border-color .35s,box-shadow .35s;will-change:auto}
.button:after{content:'';position:absolute;inset:0;z-index:-1;background:#ffffff16;transform:translateY(105%);border-radius:50% 50% 0 0;transition:transform .5s var(--ease-out),border-radius .5s}
.button:hover:after,.button:focus-visible:after{transform:translateY(0);border-radius:0}
.button:hover{box-shadow:0 0 0 4px #454b350b}
.text-link{background:linear-gradient(currentColor,currentColor) bottom left/100% 1px no-repeat;border:0;transition:background-size .45s var(--ease-out),opacity .2s;padding-bottom:7px}
.text-link:hover,.text-link:focus-visible{background-size:28% 1px;opacity:1}
.home-page .hero{min-height:760px;max-height:1200px}
.home-page .hero-copy{padding-top:150px;padding-bottom:110px}
.hero h1{font-size:clamp(4.7rem,7.7vw,8.6rem);line-height:.93;letter-spacing:-.045em;max-width:960px}
.hero-line{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.035em}
.hero-line>span,.hero-line>em{display:block}
.hero-line-italic{font-size:.76em;line-height:1.15;letter-spacing:-.045em;margin-top:.1em}
.hero .eyebrow{letter-spacing:.23em;margin-bottom:24px;font-size:.75rem}
.hero p{font-size:.98rem;max-width:360px;line-height:1.85;margin:22px 0 27px}
.hero-actions{gap:30px}
.hero-controls{right:4vw;bottom:28px;gap:20px}
.hero-index{display:flex;gap:11px;align-items:center;font-size:.7rem;letter-spacing:.07em;font-variant-numeric:tabular-nums}
.hero-index i{width:38px;height:1px;background:#ffffff70}
.hero-dot{width:32px}.hero-dot span{width:5px;height:5px}
.hero-pause{letter-spacing:.03em}
.hero-slide img{backface-visibility:hidden}
.motion-ready .hero-line>span,.motion-ready .hero-line>em{animation:headline-rise 3.3s var(--ease-out) both}
.motion-ready .hero-line:nth-child(2)>span{animation-delay:.1s}
.motion-ready .hero-line:nth-child(3)>em{animation-delay:.2s}
@keyframes headline-rise{from{opacity:0;transform:translateY(105%)}to{opacity:1;transform:translateY(0)}}
.home-page .hero+section{padding-top:140px;padding-bottom:140px}
.intro{max-width:980px}.intro h2{font-size:clamp(3.3rem,5.4vw,5.8rem);line-height:1.04;max-width:900px}
.intro .eyebrow{margin-bottom:28px}.intro p{max-width:490px;line-height:1.9}
.duo{padding-top:100px;gap:10vw;grid-template-columns:1.08fr .82fr}
.duo article:nth-child(2){padding-top:160px}
.duo .photo-link{position:relative;isolation:isolate}
.duo article:first-child .photo-link{border-radius:3px 3px 0 0}
.duo article:nth-child(2) .photo-link{border-radius:48% 48% 0 0 / 27% 27% 0 0}
.photo-link img{transition:transform 1.1s var(--ease-out)}
@media(hover:hover){.photo-link:hover img{transform:scale(1.045)}}
.image-caption h3{font-size:2.7rem}.image-caption .eyebrow{font-size:.65rem;letter-spacing:.15em}
.duo p{font-size:.95rem;line-height:1.9}
.collection{padding-top:110px;padding-bottom:140px;position:relative}
.collection .section-top{gap:50px;margin-bottom:65px}
.collection h2{font-size:clamp(3.4rem,5.6vw,6.2rem);line-height:1.03}
.collection-intro{font-size:.9rem;line-height:1.9;max-width:300px;border-left:1px solid var(--line);padding-left:24px;margin-bottom:5px}
.masonry-gallery .gallery-button{isolation:isolate;background:var(--paper)}
.masonry-gallery .gallery-button img{transition:opacity .5s,filter .5s;transform:none!important}
.masonry-gallery .gallery-button:after{content:'View photograph';position:absolute;bottom:14px;left:14px;background:#f7f5eff0;color:var(--ink);padding:7px 13px;border-radius:30px;font-size:.7rem;letter-spacing:.04em;opacity:0;transform:translateY(5px);transition:opacity .3s,transform .3s;pointer-events:none}
.masonry-gallery .gallery-button:hover:after,.masonry-gallery .gallery-button:focus-visible:after{opacity:1;transform:none}
.masonry-gallery .gallery-button:focus-visible{outline:3px solid #a57141;outline-offset:3px;z-index:2}
.motion-ready .gallery-enter{animation:gallery-arrive 3.9s var(--ease-out) both;animation-delay:var(--reveal-delay,500ms)}
@keyframes gallery-arrive{from{opacity:0;clip-path:inset(5% 0 0)}to{opacity:1;clip-path:inset(0)}}
.stories{padding-bottom:140px;background:#e9eadf}
.stories .section-top{max-width:860px;margin-bottom:70px}
.stories h2{font-size:clamp(3.5rem,5.4vw,6rem)}
.story-cards{grid-template-columns:1.08fr .92fr 1fr;gap:35px;align-items:start}
.story-cards .story-card:nth-child(2){padding-top:110px}
.story-cards .story-card:nth-child(3){padding-top:45px}
.story-cards .story-card:nth-child(2) .photo-link{border-radius:48% 48% 0 0 / 30% 30% 0 0}
.story-card .eyebrow{line-height:1.7;letter-spacing:.13em}
.story-card h3{font-size:2.3rem}.story-card .text-link{font-size:.8rem}
.meet{padding-block:145px;gap:10vw;grid-template-columns:1.02fr .98fr}
.meet-image{padding:0 0 30px 30px;margin-right:0}
.meet-image:before{background:#e2e4d5}
.meet-copy h2{font-size:clamp(3.5rem,5.8vw,6.4rem)}
.meet-copy p{font-size:.95rem;line-height:1.95;max-width:420px}
.signature{font-size:2.7rem;color:var(--olive)}
.motion-ready .portrait-enter{animation:arch-open 7.5s var(--ease-out) .5s both}
@keyframes arch-open{from{opacity:0;clip-path:inset(10% 7% 0 round 45% 45% 0 0)}to{opacity:1;clip-path:inset(0 round 0)}}
.invitation{padding-bottom:105px}
.invitation .eyebrow{margin-bottom:30px}
.invitation h2{font-size:clamp(3.5rem,6vw,6.8rem);max-width:900px;margin-bottom:26px}
.invitation p{font-size:.95rem;margin-bottom:35px}
.footer{padding-top:65px}.footer-top .brand{font-size:2.4rem}.footer-bottom{margin-top:45px}
.page-heading{padding-top:105px;padding-bottom:70px}.page-heading h1{font-size:clamp(4rem,7vw,7.8rem)}
.filters{gap:40px}.filters a{transition:border-color .3s,color .3s}
.portfolio-stories{gap:90px 65px}.portfolio-stories .story-card:nth-child(3){padding-top:90px}
.story-title{padding:95px 24px 65px}.story-title h1{font-size:clamp(4rem,8.5vw,9rem)}
.story-title p{font-size:.95rem;max-width:510px;line-height:1.9}
.story-gallery{gap:65px;padding-bottom:50px}
.story-gallery .gallery-button:nth-child(2){width:84%;margin-left:auto}
.story-gallery .gallery-button:nth-child(4){width:90%}
.story-gallery .gallery-button:nth-child(5){width:94%;margin-left:auto}
.story-gallery .gallery-button img{transform:none}
.next-story{margin-top:50px;padding:65px 0 85px}.next-story h3{font-size:3.4rem}
.about-main{gap:10vw}.about-main h1{font-size:clamp(4rem,6.4vw,6.5rem)}
.about-main p,.approach p{line-height:1.95;font-size:.95rem}
.editor-note{border-radius:0 18px 18px 0;background:#eeeee580}
.contact-aside h1{font-size:clamp(3.8rem,5.6vw,6.3rem)}
input,select,textarea{transition:border-color .25s,background .25s;border-color:#b8bcaa;border-radius:999px;padding-inline:22px}
input:focus,select:focus,textarea:focus{background:#fff9;border-color:var(--olive)}
.lightbox{background:#10120ef7}
.lightbox-inner{padding:0 32px;grid-template-rows:76px minmax(0,1fr) 86px}
.lightbox-stage{position:relative;min-height:0;display:flex;align-items:center;justify-content:center}
.lightbox-image{display:block;width:100%;height:100%;object-fit:contain;touch-action:pan-y;will-change:auto}
.lightbox button{border-color:#ffffff45;background:#ffffff05;transition:background .25s,border-color .25s;min-height:46px;padding-inline:21px;font-size:.8rem}
.lightbox button:hover,.lightbox button:focus-visible{background:#ffffff15;border-color:#ffffff90}
.lightbox-count{font-size:.75rem;letter-spacing:.12em;font-variant-numeric:tabular-nums}
.lightbox-caption{color:#dedfd8;font-size:.8rem!important;max-width:640px;line-height:1.6}
.lightbox-load{position:absolute;bottom:15px;left:50%;transform:translateX(-50%);font-size:.75rem;background:#10120ed9;border-radius:30px;padding:7px 14px;color:#fff}
.lightbox-load:empty{display:none}
.lightbox-clone{position:fixed;object-fit:cover;z-index:3;pointer-events:none;transform-origin:top left}
@media(min-width:1000px){.depth-image{transform:translateY(var(--depth,0px));will-change:transform}}
@media(max-width:1000px){.hero h1{font-size:clamp(4.5rem,8vw,6.8rem)}.story-cards{gap:22px}.story-card h3{font-size:2rem}.image-caption{flex-wrap:wrap;gap:10px}.image-caption .eyebrow{margin:0}}
@media(max-width:760px){
 .home-page .site-header{height:84px}.home-page .site-header.is-scrolled{height:72px}.site-header.is-scrolled .nav{top:72px}
 .brand{font-size:1.65rem}.brand small{letter-spacing:.33em}
 .home-page .hero{height:auto;min-height:960px;max-height:none}
 .home-page .hero-copy{height:960px;min-height:960px;padding:128px 24px 120px}
 .hero h1{font-size:clamp(3.5rem,12.5vw,5.2rem);line-height:.96;max-width:100%}
 .hero-line-italic{font-size:.73em;max-width:100%;line-height:1.1}
 .hero .eyebrow{font-size:.65rem;letter-spacing:.17em;margin-bottom:25px}
 .hero p{margin-top:auto;max-width:300px;line-height:1.8;font-size:.9rem}
 .hero-actions{gap:18px}.hero-controls{left:24px;right:24px;bottom:25px;justify-content:space-between;gap:10px}
 .hero-index{gap:8px}.hero-index i{width:25px}.hero-dot{width:28px}
 .home-page .hero+section{padding-top:80px;padding-bottom:80px}
 .intro h2{font-size:3.1rem}.intro p{font-size:.95rem}
 .duo{padding-top:55px;gap:55px}.duo article:nth-child(2){padding-top:0;margin-left:24px}
 .image-caption h3{font-size:2.45rem}.duo p{margin-top:17px}
 .collection{padding-top:70px;padding-bottom:80px}.collection h2{font-size:3.3rem}.collection .section-top{gap:25px;margin-bottom:40px}
 .collection-intro{font-size:.875rem;max-width:330px;padding-left:18px}
 .masonry-gallery .gallery-button:after{display:none}
 .stories{padding-bottom:80px}.stories h2{font-size:3.3rem}.stories .section-top{margin-bottom:40px}
 .story-cards{grid-template-columns:1fr;gap:45px}.story-cards .story-card:nth-child(2),.story-cards .story-card:nth-child(3){padding-top:0}
 .story-cards .story-card:nth-child(2){margin-left:28px}.story-cards .story-card:nth-child(2) img{aspect-ratio:4/5}
 .story-card h3{font-size:2.3rem}
 .meet{padding-block:80px;gap:40px;grid-template-columns:1fr}.meet-image{margin-right:20px;padding:0 0 22px 22px}.meet-copy h2{font-size:3.6rem}
 .invitation{padding-bottom:75px}.invitation h2{font-size:3.5rem;line-height:1.08}.invitation p{font-size:.9rem}
 .page-heading{padding-top:65px;padding-bottom:45px}.page-heading h1{font-size:3.8rem}
 .portfolio-stories{gap:50px}.portfolio-stories .story-card:nth-child(3){padding-top:0}
 .story-title{padding:65px 24px 40px}.story-title h1{font-size:3.9rem}.story-title p{font-size:.9rem}
 .story-gallery{gap:30px}.story-gallery .gallery-button:nth-child(n){width:100%;margin:0}
 .next-story{padding:40px 0 60px}.next-story h3{font-size:2.8rem}
 .about-main h1{font-size:3.8rem}.contact-aside h1{font-size:3.6rem}
 .lightbox-inner{padding:0 12px;grid-template-rows:65px minmax(0,1fr) 96px}.lightbox button{padding-inline:13px;font-size:.75rem}
 .lightbox-caption{font-size:.7rem!important;max-width:160px!important}.lightbox-bottom{gap:10px}
}
@media(prefers-reduced-motion:reduce){.motion-ready .hero-line>span,.motion-ready .hero-line>em,.motion-ready .gallery-enter,.motion-ready .portrait-enter{animation:none}.depth-image{transform:none!important;will-change:auto}.site-header,.button,.photo-link img,.text-link{transition:none}}
section[id],main[id]{scroll-margin-top:95px}
@media(max-width:760px){section[id],main[id]{scroll-margin-top:82px}}
.couples-gallery{align-items:center}.couples-gallery .gallery-button{background:transparent}.couples-gallery img{height:auto}
@media(max-width:760px){
 .hero-slide:nth-child(2),.hero-slide:nth-child(5){background:#24291c}
 .hero-slide:nth-child(2) img,.hero-slide:nth-child(5) img{position:absolute;top:220px;height:calc(100% - 220px);mask-image:linear-gradient(transparent,#000 85px);-webkit-mask-image:linear-gradient(transparent,#000 85px)}
}

@media(prefers-reduced-motion:no-preference){.motion-ready .reveal-pending{opacity:0}.motion-ready .reveal-pending:focus-within{opacity:1}}

.contact-form textarea{border-radius:26px;padding:18px 22px}
