@font-face{font-family:'Cormorant Garamond';src:url('fonts/cormorant-regular.ttf') format('truetype');font-style:normal;font-weight:400 600;font-display:swap}@font-face{font-family:'Cormorant Garamond';src:url('fonts/cormorant-italic.ttf') format('truetype');font-style:italic;font-weight:400 500;font-display:swap}@font-face{font-family:'Manrope';src:url('fonts/manrope-regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:'Manrope';src:url('fonts/manrope-medium.ttf') format('truetype');font-style:normal;font-weight:500 600;font-display:swap}
:root{--paper:#f6f3eb;--paper-light:#fcfaf5;--ink:#2c4534;--sage:#71816c;--line:#cbd0c0;--serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;--sans:'Manrope',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}body.sealed{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--ink);outline-offset:7px}svg{width:24px;height:24px}.svg-library{position:absolute;width:0;height:0;overflow:hidden}::selection{background:#c6ceba}h1,h2,p{margin:0}h2{font-family:var(--serif);font-size:clamp(48px,5.3vw,76px);font-weight:400;line-height:1.05;letter-spacing:-.035em}h2 em{font-weight:400}button{border:0;background:none}.eyebrow{font-size:10px;letter-spacing:.21em;font-weight:500;line-height:1.8}.short-rule{height:1px;width:34px;background:var(--sage);display:inline-block;vertical-align:middle;margin-right:12px}.text-link{font-size:10px;font-weight:600;letter-spacing:.13em;display:inline-flex;align-items:center;gap:20px}.text-link svg{width:27px;transition:transform .25s}.text-link:hover svg{transform:translateX(5px)}
.opening{position:fixed;inset:0;z-index:100;background:var(--paper);display:flex;align-items:center;justify-content:center;flex-direction:column;overflow:hidden;transition:opacity .75s,visibility .75s}.opening:before,.hero:before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.19;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%3Crect width='100%25' height='100%25' opacity='.15' filter='url(%23n)'/%3E%3C/svg%3E")}.opening-copy{text-align:center;position:relative;margin-bottom:64px}.opening-copy .eyebrow{font-size:9px}.opening-copy h1{font-family:var(--serif);font-size:clamp(35px,5vw,55px);font-weight:400;letter-spacing:-.035em;margin:15px 0 10px}.opening-copy>p:last-child{font-family:var(--serif);font-style:italic;font-size:21px;color:#71816c}.envelope{position:relative;width:min(440px,83vw);height:265px;perspective:1000px;isolation:isolate;transition:transform .5s}.envelope:hover{transform:translateY(-5px)}.envelope-back{position:absolute;inset:0;background:#d8ddcd;box-shadow:0 25px 50px -20px #33462a40;border:1px solid #c4cbb8;border-radius:3px}.letter{position:absolute;inset:12px 20px;background:var(--paper-light);padding:52px 10px;color:var(--ink);text-align:center;transition:transform .8s .35s;z-index:1;box-shadow:0 0 5px #00000006}.letter>span{font-family:var(--serif);font-size:31px;display:block;white-space:nowrap}.letter i{font-size:24px;color:var(--sage)}.letter small{font-family:var(--serif);font-style:italic;font-size:18px;display:block;margin-top:15px}.envelope-front{position:absolute;inset:0;z-index:3;background:linear-gradient(149deg,#d7ddce 49.7%,#bcc6b2 50%,#d1d8c5 50.5%) top left/50.1% 100% no-repeat,linear-gradient(211deg,#d1d8c5 49.7%,#bcc6b2 50%,#d7ddce 50.5%) top right/50.1% 100% no-repeat;clip-path:polygon(0 0,50% 50%,100% 0,100% 100%,0 100%);border-radius:0 0 3px 3px}.envelope-flap{position:absolute;inset:0 0 auto;height:145px;background:#c4cdb9;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;z-index:4;transition:transform .8s,z-index 0s .4s;filter:drop-shadow(0 2px 1px #00000018)}.seal{position:absolute;z-index:5;left:50%;top:50%;width:64px;height:64px;transform:translate(-50%,-50%) rotate(-9deg);background:#41573f;color:#e9e8d9;border:4px double #7f8f73;border-radius:48% 52% 50% 48%;display:grid;place-items:center;box-shadow:2px 4px 6px #263b2830;transition:opacity .25s,transform .5s}.seal>span{font-family:var(--serif);font-size:23px}.seal-amp{font-size:13px;margin:0 1px}.open-text{display:flex;gap:16px;align-items:center;font-size:9px;letter-spacing:.24em;margin-top:40px;padding:14px;position:relative}.open-text svg{width:23px}.opening-note{font-family:var(--serif);font-style:italic;font-size:18px;color:var(--sage);margin-top:17px}.opening.unfolding .seal{opacity:0;transform:translate(-50%,-50%) scale(.7) rotate(15deg)}.opening.unfolding .envelope-flap{transform:rotateX(180deg);z-index:0}.opening.unfolding .letter{transform:translateY(-100px)}.opening.opened{opacity:0;visibility:hidden;pointer-events:none}#page{transition:opacity 1s}body.sealed #page{opacity:0}
.topbar{height:88px;display:flex;align-items:center;justify-content:space-between;max-width:1320px;margin:auto;padding:0 64px;position:relative;z-index:5;border-bottom:1px solid #b6c0ad45}.brand{font-family:var(--serif);font-size:29px;letter-spacing:-.09em}.brand span{font-size:20px;margin:0 7px;font-style:italic;color:var(--sage)}.top-date{font-size:10px;letter-spacing:.22em}.music{display:flex;align-items:center;gap:9px;font-size:10px;padding:10px 0 10px 10px}.music-bars{display:flex;align-items:center;gap:2px;height:17px}.music-bars i{height:6px;width:2px;background:var(--sage)}.music-bars i:nth-child(2){height:13px}.music-bars i:nth-child(3){height:9px}.music-bars i:nth-child(4){height:16px}.music[aria-pressed=true] i{animation:musicbars .8s infinite alternate}.music[aria-pressed=true] i:nth-child(2){animation-delay:.2s}.music[aria-pressed=true] i:nth-child(3){animation-delay:.4s}.music[aria-pressed=true] i:nth-child(4){animation-delay:.1s}@keyframes musicbars{to{height:3px}}
.hero{position:relative;max-width:1320px;margin:auto;min-height:calc(100svh - 88px);padding:75px 100px 100px;display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center}.hero-copy{position:relative;z-index:1}.prelude{font:italic 27px var(--serif);color:var(--sage);margin-top:33px}.hero h1{font-family:var(--serif);font-weight:400;letter-spacing:-.055em;font-size:clamp(46px,4.5vw,66px);line-height:1.02;margin-top:24px;position:relative}.person{display:block;width:fit-content}.person small{display:block;font:28px/1.2 var(--serif);letter-spacing:.08em;margin:8px 0 0 3px}.hero h1 em{display:block;font-size:32px;line-height:1;color:#8c987e;position:static;margin:10px 0 10px 120px;font-weight:400;letter-spacing:-.07em}.person:last-child{margin:0 0 0 26px}.hero-date{display:flex;align-items:center;gap:17px;margin-top:36px}.hero-date>span{font:60px/.9 var(--serif);padding-right:17px;border-right:1px solid var(--line);letter-spacing:-.05em}.hero-date>div{font-size:12px;letter-spacing:.17em}.hero-date small{display:block;font-size:9px;letter-spacing:.13em;color:var(--sage);margin-top:9px}.discover{margin-top:36px;font-size:8px;letter-spacing:.13em;gap:14px}.hero-art{height:490px;position:relative;max-width:420px;width:100%;justify-self:end;color:#71856a}.art-ring{position:absolute;inset:10px 21px 20px;border:1px solid #a4b097;border-radius:50% 50% 3px 3px;transform:rotate(7deg)}.art-inner{position:absolute;inset:20px 32px 11px;border:1px solid #a4b09766;border-radius:50% 50% 3px 3px;transform:rotate(3deg)}.art-word{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);font:italic 114px var(--serif);letter-spacing:-.07em;color:#586a4e}.art-caption{position:absolute;top:56%;width:100%;text-align:center;font-size:9px;letter-spacing:.27em}.hero-sprig{position:absolute;width:215px;height:370px;bottom:-10px;right:-35px;transform:rotate(18deg)}.hero-sprig.second{width:135px;height:270px;bottom:0;right:13px;transform:rotate(-20deg);opacity:.55}.hero-flower{position:absolute;bottom:25px;right:28px;width:76px;height:76px;transform:rotate(12deg)}.art-foot{position:absolute;bottom:44px;left:5px;writing-mode:vertical-rl;transform:rotate(180deg);font-size:7px;letter-spacing:.21em}.scroll-cue{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;font-size:8px;letter-spacing:.17em;color:var(--sage)}.scroll-cue span{display:block;height:34px;width:1px;background:linear-gradient(var(--sage),transparent)}
.invitation{padding:105px max(60px,calc((100vw - 1120px)/2));background:#e7ebdf;display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.invitation h2{margin-top:25px}.invitation-copy{position:relative;padding:12px 0 0 30px}.little-sprig{position:absolute;right:0;top:-30px;transform:rotate(43deg);width:60px;height:110px;color:#89957d;opacity:.55}.invitation-copy>p:first-of-type{font:30px/1.4 var(--serif);letter-spacing:-.015em;max-width:430px;position:relative}.invite-small{font:13px/1.9 var(--sans);color:#60715c;max-width:365px;margin-top:20px}.signature{font:italic 27px var(--serif);display:block;margin-top:29px;letter-spacing:-.02em}.occasion{padding:105px 70px;max-width:1250px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.occasion-main{text-align:center}.occasion h2{font-size:56px;margin-top:20px}.date-display{display:flex;justify-content:center;gap:17px;align-items:center;margin-top:27px}.date-day{font:124px/.9 var(--serif);letter-spacing:-.06em}.date-display>div{display:grid;gap:8px;text-align:left;padding-top:7px}.date-display>div span:first-child{font-size:14px;letter-spacing:.19em}.date-display>div span:last-child{font:35px/1 var(--serif);letter-spacing:.06em}.occasion-time{font-size:12px;margin-top:17px;letter-spacing:.08em}.occasion-time>span{color:#aab49d;margin:0 8px}.button{display:inline-flex;align-items:center;justify-content:center;gap:15px;font-size:11px;padding:16px 22px;border:1px solid var(--line);min-height:51px;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button svg{width:19px;height:19px}.secondary{margin-top:29px;background:transparent}.secondary:hover{background:#e8ecdf}.countdown-wrap{border-left:1px solid var(--line);text-align:center;padding:40px 0 40px 40px}.countdown-flower{font-size:40px;font-weight:300;display:block;color:#94a085}.countdown-title{font:italic 36px var(--serif);margin-top:20px}.countdown{display:flex;align-items:flex-start;justify-content:center;gap:11px;margin-top:28px}.countdown>div{min-width:53px}.countdown div>span{font:48px/1 var(--serif);font-variant-numeric:tabular-nums;letter-spacing:-.04em;display:block}.countdown small{display:block;font-size:8px;letter-spacing:.12em;margin-top:13px;color:var(--sage)}.countdown>b{font:24px var(--serif);color:#a6b09b;padding-top:7px}.countdown-note{font:italic 18px var(--serif);color:var(--sage);margin-top:32px}
.venue{max-width:1250px;margin:0 auto 95px;padding:38px 70px 0;display:grid;grid-template-columns:.9fr 1fr;gap:100px;align-items:center}.venue-illustration{height:365px;background:#e5e9dd;position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;border-radius:180px 180px 0 0;overflow:hidden}.venue-number{font:175px/.9 var(--serif);letter-spacing:-.09em;color:#a3af97;transform:translateX(-7px)}.venue-illustration>span{font-size:10px;letter-spacing:.38em;margin-top:18px;color:#64785d}.venue-sprig{position:absolute;right:-36px;bottom:-10px;height:290px;width:190px;color:#6d8160;transform:rotate(15deg);opacity:.8}.venue-stamp{position:absolute;left:20px;bottom:21px;width:83px;height:83px;border:1px solid #98a58c;border-radius:50%;transform:rotate(-14deg);font-size:10px;letter-spacing:.09em;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px}.venue-stamp i{font:italic 21px var(--serif);letter-spacing:0}.venue h2{font-size:70px;margin-top:20px}.venue-subtitle{font:24px var(--serif);color:#6b7a62;margin-top:6px}.venue-city{font-size:11px;display:flex;align-items:center;gap:7px;margin-top:24px}.venue-city svg{width:17px;height:17px}.venue-message{font:italic 21px var(--serif);max-width:350px;line-height:1.5;margin-top:22px}.primary{background:var(--ink);border-color:var(--ink);color:var(--paper);margin-top:26px;min-width:190px;justify-content:space-between}.primary:hover{background:#3e593b}.map-note{font-size:9px;color:var(--sage);margin-top:12px}
footer{border-top:1px solid var(--line);max-width:1120px;margin:auto;text-align:center;position:relative;padding:40px 20px 45px}.footer-monogram{font:37px var(--serif);letter-spacing:-.08em}.footer-monogram span{font-size:24px;color:var(--sage);margin:0 6px;font-style:italic}footer>p{font:italic 33px var(--serif);margin-top:12px}footer>span{display:block;font-size:8px;letter-spacing:.22em;color:var(--sage);margin-top:15px}footer>.text-link{font-size:8px;margin-top:30px}.back-top{position:absolute;bottom:50px;right:0;border:1px solid var(--line);border-radius:50%;height:37px;width:37px;display:grid;place-items:center}.bottom-nav{display:none}.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}.toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,20px);padding:14px 22px;background:var(--ink);color:var(--paper);font-size:12px;box-shadow:0 5px 25px #0002;opacity:0;pointer-events:none;transition:.25s;z-index:80;max-width:90vw;text-align:center}.toast.active{opacity:1;transform:translate(-50%,0)}
@media(min-width:1500px){.hero{min-height:800px}}@media(max-width:1050px){.hero{padding:70px 60px 90px;gap:12px}.hero-art{height:420px}.hero h1{font-size:56px}.hero h1 em{margin-left:100px}.hero-sprig{right:-20px;width:175px;height:320px}.art-word{font-size:95px}.invitation{gap:40px;padding:80px 60px}.invitation-copy{padding-left:10px}.occasion{gap:30px;padding:80px 50px}.countdown-wrap{padding-left:25px}.countdown{gap:5px}.countdown div>span{font-size:42px}.venue{gap:55px;padding:30px 60px 0}.venue h2{font-size:58px}.venue-illustration{height:330px}footer{margin:0 60px}}
@media(max-width:700px){html{scroll-padding-top:26px}.topbar{height:71px;padding:0 25px}.brand{font-size:26px}.top-date{font-size:9px;letter-spacing:.16em}.music{font-size:9px}.hero{padding:53px 25px 76px;min-height:auto;display:block;text-align:center;overflow:hidden}.hero-copy{max-width:390px;margin:auto}.hero-copy .eyebrow{font-size:8px}.short-rule{width:22px;margin-right:9px}.prelude{font-size:23px;margin-top:25px}.hero h1{font-size:clamp(42px,11.5vw,52px);margin-top:22px;display:flex;align-items:center;flex-direction:column}.person small{font-size:24px;letter-spacing:.07em;margin:8px 0 0}.person:last-child{margin:0}.hero h1 em{position:static;font-size:24px;line-height:1;margin:12px 0;color:#8c987e}.hero-date{justify-content:center;text-align:left;margin-top:28px}.hero-date>span{font-size:51px}.hero-date>div{font-size:10px}.hero-date small{font-size:8px}.discover{margin-top:26px;font-size:7px}.hero-art{position:absolute;top:86px;left:0;right:0;width:100%;height:300px;pointer-events:none;z-index:0;opacity:.6}.art-ring,.art-inner,.art-word,.art-caption,.art-foot{display:none}.hero-sprig.first{right:-75px;top:55px;bottom:auto;width:145px;height:260px;transform:rotate(-10deg);opacity:.6}.hero-sprig.second{right:auto;left:-62px;top:0;width:135px;height:245px;transform:rotate(160deg);opacity:.65}.hero-flower{right:-16px;top:210px;width:48px;height:48px;opacity:.8}.scroll-cue{bottom:14px;font-size:7px}.scroll-cue span{height:25px}.invitation{padding:64px 30px;display:block;text-align:center}.invitation .eyebrow{font-size:8px}.invitation h2{font-size:52px;margin-top:20px}.invitation-copy{padding:36px 0 0;max-width:400px;margin:auto}.invitation-copy>p:first-of-type{font-size:27px;line-height:1.4}.little-sprig{width:42px;height:75px;right:-9px;top:4px;opacity:.4}.invite-small{font-size:11px;line-height:1.9;margin:18px auto 0;max-width:290px}.signature{font-size:25px;margin-top:25px}.occasion{display:block;padding:63px 25px}.occasion .eyebrow{font-size:8px}.occasion h2{font-size:49px}.date-display{margin-top:28px}.date-day{font-size:115px}.date-display>div span:first-child{font-size:12px}.date-display>div span:last-child{font-size:31px}.occasion-time{font-size:10px}.button{font-size:10px}.secondary{margin-top:25px}.countdown-wrap{border-left:0;border-top:1px solid var(--line);padding:35px 0 0;margin:43px auto 0;max-width:340px}.countdown-flower{font-size:33px}.countdown-title{font-size:30px;margin-top:12px}.countdown{gap:10px;margin-top:25px}.countdown>div{min-width:50px}.countdown div>span{font-size:45px}.countdown small{font-size:7px}.countdown-note{font-size:17px;margin-top:25px}.venue{display:flex;flex-direction:column-reverse;gap:35px;padding:0 30px;margin:0 auto 65px;text-align:center}.venue-copy{width:100%}.venue .eyebrow{font-size:8px}.venue h2{font-size:60px;margin-top:18px}.venue-subtitle{font-size:23px}.venue-city{justify-content:center;margin-top:20px;font-size:10px}.venue-message{margin:20px auto 0;font-size:20px;max-width:260px}.primary{min-width:200px}.map-note{font-size:8px}.venue-illustration{width:min(300px,100%);height:260px;max-width:100%;border-radius:150px 150px 0 0}.venue-number{font-size:136px}.venue-illustration>span{font-size:8px;margin-top:12px}.venue-sprig{width:130px;height:230px;right:-14px;bottom:-6px}.venue-stamp{width:67px;height:67px;font-size:8px;left:15px;bottom:15px}.venue-stamp i{font-size:18px}footer{margin:0 25px;padding:35px 10px 114px}footer>p{font-size:31px}footer>.text-link{margin-top:26px}.back-top{right:0;bottom:110px;width:31px;height:31px}.bottom-nav{display:flex;position:fixed;left:50%;bottom:16px;transform:translateX(-50%);background:#fcfaf5ed;border:1px solid #d7ddce;box-shadow:0 4px 20px #2c45340d;backdrop-filter:blur(15px);border-radius:40px;padding:4px 13px;align-items:center;z-index:20;min-width:264px;justify-content:center}.bottom-nav a{font-size:10px;padding:12px 17px;display:flex;align-items:center;gap:4px}.bottom-nav svg{width:13px;height:13px}.bottom-nav>span{height:12px;width:1px;background:var(--line)}.opening-copy{margin-bottom:54px;padding:0 18px}.opening-copy h1{font-size:37px;margin-top:18px}.opening-copy .eyebrow{font-size:8px}.opening-copy>p:last-child{font-size:19px}.envelope{height:212px;width:330px;max-width:85vw}.envelope-flap{height:117px}.letter{padding:43px 3px}.letter>span{font-size:26px}.letter small{font-size:16px}.seal{height:57px;width:57px}.seal>span{font-size:21px}.open-text{margin-top:28px;font-size:8px}.opening-note{font-size:17px;margin-top:8px}.toast{bottom:83px;width:max-content;max-width:90vw}.opening.unfolding .letter{transform:translateY(-75px)}}
@media(max-width:350px){.opening-copy h1{font-size:32px}.hero h1{font-size:42px}.hero{padding-left:18px;padding-right:18px}.countdown{gap:5px}.countdown>div{min-width:45px}.countdown div>span{font-size:40px}.venue h2{font-size:52px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

.families{display:grid;grid-template-columns:1fr 1fr;gap:26px;border-top:1px solid #b6c0ad80;margin-top:30px;padding-top:24px;max-width:430px}.family p{font:23px/1.3 var(--serif);letter-spacing:-.015em}.family>span{display:block;font-size:8px;letter-spacing:.16em;margin-top:9px;color:#60715c}@media(max-width:700px){.families{gap:15px;margin:28px auto 0;padding-top:22px;max-width:340px}.family p{font-size:21px}.family>span{font-size:7px;letter-spacing:.12em}}@media(max-width:350px){.families{gap:10px}.family p{font-size:18px}}

.venue-illustration{background:radial-gradient(ellipse at 48% 40%,#f7f6ec 0%,#e8ecdf 65%,#dfe6d5 100%);border:1px solid #d6ddca}.venue-bouquet{width:100%;height:100%;display:block;overflow:visible;padding:7px}@media(max-width:700px){.venue-illustration{height:300px}.venue-bouquet{padding:0}}
