/* The invitation is stamped once; the reply folds only after a saved receipt. */
.invitation-stamp{width:108px;min-height:100px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;margin:2px 0 25px;padding:9px 7px;border:2px solid #985d46;outline:1px solid #985d46;outline-offset:-6px;border-radius:3px;color:#89543f;transform:rotate(-8deg);font-family:var(--serif);opacity:.9}
.invitation-stamp span{font-size:16px;letter-spacing:.12em;line-height:1.5}.invitation-stamp b{font:26px/1.1 Georgia,serif}.invitation-stamp small{font-size:11px;line-height:1.5;letter-spacing:.15em}
.stamp-waiting{opacity:0}.stamp-landed{animation:stamp-arrive .64s cubic-bezier(.16,1,.3,1) both}
@keyframes stamp-arrive{0%{opacity:0;transform:translateY(-16px) rotate(-13deg) scale(1.28)}56%{opacity:.98;transform:translateY(1px) rotate(-8deg) scale(.98)}100%{opacity:.9;transform:translateY(0) rotate(-8deg) scale(1)}}
.reply-return[hidden]{display:none}.reply-return{text-align:center;color:#304b38;padding:20px 0 8px}
.rsvp-delivered>.rsvp-field,.rsvp-delivered>#guest-count-help,.rsvp-delivered>.rsvp-submit{display:none}
.reply-delivered .reply-intro{display:none}
.return-envelope{position:relative;width:min(290px,100%);height:245px;margin:20px auto 12px;perspective:800px;isolation:isolate}
.return-back{position:absolute;inset:64px 0 0;background:#49664d;border-radius:3px;box-shadow:0 12px 25px #23372326;z-index:0}
.return-letter{position:absolute;top:0;left:7%;width:86%;height:178px;padding:18px 12px;background:#fffaf0;color:#304b38;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;transform:translateY(64px) scale(.94);z-index:1}
.return-letter>span:first-child{font:14px/1.5 var(--serif)}.return-name{font:23px/1.4 var(--serif);overflow-wrap:anywhere;max-width:100%;max-height:65px;overflow:hidden}.return-letter>span{font:16px/1.5 var(--serif)}.return-letter small{font:11px/1.5 Georgia,serif;color:#687058;margin-top:5px}
.return-pocket{position:absolute;inset:64px 0 0;background:linear-gradient(145deg,#547156,#314d38);clip-path:polygon(0 0,50% 50%,100% 0,100% 100%,0 100%);z-index:2}
.return-flap{position:absolute;top:64px;left:0;width:100%;height:100px;background:#3c5942;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:50% 0;transform:rotateX(0);z-index:3;backface-visibility:visible}
.return-seal{position:absolute;left:calc(50% - 21px);top:133px;width:42px;height:42px;background:#ccb789;color:#314833;border-radius:50%;display:grid;place-items:center;font:20px/1 var(--serif);z-index:4;box-shadow:0 3px 5px #12291b26}
.return-message{font:23px/1.65 var(--serif);margin:15px 0 6px;text-wrap:balance}.return-detail{font:16px/1.8 var(--serif);margin:0;color:#4c5e47;overflow-wrap:anywhere}
.return-playing .return-letter{animation:return-letter 1.65s cubic-bezier(.45,0,.2,1) both}
.return-playing .return-flap{animation:return-flap .65s 1.3s cubic-bezier(.16,1,.3,1) both}
.return-playing .return-seal{animation:return-seal .45s 1.85s cubic-bezier(.16,1,.3,1) both}
.return-playing .return-message,.return-playing .return-detail{animation:return-message .5s 1.85s ease-out both}
@keyframes return-letter{0%,32%{transform:translateY(-30px) rotate(-3deg) scale(1)}100%{transform:translateY(64px) rotate(0) scale(.94)}}
@keyframes return-flap{from{transform:rotateX(180deg)}to{transform:rotateX(0)}}
@keyframes return-seal{from{opacity:0;transform:scale(1.25)}to{opacity:1;transform:scale(1)}}
@keyframes return-message{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:760px){.invitation-stamp{width:83px;min-height:80px;margin:2px 0;flex-shrink:0}.invitation-stamp span{font-size:13px}.invitation-stamp b{font-size:22px}.invitation-stamp small{font-size:10px}.ticket-stub{display:grid;grid-template-columns:minmax(0,1fr) 83px;gap:16px;align-items:center}.ticket-stub>span{display:none}.ticket-stub>strong{margin:0}.return-message{font-size:21px}.return-envelope{width:min(270px,100%)}}
@media(prefers-reduced-motion:reduce){.stamp-waiting{opacity:.9}.stamp-landed,.return-playing *{animation:none!important}}
