@import url('https://fonts.googleapis.com/css2?family=Bodoni+Moda:opsz,wght@6..96,400;6..96,500&family=Parisienne&display=swap');
:root{--serif:'Bodoni Moda',Georgia,serif;--script:'Parisienne',Georgia,serif}
.envelope-intro:before{background:linear-gradient(#112e26ef,#112e26f8),url('assets/unsplash-portrait.jpg') center/cover}.envelope-stage:before,.envelope-stage:after{content:'';position:absolute;z-index:-1;top:20px;width:140px;height:350px;background:url('assets/botanical-lines.svg') center/contain no-repeat;pointer-events:none}.envelope-stage:before{left:-40px;rotate:-25deg}.envelope-stage:after{right:-40px;rotate:25deg;scale:-1 1}.envelope-stage h1{font:50px/1.2 var(--script)!important;letter-spacing:0;background:#e9e4d2;color:#3c503d;padding:34px 20px;width:min(85%,360px);margin:0 auto 25px;position:relative;box-shadow:5px 10px 20px #05120e40;rotate:-3deg}.envelope-stage h1:after{content:'';position:absolute;inset:-22px;background:url('assets/lace-banner.svg') center/100% 100% no-repeat;pointer-events:none}.envelope-stage h1 em{font-size:.6em}.envelope{z-index:2}.envelope-intro.opening h1{transition:transform .8s;transform:translateY(-25px)}.portrait img{object-position:center 40%;filter:saturate(.6)}.hero h1{font-weight:400}.quote>p{font-size:clamp(34px,5vw,60px)}.closing{background:linear-gradient(#082d25dc,#082d25f2),url('assets/unsplash-portrait.jpg') center/cover}.photo-credit{font-size:10px;line-height:1.8;margin-top:14px}.photo-credit a{color:#f4ead4;text-underline-offset:3px}.intro-overline{margin-bottom:30px!important}
@media(max-width:800px){.portrait img{aspect-ratio:1.15;min-height:0;max-height:none;border-radius:46% 46% 15px 15px}.portrait figcaption{position:relative;inset:auto;margin:14px 0 0;background:#f7eedb;box-shadow:none;font-size:18px}.envelope-stage h1{font-size:43px!important}.quote>p{font-size:34px}.anniversary{width:78px;height:78px;font-size:32px}.envelope-stage>p:not(.intro-overline):not(.guest-name){margin-bottom:22px}}
@media(max-height:650px){.envelope-stage h1{font-size:36px!important;padding:20px}.envelope{margin-block:20px!important}.intro-overline{margin-bottom:22px!important}}
@media(prefers-reduced-motion:reduce){.envelope-intro.opening h1{transition:none;transform:none}}
.envelope-intro{overflow-x:hidden}.music-toggle:not(.visible){visibility:hidden;translate:0 0}
