/* The envelope opens directly onto the full-name cover, which is the first page. */
.envelope-intro{display:none}
.js .envelope-intro{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 40%,#fffdf7,#eee2cd);padding:20px;overflow:hidden}
.envelope-intro[hidden]{display:none}
.envelope-intro-inner{position:relative;display:flex;flex-direction:column;align-items:center;width:100%;text-align:center}
.envelope-scene{position:relative;display:block;width:min(600px,calc(100vw - 44px),70svh);aspect-ratio:1;border:0;outline:none;padding:0;background:transparent;perspective:1400px;isolation:isolate;cursor:pointer;color:var(--gold);transform:translateY(-18.75%)}
.envelope-scene:focus,.envelope-scene:focus-visible{outline:none;box-shadow:none}
.envelope-scene:focus-visible .envelope-seal:before{box-shadow:inset 0 0 0 1px #7e5b2b66,0 1px 0 #f5e4c377}
.envelope-heading{position:absolute;top:5%;left:0;right:0;display:block;transition:opacity .28s}
.envelope-heading .eyebrow{display:block;font-size:9px;letter-spacing:.25em}
.envelope-heading .envelope-heading-title{display:block;font:italic 28px/1.4 var(--serif);margin-top:9px;color:var(--ink)}
.envelope-body{position:absolute;left:0;right:0;bottom:0;height:62.5%;display:block;transform-style:flat;perspective:1400px;isolation:isolate}
.envelope-shadow{position:absolute;left:8%;right:8%;bottom:-7%;height:10%;background:#6a4a252b;border-radius:50%;filter:blur(15px);transform:rotateX(35deg);z-index:0}
.envelope-back{position:absolute;inset:0;z-index:1;border:1px solid #b79b6b;border-radius:3px;background-color:#d6bf98;background-image:repeating-linear-gradient(45deg,transparent,transparent 19px,#fff3d51c 20px,#fff3d51c 21px,transparent 22px),repeating-linear-gradient(-45deg,transparent,transparent 19px,#93734814 20px,#93734814 21px,transparent 22px);box-shadow:0 18px 55px #6f52221a}
.envelope-letter{position:absolute;left:8%;bottom:4%;width:84%;height:91%;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--paper);border:1px solid #c3aa7c;box-shadow:0 3px 12px #5f421d18;padding:6%;color:var(--ink);will-change:transform}
.envelope-letter:after{content:'';position:absolute;inset:8px;border:1px solid #cfba9470;pointer-events:none}
.letter-kicker{font:500 clamp(6px,1.2vw,9px) var(--sans);letter-spacing:.21em;color:var(--gold);margin-bottom:4%}
.letter-logo{width:75%;height:auto;max-height:72%;object-fit:contain}
.letter-date{font:500 clamp(12px,2.5vw,20px) var(--serif);letter-spacing:.14em;margin-top:3%;color:var(--gold)}
.envelope-pocket{position:absolute;inset:0;width:100%;height:100%;z-index:5;overflow:visible;filter:drop-shadow(0 1px 1px #74582c18)}
.envelope-flap{position:absolute;left:0;right:0;top:0;height:58%;z-index:8;transform-origin:50% 0%;transform-style:preserve-3d;will-change:transform}
.flap-face{position:absolute;inset:0;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.flap-inner{transform:rotateY(180deg)}
.envelope-seal{position:absolute;left:50%;top:52%;width:14%;aspect-ratio:1;z-index:10;display:grid;place-items:center;transform:translate(-50%,-50%) rotate(-9deg);border-radius:48% 52% 47% 53% / 53% 47% 52% 48%;background:radial-gradient(circle at 30% 24%,#ead6aa,#c4a16a 48%,#aa814a 84%,#d4b77e);box-shadow:1px 5px 7px #6043172d,inset 0 0 0 3px #e2c99599,inset 0 0 0 5px #a47d4677;transition:transform .3s,box-shadow .3s}
.envelope-seal:before{content:'';position:absolute;inset:12%;border:1px solid #9f783d88;border-radius:50%;box-shadow:0 1px 0 #f5e4c377}
.envelope-seal svg{width:56%;height:56%;fill:none;stroke:#8e6635;stroke-width:1.2;opacity:.8;filter:drop-shadow(0 1px 0 #f1dfbc99)}
.envelope-scene:hover .envelope-seal{box-shadow:1px 7px 10px #60431732,inset 0 0 0 3px #e2c99599,inset 0 0 0 5px #a47d4677;transform:translate(-50%,-50%) rotate(-5deg) scale(1.025)}
.envelope-signature{position:absolute;left:0;right:0;bottom:9%;z-index:6;font:400 clamp(25px,5.7vw,43px)/1.2 var(--script);color:#8e6a3c;letter-spacing:.01em;text-shadow:0 1px 0 #fff7e9;pointer-events:none}
.envelope-controls{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:30px;transition:opacity .25s}
.envelope-hint{font-size:9px;letter-spacing:.21em;text-transform:uppercase;color:var(--gold)}
.envelope-skip{background:none;border:0;border-bottom:1px solid #ba9d704d;padding:6px 8px;color:var(--muted);font:italic 14px var(--serif);cursor:pointer}
.envelope-intro.is-opening .envelope-heading,.envelope-intro.is-opening .envelope-controls{opacity:0;pointer-events:none}
.envelope-intro.is-opening .envelope-seal{animation:seal-release .3s ease both;pointer-events:none}
.envelope-intro.is-opening .envelope-flap{animation:flap-open .84s cubic-bezier(.32,.05,.22,1) .1s both}
.envelope-intro.is-opening .envelope-letter{animation:letter-rise 1.68s cubic-bezier(.23,.15,.25,1) .76s both}
.envelope-intro.is-opening .envelope-body{animation:envelope-settle 1.66s cubic-bezier(.25,.1,.25,1) .78s both}
.envelope-intro.is-opening{animation:envelope-reveal-page 1.14s cubic-bezier(.36,0,.4,1) 1.3s both;pointer-events:none}
body.sealed:not(.is-unsealing) .main-cover-card{opacity:0;transform:translateY(20px) scale(.975)}
body.is-unsealing .main-cover-card{animation:cover-arrive 1.24s cubic-bezier(.22,.7,.24,1) 1.2s both}
@keyframes seal-release{to{opacity:0;transform:translate(-50%,-15%) rotate(-15deg) scale(.9)}}
@keyframes flap-open{0%{transform:rotateX(0deg);z-index:8}49%{z-index:8}50%{z-index:2}100%{transform:rotateX(180deg);z-index:2}}
@keyframes letter-rise{from{transform:translateY(0)}to{transform:translateY(-96%)}}
@keyframes envelope-settle{to{transform:translateY(54px) scale(.965)}}
@keyframes envelope-reveal-page{from{opacity:1}to{opacity:0}}
@keyframes cover-arrive{from{opacity:0;transform:translateY(20px) scale(.975)}to{opacity:1;transform:translateY(0) scale(1)}}
.invitation-cover{min-height:calc(100svh - 87px);display:flex;align-items:center;justify-content:center;padding:45px 20px 55px;position:relative;z-index:1}
.main-cover-card{width:min(520px,100%);min-height:min(700px,calc(100svh - 162px));padding:43px 31px 35px}
.main-cover-card .cover-names{width:min(370px,100%)}
.cover-guest{font:italic 22px var(--serif);color:var(--ink);margin-top:14px;max-width:100%;overflow-wrap:anywhere}
.cover-guest[hidden]{display:none}
.cover-scroll{display:flex;align-items:center;gap:12px;justify-content:center;font-size:9px;letter-spacing:.1em;color:var(--gold);border-bottom:1px solid #b3946066;margin-top:27px;padding:10px 5px}
.cover-scroll .icon{width:16px;height:16px;transform:rotate(90deg);animation:scroll-arrow 2.5s ease-in-out infinite}
@keyframes scroll-arrow{0%,100%{transform:translateY(-2px) rotate(90deg)}50%{transform:translateY(3px) rotate(90deg)}}
.main-cover-card .cover-bottom{font-size:14px;margin-top:20px}
.gallery{grid-template-columns:1.1fr 1fr 1fr;grid-template-rows:245px 245px}
.gallery-item:nth-child(n){grid-column:auto;grid-row:auto}
.gallery-item:nth-child(1){grid-column:1;grid-row:1/span 2}
.gallery-item:nth-child(2){grid-column:2;grid-row:1}
.gallery-item:nth-child(3){grid-column:3;grid-row:1}
.gallery-item:nth-child(4){grid-column:2;grid-row:2}
.gallery-item:nth-child(5){grid-column:3;grid-row:2}
.gallery-item:nth-child(n) img{object-position:50% 50%}




@media(max-width:760px){.envelope-intro{padding:16px}.envelope-controls{margin-top:24px;gap:8px}.envelope-heading .eyebrow{font-size:7px;letter-spacing:.18em}.envelope-heading .envelope-heading-title{font-size:24px;margin-top:7px}.envelope-hint{font-size:8px;letter-spacing:.16em}.envelope-skip{font-size:13px}.envelope-seal{box-shadow:1px 3px 5px #6043172d,inset 0 0 0 2px #e2c99599,inset 0 0 0 4px #a47d4677}.envelope-letter:after{inset:6px}.invitation-cover{min-height:calc(100svh - 74px);padding:25px 18px 34px}.main-cover-card{min-height:min(660px,calc(100svh - 133px));padding:37px 22px 30px}.main-cover-card .cover-names{width:min(300px,100%)}.main-cover-card>.eyebrow{font-size:8px}.cover-guest{font-size:20px;margin-top:12px}.cover-scroll{font-size:8px;margin-top:24px}.main-cover-card .cover-bottom{font-size:13px;max-width:235px;margin-top:19px}.gallery{grid-template-columns:1fr 1fr;grid-template-rows:410px 280px 280px;gap:13px}.gallery-item:nth-child(1){grid-column:1/-1;grid-row:1}.gallery-item:nth-child(2){grid-column:1;grid-row:2}.gallery-item:nth-child(3){grid-column:2;grid-row:2}.gallery-item:nth-child(4){grid-column:1;grid-row:3}.gallery-item:nth-child(5){grid-column:2;grid-row:3}}
@media(max-width:370px){.gallery{grid-template-rows:370px 250px 250px}.envelope-heading .envelope-heading-title{font-size:22px}}
@media(max-height:680px){.envelope-controls{margin-top:17px}.envelope-hint{font-size:8px}.envelope-heading .envelope-heading-title{font-size:22px}.envelope-heading .eyebrow{font-size:7px}.main-cover-card{padding-top:29px;padding-bottom:25px}.main-cover-card .cover-names{width:min(280px,100%)}.cover-scroll{margin-top:18px}}
@media(prefers-reduced-motion:reduce){.envelope-intro *,.cover-scroll .icon{animation:none!important;transition:none!important}}
