:root{--paper:#f5f0e5;--ink:#343b2c;--olive:#3c4734;--gold:#a38957;--line:#d8ccaf;--sans:'Manrope',sans-serif;--serif:'Cormorant Garamond',Georgia,serif;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--paper);color:var(--ink);font:400 14px/1.8 var(--sans);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:6px}img{display:block;width:100%;height:100%;object-fit:cover}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3,h4{font-family:var(--serif);font-weight:400}h2{font-size:clamp(48px,6vw,82px);line-height:1.04;letter-spacing:-2.2px}em{font-weight:400}.eyebrow,.section-index{font-size:10px;letter-spacing:2.8px;text-transform:uppercase}.section-index{display:block;color:#7b6947;margin-bottom:32px}.section-pad{padding:120px max(6vw,24px)}.fine-rule{height:1px;width:72px;background:var(--gold);margin:30px 0}.text-button{padding:10px 0;background:none;border:0;color:inherit;font-size:11px;letter-spacing:.6px}.text-button span{margin-left:10px}.underlined-link{display:inline-flex;gap:34px;align-items:center;padding:15px 0 10px;border-bottom:1px solid var(--gold);font-size:12px;letter-spacing:.5px;min-height:44px}.underlined-link span,.outline-button span{transition:transform .3s}.underlined-link:hover span,.outline-button:hover span{transform:translate(3px,-3px)}.skip-link{position:fixed;z-index:100;left:15px;top:-100px;background:var(--paper);padding:12px}.skip-link:focus{top:15px}.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}
.welcome{display:none}.js .welcome{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#eee7d9;min-height:100dvh;overflow:hidden;padding:28px;transition:opacity 1.2s,visibility 1.2s;isolation:isolate}.welcome:before{content:'';position:absolute;inset:20px;border:1px solid #b5a07955;pointer-events:none}.welcome:after{content:'';position:absolute;inset:0;z-index:-1;opacity:.32;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath d='M0 0h200v200H0z' fill='%23b7a382' opacity='.2' filter='url(%23n)'/%3E%3C/svg%3E")}.welcome-light{position:absolute;width:85vw;height:120vh;background:linear-gradient(100deg,transparent,#fffaf077,transparent);transform:rotate(26deg);animation:welcome-light 12s ease-in-out infinite alternate;pointer-events:none}.welcome-kicker{font-size:10px;color:#84734f;text-align:center;margin-bottom:60px;position:relative}.envelope-wrap{width:min(520px,80vw);height:300px;position:relative;perspective:1200px}.envelope{position:absolute;inset:0;filter:drop-shadow(0 20px 30px #51472b17)}.envelope-back{position:absolute;inset:0;background:#e5dac5;border:1px solid #d5c6aa}.envelope-front{position:absolute;inset:0;z-index:3;background:linear-gradient(145deg,#f3ecdf,#e9dfcc);clip-path:polygon(0 0,50% 53%,100% 0,100% 100%,0 100%);border:1px solid #d8c9ac}.envelope-front:after{content:'';position:absolute;inset:0;background:linear-gradient(30deg,transparent 49.8%,#cabb9c66 50%,transparent 50.3%),linear-gradient(-30deg,transparent 49.8%,#cabb9c66 50%,transparent 50.3%)}.envelope-flap{position:absolute;inset:0;z-index:4;clip-path:polygon(0 0,100% 0,50% 55%);background:linear-gradient(160deg,#fcf7ed,#e7dcc7);transform-origin:top;backface-visibility:hidden;transition:transform 1.5s cubic-bezier(.25,.65,.25,1)}.envelope-letter{position:absolute;inset:20px 23px 12px;background:#fcf8ee;z-index:2;border:1px solid #cdbb9555;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;transition:transform 1.4s .35s,opacity .8s;box-shadow:0 0 0 10px #fcf8ee}.envelope-letter span{font:italic 24px var(--serif);color:#8c7956}.envelope-letter strong{font:400 38px var(--serif)}.envelope-letter strong i{font-size:27px;color:var(--gold)}.envelope-letter small{font-size:8px;letter-spacing:2px}.seal{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);z-index:5;width:79px;height:79px;border-radius:50%;background:radial-gradient(circle at 28% 22%,#ddc593,#ad8c53 65%,#94713e);border:3px solid #b99b66;box-shadow:0 4px 9px #604b3033,inset 0 0 0 3px #e1c68e55,inset 0 0 0 5px #9a7b4d77;transition:transform .4s,opacity .5s;color:#71582f}.seal:before{content:'';position:absolute;inset:9px;border:1px solid #f5deb466;border-radius:50%}.seal span{font:400 27px var(--serif);letter-spacing:-3px;text-shadow:0 1px 1px #f1dab2}.seal i{font-size:19px;margin:0 2px}.seal:hover{transform:translate(-50%,-50%) scale(1.06)}.welcome-caption{position:relative;text-align:center;margin-top:45px;transition:opacity .5s}.welcome-caption h1{font-size:39px;letter-spacing:-.8px}.welcome-caption h1 em{font-size:29px;color:var(--gold)}.welcome-caption p{font-size:9px;letter-spacing:2.4px;margin-top:8px}.welcome-caption button{margin-top:18px;border-bottom:1px solid #a58a5666;min-height:44px}.welcome.opening .seal{transform:translate(-50%,-50%) scale(1.25);opacity:0;pointer-events:none}.welcome.opening .envelope-flap{transform:rotateX(180deg)}.welcome.opening .envelope-letter{transform:translateY(-75px)}.welcome.opening .welcome-caption{opacity:0}.welcome.opened{opacity:0;visibility:hidden;pointer-events:none}.js:not(.entered) body{overflow:hidden}.welcome[hidden]{display:none}
.site-header{position:absolute;z-index:20;left:0;right:0;top:0;display:flex;align-items:center;justify-content:space-between;padding:23px 5vw;color:var(--ink);gap:30px}.brand{font:400 32px/1 var(--serif);letter-spacing:-2px;min-width:68px}.brand span{font-style:italic;font-size:24px;margin:0 3px;color:var(--gold)}.site-header nav{display:flex;gap:32px;margin-left:auto;font-size:10px;letter-spacing:1px}.site-header nav a{padding:10px 0}.music-toggle{display:flex;align-items:center;gap:9px;padding:10px 0;background:none;border:0;color:inherit;font-size:10px;min-height:44px;min-width:80px}.sound-bars{display:flex;align-items:center;gap:3px;height:18px}.sound-bars i{height:4px;width:1px;background:currentColor}.music-toggle[aria-pressed=true] .sound-bars i{animation:audio-bar 1.1s ease-in-out infinite alternate}.sound-bars i:nth-child(2){animation-delay:-.6s!important}.sound-bars i:nth-child(3){animation-delay:-.2s!important}.sound-bars i:nth-child(4){animation-delay:-.8s!important}.hero{position:relative;min-height:780px;height:100svh;max-height:1150px;isolation:isolate;overflow:hidden;background:var(--paper)}.hero-image{position:absolute;inset:0 0 0 50%;overflow:hidden}.hero-image img{object-position:50% 45%;animation:hero-drift 22s ease-in-out infinite alternate}.hero-wash{position:absolute;inset:0;background:linear-gradient(90deg,#f5f0e5 0%,#f5f0e5 36%,#f5f0e5e6 44%,#f5f0e500 66%)}.hero-content{position:relative;z-index:2;display:flex;align-items:flex-start;justify-content:center;flex-direction:column;height:100%;width:62%;padding:90px 0 110px 10%}.hero-eyebrow{font-size:9px;letter-spacing:2.2px;margin-bottom:35px}.hero h2{font-size:clamp(85px,9vw,150px);line-height:.84;letter-spacing:-5px}.hero h2 span{display:block}.hero h2 em{font-size:.56em;display:block;line-height:.9;margin-left:1.2em;color:#9c875e}.hero-rule{width:50px;height:1px;background:var(--gold);margin:42px 0 24px}.hero-date{font:400 24px var(--serif)}.hero-venue{font-size:9px;letter-spacing:2px;margin-top:12px}.scroll-cue{position:absolute;z-index:4;left:10%;bottom:32px;display:flex;align-items:center;gap:18px;font-size:9px;letter-spacing:1.3px}.scroll-line{width:1px;height:40px;position:relative;background:#9a8c6b44;overflow:hidden}.scroll-line:after{content:'';position:absolute;height:24px;width:1px;background:var(--gold);animation:scroll-stroke 2.5s infinite}.hero-margin{position:absolute;right:21px;bottom:45px;writing-mode:vertical-rl;color:#fff8e3;font-size:8px;letter-spacing:3px}.entered .hero-content{animation:hero-reveal 1.6s .2s both}.entered .hero-image{animation:photo-reveal 1.8s both}
.invitation{display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:center;max-width:1380px;margin:auto}.invitation-copy{padding-left:3vw;max-width:470px}.invitation-copy>p{color:#696c5d;font-size:13px;line-height:1.95;max-width:340px}.invitation-copy .full-names{font:400 31px/1.12 var(--serif);color:var(--ink);margin:24px 0}.full-names em{display:inline-block;font-size:22px;color:var(--gold);margin:3px 0}.invitation-copy .underlined-link{margin-top:26px}.portrait-frame{position:relative;padding:0 25px 0 0;align-self:center}.portrait-arch{aspect-ratio:3/4;border-radius:48% 48% 0 0;overflow:hidden;position:relative;background:#d7d6bc}.portrait-arch img{object-position:50% 45%;transition:transform 1.3s}.portrait-frame:hover img{transform:scale(1.025)}.portrait-frame:before{content:'';position:absolute;inset:-14px 11px 44px -14px;border:1px solid var(--line);border-radius:50% 50% 0 0;pointer-events:none}.portrait-frame figcaption{font:italic 22px var(--serif);text-align:center;padding-top:24px;color:#7b795f}.portrait-annotation{position:absolute;right:-13px;top:48%;writing-mode:vertical-rl;font-size:8px;letter-spacing:2.6px;color:#8f805f}
.celebrations{background:#ebe5d7;border-top:1px solid #e4dccb}.section-heading{text-align:center}.section-heading h2{font-size:clamp(48px,5.5vw,75px)}.section-heading>p{margin-top:28px;color:#747462;font-size:12px}.day-grid{max-width:1000px;margin:80px auto 0;display:grid;grid-template-columns:1fr 1fr;gap:9vw}.day{position:relative}.day-two{border-left:1px solid #cbbd9c;padding-left:5vw}.day-heading{display:flex;gap:22px;align-items:center}.day-number{font:400 96px/.9 var(--serif);color:#a99160;letter-spacing:-5px}.day-heading h3{font-size:35px;line-height:1}.day-heading p{font-size:8px;letter-spacing:1.5px;margin-top:10px}.day-caption{font:italic 22px var(--serif);color:#7a785d;margin:24px 0 25px}.event-list{margin:0;padding:0;list-style:none}.event-list li{display:grid;grid-template-columns:83px 1fr;gap:20px;padding:23px 0;border-top:1px solid #cabc9d88;align-items:baseline}.event-time{font-size:13px;white-space:nowrap;letter-spacing:.3px}.event-time small{font-size:8px;letter-spacing:.7px;margin-left:3px}.event-list h4{font-size:29px;line-height:1.1}.event-list p{font-size:10px;line-height:1.8;color:#767462;margin-top:6px}.day-footnote{display:block;font:italic 22px/1.5 var(--serif);max-width:240px;color:#8b805f;margin-top:70px}.schedule-note{text-align:center;font-size:10px;letter-spacing:.2px;color:#77745e;margin-top:60px}.moment{position:relative;height:650px;overflow:hidden;isolation:isolate}.moment>img{object-position:50% 53%}.moment-shade{position:absolute;inset:0;background:linear-gradient(0deg,#172216bd,transparent 80%)}.moment-copy{position:absolute;inset:auto 8% 70px;color:#fff8e8}.moment-copy>.eyebrow{font-size:9px;letter-spacing:2px;margin-bottom:18px}.moment-copy>p:last-child{font:400 clamp(40px,5vw,68px)/1.1 var(--serif);letter-spacing:-1.5px}.destination{display:grid;grid-template-columns:.8fr 1.5fr;align-items:center;gap:5vw;max-width:1450px;margin:auto}.destination-copy{padding-left:2vw}.destination-name{font:400 29px/1.15 var(--serif);margin-top:30px}.address{font-size:11px;color:#747463;margin-top:12px}.destination-copy>p:not(.destination-name):not(.address){font-size:12px;color:#747463;margin-top:24px}.outline-button{display:inline-flex;justify-content:space-between;gap:40px;align-items:center;border:1px solid #b19a71;padding:14px 21px;font-size:11px;margin-top:32px;min-height:48px;transition:background .3s}.outline-button:hover{background:#eae1cd}.hotel-link{display:block;width:max-content;max-width:100%;font-size:10px;padding:15px 0;color:#777158}.hotel-link span{margin-left:9px}.map-title{display:flex;justify-content:space-between;gap:20px;font-size:8px;letter-spacing:1.5px;padding:18px 24px 0;color:#81714f}.destination-map iframe{display:block;width:100%;border:0;min-height:440px;overflow:hidden}.closing{position:relative;overflow:hidden;background:var(--olive);color:#eee9d9;text-align:center;padding-top:110px;padding-bottom:110px;isolation:isolate}.closing .eyebrow{font-size:9px;letter-spacing:2.3px;color:#c5bc9e}.closing h2{font-size:clamp(46px,6vw,81px);margin-top:34px}.closing>p:not(.eyebrow):not(.closing-date){font-size:12px;margin-top:28px;color:#d2d0bb}.closing-signature{font:italic 42px var(--serif);margin-top:48px;letter-spacing:-1px}.closing-signature span{font-size:29px;color:#c3ad7b;margin:0 5px}.closing .closing-date{font-size:9px;letter-spacing:2px;margin-top:18px;color:#c0bda6}.closing .underlined-link{margin-top:30px;border-color:#8f9778;font-size:10px;color:#ddd8c3}.closing-decoration{position:absolute;left:50%;top:50%;width:670px;height:670px;border:1px solid #a5ac8422;border-radius:50%;transform:translate(-50%,-50%);z-index:-1}.closing-decoration:before,.closing-decoration:after{content:'';position:absolute;inset:22px;border:1px solid #a5ac8417;border-radius:50%}.closing-decoration:after{inset:-22px}footer{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:22px 5vw;color:#7b785e}footer>span{font-size:9px;letter-spacing:2px}footer .text-button{font-size:9px;min-height:44px}.js .reveal{opacity:0;transform:translateY(24px);transition:opacity 1.1s,transform 1.1s cubic-bezier(.2,.65,.3,1)}.js .reveal.visible{opacity:1;transform:none}
@keyframes welcome-light{from{transform:translateX(-15%) rotate(26deg)}to{transform:translateX(20%) rotate(26deg)}}@keyframes hero-drift{from{transform:scale(1.01)}to{transform:scale(1.055)}}@keyframes photo-reveal{from{opacity:.4;transform:scale(1.03)}to{opacity:1;transform:scale(1)}}@keyframes hero-reveal{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes scroll-stroke{from{transform:translateY(-25px)}to{transform:translateY(65px)}}@keyframes audio-bar{from{height:3px}to{height:16px}}
.motion-paused *, .motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important}.motion-paused .reveal{opacity:1;transform:none;transition:none}.motion-paused html{scroll-behavior:auto}
.site-header nav{background:#f5f0e5e6;border-radius:24px;padding:0 17px;font-size:11px}.music-toggle{background:#f5f0e5e6;border-radius:24px;padding:10px 14px;color:var(--ink)}
@media(min-width:1600px){.hero-content{padding-left:15%}.scroll-cue{left:15%}}
@media(max-width:1000px){.hero{min-height:720px}.site-header nav{gap:20px}.hero-content{padding-left:7%}.scroll-cue{left:7%}.hero h2{font-size:115px}.invitation{gap:6vw}.section-pad{padding-top:90px;padding-bottom:90px}.day-grid{gap:6vw}.destination{grid-template-columns:.8fr 1.3fr;gap:2vw}.destination-copy{padding-left:0}.destination-map{margin-right:-12px}.destination-name{font-size:25px}.event-list li{gap:13px;grid-template-columns:75px 1fr}}
@media(max-width:700px){html{scroll-padding-top:20px}.site-header{padding:22px 24px;color:#f7f0dd}.brand span{color:#dbcda6}.site-header nav{display:none}.music-toggle{font-size:9px;min-width:78px}.hero{min-height:720px;height:100svh;max-height:950px;background:#38432e}.hero-image{inset:0}.hero-image img{object-position:50% 35%}.hero-wash{background:linear-gradient(0deg,#1f2c1be0, #1f2c1b05 65%,#1f2c1b44)}.hero-content{padding:0 26px 98px;width:100%;justify-content:flex-end;align-items:center;text-align:center;color:#fff8e8}.hero-eyebrow{font-size:8px;letter-spacing:1.8px;margin-bottom:23px;text-shadow:0 1px 9px #0008}.hero h2{font-size:87px;letter-spacing:-3.5px;line-height:.85}.hero h2 em{font-size:.47em;line-height:.8;margin:2px 0 6px;color:#e3d4ac}.hero-rule{margin:25px 0 16px;background:#c7b688}.hero-date{font-size:23px}.hero-venue{font-size:8px;letter-spacing:1.8px;margin-top:9px}.scroll-cue{left:50%;transform:translateX(-50%);bottom:24px;color:#ded9c7;font-size:8px;gap:13px;white-space:nowrap}.scroll-line{height:30px;background:#d9d3b844}.scroll-line:after{background:#ded0ab}.hero-margin{right:13px;bottom:33%;font-size:7px;opacity:.7}.section-pad{padding:76px 26px}.section-index{font-size:9px;letter-spacing:2px;margin-bottom:25px}h2{font-size:55px;letter-spacing:-1.7px}.invitation{display:flex;flex-direction:column;gap:66px}.invitation-copy{padding:0;text-align:center}.invitation-copy>p{max-width:320px;margin-left:auto;margin-right:auto;font-size:12px}.fine-rule{margin:26px auto}.invitation-copy .full-names{font-size:31px;margin:24px auto}.invitation-copy .underlined-link{margin-top:20px}.portrait-frame{width:86%;max-width:370px;padding-right:0}.portrait-frame:before{inset:-11px -11px 42px}.portrait-frame figcaption{font-size:21px}.portrait-annotation{right:-29px;font-size:7px;letter-spacing:2px}.section-heading h2{font-size:48px}.section-heading>p{font-size:11px;max-width:250px;margin:22px auto 0}.day-grid{display:block;margin-top:55px}.day{max-width:400px;margin:auto}.day-two{border-left:0;padding:0;margin-top:60px}.day-number{font-size:86px}.day-heading h3{font-size:33px}.day-heading p{font-size:8px}.day-caption{font-size:22px}.event-list li{padding:21px 0;grid-template-columns:78px 1fr;gap:22px}.event-list h4{font-size:29px}.event-list p{font-size:10px}.day-footnote{display:none}.schedule-note{font-size:9px;margin:38px auto 0;max-width:290px;line-height:1.9}.moment{height:470px}.moment>img{object-position:54% 50%}.moment-copy{inset:auto 26px 42px}.moment-copy>.eyebrow{font-size:8px;letter-spacing:1.5px;max-width:260px;line-height:1.8;margin-bottom:13px}.moment-copy>p:last-child{font-size:46px;max-width:280px}.moment-copy em{display:block}.destination{display:block;padding-left:0;padding-right:0}.destination-copy{text-align:center;padding:0 26px}.destination-name{font-size:28px}.destination-copy>p:not(.destination-name):not(.address){font-size:12px}.hotel-link{margin:auto}.destination-map{margin:40px 0 0}.map-title{padding:18px 24px 0;font-size:8px}.destination-map iframe{min-height:420px}.closing{padding:80px 25px}.closing .eyebrow{font-size:8px;letter-spacing:1.8px}.closing h2{font-size:46px;line-height:1.08;letter-spacing:-1.5px}.closing-signature{font-size:38px;margin-top:40px}.closing .closing-date{font-size:8px;letter-spacing:1.5px}.closing-decoration{width:520px;height:520px}footer{justify-content:center;gap:5px 25px;text-align:center;padding:24px}footer>span{width:100%;font-size:8px;margin-bottom:5px}.welcome-kicker{font-size:8px;letter-spacing:1.8px;margin-bottom:62px}.envelope-wrap{width:min(340px,82vw);height:205px}.seal{width:68px;height:68px}.seal span{font-size:24px}.envelope-letter{inset:15px 20px 10px;gap:12px}.envelope-letter strong{font-size:26px}.envelope-letter span{font-size:20px}.envelope-letter small{font-size:6px;letter-spacing:1.3px}.welcome-caption{margin-top:45px}.welcome-caption h1{font-size:33px}.welcome-caption h1 em{font-size:23px}.welcome-caption p{font-size:8px;letter-spacing:1.6px}.welcome-caption button{font-size:10px}.welcome.opening .envelope-letter{transform:translateY(-55px)}}
@media(max-width:360px){.hero h2{font-size:76px}.hero{min-height:670px}.section-pad{padding-left:21px;padding-right:21px}.destination{padding-left:0;padding-right:0}.event-list li{gap:12px}.welcome-caption h1{font-size:29px}.envelope-wrap{height:180px}.welcome-kicker{font-size:7px;letter-spacing:1.4px}.closing h2{font-size:40px}.closing-signature{font-size:34px}}
@media(max-width:700px){.hero-eyebrow{display:none}.music-toggle{color:var(--ink)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition-duration:.01ms!important}.js .reveal{opacity:1;transform:none}.hero-image img{transform:none}.welcome.opening .envelope-letter{transform:none}}
