@font-face{font-family:'Wedding Script';src:url('assets/fonts/great-vibes.ttf') format('truetype');font-display:swap}
.envelope{background:#102319;perspective:none;transition:opacity .75s ease,visibility 0s .75s}
.lotus-cover,.lotus-intro{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.lotus-cover img{object-fit:contain}.lotus-intro{opacity:0;transition:opacity .4s ease}.film-playing .lotus-intro{opacity:1}
.envelope .invitation{position:absolute;right:6%;top:50%;transform:translateY(-50%);width:43%;max-width:600px;padding:25px;text-align:center;background:none;border:0;box-shadow:none;color:#f2e8ce;animation:none;transition:opacity .35s ease}
.envelope .invitation:before,.envelope .invitation:after{display:none}.envelope .invitation .lotus{display:none}.envelope .invitation h1{font-family:'Wedding Script',serif;font-size:clamp(48px,6vw,85px);line-height:1.35;margin:14px 0}.envelope .invitation h1 em{color:#d5bd8d}.envelope .invitation .rule{background:#b6a47c;animation:none}.envelope .invitation .guest{font-size:23px;margin-bottom:22px}.envelope .invitation .button{color:#f2e8ce;background:#46543b;border-color:#b6a47c99;min-height:48px}.envelope .invitation small{color:#d5cfb5}.envelope-monogram{display:none}
.envelope.opening .invitation{opacity:0;pointer-events:none}.envelope.opened .invitation{transform:translateY(-50%)}
.skip-intro{position:absolute;right:max(25px,env(safe-area-inset-right));bottom:calc(28px + env(safe-area-inset-bottom));padding:12px 20px;min-height:44px;background:#14271dd9;border:1px solid #b6a47c88;border-radius:2px;color:#f2e8ce;font-size:12px;letter-spacing:.6px;z-index:4}.skip-intro[hidden]{display:none}.skip-intro span{margin-left:12px}
/* Match the film's slow, champagne-accented motion throughout the invitation. */
.reveal{transform:translateY(20px);transition-duration:1.2s,1.5s}.section-heading:after{width:72px;background:linear-gradient(90deg,transparent,#b6a47c,transparent)}.event:before,.event:after{transition:width 1.2s var(--ease-luxury),height 1.2s var(--ease-luxury)}.event.is-visible:before,.event.is-visible:after{width:28px;height:28px}.gallery button.reveal{transform:translateY(18px)}.gallery button.reveal.is-visible{transform:none}.portrait img{transition-duration:2.2s}.photo-interlude:before{border-color:#e3d8be40}
@media(max-width:759px){.envelope .invitation{right:5%;top:53%;width:90%;max-width:none;transform:none;padding:16px 12px}.envelope .invitation h1{font-size:54px;margin:4px 0 12px}.envelope .invitation .eyebrow{font-size:8px;letter-spacing:2px}.envelope .invitation p{font-size:11px;margin-bottom:3px}.envelope .invitation .rule{margin:12px auto}.envelope .invitation .guest{font-size:20px;margin:5px 0 14px}.envelope .invitation small{margin-top:14px;font-size:9px}.envelope.opened .invitation{transform:none}.skip-intro{right:18px;bottom:calc(80px + env(safe-area-inset-bottom))}}
@media(max-height:690px) and (max-width:759px){.envelope .invitation{top:47%;padding:10px}.envelope .invitation h1{font-size:42px}.envelope .invitation small{display:none}.envelope .invitation .rule{margin:8px auto}.envelope .invitation .guest{margin-bottom:8px}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}.lotus-intro{display:none}.envelope{transition:none}}
body:not(.invitation-open) .music-toggle{top:calc(14px + env(safe-area-inset-top));bottom:auto;right:14px}
