/* Photograph is unchanged. Reading veils and engraving are separate layers. */
.invitation-cover{isolation:isolate;overflow:hidden;min-height:820px;background:linear-gradient(var(--ivory) 0%,#f8f1dff2 65%,#f8f1df00 100%)}
.cover-portrait-scene{position:absolute;inset:0 0 0 38%;z-index:-3;pointer-events:none;mask-image:linear-gradient(0deg,transparent,#000 26%,#000 100%),linear-gradient(90deg,transparent,#000 12%,#000 96%,transparent);mask-composite:intersect}
.cover-portrait{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 38%}
.invitation-cover:after{inset:0;height:auto;z-index:-2;clip-path:none;mask-image:linear-gradient(0deg,transparent,#000 26%,#000 100%);background:linear-gradient(90deg,var(--ivory) 0%,#f8f1dff5 34%,#f8f1dfbd 46%,#f8f1df28 66%,#f8f1df00 84%),linear-gradient(0deg,var(--ivory),#f8f1df00 30%);pointer-events:none}
.invitation-cover:before{inset:10px;z-index:2;background:url('assets/engraved-background-v1.png') center/100% 100% no-repeat;opacity:.3;mask-image:linear-gradient(90deg,#000,transparent 13%,transparent 87%,#000),linear-gradient(0deg,transparent,#000 24%,#000 88%,transparent);mask-composite:intersect;pointer-events:none;animation:ornament-breathe 12s ease-in-out infinite;animation-play-state:paused}
.cover-text{width:50%;margin:0;padding:110px 36px 88px;min-height:820px;justify-content:center}
.cover-text .couple-crest{width:60px;height:80px;margin-bottom:16px}
.cover-text .wedding-title{font-size:clamp(17px,2vw,22px)}
.cover-text .english-eyebrow{letter-spacing:0}
html[lang=km] .cover-text h2{font-size:clamp(22px,2.6vw,29px)}
.cover-text .guest-dedication{width:100%;max-width:310px}
/* Inner layer drifts while the outer layer retains its scroll-linked transform. */
.background-flora{background-image:none}
.background-flora:before{content:'';position:absolute;inset:0;background:url('assets/lotus-parallax-layer-v1.png') center bottom/100% auto no-repeat;animation:lotus-drift 18s ease-in-out infinite;animation-play-state:paused}
.section-rule span{animation:rule-breathe 14s ease-in-out infinite;animation-play-state:paused}
body[data-motion=on]:not(.motion-paused) .background-flora:before,
body[data-motion=on]:not(.motion-paused) .invitation-cover.is-in-view:before,
body[data-motion=on]:not(.motion-paused) .wedding-section.is-in-view .section-rule span{animation-play-state:running}
.motion-enhanced.entered main{animation:none}
.motion-enhanced [data-reveal=pending]{opacity:0;transform:translateY(8px)}
.motion-enhanced [data-reveal=shown]{opacity:1;transform:none;transition:opacity 650ms ease-out,transform 650ms ease-out;transition-delay:var(--reveal-delay,0ms)}
body[data-motion=off] [data-reveal],body.reduce-motion [data-reveal]{opacity:1;transform:none;transition:none}
body[data-motion=off] .invitation-cover:before,body[data-motion=off] .background-flora:before,body[data-motion=off] .section-rule span{animation:none}
@keyframes ornament-breathe{0%,100%{opacity:.26}50%{opacity:.34}}
@keyframes lotus-drift{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes rule-breathe{0%,100%{opacity:.7}50%{opacity:1}}
@media(max-width:700px){
  .invitation-cover{min-height:0}
  .cover-portrait-scene{inset:0 0 auto;height:640px}
  .cover-portrait{object-position:50% 35%}
  .invitation-cover:after{background:linear-gradient(0deg,var(--ivory),var(--ivory) calc(100% - 620px),#f8f1dfe8 calc(100% - 450px),#f8f1df00 calc(100% - 300px)),linear-gradient(90deg,#f8f1df66,#f8f1df00 18%,#f8f1df00 82%,#f8f1df66)}
  .cover-text{width:100%;min-height:0;padding:clamp(360px,105vw,440px) 32px 62px}
  .cover-text .couple-crest{width:45px;height:60px;margin-bottom:12px}
  html[lang=km] .cover-text h2{font-size:clamp(21px,5.8vw,28px)}
  .invitation-cover:before{inset:6px;opacity:.25}
  .background-flora:before{background-size:150% auto}
}
@media(prefers-reduced-motion:reduce){
  .background-flora:before,.invitation-cover:before,.section-rule span{animation:none!important}
  [data-reveal]{opacity:1!important;transform:none!important;transition:none!important}
}
