.names-art{display:block;width:100%;height:auto;object-fit:contain}
.opening-petals{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:60}
.falling-petal{position:absolute;top:-35px;left:var(--x);width:var(--size);height:calc(var(--size)*1.5);border-radius:80% 15% 75% 35%;background:radial-gradient(ellipse at 30% 20%,#fff5,transparent 65%),var(--petal);box-shadow:inset -2px -2px 3px #43131730;opacity:0;animation:petalDescent var(--duration) ease-in var(--delay) both;will-change:transform,opacity}
@keyframes petalDescent{0%{opacity:0;transform:translate3d(0,-20px,0) rotate(0)}12%{opacity:.8}75%{opacity:.75}100%{opacity:0;transform:translate3d(var(--drift),calc(100vh + 70px),0) rotate(var(--turn)) rotateY(160deg)}}
.invite h1{width:min(710px,90%);margin:18px auto 28px;padding:0;position:relative;line-height:0}
.invite h1 .names-art{opacity:1;transition:opacity .2s}
.motion-ready .invite:not(.unsealed) .names-art{opacity:0}
.ink-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:0}
.cover-names{padding:0;margin:20px auto 25px;width:100%;max-width:340px;line-height:0}
.cover-names .names-art{filter:none}
.floral-panel img{mix-blend-mode:normal;filter:saturate(.62) contrast(.94) brightness(1.025)}
.invite h1,.invite h1.reveal,.invite h1.reveal.visible{filter:none!important;backdrop-filter:none}
.names-art{image-rendering:auto;backface-visibility:visible;transform:none;will-change:auto}
.invite h1{transform:none!important;will-change:auto;filter:none!important}
.opening{perspective:1400px;transition:opacity 1.1s ease .2s,visibility 1.5s;overflow:hidden}
.cover{transform-origin:left center;transition:transform 1.2s cubic-bezier(.2,.7,.2,1),opacity 1s,box-shadow 1s;backface-visibility:hidden;animation:paperArrival 1.3s cubic-bezier(.2,.7,.2,1) both;position:relative;overflow:visible}
.cover:after{content:'';position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(115deg,transparent 15%,#fff1 40%,transparent 65%);background-size:230% 100%;animation:paperLight 7s ease-in-out infinite}
.breaking-seal .seal{animation:sealRelease .55s ease forwards!important}
.opening.leaving .cover{transform:translateX(8%) rotateY(-75deg) rotateZ(-3deg);opacity:0;filter:none;box-shadow:70px 20px 100px #0005}
.opening.leaving{opacity:0;visibility:hidden}
.seal{position:relative;z-index:3;touch-action:manipulation;animation:sealInvitation 3.6s ease-in-out infinite!important;filter:none;isolation:isolate}.seal:disabled{cursor:default}
.seal:after{content:'';position:absolute;inset:3px;border-radius:inherit;pointer-events:none;background:linear-gradient(115deg,transparent 30%,#ffe1c96b 48%,transparent 65%);background-size:300% 100%;animation:sealShimmer 5.4s ease-in-out infinite;opacity:0;mix-blend-mode:screen}
.seal>span{z-index:1}
.seal:not(:disabled):active{animation:none!important;transform:translateY(2px) scale(.94) rotate(-4deg)}
.seal:focus-visible{outline:2px solid #eed4c1;outline-offset:9px}
.breaking-seal .seal:after{animation:none;opacity:0}
.open-label{animation:openingPrompt 3.6s ease-in-out infinite}
@keyframes sealInvitation{0%,100%{transform:translateY(0) rotate(-2deg) scale(1)}50%{transform:translateY(-5px) rotate(2deg) scale(1.045)}}
@keyframes sealShimmer{0%,30%{background-position:130% 0;opacity:0}40%{opacity:.65}65%{background-position:-30% 0;opacity:0}100%{background-position:-30% 0;opacity:0}}
@keyframes openingPrompt{0%,100%{opacity:.65}50%{opacity:1}}
@keyframes sealRelease{0%{transform:scale(1) rotate(0)}35%{transform:scale(.92) rotate(-8deg)}70%{transform:translateY(-9px) scale(1.13) rotate(8deg)}100%{transform:translateY(25px) scale(.86) rotate(18deg);opacity:0}}
@keyframes paperArrival{from{opacity:0;transform:translateY(22px) rotateX(5deg)}to{opacity:1;transform:none}}
@keyframes paperLight{0%,100%{background-position:110% 0;opacity:.35}50%{background-position:-10% 0;opacity:.8}}
@media(max-width:760px){.invite h1{width:100%;max-width:440px;margin:22px auto 28px}.invite{min-height:720px;padding-top:62px}.cover-names{max-width:260px;margin:20px auto}.cover{padding:40px 22px 25px}.opening.leaving .cover{transform:translateX(7%) rotateY(-65deg)}.cover .eyebrow{font-size:10px}.cover-date{margin-bottom:22px}}
