.envelope-screen{display:none}
html.envelope-locked,html.envelope-locked body{overflow:hidden}
html.envelope-locked .envelope-screen{display:grid}
.envelope-screen{position:fixed;inset:0;z-index:1000;place-items:center;padding:24px;background:radial-gradient(ellipse at 50% 30%,#fffaf1 0%,#e9ddca 64%,#d8c7ae 100%);text-align:center;overflow:hidden;transition:opacity .65s ease,visibility .65s ease}
.envelope-screen:before,.envelope-screen:after{content:"";position:absolute;width:min(42vw,360px);height:min(42vw,360px);background:url('floral-corner.svg') center/contain no-repeat;opacity:.18;pointer-events:none}
.envelope-screen:before{bottom:-5%;left:-4%}.envelope-screen:after{top:-5%;right:-4%;transform:rotate(180deg)}
.envelope-stage{width:min(100%,540px);position:relative;z-index:1}
.envelope-intro{font:600 10px 'DM Sans',sans-serif;letter-spacing:.22em;color:#916533;text-transform:uppercase;margin-bottom:24px}
.envelope{position:relative;display:block;width:100%;aspect-ratio:1.52;border:0;padding:0;cursor:pointer;background:#6b2830;box-shadow:0 24px 50px #55212938,0 3px 12px #55212925;perspective:900px;isolation:isolate}
.envelope:focus-visible{outline:3px solid #ae7a38;outline-offset:7px}
.envelope-inner{position:absolute;inset:0;background:linear-gradient(130deg,#823940,#551d27);overflow:hidden}
.envelope-inner:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,#ffffff05 0 1px,transparent 1px 5px);pointer-events:none}
.envelope-pocket{position:absolute;inset:0;background:linear-gradient(155deg,#8e3e45,#69252f 68%,#541c26);clip-path:polygon(0 100%,0 18%,50% 70%,100% 18%,100% 100%);filter:drop-shadow(0 -3px 3px #3b151a38);z-index:2}
.envelope-flap{position:absolute;inset:0;background:linear-gradient(165deg,#984a4c,#6d2831 70%);clip-path:polygon(0 0,100% 0,50% 64%);transform-origin:50% 0;z-index:3;transition:transform .65s ease,filter .65s ease;filter:drop-shadow(0 3px 3px #42182070)}
.envelope-seal{position:absolute;left:50%;top:57%;z-index:4;display:grid;place-items:center;width:clamp(70px,15vw,94px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:46% 53% 48% 52%;border:2px solid #a95650;background:radial-gradient(circle at 35% 25%,#bd5750,#8b1d2a 53%,#59131e 100%);box-shadow:0 5px 12px #3b111a75,inset 0 0 0 4px #6b1823,inset 0 0 0 5px #d79767;transition:opacity .25s ease,transform .5s ease}
.envelope-seal span{color:#eed4a5;font:italic clamp(20px,5.5vw,29px) 'Cormorant Garamond',serif;white-space:nowrap;text-shadow:0 1px 1px #42101b}
.envelope-seal{width:clamp(76px,16vw,100px);aspect-ratio:1;border:1px solid #71303a;border-radius:44% 53% 47% 52% / 51% 45% 55% 49%;background:radial-gradient(ellipse at 27% 16%,#efaa91 0%,#d57569 7%,transparent 20%),radial-gradient(ellipse at 82% 82%,#b3484a 0%,transparent 22%),radial-gradient(circle at 38% 27%,#c85957 0%,#a52e3a 42%,#711a27 76%,#52111c 100%);box-shadow:0 9px 11px #32101885,0 3px 2px #46121a,inset 2px 3px 4px #ffc2a080,inset -3px -5px 6px #450b18c9,inset 0 0 0 5px #8d2632;isolation:isolate}
.envelope-seal:before{content:"";position:absolute;inset:11%;border:2px solid #b64d4b;border-radius:50%;box-shadow:0 2px 2px #490c18,inset 0 2px 5px #490d19d9,inset 0 -1px 1px #e98c7399;background:radial-gradient(ellipse at 35% 25%,#b64b4b,#912633 57%,#741a28 100%)}
.envelope-seal:after{content:"";position:absolute;top:8%;left:22%;width:30%;height:8%;border-radius:50%;background:linear-gradient(90deg,transparent,#ffd4b4bb,transparent);transform:rotate(-28deg);filter:blur(1px);pointer-events:none}
.envelope-seal span{display:block;position:relative;color:#6d1b29;font:italic 600 clamp(21px,5.5vw,30px) 'Cormorant Garamond',serif;white-space:nowrap;text-shadow:0 -1px 1px #430d18,0 1px 0 #d66e65,1px 2px 2px #ec978077}
.envelope-seal{width:clamp(120px,27vw,160px);aspect-ratio:3/2;border:0;border-radius:0;background:transparent url('wax-seal-matte.png') center/contain no-repeat;box-shadow:none;filter:drop-shadow(0 4px 3px #350d1880)}
.envelope-seal:before,.envelope-seal:after,.envelope-seal span{display:none}
.envelope{box-shadow:0 24px 42px #30121550,0 4px 7px #32101945,inset 0 0 0 1px #e9ab8e55}
.envelope-inner{background:repeating-linear-gradient(7deg,#f4d9b00a 0 1px,transparent 1px 5px),repeating-linear-gradient(100deg,#2c11140b 0 1px,transparent 1px 4px),linear-gradient(135deg,#8d4147,#52202a)}
.envelope-pocket{background:repeating-linear-gradient(8deg,#f2c69d0b 0 1px,transparent 1px 5px),linear-gradient(155deg,#91444b,#742d36 57%,#451821);filter:drop-shadow(0 -3px 3px #280b0e80)}
.envelope-flap{background:repeating-linear-gradient(105deg,#f3c8a00c 0 1px,transparent 1px 4px),linear-gradient(165deg,#a65a59,#702a34 70%,#4c1721);filter:drop-shadow(0 5px 4px #2a0c11a0)}
/* Ivory stationery with a woven burgundy accent. */
.envelope{background:#eadac2;box-shadow:0 24px 45px #51322538,0 4px 8px #51322528,inset 0 0 0 1px #bd9b72}
.envelope-inner{background:repeating-linear-gradient(100deg,#80614508 0 1px,transparent 1px 4px),linear-gradient(140deg,#f6ead6,#d9c4a6)}
.envelope-pocket{background:repeating-linear-gradient(8deg,#8b6e5108 0 1px,transparent 1px 5px),linear-gradient(155deg,#fcf3e4,#e8d7be 76%,#dac4a6);filter:drop-shadow(0 -3px 3px #76543b42)}
.envelope-flap{background:repeating-linear-gradient(105deg,#82634509 0 1px,transparent 1px 4px),linear-gradient(160deg,#fff8ec,#efe0c9 72%,#dfc9ab);filter:drop-shadow(0 5px 4px #76543b60)}
.envelope-pocket:before,.envelope-flap:before{content:"";position:absolute;top:0;bottom:0;left:9%;width:12%;border-left:2px solid #b98b4e;border-right:2px solid #b98b4e;background-color:#6c2930;background-image:repeating-linear-gradient(45deg,transparent 0 7px,#c99457 7px 9px,transparent 9px 16px),repeating-linear-gradient(-45deg,transparent 0 7px,#c99457 7px 9px,transparent 9px 16px);box-shadow:inset 0 0 0 3px #64232c}
.envelope-pocket:after{content:"";position:absolute;right:6%;bottom:8%;width:22%;aspect-ratio:1;background:url('floral-corner.svg') center/contain no-repeat;opacity:.25;transform:rotate(180deg)}
.envelope-names{margin:27px 0 5px;color:#59232a;font:italic 42px/1 'Cormorant Garamond',serif}
.envelope-hint{font:600 10px 'DM Sans',sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#8a643e}
.envelope-screen.is-opening{opacity:0;visibility:hidden;transition-delay:1.35s}
.envelope-screen.is-opening .envelope-flap{transform:rotateX(165deg);filter:none}
.envelope-screen.is-opening .envelope-seal{opacity:0;transform:translate(-50%,-50%) scale(.75)}
.envelope-screen.is-opening .envelope{animation:envelope-expand 1.35s .35s cubic-bezier(.45,0,.3,1) forwards}
.envelope-screen.is-opening .envelope-intro,.envelope-screen.is-opening .envelope-names,.envelope-screen.is-opening .envelope-hint{opacity:0;transition:opacity .3s ease}
@keyframes envelope-expand{0%{transform:scale(1)}100%{transform:scale(4.4)}}
html.envelope-locked .hero:before,html.envelope-locked .hero:after,html.envelope-locked .hero-content{animation-play-state:paused}
.hero h1[tabindex="-1"]:focus{outline:none}
.venue-map{width:min(100%,660px);margin:42px auto 0;padding:8px;background:#fffaf3;border:1px solid #ccb595;box-shadow:0 8px 25px #55212912}
.venue-map iframe{display:block;width:100%;height:280px;border:0;filter:saturate(.68) sepia(.12);background:#eee4d3}
.map-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;text-align:left;padding:13px 12px 5px;font-size:12px;color:#66544a}
.map-caption a{color:#59232a;font-weight:600;text-underline-offset:3px}.map-caption small{font-size:10px;color:#77665a}
@media(max-width:650px){.envelope-screen{padding:20px}.envelope-intro{margin-bottom:20px}.envelope-names{font-size:38px}.venue-map{margin-top:35px}.venue-map iframe{height:235px}.map-caption{display:block}.map-caption a,.map-caption small{display:block;margin-top:5px}}
@media(prefers-reduced-motion:reduce){.envelope-screen,.envelope-flap,.envelope-seal{transition:none!important}.envelope-screen.is-opening .envelope{animation:none}}
