/* Refined Romantic layout with the couple's own photography. */
:root{--rose:#a5686f;--rose-dark:#7e4853;--blush:#efe0dc}
.hero{align-items:flex-start;min-height:780px}
.hero-photo{object-position:48% 75%}
.hero-shade{background:linear-gradient(180deg,#26332970 0%,#2633294d 38%,#26332926 60%,#2633290a 76%,#26332935 100%)}
.hero-content{padding:0 22px;max-width:650px;width:47%;margin:clamp(145px,17svh,200px) auto 0 1.5%}
.hero-content .eyebrow{font-size:10px;margin-bottom:21px;letter-spacing:.24em;text-shadow:0 1px 10px #0005}
.hero h1{font-size:clamp(78px,6.3vw,102px);text-shadow:0 2px 20px #20352830;line-height:1.05}
.hero h1 i{font-size:29px;margin:7px 0 12px;color:#fff2dc}
.hero-heart{fill:none;stroke:#fff4df58;stroke-width:1;width:min(540px,43vw);height:58%;top:39%;left:25%;transform:translate(-50%,-45%)}
.hero-rule{margin:20px 0 13px}
.hero-date{font-family:var(--serif);font-size:23px;letter-spacing:.11em;font-weight:500;color:white}
.hero-time{font-size:11px;margin-top:2px;color:#fff7eb}
.hero-cta{margin-top:20px;min-height:43px;border-color:#fff9f0;background:#fff9f0;color:var(--rose-dark);box-shadow:0 6px 25px #20352814}
.hero-cta:hover{background:#fff;color:var(--rose-dark);transform:translateY(-2px)}
.scroll-hint{bottom:23px}
.invitation{background:#f2ebe3}
.invitation-paper{background:#fffaf5ed;border-color:#c9afa1;outline-color:#dfcfc1;box-shadow:0 18px 50px #68534410}
.date-seal [data-venue]{line-height:1.8}
.date-seal [data-address]{font-size:10px;color:var(--muted)}
.couple{background:#fcf9f4;padding-bottom:95px}
.couple .section-heading{margin-bottom:50px}
.couple-grid{max-width:810px;grid-template-columns:1fr 90px 1fr;align-items:start}
.portrait{width:100%;max-width:290px;height:375px;padding:0;border:5px solid var(--cream);outline-color:#d8c8bc;border-radius:155px 155px 3px 3px;box-shadow:0 13px 29px #62534812;transition:box-shadow .3s,transform .3s}
.portrait:before{display:none}
.portrait img{width:100%;height:100%;object-fit:cover;transform:scale(1.1);transition:transform .5s}
.portrait.groom img{object-position:49% 50%}
.portrait.bride img{object-position:55% 35%}
.portrait:hover{box-shadow:0 15px 35px #62534825;transform:translateY(-3px)}
.portrait:hover img{transform:scale(1.13)}
.portrait-zoom{position:absolute;right:12px;bottom:12px;width:29px;height:29px;background:#fffaf3d9;border:1px solid #fff9;border-radius:50%;color:var(--rose-dark);font-size:16px;display:flex;align-items:center;justify-content:center}
.person .eyebrow{font-size:9px;letter-spacing:.24em;margin-bottom:5px;color:#95877b}
.person h3{font-size:46px}
.couple-amp{margin:170px 0 0;font-size:65px;color:#bb9690}
.gallery .section-heading{margin-bottom:37px}
.gallery-item{border:1px solid #dfd4c7;box-shadow:0 8px 21px #6a574908}
.gallery-item>span{font-size:11px;bottom:17px}
.gallery-item:after{background:linear-gradient(transparent,#21321d99)}
.section-heading>p:last-child{line-height:1.9}
.rsvp-copy h2{color:#744f54}
.footer:before{opacity:.5}
@media(min-width:1600px){.hero h1{font-size:115px}.hero-content{margin-top:175px}}
@media(max-width:1000px) and (min-width:761px){.hero-content{margin-top:145px}.portrait{height:345px}.couple-grid{max-width:760px}}
@media(max-width:760px){
  .hero{min-height:760px;max-height:950px}
  .hero-content{margin:clamp(88px,12svh,112px) auto 0;width:100%;padding:0 22px}
  .hero-content .eyebrow{font-size:8px;letter-spacing:.16em;margin-bottom:19px}
  .hero h1{font-size:clamp(62px,15vw,79px)}
  .hero h1 i{font-size:25px;margin:7px 0 12px}
  .hero-heart{width:96vw;height:55%;top:34%;left:50%;stroke:#fff4df4d;transform:translate(-50%,-38%)}
  .hero-rule{margin:12px 0 6px;gap:12px}
  .hero-rule span{width:53px}
  .hero-date{font-size:20px;letter-spacing:.095em}
  .hero-time{font-size:10px}
  .hero-cta{margin-top:13px;font-size:10px;min-height:38px;padding:7px 19px}
  .hero-photo{object-position:49% 75%}
  .section{padding:64px 21px}
  .section-heading h2{font-size:48px}
  .section-heading>p:last-child{font-size:11px}
  .invitation-paper{padding:29px 23px}
  .date-seal [data-address]{font-size:9px}
  .couple{padding:65px 21px 70px}
  .couple .section-heading{margin-bottom:35px}
  .couple-grid{grid-template-columns:1fr 24px 1fr;gap:5px}
  .portrait{height:253px;width:100%;max-width:215px;border-width:3px;border-radius:110px 110px 2px 2px;margin-bottom:23px}
  .portrait.groom img{object-position:49% 50%}
  .portrait.bride img{object-position:54% 30%}
  .portrait-zoom{width:23px;height:23px;font-size:13px;bottom:8px;right:8px}
  .person .eyebrow{font-size:8px;letter-spacing:.16em;margin-bottom:4px}
  .person h3{font-size:32px}
  .couple-amp{font-size:30px;margin:115px 0 0}
  .gallery .section-heading{margin-bottom:29px}
  .gallery-item.wide{height:auto;aspect-ratio:3/2}
  .gallery-item.floral,.gallery-item.detail{height:250px}
  .gallery-item>span{font-size:9px;bottom:12px}
}
@media(max-width:360px){.hero-content{margin-top:88px}.hero h1{font-size:62px}.hero-content .eyebrow{font-size:7px}.portrait{height:221px}.person h3{font-size:28px}.couple-amp{margin-top:100px}.gallery-item.floral,.gallery-item.detail{height:220px}}
@media(prefers-reduced-motion:reduce){.portrait:hover,.portrait:hover img{transform:none}}
