:root{--paper:#f7f9fc;--ink:#344b63;--muted:#65758a;--line:#d5dde6;--serif:'Bodoni Moda',Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:14px}body:before{content:'';position:fixed;inset:0;pointer-events:none;opacity:.13;z-index:5;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23n)' opacity='.3' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid #527da6;outline-offset:6px}header{max-width:1240px;margin:auto;padding:28px 50px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.monogram{font:28px var(--serif);letter-spacing:2px}.monogram i{font-size:22px}.nav-link{font-size:11px;letter-spacing:1px}.nav-link span{margin-left:16px}.hero{max-width:1240px;margin:auto;padding:72px 75px 90px;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:70px}.hero-copy{text-align:center}.eyebrow{font-size:10px;font-weight:500;letter-spacing:2.6px;line-height:1.8}.script{font:italic 29px var(--serif);margin:42px 0 4px}h1{font:500 clamp(64px,6.5vw,96px)/1.1 var(--serif);margin:0;letter-spacing:-4px;white-space:nowrap}h1 em{font-weight:400;font-size:.72em;color:#7b96b2}.small-branch{font:30px var(--serif);margin:22px 0 16px;color:#7e98b1}.save{font:italic 34px var(--serif);margin:0 0 12px}.date{font:500 36px var(--serif);letter-spacing:3px;margin:0}.date span{padding:0 8px;color:#8195aa}.weekday{font-size:9px;letter-spacing:2.5px;margin:13px 0 32px}.inviting{font:20px/1.6 var(--serif)}.text-link{display:inline-block;font-size:10px;letter-spacing:.5px;margin-top:24px;border-bottom:1px solid #a6b8cb;padding-bottom:10px}.text-link span{margin-left:12px}.portrait{position:relative;margin:0;transform:rotate(2deg);padding:13px 13px 0;background:#ffffff;box-shadow:0 14px 36px #344b6320;border:1px solid #dbe2ea}.portrait img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover}.portrait figcaption{font:italic 21px var(--serif);text-align:center;padding:18px 4px 22px}.photo-stamp{position:absolute;right:-24px;bottom:62px;width:80px;height:80px;background:#dce6f0;border:1px solid #9eb2c8;border-radius:50%;display:flex;flex-direction:column;justify-content:center;text-align:center;transform:rotate(-12deg);font:22px var(--serif);box-shadow:0 3px 9px #0001}.photo-stamp small{font:9px 'Bodoni Moda';letter-spacing:2px;margin-top:5px}.note{text-align:center;padding:90px 20px;background:#e8eef5;border-top:1px solid #d0dbe7;border-bottom:1px solid #d0dbe7}h2{font:400 55px/1.05 var(--serif);letter-spacing:-1px;margin:22px 0 30px}h2 em{font-weight:400}.note>p:not(.eyebrow){font:21px/1.65 var(--serif);margin:20px 0}.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;padding:17px 25px;background:var(--ink);color:var(--paper);font-size:11px;letter-spacing:.5px;border:1px solid var(--ink);transition:background .2s,transform .2s}.button:hover{background:#476887;transform:translateY(-2px)}.button.light{color:var(--ink);background:transparent;margin:18px 0 0}.button.light:hover{background:#d8e4f0}.signature{display:block;font:italic 31px var(--serif);margin:35px 0 0}.venue{max-width:1120px;padding:100px 45px;margin:auto;display:grid;grid-template-columns:.9fr 1.1fr;gap:75px;align-items:center}.venue-name{font-size:11px;letter-spacing:1.5px;font-weight:600}.venue-copy>p:not(.eyebrow):not(.venue-name):not(.map-hint){font:20px/1.6 var(--serif);margin-bottom:28px}.map-hint{font-size:10px;line-height:1.6;color:var(--muted);margin-top:16px}.map-wrap{border:1px solid var(--line);padding:10px;background:#ffffff;transform:rotate(-1deg)}iframe{display:block;border:0;width:100%;height:340px;background:#e1e8ef}.map-caption{padding:17px 10px 8px;display:flex;justify-content:space-between;font:18px var(--serif)}.map-caption span{font:10px 'Bodoni Moda';align-self:center}footer{text-align:center;padding:50px 20px 45px;border-top:1px solid var(--line)}.footer-monogram{font:42px var(--serif);letter-spacing:0}footer p{font:italic 24px var(--serif);margin:12px 0 20px}.reopen{display:block;margin:25px auto 0;background:none;border:0;border-bottom:1px solid var(--line);color:var(--muted);font-size:10px;padding:6px}.intro{position:fixed;inset:0;z-index:20;background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;transition:opacity .6s}.intro[hidden]{display:none}.intro>.eyebrow{margin-bottom:70px}.envelope{position:relative;width:min(400px,85vw);height:250px;background:#dce5ef;box-shadow:0 20px 60px #344b6322;perspective:1000px}.letter{position:absolute;inset:15px 20px;background:#ffffff;text-align:center;padding:30px 10px;display:flex;flex-direction:column;gap:12px;transition:transform .9s .45s;box-shadow:0 0 6px #0001}.letter span{font:italic 26px var(--serif)}.letter strong{font:500 40px var(--serif)}.letter small{letter-spacing:3px;font-size:11px}.pocket{position:absolute;inset:0;z-index:3;background:#bdcfe1;clip-path:polygon(0 0,50% 53%,100% 0,100% 100%,0 100%)}.pocket:after{content:'';position:absolute;inset:0;background:#cfdeeb;clip-path:polygon(0 100%,50% 45%,100% 100%)}.flap{position:absolute;inset:0;z-index:4;background:#e0e9f3;clip-path:polygon(0 0,100% 0,50% 56%);transform-origin:top;transition:transform .7s,z-index .01s .35s}.seal{position:absolute;left:calc(50% - 32px);top:100px;z-index:6;width:64px;height:64px;border:4px double #597a9b;border-radius:50%;background:#6f8daa;color:#ffffff;font:21px var(--serif);box-shadow:0 3px 7px #0002;transition:opacity .2s}.seal span{font-style:italic;font-size:15px}.intro-hint{margin-top:40px;font:italic 22px var(--serif)}.skip{font-size:10px;color:var(--muted);border:0;border-bottom:1px solid var(--line);background:none;padding:6px;margin-top:10px}.envelope.open .flap{transform:rotateX(180deg);z-index:0}.envelope.open .seal{opacity:0;pointer-events:none}.envelope.open .letter{transform:translateY(-115px)}.intro.leaving{opacity:0;pointer-events:none}body.intro-active{overflow:hidden}
@media(min-width:1500px){.hero{padding-top:90px;padding-bottom:110px}}@media(max-width:760px){header{padding:20px 24px}.hero{grid-template-columns:1fr;padding:44px 27px 60px;gap:42px}.hero-copy>.eyebrow{font-size:9px;letter-spacing:2px}.script{margin-top:27px;font-size:26px}h1{font-size:72px;letter-spacing:-3px}.small-branch{margin:16px 0 12px}.save{font-size:31px}.date{font-size:33px}.weekday{margin-bottom:22px}.inviting{font-size:19px}.text-link{margin-top:16px}.portrait{max-width:410px;width:calc(100% - 14px);justify-self:center;padding:10px 10px 0}.portrait figcaption{font-size:20px;padding:15px 0 18px}.photo-stamp{width:65px;height:65px;right:-18px;font-size:19px;bottom:52px}.note{padding:62px 25px}h2{font-size:46px}.note>p:not(.eyebrow){font-size:20px}.desktop{display:none}.venue{grid-template-columns:1fr;padding:60px 26px;gap:30px}.venue-copy{text-align:center}.venue h2{margin-bottom:26px}.map-wrap{transform:none}iframe{height:290px}.map-caption{font-size:17px}.envelope{height:210px}.seal{top:80px}.letter{padding:22px 10px}.letter strong{font-size:35px}.intro>.eyebrow{margin-bottom:65px}.intro-hint{font-size:20px}.envelope.open .letter{transform:translateY(-100px)}}@media(max-width:350px){h1{font-size:62px}.date{font-size:29px}.hero{padding-inline:20px}.eyebrow{letter-spacing:1.8px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
/* Keep the flap behind the letter once opened; lift the letter only after the flap unfolds. */
.envelope{isolation:isolate;perspective:none}.letter{z-index:2;transition:transform .85s .7s}.flap{transition:transform .65s ease;transform:none}.envelope.open .flap{transform:scaleY(-1);z-index:1}.envelope.open .letter{transform:translateY(-145px)}body.intro-active main{visibility:hidden}.intro.leaving{background:var(--paper)}
@media(max-width:760px){.envelope.open .letter{transform:translateY(-130px)}}

.inviting,.note>p:not(.eyebrow),.venue-copy>p:not(.eyebrow):not(.venue-name):not(.map-hint){font-family:var(--serif);font-size:16px;font-weight:400;font-style:italic;line-height:1.65}.hero h1 em{font-size:.56em;font-weight:400}.monogram i,.footer-monogram em,.seal span{font-weight:400}.signature{font-size:28px}@media(max-width:760px){h1{font-size:62px;letter-spacing:-2px}.inviting,.note>p:not(.eyebrow){font-size:15px}}@media(max-width:350px){h1{font-size:54px}}

/* Match the invitation's italic Bodoni lettering across supporting text. */
body{font-style:italic}.inviting,.note>p:not(.eyebrow),.venue-copy>p:not(.eyebrow):not(.venue-name):not(.map-hint){font-size:21px}.eyebrow,.weekday,.nav-link,.text-link,.button,.map-hint,.skip,.reopen,.venue-name{font-family:var(--serif);font-style:italic}.nav-link,.text-link,.button{font-size:14px}.eyebrow,.weekday,.map-hint,.skip,.reopen{font-size:12px}.map-caption span{font-style:italic;font-size:13px}@media(max-width:760px){.inviting,.note>p:not(.eyebrow){font-size:20px}.hero-copy>.eyebrow{font-size:11px}}

/* White stationery with restrained antique-gold accents. */
:root{--paper:#ffffff;--gold:#96713d}
body:before{opacity:0}
.note{background:#ffffff}
.small-branch,.date,.date span,.portrait figcaption{color:var(--gold)}
.seal{background:#ffffff;color:var(--ink);border:2px solid var(--ink);box-shadow:0 3px 12px #344b631a}
.seal:before{content:'';position:absolute;inset:5px;border:1px solid var(--gold);border-radius:50%;pointer-events:none}
.seal span,.monogram i,.footer-monogram em{color:var(--gold)}
.button.light{border-color:var(--gold)}
.button.light:hover{background:#faf7f1}
