:root{--paper:#f5f3ee;--ink:#1d1d1b;--muted:#77736b;--line:rgba(29,29,27,.18);--serif:"Italiana",Georgia,serif;--sans:"DM Sans",Arial,sans-serif;--page:clamp(18px,4.4vw,74px)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;font-weight:300;line-height:1.6}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}button{display:block;border:0;padding:0;background:#ddd8cf;color:inherit;cursor:zoom-in}.skip-link{position:fixed;left:12px;top:-80px;z-index:100;background:var(--ink);color:var(--paper);padding:9px 14px}.skip-link:focus{top:12px}.site-header{height:88px;padding:0 var(--page);display:flex;align-items:center;justify-content:space-between;position:relative;z-index:20}.brand{display:flex;align-items:baseline;gap:10px;text-transform:uppercase;letter-spacing:.15em}.brand span{font-size:11px;font-weight:500}.brand small{font-family:var(--serif);font-size:13px;text-transform:none;letter-spacing:.02em}.primary-nav{display:flex;gap:34px}.primary-nav a,.menu-toggle{font-size:9px;text-transform:uppercase;letter-spacing:.2em}.primary-nav a{border-bottom:1px solid transparent}.primary-nav a:hover,.primary-nav a:focus-visible{border-color:currentColor}.menu-toggle{display:none;background:none;cursor:pointer}.hero{padding:0 var(--page)}.hero>button{width:100%;height:min(76vh,850px);min-height:520px;overflow:hidden}.hero-title{padding:clamp(48px,7vw,105px) 3vw clamp(105px,14vw,215px);display:grid;grid-template-columns:.7fr 1.6fr .7fr;gap:4vw;align-items:end}.hero-title h1{margin:0;font-family:var(--serif);font-size:clamp(54px,7.5vw,120px);font-weight:400;line-height:.86;letter-spacing:-.04em}.hero-title h1 em,.interlude em,.about em,.contact em{font-weight:400}.hero-title p,.hero-title span,.about>span,.contact>p{margin:0;font-size:9px;text-transform:uppercase;letter-spacing:.19em;color:var(--muted)}.portfolio button{overflow:hidden}.portfolio img{transition:transform 1s cubic-bezier(.2,.7,.2,1)}.portfolio button:hover img,.portfolio button:focus-visible img{transform:scale(1.018)}.pair{padding:0 var(--page);display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(18px,5vw,85px);align-items:center}.pair button:first-child{aspect-ratio:2/3}.pair button:last-child{aspect-ratio:3/2}.pair-a button:first-child{margin-top:11vw}.interlude{padding:clamp(120px,17vw,260px) var(--page);display:grid;grid-template-columns:.7fr 2fr}.interlude span{font-size:9px;text-transform:uppercase;letter-spacing:.19em;color:var(--muted)}.interlude p{margin:0;font-family:var(--serif);font-size:clamp(50px,7.8vw,122px);line-height:.9;letter-spacing:-.035em}.full-image{width:100%;height:min(82vh,920px)}.pair-b{grid-template-columns:1fr .85fr;padding-top:clamp(100px,14vw,210px);padding-bottom:clamp(100px,14vw,210px);align-items:end}.pair-b button:first-child{max-width:650px}.pair-b button:last-child{aspect-ratio:4/3;margin-bottom:9vw}.cinema-image{width:calc(100% - 2 * var(--page));margin:0 var(--page);aspect-ratio:16/8}.triptych{padding:clamp(110px,15vw,230px) var(--page);display:grid;grid-template-columns:1fr .78fr 1fr;gap:clamp(12px,2vw,32px);align-items:start}.triptych button{aspect-ratio:3/4}.triptych button:nth-child(2){margin-top:10vw}.triptych button:nth-child(3){margin-top:4vw}.last-image{height:min(76vh,850px)}.about{padding:clamp(120px,16vw,240px) var(--page);display:grid;grid-template-columns:.7fr 2fr;border-bottom:1px solid var(--line)}.about>span{padding-top:12px}.about h2{margin:0;font-family:var(--serif);font-size:clamp(48px,7vw,108px);font-weight:400;line-height:.92;letter-spacing:-.03em}.about p{max-width:480px;margin:45px 0 0;color:var(--muted);font-size:15px}.contact{text-align:center;padding:clamp(130px,18vw,270px) var(--page)}.contact h2{margin:50px 0 40px;font-family:var(--serif);font-size:clamp(55px,9vw,138px);font-weight:400;line-height:.88;letter-spacing:-.035em}.contact>a{display:inline-block;padding-bottom:5px;border-bottom:1px solid currentColor;font-size:9px;text-transform:uppercase;letter-spacing:.18em}footer{padding:28px var(--page);border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;font-size:9px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}footer p{text-align:center}footer>a:last-child{text-align:right}.lightbox{width:100vw;height:100vh;max-width:none;max-height:none;border:0;padding:clamp(18px,3vw,42px);background:rgba(18,18,17,.97)}.lightbox::backdrop{background:rgba(18,18,17,.97)}.lightbox img{object-fit:contain}.lightbox button{position:absolute;right:28px;top:20px;background:var(--paper);padding:8px 12px;font-size:9px;text-transform:uppercase;letter-spacing:.15em;cursor:pointer}
@media(max-width:760px){.site-header{height:74px}.brand small{display:none}.menu-toggle{display:block;position:relative;z-index:22}.primary-nav{position:fixed;inset:0;background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;opacity:0;visibility:hidden;transition:.25s}.primary-nav.open{opacity:1;visibility:visible}.primary-nav a{font-family:var(--serif);font-size:38px;text-transform:none;letter-spacing:0}.hero>button{height:70vh;min-height:460px}.hero-title{grid-template-columns:1fr;padding:42px 0 105px;gap:20px}.hero-title h1{order:-1}.hero-title>span{display:none}.pair{grid-template-columns:1fr;gap:22px}.pair button:first-child{width:78%}.pair button:last-child{width:92%;margin-left:auto}.pair-a button:first-child{margin-top:0}.interlude{grid-template-columns:1fr;gap:35px}.full-image,.last-image{height:60vh}.pair-b{grid-template-columns:1fr}.pair-b button:first-child{width:82%}.pair-b button:last-child{width:90%;margin:0 0 0 auto}.cinema-image{aspect-ratio:4/3}.triptych{grid-template-columns:1fr;gap:14px;padding-left:12px;padding-right:12px}.triptych button,.triptych button:nth-child(2),.triptych button:nth-child(3){margin:0;aspect-ratio:auto}.triptych img{height:auto}.about{grid-template-columns:1fr;gap:35px}.contact h2 br{display:none}footer{grid-template-columns:1fr 1fr}footer p{display:none}.lightbox{padding:50px 12px 12px}.lightbox button{right:14px;top:12px}}
.hero-title h1{grid-column:2}.hero-title>span{grid-column:3}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.portfolio img{transition:none}}
.pair-c{grid-template-columns:.8fr 1.2fr;padding-top:clamp(110px,15vw,230px);padding-bottom:clamp(80px,10vw,160px);align-items:end}.pair-c button:first-child{aspect-ratio:2/3}.pair-c button:last-child{aspect-ratio:3/2;margin-bottom:7vw}.interlude-small{padding-top:clamp(90px,11vw,170px);padding-bottom:clamp(90px,11vw,170px)}.image-top img{object-position:center 28%}
.mosaic{padding:0 var(--page) clamp(120px,15vw,220px);display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(14px,2vw,30px);align-items:stretch}.mosaic button{width:100%;aspect-ratio:3/4;overflow:hidden}.mosaic .wide{grid-column:1/-1;aspect-ratio:16/9}.mosaic img{height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1)}.mosaic button:hover img,.mosaic button:focus-visible img{transform:scale(1.018)}
.family-story{padding:0 var(--page) clamp(110px,15vw,220px);display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,2vw,30px)}.family-story button{aspect-ratio:3/2;overflow:hidden}.family-story-main{grid-column:1/-1}.family-story img{transition:transform 1s cubic-bezier(.2,.7,.2,1)}.family-story button:hover img,.family-story button:focus-visible img{transform:scale(1.018)}
.contact-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:18px 34px}.contact-links a{display:inline-block;padding-bottom:5px;border-bottom:1px solid currentColor;font-size:9px;text-transform:uppercase;letter-spacing:.18em}.whatsapp-float{position:fixed;right:clamp(14px,2.2vw,34px);bottom:clamp(14px,2.2vw,34px);z-index:30;display:flex;align-items:center;gap:9px;padding:12px 17px;border-radius:999px;background:#25d366;color:#fff;box-shadow:0 8px 30px rgba(0,0,0,.2);font-size:9px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;transition:transform .2s ease,background .2s ease,box-shadow .2s ease}.whatsapp-float:hover,.whatsapp-float:focus-visible{transform:translateY(-2px);background:#1fbd5a;box-shadow:0 10px 34px rgba(0,0,0,.25)}.whatsapp-float svg{width:19px;height:19px;fill:currentColor;flex:none}
@media(max-width:760px){.hero-title h1,.hero-title>span{grid-column:auto}.pair-c{grid-template-columns:1fr}.pair-c button:first-child{width:82%}.pair-c button:last-child{width:90%;margin:0 0 0 auto}.family-story{grid-template-columns:1fr;padding-left:12px;padding-right:12px;gap:10px}.family-story-main{grid-column:auto}.mosaic{grid-template-columns:repeat(2,1fr);padding-left:12px;padding-right:12px;gap:10px}.mosaic .wide{grid-column:span 2}.contact-links{flex-direction:column}.whatsapp-float{padding:12px}.whatsapp-float span{display:none}}
.whatsapp-float{width:52px;height:52px;padding:0;justify-content:center}.whatsapp-float span{display:none}.whatsapp-float svg{width:23px;height:23px}@media(max-width:760px){.whatsapp-float{width:48px;height:48px;padding:0}}
.pair-a{align-items:center}.pair-a button:first-child{margin-top:0}.pair-b{padding-top:clamp(80px,10vw,145px);padding-bottom:clamp(80px,10vw,145px);align-items:center}.pair-b button:last-child{margin-bottom:0}.triptych{grid-template-columns:repeat(3,1fr);align-items:start}.triptych button,.triptych button:nth-child(2),.triptych button:nth-child(3){margin-top:0;aspect-ratio:3/4}
@media(max-width:760px){.triptych{grid-template-columns:1fr}.triptych button,.triptych button:nth-child(2),.triptych button:nth-child(3){aspect-ratio:auto}.pair-b button:last-child{margin-left:auto}}
.image-top + .cinema-image{margin-top:clamp(65px,8vw,120px)}
@media(max-width:760px){.image-top + .cinema-image{margin-top:44px}}
.cinema-image + .mosaic{margin-top:clamp(65px,8vw,120px)}
@media(max-width:760px){.cinema-image + .mosaic{margin-top:44px}}
@media(max-width:760px){
  .pair{padding-left:18px;padding-right:18px;gap:12px}
  .pair button:first-child,.pair button:last-child,.pair-b button:first-child,.pair-b button:last-child{width:100%;margin:0}
  .pair-b{padding-top:72px;padding-bottom:72px;gap:12px}
  .triptych{padding:72px 18px;gap:12px}
  .triptych button,.triptych button:nth-child(2),.triptych button:nth-child(3){aspect-ratio:3/4;margin:0}
  .cinema-image{width:calc(100% - 36px);margin-left:18px;margin-right:18px;aspect-ratio:16/10}
  .family-story{padding:0 18px 82px;gap:12px}
  .mosaic{padding-left:18px;padding-right:18px;padding-bottom:90px;gap:12px}
  .interlude{padding-left:18px;padding-right:18px}
}

.wedding-intro{padding:0 var(--page) clamp(95px,12vw,175px)}
.wedding-intro>span{display:block;max-width:680px;margin:0 auto 18px;font-size:9px;text-transform:uppercase;letter-spacing:.19em;color:var(--muted)}
.wedding-pair{display:block;max-width:340px;margin:0 auto}
.wedding-pair button{aspect-ratio:3/4;overflow:hidden}
.wedding-pair img{object-position:center top}
@media(max-width:760px){
  .wedding-intro{padding:0 18px 82px}
  .wedding-intro>span{margin-bottom:14px}
  .wedding-pair{gap:12px}
  .wedding-pair{max-width:260px}
}
.opening-triptych{grid-template-columns:repeat(4,1fr)}
.opening-triptych button:first-child img{object-position:center top}
@media(max-width:760px){
  .opening-triptych{grid-template-columns:repeat(2,1fr)}
  .opening-triptych button,.opening-triptych button:nth-child(2),.opening-triptych button:nth-child(3){aspect-ratio:3/4}
}

/* Mobile-only editorial refinement */
@media(max-width:760px){
  .site-header{height:68px;padding-left:18px;padding-right:18px}
  .hero{padding:0 12px}
  .hero>button{height:66svh;min-height:0}
  .hero-title{padding:38px 6px 82px}
  .hero-title h1{font-size:clamp(48px,13.5vw,58px);line-height:.91}

  .pair-a{grid-template-columns:repeat(2,1fr);align-items:start}
  .pair-a button:first-child,.pair-a button:last-child{aspect-ratio:3/4}
  .pair-a button:last-child img{object-position:center}

  .interlude{padding-top:88px;padding-bottom:88px;gap:24px}
  .interlude p{font-size:clamp(43px,12.5vw,52px);line-height:.94}
  .interlude-small{padding-top:78px;padding-bottom:78px}
  .full-image,.last-image{height:auto;aspect-ratio:4/3}

  .triptych{grid-template-columns:repeat(2,1fr);padding-top:76px;padding-bottom:76px}
  .triptych button,.triptych button:nth-child(2),.triptych button:nth-child(3){aspect-ratio:3/4}
  .triptych:not(.opening-triptych) button:last-child{grid-column:1/-1;width:calc(50% - 6px);justify-self:center}
  .opening-triptych button:last-child{grid-column:auto;width:100%}

  .pair-b{grid-template-columns:repeat(2,1fr);align-items:start}
  .pair-b button:first-child,.pair-b button:last-child{aspect-ratio:3/4}
  .cinema-image{aspect-ratio:4/3}
  .image-top + .cinema-image,.cinema-image + .mosaic{margin-top:38px}

  .family-story{grid-template-columns:repeat(2,1fr)}
  .family-story-main{grid-column:1/-1}
  .family-story button:not(.family-story-main){aspect-ratio:3/4}

  .about{padding:94px 18px;gap:24px}
  .about h2{font-size:clamp(45px,12.5vw,54px);line-height:.96}
  .about p{margin-top:30px;font-size:14px}
  .contact{padding:100px 18px}
  .contact h2{margin:34px 0;font-size:clamp(50px,14vw,62px);line-height:.94}
}
