/* Hoa Moc Xanh V3: progressive enhancements; accessible motion settings */
.invitation{isolation:isolate}.couple:after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 20% 78%,#eaf0df77,transparent 45%)}
.top-flower{animation:flowerFloat 9s ease-in-out infinite alternate;transform-origin:70% 30%}.floral-bg:before{animation:floralBreath 12s ease-in-out infinite alternate}
@keyframes flowerFloat{from{transform:translate3d(0,0,0) rotate(-2deg)}to{transform:translate3d(-9px,14px,0) rotate(2deg)}}
@keyframes floralBreath{from{opacity:.11;transform:scale(1)}to{opacity:.20;transform:scale(1.035)}}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.7,.2,1)}.reveal.in-view{opacity:1;transform:none}
.album-stage{touch-action:pan-y;user-select:none}.album-photo{will-change:transform,opacity;backface-visibility:hidden}.album-photo.active{transform:translateX(0) scale(1) rotateY(0)}
.album-photo.before{transform:translateX(-62%) scale(.78) rotateY(28deg)}.album-photo.after{transform:translateX(62%) scale(.78) rotateY(-28deg)}
.album-photo.active{cursor:zoom-in;pointer-events:auto}.album-counter button{min-width:48px;min-height:48px;border-radius:50%;transition:background .2s}.album-counter button:hover{background:#edf3e9}
.gift-button{position:relative}.gift-button:before,.gift-button:after{content:'✦';position:absolute;color:#a1a879;font-size:23px;animation:sparkle 2.5s ease-in-out infinite;pointer-events:none}.gift-button:before{top:18%;left:12%}.gift-button:after{right:12%;top:40%;animation-delay:1.1s}
@keyframes sparkle{0%,100%{opacity:.15;transform:scale(.65) rotate(0)}50%{opacity:1;transform:scale(1.25) rotate(40deg)}}
.gift-button.opened img{animation:giftOpen .65s cubic-bezier(.2,.8,.2,1) both}.gift-info:not([hidden]){animation:giftReveal .6s ease both}
@keyframes giftOpen{0%{transform:scale(1) rotate(0)}40%{transform:scale(1.12) rotate(-7deg)}100%{transform:scale(.96) rotate(0)}}
@keyframes giftReveal{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
.lightbox{position:fixed;inset:0;z-index:1000;background:#111b14ee;display:grid;place-items:center;padding:65px 18px 45px;opacity:0;transition:opacity .2s}.lightbox.visible{opacity:1}.lightbox[hidden]{display:none}.lightbox img{max-width:min(96vw,900px);max-height:80vh;object-fit:contain;border:5px solid #fff;box-shadow:0 20px 60px #0008}.lightbox button{position:absolute;top:14px;right:20px;color:white;background:transparent;border:1px solid #ffffff70;border-radius:50%;width:44px;height:44px;font-size:26px;cursor:pointer}.lightbox p{color:#fff;position:absolute;bottom:8px;margin:0;font:13px 'Be Vietnam Pro',sans-serif}
@media(max-width:480px){.album-photo{width:62%}.album-photo.before{transform:translateX(-52%) scale(.75) rotateY(22deg)}.album-photo.after{transform:translateX(52%) scale(.75) rotateY(-22deg)}.floating{right:10px;bottom:12px}.gift-button img{width:220px}.couple{overflow:hidden}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}.top-flower,.floral-bg:before,.gift-button:before,.gift-button:after,.gift-button.opened img{animation:none!important}.lightbox{transition:none}}
