@media (min-width: 768px) {
  .section {
    padding: 110px 64px;
  }
  .locations {
    grid-template-columns: 1fr 1fr;
    gap: 40px;
  }
  .location + .location {
    border-left: 1px solid var(--line);
    padding-left: 40px;
  }
  .dress-columns {
    grid-template-columns: 1fr 1fr;
    gap: 60px;
  }
  .hero-copy {
    bottom: 24%;
  }
  .timeline {
    max-width: 430px;
  }
  .opening:before {
    inset: 36px;
  }
  .envelope-shell {
    aspect-ratio: 1.5;
  }
  .guest-name {
    top: 19%;
    bottom: auto;
  }
  .seal {
    width: 90px;
    height: 90px;
  }
  .monogram {
    font-size: 20px;
  }
  .swatches {
    max-width: none;
    gap: 22px;
  }
}
@media (max-width: 359px) {
  .section {
    padding-left: 54px;
    padding-right: 54px;
  }
  .hero h1 {
    font-size: 3rem;
  }
  .hero {
    min-height: 480px;
  }
  .guest-name {
    font-size: 1.2rem;
  }
  .seal {
    width: 65px;
    height: 65px;
  }
  .monogram {
    font-size: 14px;
  }
  .countdown > div {
    padding: 0 3px;
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  *:before,
  *:after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .is-opening {
    opacity: 0;
  }
  .hero-image {
    transform: none !important;
  }
}

@media (min-width: 768px) {
  .hero-editorial .hero-arch {
    inset: 9% max(12%, calc((100% - 880px) / 2)) 10%;
  }
  .hero-editorial .hero-copy {
    inset: 38% 48px auto;
  }
  #welcome::before {
    left: -62px;
    opacity: 0.27;
  }
  #gifts::after {
    right: -65px;
    opacity: 0.27;
  }
  .hero::after {
    height: 54px;
  }
}
@media (max-width: 359px) {
  .countdown span {
    font-size: 0.7rem;
    letter-spacing: 0;
  }
  .hero-editorial h1 {
    font-size: 3rem;
  }
  .hero-editorial .hero-copy {
    inset: 35% 26px auto;
  }
  .hero-date {
    font-size: 0.88rem;
  }
}

@media (min-width: 768px) {
  .hero-family-floral {
    background-size: auto 100%;
    background-position: center center;
  }
  .hero-family-floral .hero-copy {
    inset: 8% 48px auto;
  }
  .hero-family-floral h1 {
    font-size: clamp(4.5rem, 7vw, 6.4rem);
  }
  .hero-family-floral .scroll-cue.scroll-cue-labeled {
    bottom: calc(24px + env(safe-area-inset-bottom));
  }
}
@media (max-height: 670px) {
  .hero-family-floral .hero-copy {
    inset: 5.5% 22px auto;
  }
  .hero-family-floral h1 {
    font-size: clamp(2.75rem, 11vw, 4.5rem);
    margin-top: 8px;
  }
  .hero-family-floral .scroll-cue.scroll-cue-labeled {
    bottom: calc(8px + env(safe-area-inset-bottom));
    gap: 5px;
  }
  .scroll-cue-ring {
    width: 50px;
    height: 50px;
  }
}


@media (min-width: 768px) {
  /* Keep the vertical Laura & Saulo opening artwork intact on wider screens. */
  .opening-family-floral {
    background-size: auto, auto 100%;
    background-position: center, center;
    background-repeat: no-repeat, no-repeat;
  }
}

/* Laura & Saulo: approved artwork planes and original opening surfaces. */
.hero-family-floral,.opening-family-floral {
  --art-width:min(138vw,74.594svh);
  --art-height:calc(var(--art-width) * 1.340594);
  --art-top:calc((100svh - var(--art-height)) / 2);
  background:#efdfcf;min-height:0;height:100svh;
}
.approved-scenery {
  position:absolute;inset:0;pointer-events:none;
  background:url('/assets/images/laura-saulo-sobre-approved.png') 49.839% top / 255.5% 449.333% no-repeat;
}
.approved-scenery::before,.approved-scenery::after {
  content:'';position:absolute;top:0;bottom:0;width:max(12vw,70px);
  background:url('/assets/images/laura-saulo-sobre-approved.png') left top / 704.828% 100% no-repeat;
}
.approved-scenery::before {left:0;mask-image:linear-gradient(to right,#000 45%,transparent);}
.approved-scenery::after {right:0;background-position:right top;mask-image:linear-gradient(to left,#000 45%,transparent);}
.hero-family-floral .approved-scenery::before,.hero-family-floral .approved-scenery::after {
  background-image:url('/assets/images/laura-saulo-hero-approved.png');background-size:696.552% 100%;
}
.hero-family-floral::before,.hero-family-floral::after,.hero-family-floral .hero-shade,
.opening-family-floral::before {
  content:'';position:absolute;inset:auto;
  width:var(--art-width);height:var(--art-height);top:var(--art-top);
  left:calc((100% - var(--art-width)) / 2);background-size:100% 100%;background-repeat:no-repeat;
  pointer-events:none;opacity:1;border:0;transform:none;border-radius:0;
  mask-size:100% 100%;mask-composite:intersect;
}
.hero-family-floral::before,.hero-family-floral::after,.hero-family-floral .hero-shade {
  background-image:url('/assets/images/laura-saulo-hero-approved.png');background-color:transparent;z-index:1;
}
.hero-family-floral::before {
  mask-image:url('/assets/images/approved-hero-title-mask.svg'),linear-gradient(to bottom,transparent,#000 35px,#000),linear-gradient(to right,transparent,#000 35px,#000 calc(100% - 35px),transparent);
}
.hero-family-floral .hero-shade {
  mask-image:url('/assets/images/approved-hero-family-mask.svg'),linear-gradient(to right,transparent,#000 35px,#000 calc(100% - 35px),transparent);
}
.hero-family-floral::after {
  mask-image:url('/assets/images/approved-hero-footer-mask.svg'),linear-gradient(to top,transparent,#000 35px,#000),linear-gradient(to right,transparent,#000 35px,#000 calc(100% - 35px),transparent);
}
.hero-family-floral .hero-shade::after,.hero-family-floral .hero-arch {display:none;}
.hero-family-floral .hero-copy,.hero-family-floral .scroll-cue-ring,.hero-family-floral .scroll-cue-label,
.opening-family-floral .open-instruction {
  width:1px;height:1px;overflow:hidden;clip-path:inset(50%);padding:0;margin:0;position:absolute;
}
.hero-family-floral .scroll-cue.scroll-cue-labeled {
  width:calc(var(--art-width) * .148515);height:calc(var(--art-width) * .148515);
  top:calc(var(--art-top) + var(--art-width) * 1.085149);bottom:auto;
  left:calc(50% - var(--art-width) * .011881188);transform:translateX(-50%);
  background:url('/assets/images/laura-saulo-hero-approved.png') 48.60465% 91.0299% / 673.333% 902.667% no-repeat;
  border:0;border-radius:50%;z-index:4;
}
.hero-family-floral .scroll-cue:focus-visible,.opening-family-floral .seal:focus-visible {outline:3px solid #765021;outline-offset:5px;}
.opening-family-floral {--art-width:min(125vw,75.816svh);--art-height:calc(var(--art-width) * 1.318982);}
.opening-family-floral::before {
  background-image:url('/assets/images/laura-saulo-sobre-approved.png');z-index:7;
  mask-image:url('/assets/images/approved-envelope-frame-mask.svg'),linear-gradient(to bottom,transparent,#000 35px,#000 calc(100% - 35px),transparent),linear-gradient(to right,transparent,#000 35px,#000 calc(100% - 35px),transparent);
}
.opening-family-floral .envelope-shell {
  position:absolute;left:calc(50% - var(--art-width) * .372798);
  top:calc(var(--art-top) + var(--art-width) * .459883);
  width:calc(var(--art-width) * .742661);height:calc(var(--art-width) * .612524);
  aspect-ratio:auto;border:0;background:#eee0d0;filter:none;box-shadow:none;
}
.opening-family-floral .envelope-shell::before {
  content:'';position:absolute;inset:0;width:100%;height:100%;
  background:linear-gradient(135deg,#f4e9dc,#ecdfce 65%,#eedec9);z-index:2;
}
.opening-family-floral .envelope-front {
  background:url('/assets/images/laura-saulo-sobre-approved.png') 49.42966% 65.09695% / 134.65% 215.335% no-repeat;
  clip-path:none;mask-image:url('/assets/images/approved-envelope-front-mask.svg');mask-size:100% 100%;
}
.opening-family-floral .flap {
  inset:0 0 auto;height:52.0767%;
  background:url('/assets/images/laura-saulo-sobre-approved.png') 49.42966% 45.988% / 134.65% 413.497% no-repeat;
  clip-path:polygon(0 0,100% 0,50% 100%);
  mask-image:url('/assets/images/approved-envelope-flap-mask.svg');mask-size:100% 100%;
}
.opening-family-floral .envelope-front::before,.opening-family-floral .envelope-front::after,
.opening-family-floral .flap::before,.opening-family-floral .flap::after,
.opening-family-floral .paper-light-bottom,.opening-family-floral .seal::after {display:none;}
.opening-family-floral .seal {
  top:46.645%;left:50.2%;width:28.195%;height:auto;aspect-ratio:214/206;
  background:url('/assets/images/laura-saulo-sobre-approved.png') 49.875% 57.7058% / 477.57% 654.368% no-repeat;
  filter:none;border-radius:50%;
}
.opening-family-floral .seal svg,.opening-family-floral .monogram {visibility:hidden;}
.opening-family-floral .guest-name {top:16%;left:12%;right:12%;font-size:clamp(1.05rem,calc(var(--art-width) * .032),2.5rem);}
/* The frame stays behind the folding envelope and the emerging Hero. */
.opening-family-floral .approved-scenery {z-index:0;}
.opening-family-floral::before {z-index:1;}
.opening-family-floral .envelope-shell {z-index:2;}
.opening-family-floral .emerging-card {
  --card-top:calc(var(--art-top) + var(--art-width) * .478259);
  --card-height:calc(var(--art-width) * .547583);
  --card-lift-top:max(96px,calc(var(--art-top) + var(--art-width) * .459883 - var(--card-height) - 16px));
  inset:auto;top:var(--card-top);left:50%;width:calc(var(--art-width) * .408464);
  height:auto;aspect-ratio:1010/1354;z-index:3;
  transform:translateX(-50%);clip-path:inset(0 0 100% 0);
  background:url('/assets/images/laura-saulo-hero-approved.png') center / 100% 100% no-repeat;
  border-radius:2px;border:1px solid #d3bf9a;box-shadow:0 6px 22px #66513328;
}
.opening-family-floral .wedding-card-copy {visibility:hidden;}
.opening-family-floral .flap {
  backface-visibility:visible;mask-image:none;
  background:linear-gradient(135deg,#f4e9dc,#ecdfce 65%,#eedec9);
}
.opening-family-floral .flap::after {
  content:'';display:block;position:absolute;inset:0;
  background:url('/assets/images/laura-saulo-sobre-approved.png') 49.42966% 45.988% / 134.65% 413.497% no-repeat;
  mask-image:url('/assets/images/approved-envelope-flap-mask.svg');mask-size:100% 100%;
  opacity:1;animation:none;
}
.opening-family-floral.is-opening .emerging-card {animation:approved-hero-emerge 1.8s 1s forwards;}
@keyframes approved-hero-emerge {
  to {
    transform:translateX(-50%) translateY(calc(var(--card-lift-top) - var(--card-top)));
    clip-path:inset(0);
  }
}
.opening-family-floral.is-opening .guest-name {opacity:0;transition:opacity .4s;}
.opening-family-floral.is-opening::before {animation:fade-away 1s 2.6s forwards;}
/* The approved portrait canvases retain their unblended outer frame. */
@media (min-aspect-ratio:7459/10000) and (max-aspect-ratio:7460/10000) {
  .hero-family-floral {--art-width:100vw;}
  .hero-family-floral::before {mask-image:url('/assets/images/approved-hero-title-mask.svg');}
  .hero-family-floral .hero-shade {mask-image:url('/assets/images/approved-hero-family-mask.svg');}
  .hero-family-floral::after {mask-image:url('/assets/images/approved-hero-footer-mask.svg');}
}
@media (min-aspect-ratio:7581/10000) and (max-aspect-ratio:7582/10000) {
  .opening-family-floral {--art-width:100vw;}
  .opening-family-floral::before {mask-image:url('/assets/images/approved-envelope-frame-mask.svg');}
}
/* Keep the pocket opaque, then send the opened flap behind the Hero card. */
.opening-family-floral .envelope-shell::before {z-index:0;}
.opening-family-floral .envelope-front {
  clip-path:polygon(0 0,50% 52.0767%,100% 0,100% 100%,0 100%);
  mask-image:none;background:linear-gradient(135deg,#f4e9dc,#ecdfce 65%,#eedec9);
}
.opening-family-floral .envelope-front::after {
  content:'';display:block;position:absolute;inset:0;clip-path:none;
  background:url('/assets/images/laura-saulo-sobre-approved.png') 49.42966% 65.09695% / 134.65% 215.335% no-repeat;
  mask-image:url('/assets/images/approved-envelope-front-mask.svg');mask-size:100% 100%;
  box-shadow:none;animation:none;
}
.opening-family-floral.is-opening .flap {
  animation:unfold 1.3s .4s forwards,approved-flap-back 0s 1.05s forwards;
}
@keyframes approved-flap-back {to {z-index:0;}}
.opening-family-floral .flap::after,.opening-family-floral .envelope-front::after {
  mask-position:0 0;mask-repeat:no-repeat;filter:none;
}
