html.sealed{overflow:hidden}.envelope-stage{position:fixed;inset:0;background:#141b19;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;color:#ece4ce;perspective:1200px;transition:opacity 1s,visibility 1s}.envelope-light{position:absolute;inset:-30%;background:radial-gradient(ellipse,#6e604340,transparent 58%);pointer-events:none}.envelope-kicker{position:relative;font-size:9px;letter-spacing:.32em;color:#c0ab7c;margin-bottom:72px}.envelope-scene{width:min(510px,80vw);height:300px;position:relative;perspective:1200px;margin-bottom:52px}.envelope-shadow{position:absolute;bottom:-20px;left:5%;width:90%;height:40px;background:#0008;border-radius:50%;filter:blur(20px)}.envelope{width:100%;height:100%;position:relative;transform-style:preserve-3d;transform:rotate(-4deg);transition:transform 1.2s}.envelope-lining{position:absolute;inset:0;background:repeating-linear-gradient(45deg,#87764f 0 1px,#b09a6d 1px 9px);border-radius:4px;box-shadow:0 25px 90px #0009}.envelope-pocket{position:absolute;inset:0;z-index:4;background:linear-gradient(150deg,#efe5cd,#cdbd98);clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%)}.envelope-pocket:after{content:'';position:absolute;inset:0;background:linear-gradient(35deg,#dfd2b6 49.6%,#bca77f 50%,#eee3c9 50.4%);clip-path:polygon(0 100%,50% 44%,100% 100%)}.envelope-flap{position:absolute;inset:0;background:linear-gradient(#f5ecd7,#d5c49e);clip-path:polygon(0 0,100% 0,50% 59%);transform-origin:top;z-index:5;transition:transform 1.15s cubic-bezier(.4,0,.2,1),filter .7s;backface-visibility:hidden;filter:drop-shadow(0 4px 2px #59472840)}.wax-seal{position:absolute;z-index:7;left:50%;top:47%;transform:translate(-50%,-50%);border:0;width:94px;height:94px;color:#573b16;border-radius:50%;background:radial-gradient(ellipse at 30% 20%,#f9e6aa,#c6a158 50%,#9b7233 80%,#dabb75);box-shadow:0 6px 8px #4e371a65,inset 0 0 0 3px #dfbe76,inset 0 0 0 5px #9d773a;display:flex;align-items:center;justify-content:center;flex-direction:column;transition:transform .6s,opacity .5s;animation:seal-glow 3s infinite}.seal-ring{position:absolute;inset:10px;border:1px solid #7e5c2b90;border-radius:50%}.seal-initials{font:25px Georgia,serif;letter-spacing:-3px;text-shadow:0 1px #fff3}.wax-seal small{font-size:5px;letter-spacing:2px;margin-top:7px}.wax-seal:hover{transform:translate(-50%,-50%) scale(1.08)}.envelope-letter{position:absolute;inset:14px 25px 0;background:#fbf7ee;border:1px solid #d3bc85;z-index:2;text-align:center;display:flex;align-items:center;flex-direction:column;justify-content:center;padding:20px;color:#4e493a;transition:transform 1.2s cubic-bezier(.2,.7,.3,1),opacity .8s;box-shadow:0 0 0 6px #f5efdf,0 0 0 7px #cdbb8e}.envelope-letter>span{font:17px Georgia;margin-bottom:15px;color:#a28245}.envelope-letter small{font-size:6px;letter-spacing:2px}.letter-names{font:44px/1.1 'Cormorant Garamond',Georgia,serif;margin:15px 0}.letter-names em{color:#a28245}.envelope-letter p{font:italic 16px Georgia}.envelope-letter i{color:#b3904d;font-size:24px;margin-top:13px}.envelope-caption{text-align:center;position:relative}.envelope-caption h1{font:italic 36px 'Cormorant Garamond',Georgia,serif}.envelope-caption p{font-size:10px;color:#aeab9c;margin:15px 0}.open-text{background:none;color:#cbb57e;border:0;font-size:8px;letter-spacing:2px;padding:14px;cursor:pointer}.open-text span{margin-left:15px}.envelope-foot{position:absolute;bottom:26px;font-size:7px;letter-spacing:2px;opacity:.4}.opening .wax-seal{opacity:0;transform:translate(-50%,-50%) scale(1.5);animation:none}.opening .envelope{transform:rotate(0) translateY(35px)}.opening .envelope-flap{transform:rotateX(-180deg);filter:brightness(.7)}.opening .envelope-letter{transform:translateY(-150px);transition-delay:.75s;z-index:3}.departing{opacity:0;visibility:hidden;pointer-events:none}.gold-motes{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:2}.gold-motes i{position:absolute;left:var(--x);bottom:-20px;width:3px;height:3px;border-radius:50%;background:#c8a557;box-shadow:0 0 9px #e5c471;opacity:0;animation:mote var(--duration) var(--delay) infinite linear}.invitation-open .overview .ornament{animation:bloom 1.5s ease both}.reveal-heading{margin:22px 0 12px}.reveal-heading>span{font-size:8px;letter-spacing:.25em;color:var(--accent)}.reveal-heading p{font:italic 18px 'Cormorant Garamond',Georgia,serif;margin-top:9px}.event-links{border:0!important;gap:18px;max-width:760px;width:100%;margin-bottom:30px}.event-links a+a{border-left:0}.event-links .scratch-date{position:relative;border:1px solid color-mix(in srgb,var(--accent) 60%,transparent);padding:25px 12px 16px;min-height:210px;overflow:visible;background:var(--paper);transition:box-shadow .4s,transform .4s}.scratch-date:hover{box-shadow:0 10px 35px #38290615;transform:translateY(-3px)}.scratch-date h3{font-size:30px;margin:8px 0 14px}.scratch-date-value{display:flex;flex-direction:column;gap:5px;min-height:95px;justify-content:center}.scratch-date-value .day{font-size:50px}.scratch-date-value>span:last-child{font-size:10px}.gold-foil{position:absolute;left:8px;right:8px;bottom:8px;width:calc(100% - 16px);height:100px;cursor:crosshair;touch-action:none;transition:opacity .8s;z-index:2;border-radius:2px}.foil-caption{position:absolute;left:10px;right:10px;bottom:19px;height:76px;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#5f461f;pointer-events:none;z-index:3;transition:opacity .7s;text-shadow:0 1px #ffffff40}.foil-caption>span{font-size:20px}.foil-caption b{font-size:8px;letter-spacing:.16em;margin:6px 0}.foil-caption small{font:italic 13px Georgia}.revealed .gold-foil,.revealed .foil-caption{opacity:0!important;pointer-events:none}.foil-confetti{position:absolute;z-index:5;left:50%;top:70%;width:5px;height:9px;background:#c7a050;pointer-events:none;animation:foil-burst 1s forwards;transform:rotate(var(--angle))}.event-art .arch{transition:transform 1.3s,opacity 1.3s;transform:translateY(30px);opacity:.4}.in-view .arch{transform:translateY(0);opacity:1}.event-content>h2{transition:letter-spacing 1.5s;letter-spacing:-3px}.in-view .event-content>h2{letter-spacing:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes foil-burst{to{transform:rotate(var(--angle)) translateY(-85px) rotate(160deg);opacity:0}}@keyframes seal-glow{50%{box-shadow:0 6px 8px #4e371a65,0 0 35px #ebc97c30,inset 0 0 0 3px #dfbe76,inset 0 0 0 5px #9d773a}}@keyframes mote{10%,80%{opacity:.4}to{transform:translate(35px,-110vh);opacity:0}}@keyframes bloom{from{transform:scale(.6) rotate(-90deg);opacity:0}to{transform:scale(1);opacity:1}}@media(max-width:650px){.envelope-scene{height:220px;width:82vw;margin-bottom:45px}.envelope-kicker{font-size:7px;margin-bottom:60px;letter-spacing:.22em}.wax-seal{width:78px;height:78px}.seal-initials{font-size:23px}.envelope-letter{inset:10px 20px 0;padding:10px}.letter-names{font-size:32px;margin:10px 0}.envelope-letter>span{font-size:14px;margin-bottom:10px}.envelope-letter p{font-size:12px}.envelope-letter i{font-size:20px;margin-top:8px}.envelope-caption h1{font-size:32px}.opening .envelope-letter{transform:translateY(-120px)}.event-links{gap:8px}.event-links .scratch-date{padding:16px 5px 10px;min-height:184px}.scratch-date h3{font-size:24px}.scratch-date-value .day{font-size:38px}.gold-foil{left:4px;right:4px;width:calc(100% - 8px);height:92px;bottom:4px}.foil-caption{left:4px;right:4px;bottom:12px}.foil-caption b{font-size:6px;letter-spacing:0}.foil-caption small{font-size:10px}.reveal-heading p{font-size:16px}.overview{padding-left:20px;padding-right:20px}.reveal-heading>span{font-size:7px}}@media(prefers-reduced-motion:reduce){.envelope-stage *,.gold-motes i,.foil-confetti{animation:none!important;transition:none!important}.event-art .arch{transform:none;opacity:1}}
.overview h1[tabindex="-1"]:focus{outline:none}.scratch-date{user-select:none;-webkit-user-select:none;-webkit-user-drag:none}.foil-caption{overflow:hidden}.foil-caption:after{content:"";position:absolute;inset:-40% -80%;background:linear-gradient(115deg,transparent 40%,#fff6 49%,transparent 58%);animation:foil-sheen 4s ease-in-out infinite;pointer-events:none}@keyframes foil-sheen{0%,20%{transform:translateX(-60%)}80%,100%{transform:translateX(60%)}}@media(prefers-reduced-motion:reduce){.foil-caption:after{animation:none}}
.scratch-date-value .day{line-height:1}.scratch-date-value .reveal-month{font:7px Manrope,sans-serif;letter-spacing:.1em;color:var(--accent)}
.envelope-loading main,.envelope-loading .site-header,.envelope-loading .page-dots{visibility:hidden}
