.envelope-scene{position:relative;padding:80px 0 50px;perspective:1400px;width:100%;max-width:470px;margin:auto}.envelope{height:350px;position:relative;background:#173650;box-shadow:0 15px 35px #102d492a;transform:rotate(-6deg);isolation:isolate}.envelope-lining{position:absolute;inset:0;background:linear-gradient(#fbf6e555,#fbf6e555),url(/assets/floral-frame.png) center/cover;border:1px solid #c1a46e;z-index:0}.envelope-front{position:absolute;inset:0;background:linear-gradient(30deg,#0d233c,#23445e);clip-path:polygon(0 0,50% 45%,100% 0,100% 100%,0 100%);z-index:4;border:1px solid #c1a46e}.envelope-front:after{content:"";position:absolute;inset:15px;border:1px solid #b8a16d55;clip-path:polygon(0 30%,100% 30%,100% 100%,0 100%)}.envelope-flap{position:absolute;inset:0 0 50%;background:linear-gradient(160deg,#284661,#102a45);clip-path:polygon(0 0,100% 0,50% 92%);transform-origin:top;z-index:7;transition:transform 1.1s cubic-bezier(.3,.1,.3,1),filter 1s;filter:drop-shadow(0 3px 1px #bba06a)}.envelope-initials{position:absolute;top:55%;left:0;right:0;text-align:center;color:#caa56b;font-size:26px;letter-spacing:6px}.envelope-inscription{position:absolute;bottom:22px;left:0;right:0;text-align:center;color:#b49f78;font:8px Arial;letter-spacing:3px}.seal{position:absolute;left:50%;top:32%;transform:translate(-50%);border-radius:50%;width:77px;height:77px;background:radial-gradient(circle,#d6b570,#a77c3e);border:3px double #f4deb0;box-shadow:0 5px 12px #071c3d77;z-index:9;color:#17344c;display:grid;place-items:center;transition:opacity .4s,transform .4s}.seal span{font-size:42px}.seal:hover{transform:translate(-50%) scale(1.08)}.tassel{position:absolute;left:50%;top:52%;width:64px;height:170px;transform:translate(-50%);z-index:6;transform-origin:top;animation:tassel-sway 4s ease-in-out infinite;transition:opacity .5s}.cord{height:25px;width:2px;background:#b88b42;display:block;margin:auto}.knot{display:block;color:#d4b378;text-align:center;font-size:38px;line-height:35px}.pearl{display:block;background:radial-gradient(circle at 30% 25%,#fff,#e5dcd0 60%,#8c8073);height:13px;width:13px;border-radius:50%;margin:3px auto}.threads{display:block;margin:auto;width:60px;height:85px;clip-path:polygon(35% 0,65% 0,100% 100%,0 100%);background:repeating-linear-gradient(87deg,#132c47,#496784,#112b46 4px);border-top:5px solid #b49252}.keepsake{position:absolute;left:10%;top:10%;width:64%;height:85%;background:#fffaf1;box-shadow:0 4px 12px #102b432b;z-index:2;padding:12px;text-align:center;transition:transform 1.3s cubic-bezier(.2,.7,.3,1);overflow:hidden}.keepsake-left{transform:rotate(-9deg);left:7%;padding-bottom:25px}.keepsake-art{height:85%;background:url(/assets/peacock-card.png) center/cover}.keepsake-left>span{display:block;font:italic 14px Georgia;color:#8a744d;margin-top:10px}.keepsake-right{left:28%;transform:rotate(7deg);display:flex;flex-direction:column;justify-content:center;gap:15px;background:linear-gradient(#fff9ede8,#fff9ede8),url(/assets/floral-frame.png) center/cover}.keepsake-right .double-happiness{font-size:34px}.keepsake-right em{font-size:27px;color:#987237;line-height:1.3}.keepsake-right .small-caps{font-size:7px;letter-spacing:2px}.card-date{font:9px Arial;letter-spacing:2px;color:#88734e}.opening-hint{text-align:center;font:8px Arial;letter-spacing:2px;color:#978563;margin:35px -15px 0}.opened .envelope-flap{transform:rotateX(180deg);z-index:1;filter:brightness(.7)}.opened .seal{opacity:0;transform:translate(-50%) scale(.6);pointer-events:none}.opened .tassel{opacity:0;animation:none}.opened .keepsake-left{transform:translate(-20px,-145px) rotate(-15deg);transition-delay:.65s}.opened .keepsake-right{transform:translate(20px,-165px) rotate(10deg);transition-delay:.9s}.opened .opening-hint{color:#ad8444}@keyframes tassel-sway{0%,to{transform:translate(-50%) rotate(-4deg)}50%{transform:translate(-50%) rotate(4deg)}}@media(max-width:760px){.envelope-scene{padding:50px 10px 30px;max-width:335px}.envelope{height:250px;transform:rotate(-4deg)}.seal{width:60px;height:60px}.seal span{font-size:32px}.envelope-initials{font-size:20px}.tassel{transform:translate(-50%) scale(.8);height:135px}.threads{height:60px;width:48px}.knot{font-size:28px;line-height:28px}.cord{height:18px}.pearl{width:10px;height:10px}.envelope-inscription{font-size:6px;bottom:15px;letter-spacing:2px}.keepsake-right{gap:9px;padding:8px}.keepsake-right em{font-size:22px}.keepsake-right .double-happiness{font-size:23px}.keepsake-left>span{font-size:11px}.opened .keepsake-left{transform:translate(-5px,-100px) rotate(-14deg)}.opened .keepsake-right{transform:translate(5px,-120px) rotate(9deg)}.opening-hint{font-size:7px;letter-spacing:1.3px;margin-top:28px}}:root{font-family:Georgia,Times New Roman,serif;color:#17364f;background:#f8f2e8;--navy:#122d49;--gold:#ad8444;--cream:#f8f2e8;--red:#a52d3c;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background-image:radial-gradient(#c9af881a .7px,transparent .7px);background-size:5px 5px}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #a84438;outline-offset:5px}[hidden]{display:none!important}.masthead{height:90px;max-width:1440px;margin:auto;padding:0 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #b697602d}.monogram{font-size:25px;text-decoration:none;letter-spacing:3px;color:var(--gold)}.monogram span{font-size:20px}.masthead-label,.eyebrow,.small-caps{font:10px/1.8 Arial,sans-serif;letter-spacing:3px}.masthead-label{color:#7d765f}.music{position:fixed;right:22px;bottom:22px;z-index:30;border:1px solid #c4a264;background:var(--navy);color:#e9d2a7;border-radius:50%;width:44px;height:44px}.hero{max-width:1440px;margin:auto;min-height:calc(100svh - 90px);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:50px;padding:65px 7% 90px;position:relative}.eyebrow{color:var(--gold);margin:0 0 24px}.hero h1{font-weight:400;font-size:clamp(46px,5.6vw,82px);line-height:1.12;letter-spacing:-2px;margin:0}.hero h1 em{font-weight:400}.ampersand{color:var(--gold);font-size:.65em;font-style:italic}.gold-rule{width:80px;height:1px;background:var(--gold);margin:28px 0}.date-line{font:11px Arial,sans-serif;letter-spacing:2px}.date-line span{padding:0 10px;color:var(--gold)}.dedication{color:#7b786d;font-size:17px;font-style:italic;line-height:1.7;margin:26px 0}.recipient{border-left:1px solid #b59053;padding-left:18px;margin-top:35px;max-width:400px}.recipient>span{display:block;font:9px Arial,sans-serif;letter-spacing:2px;color:#8b7759}.recipient strong{display:block;font-size:22px;font-weight:400;margin:9px 0;overflow-wrap:anywhere}.recipient small{font:11px/1.6 Arial,sans-serif;color:#8f877a}.scroll-cue{position:absolute;bottom:25px;left:50%;transform:translate(-50%);text-decoration:none;font:11px Arial,sans-serif;color:#8b7759;letter-spacing:1px;white-space:nowrap}.scroll-cue span{display:inline-block;margin-left:15px;font-size:20px}.paper-section{background-color:#f8f2e8;background-image:url(/assets/floral-frame.png);background-position:center;background-size:100% 100%}.welcome{padding:120px 20px;text-align:center;min-height:650px;display:grid;place-items:center;border-top:1px solid #ccb78c55}.welcome-inner{max-width:620px;padding:35px;background:#fbf6edeb}.double-happiness{color:var(--gold);font-size:58px}.welcome .eyebrow{margin-top:25px}h2{font-size:clamp(34px,4vw,54px);line-height:1.2;font-weight:400;margin:0 0 26px}p{line-height:1.8}.welcome-inner>p:not(.eyebrow):not(.signature){font-size:18px;color:#66665d}.signature{font-size:30px;font-style:italic;color:var(--gold);margin:30px 0}.ornament{font-size:26px;color:var(--gold)}.details-section{display:grid;grid-template-columns:1fr 1fr;max-width:1200px;margin:auto;padding:110px 40px;gap:90px;align-items:center}.detail-art{background:url(/assets/peacock-card.png) center/cover;aspect-ratio:3/4;display:grid;place-items:center;border:1px solid #c4a264;box-shadow:10px 12px #e7dac5}.detail-art>span{display:block;text-align:center;background:#fbf5e8ed;padding:30px 20px;font-size:24px;line-height:1.6;max-width:80%;border:1px solid #ceb681}.detail-art em{font-size:21px}.event-details{margin:35px 0}.event-details div{padding:18px 0;border-bottom:1px solid #cbb99655}.event-details dt{font:9px Arial,sans-serif;letter-spacing:2px;color:var(--gold);margin-bottom:10px}.event-details dd{margin:0;font-size:23px;line-height:1.45}.red-dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--red);margin-right:8px}.button{display:flex;justify-content:space-between;align-items:center;gap:30px;min-height:50px;padding:15px 22px;text-decoration:none;font:12px Arial,sans-serif;letter-spacing:.7px;border:1px solid var(--gold)}.outline{background:transparent;color:var(--navy);max-width:220px}.primary{background:var(--navy);color:#fff8ea;width:100%}.primary:hover{background:#234968}.button:disabled{opacity:.55;cursor:wait}.countdown-section{background:var(--navy);text-align:center;padding:85px 20px;color:#f6e9d0;position:relative}.countdown-section:before,.countdown-section:after{content:"◇";color:#ac8a50;position:absolute;top:45%;font-size:40px;left:6%}.countdown-section:after{left:auto;right:6%}.countdown-section h2{font-style:italic}.countdown{display:flex;justify-content:center;align-items:flex-start;gap:25px;margin:35px auto}.countdown strong{display:block;font-size:55px;font-weight:400;font-variant-numeric:tabular-nums}.countdown span{display:block;font:9px Arial,sans-serif;letter-spacing:3px;margin-top:10px;color:#c4b69c}.countdown i{font-size:32px;color:#9d865e;margin-top:12px}.countdown-section>p:last-child{font-size:15px;color:#c7bba8}.gallery{text-align:center;padding:90px 30px}#gallery-photos{display:flex;gap:25px;justify-content:center;flex-wrap:wrap}#gallery-photos figure{margin:0;background:#fff;padding:12px 12px 35px;width:260px;box-shadow:0 10px 25px #142b4420;transform:rotate(-4deg)}#gallery-photos figure:nth-child(2n){transform:rotate(5deg)}#gallery-photos img{width:100%;height:300px;object-fit:cover}.rsvp-section{padding:110px max(30px,calc((100% - 1100px)/2));display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;background-image:url(/assets/feather-card.png);background-position:left center;background-size:auto 100%;background-repeat:no-repeat}.rsvp-intro{background:#faf5e9e8;padding:30px}.rsvp-intro>p{color:#706f63}.rsvp-intro .eyebrow{color:var(--gold)}.rsvp-deadline{font-size:13px}.rsvp-form{background:#fffaf1f5;border:1px solid #c5ab76;padding:32px;box-shadow:0 20px 60px #5c442015}.form-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #d3c29e;padding-bottom:17px;margin-bottom:25px;color:var(--gold);font-size:25px}.form-top span:first-child{font:11px Arial;letter-spacing:3px}.rsvp-form>label{font:9px Arial;letter-spacing:1.5px;color:#8a795c}.rsvp-form strong{display:block;color:var(--navy);font:24px/1.4 Georgia;margin:12px 0 25px;overflow-wrap:anywhere}fieldset{border:0;margin:0;padding:0;min-width:0}legend,.count-label{font:9px Arial,sans-serif;letter-spacing:1.2px;color:#8a795c;margin:0 0 12px}.radio-option{display:flex;gap:12px;align-items:center;padding:13px 0;font-size:15px}.radio-option input{accent-color:var(--navy);width:18px;height:18px;flex-shrink:0}.count-label{display:flex;justify-content:space-between;gap:10px;margin:24px 0 10px}.count-label small{letter-spacing:0}select{width:100%;height:45px;border:1px solid #cbb992;background:#fffcf5;color:var(--navy);padding:0 12px;border-radius:0}.rsvp-form .button{margin-top:22px}#rsvp-message{font:12px/1.7 Arial,sans-serif;color:#81745e;margin:18px 0 0}#rsvp-message.success{color:#427148}.retry{border:0;background:none;text-decoration:underline;color:var(--navy);padding:12px 0}.muted{opacity:.5}.closing{text-align:center;padding:100px 20px;background:linear-gradient(#f8f2e8e8,#f8f2e8e8),url(/assets/floral-frame.png) center/cover}.closing .double-happiness{display:block;font-size:40px}.closing>p:not(.signature):not(.eyebrow){color:#7b786d}footer{display:flex;justify-content:space-between;gap:20px;padding:25px 6%;border-top:1px solid #cbb99655;color:#9a8c73;font:9px Arial,sans-serif;letter-spacing:1.5px}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}@media(min-width:1500px){.paper-section{background-size:cover}}@media(max-width:760px){.masthead{height:65px;padding:0 24px}.masthead-label{font-size:7px;letter-spacing:1.6px}.monogram{font-size:20px}.hero{grid-template-columns:1fr;gap:35px;text-align:center;padding:35px 22px 70px;min-height:0}.hero h1{font-size:47px;letter-spacing:-1px}.hero .eyebrow{font-size:8px;letter-spacing:2px;margin-bottom:16px}.hero h1 br{display:none}.hero h1 em{display:block}.ampersand{display:block;line-height:.9;font-size:25px;margin:8px 0}.gold-rule{margin:18px auto;width:55px}.date-line{font-size:9px;letter-spacing:1.2px}.dedication{font-size:14px;margin:16px 0}.recipient{border-left:0;margin:20px auto 0;padding:0}.recipient strong{font-size:20px}.recipient small{font-size:10px}.welcome{min-height:0;padding:75px 20px;background-size:auto 100%}.welcome-inner{padding:25px 12px}.welcome-inner>p:not(.eyebrow):not(.signature){font-size:16px}.eyebrow{font-size:8px;letter-spacing:2px}.signature{font-size:27px}.details-section{grid-template-columns:1fr;padding:65px 28px;gap:55px}.detail-art{max-height:460px;width:100%;max-width:355px;margin:auto}.details-copy{max-width:400px;width:100%;margin:auto}.event-details dd{font-size:21px}.countdown-section{padding:65px 20px}.countdown-section:before,.countdown-section:after{display:none}.countdown{gap:12px}.countdown strong{font-size:38px}.countdown i{font-size:23px;margin-top:8px}.countdown span{font-size:8px;letter-spacing:1.5px}.rsvp-section{grid-template-columns:1fr;gap:24px;padding:65px 22px;background-size:auto 100%}.rsvp-intro{padding:22px 12px;text-align:center}.rsvp-form{padding:25px}.closing{padding:70px 24px}.closing .eyebrow{font-size:7px}footer{font-size:7px;letter-spacing:1px;padding:22px}.scroll-cue{bottom:20px}.music{right:12px;bottom:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}@media(max-width:760px){.hero h1{font-size:43px}.hero h1 br{display:block}.hero h1 em{display:inline}.ampersand{display:inline;font-size:27px;line-height:1;margin:0}.envelope-scene{padding-top:95px}}.music-box{position:fixed;left:16px;bottom:16px;z-index:80;width:240px;padding:8px;background:#f6eedc;color:#183449;border:1px solid #c9a267;border-radius:12px;box-shadow:0 10px 50px #0005}.cassette{background:#233c4c;border:2px solid #d1ab6c;border-radius:8px;padding:9px;color:#e5d8bc}.cassette-title{font:12px Georgia,serif;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#f1e6cd;color:#233c4c;padding:5px;border-radius:3px}.tape{margin:8px 12px;display:flex;align-items:center;justify-content:space-between;background:#102632;border-radius:20px;padding:3px 8px}.reel{display:block;font-size:26px;line-height:1;color:#d5c7a6;animation:tape-spin 2s linear infinite;animation-play-state:paused}.playing .reel{animation-play-state:running}.tape-window{height:12px;width:55px;background:linear-gradient(90deg,#ae8250,#291f18,#ae8250);border:1px solid #b19b7b}.cassette-bottom{display:flex;justify-content:space-between}.cassette-bottom button{background:none;border:0;color:#f3e3c5;cursor:pointer;font-size:12px}.music-box iframe{display:block;width:224px;height:200px;margin-top:8px;border:0}.music-status{font:10px Arial,sans-serif;display:block;line-height:1.4;margin-top:6px}.music-reopen{position:fixed;left:16px;bottom:16px;z-index:80;background:#183449;color:#ead6ab;border:1px solid #bd985d;border-radius:8px;padding:12px;max-width:240px;cursor:pointer}.music-box[hidden],.music-reopen[hidden]{display:none}@keyframes tape-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.reel{animation:none}}.dedication,#welcome p,.closing p{white-space:pre-line}.envelope-couple-photo{width:100%;height:100%;object-fit:cover;display:block}.couple-portraits{display:grid;grid-template-columns:1fr 1fr;gap:24px;width:min(100%,500px);margin:28px auto}.couple-portraits figure{margin:0;min-width:0}.couple-portraits img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border:4px solid #fff9ed;outline:1px solid #bea16a;border-radius:3px}.couple-portraits figcaption{font:italic 20px Georgia,serif;color:#987237;margin-top:12px}#welcome{scroll-margin-top:20px}@media(max-width:760px){.couple-portraits{gap:16px}.couple-portraits figcaption{font-size:17px}}
