@import url('/assets/fonts.css');
:root{--paper:#f8f5ef;--ink:#3f4437;--olive:#62664f;--rose:#d1ada6;--line:#d9d7cc;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.8}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--rose);outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.06}h2{font-size:clamp(48px,5.6vw,80px);letter-spacing:-.035em}h2 em,h3 em{font-weight:400}p+p{margin-top:22px}.section{padding:110px max(6vw,24px);max-width:1600px;margin:auto}.section-label,.detail-label{font-size:12px;letter-spacing:.18em;font-weight:500}.section-label{margin-bottom:55px}.header{height:82px;position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;color:#f6f2e9;z-index:20;border-bottom:1px solid #ffffff24}.brand{font-family:var(--serif);font-size:28px;letter-spacing:.08em}.brand span{font-style:italic;color:#dac6b3}.nav{display:flex;gap:34px}.nav a{font-size:13px;opacity:.85;transition:opacity .2s}.nav a:hover{opacity:1}.header-rsvp{border:1px solid #f6f2e94d;border-radius:50px;font-size:13px;padding:9px 23px;transition:background .2s}.header-rsvp:hover{background:#ffffff15}.menu-toggle{display:none;background:none;color:inherit;border:0}.hero{min-height:850px;height:100svh;max-height:1200px;position:relative;display:flex;align-items:center;flex-direction:column;justify-content:space-between;padding:145px 24px 35px;overflow:hidden;background:#62664f;color:#f7f2e8;text-align:center}.hero:after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 20% 15%,#b4bda72b,transparent 60%),radial-gradient(ellipse at 95% 100%,#2d33274d,transparent 60%)}.hero-frame{position:absolute;inset:105px 5vw 26px;border:1px solid #e8e2d733;pointer-events:none}.hero-top{font-size:12px;letter-spacing:.28em;z-index:1}.hero-names{position:relative;z-index:1;width:min(880px,100%)}.hero h1{display:flex;flex-direction:column;font-size:clamp(85px,10.5vw,150px);line-height:.91;letter-spacing:-.02em}.hero h1 .name:first-child{align-self:flex-start;padding-left:8%}.hero h1 .second{align-self:flex-end;padding-right:7%}.amp{font-style:italic;color:#d8b9ab;font-size:.59em;line-height:.6;align-self:center;margin:10px 0;animation-delay:.25s!important}.second{animation-delay:.4s!important}.hero-tag{font-family:var(--serif);font-size:24px;font-style:italic;margin-top:34px;animation-delay:.6s!important}.hero-monogram{position:absolute;top:37%;left:50%;transform:translate(-50%,-50%);font-family:var(--serif);font-style:italic;font-size:650px;opacity:.045;line-height:1;pointer-events:none}.hero-bottom{position:relative;z-index:1;animation-delay:.75s!important}.hero-date{font-family:var(--serif);font-size:40px;letter-spacing:.13em}.hero-date span{font-size:28px;opacity:.55;padding:0 7px}.hero-bottom p{font-size:11px;letter-spacing:.18em;margin-top:8px}.scroll-link{display:flex;align-items:center;flex-direction:column;font-size:12px;margin-top:28px;opacity:.75}.scroll-line{height:32px;width:1px;background:#f6f2e98f;margin-top:12px;transform-origin:top;animation:breathe 3s ease-in-out infinite}.hero-side{position:absolute;left:1.65vw;top:48%;writing-mode:vertical-rl;font-size:10px;letter-spacing:.18em;opacity:.65;z-index:1}.entrance{animation:entrance 1.4s both cubic-bezier(.2,.7,.2,1)}@keyframes entrance{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes breathe{50%{transform:scaleY(.65);opacity:.4}}.motion-ready .reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}.motion-ready .reveal.visible{opacity:1;transform:translateY(0)}.story-layout{display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:center}.small-italic{font:italic 30px var(--serif)}.story-heading h2{font-size:clamp(80px,10vw,145px);margin-top:12px}.story-heading em{color:#9b8175}.fine-line{width:95px;height:1px;background:#9b8175;margin-top:40px}.story-copy{max-width:520px}.outline-heart{width:30px;height:30px;color:#9b8175;margin-bottom:25px}.story-copy h3{font-size:40px;margin-bottom:30px}.story-copy p{font-size:16px;line-height:1.9}.italic-note{font-family:var(--serif);font-size:24px!important;font-style:italic;line-height:1.45!important}.signature{font-family:var(--serif);font-style:italic;font-size:30px;margin-top:28px;color:#9b8175}.date-section{background:#eae6db;display:grid;grid-template-columns:1fr 1fr;gap:10vw;padding:90px max(10vw,24px);align-items:center}.date-copy .section-label{margin-bottom:25px}.date-copy p{margin-top:26px;font-size:18px}.text-button{background:none;border:0;border-bottom:1px solid #969786;padding:14px 0 8px;display:flex;gap:12px;align-items:center;font-size:13px;color:var(--ink);margin-top:20px}.calendar{max-width:440px;width:100%;padding:36px;background:var(--paper);box-shadow:0 10px 35px #414a2e08;transform:rotate(2deg)}.calendar-top{display:flex;justify-content:space-between;font-size:13px;letter-spacing:.14em;border-bottom:1px solid var(--line);padding-bottom:16px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);margin-top:18px;row-gap:13px;text-align:center;font-family:var(--serif);font-size:23px}.calendar-grid>span{position:relative;height:37px;display:flex;align-items:center;justify-content:center}.calendar-grid .weekday{font-family:var(--sans);font-size:11px;opacity:.7}.selected-day{color:#a47269}.selected-day svg{position:absolute;inset:-7px 0 0;width:100%;height:52px}.selected-day b{font-weight:500}.calendar>p{font-family:var(--serif);font-style:italic;font-size:18px;text-align:center;margin-top:25px}.program-layout{display:grid;grid-template-columns:1fr 1fr;gap:8vw}.program-intro p{margin-top:26px}.timing-note{display:block;font-size:13px;line-height:1.8;max-width:320px;margin-top:36px;color:#777c6b;border-left:1px solid #acae9e;padding-left:18px}.timeline-row{display:grid;grid-template-columns:90px 24px 1fr;gap:18px;padding-bottom:36px;position:relative}.time{font-family:var(--serif);font-size:30px;line-height:1.1}.time.pending{font-family:var(--sans);font-size:12px;line-height:1.6;padding-top:6px;color:#858577}.timeline-dot{width:7px;height:7px;background:#9b8175;border-radius:50%;margin:10px auto 0;position:relative}.timeline-dot:after{content:'';position:absolute;top:15px;bottom:auto;left:3px;height:78px;width:1px;background:var(--line)}.timeline-row:last-child .timeline-dot:after{display:none}.timeline h3{font-size:30px}.timeline p{font-size:14px;line-height:1.7;margin-top:10px;max-width:300px}.wishes{background:#ede2dc;max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:8vw}.wishes .section-label{margin-bottom:30px}.wishes-head p{font-size:14px;margin-top:24px}.wish{border-bottom:1px solid #a68e7a4d}.wish:first-child{border-top:1px solid #a68e7a4d}.wish>button{width:100%;background:none;border:0;padding:26px 0;color:var(--ink);text-align:left;display:flex;align-items:center;gap:24px;font-family:var(--serif);font-size:30px}.wish>button svg{margin-left:auto;flex-shrink:0}.wish-index{font-family:var(--sans);font-size:12px;opacity:.55}.wish-body{padding:0 30px 28px 42px}.wish-body p{font-size:15px;line-height:1.9}.wish-body a{display:inline-block;border-bottom:1px solid currentColor;font-size:13px;margin-top:16px}.dress-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:8vw;align-items:center}.dress-intro p{max-width:490px;margin-top:30px}.dress-intro p+p{margin-top:18px}.palette-card{background:white;padding:24px 28px 20px;box-shadow:0 12px 50px #3f443708;transform:rotate(-2deg);border:1px solid #eee9e1}.palette-image{aspect-ratio:1;overflow:hidden}.palette-image img{width:100%;height:auto;display:block}.palette-card>span{display:block;text-align:center;font-size:11px;letter-spacing:.2em;color:#8b8175;margin-top:18px}.dress-guidelines{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:65px;border-top:1px solid var(--line);padding-top:36px}.dress-guidelines>div+div{border-left:1px solid var(--line);padding-left:35px}.dress-guidelines h3{font-size:29px;margin:18px 0}.dress-guidelines p{font-size:14px;line-height:1.9}.location{background:#e7e9e0;max-width:none}.location>.section-label{margin-bottom:30px}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:55px}.venue{padding:45px 50px 35px;position:relative;overflow:hidden;border:1px solid #62664f40}.venue-number{position:absolute;top:20px;right:35px;font:90px var(--serif);opacity:.12}.venue h3{font-size:46px;margin:30px 0 25px}.venue p{font-size:15px}.venue-note{font-size:13px;line-height:1.8;margin-top:30px;opacity:.8}.venue a{border-top:1px solid #62664f40;display:flex;gap:10px;align-items:center;margin-top:35px;padding-top:20px;font-size:13px}.reception{background:var(--olive);color:var(--paper);border:0}.reception a{border-color:#ffffff38}.rsvp{display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:start}.rsvp .section-label{margin-bottom:30px}.rsvp-intro>p{margin-top:30px}.deadline{border-left:1px solid #a49789;margin-top:40px;padding-left:22px}.deadline span{display:block;font-size:11px;letter-spacing:.12em}.deadline strong{font-family:var(--serif);font-size:38px;font-weight:400}.rsvp-small{font-size:14px;max-width:300px;opacity:.75}.form-wrap{background:#eeece3;padding:38px 40px}.field{display:flex;flex-direction:column;font-size:14px;gap:12px;margin-bottom:26px}.field input,.field textarea{width:100%;border:0;border-bottom:1px solid #aeb09d;border-radius:0;background:transparent;color:var(--ink);padding:10px 0 12px;font-size:16px;outline-offset:2px}.field textarea{resize:vertical}.field input::placeholder,.field textarea::placeholder{color:#898b7d;font-size:14px}.field-hint{font-size:12px;opacity:.65;line-height:1.6}.form-wrap fieldset{border:0;margin:0 0 26px;padding:0;min-width:0}.form-wrap legend{font-size:14px;margin-bottom:14px}.choice-grid{display:flex;gap:12px}.choice{display:flex;align-items:center;gap:10px;border:1px solid #b7b9a7;flex:1;padding:12px 10px;cursor:pointer;font-size:12px;line-height:1.5;position:relative;transition:background .2s}.choice.active{border-color:var(--olive);background:#62664f0a}.choice input{position:absolute;opacity:0;width:1px;height:1px}.choice:has(input:focus-visible){outline:2px solid var(--rose);outline-offset:3px}.radio-dot{width:12px;height:12px;border:1px solid #8b907b;border-radius:50%;flex-shrink:0}.choice.active .radio-dot{background:var(--olive);box-shadow:inset 0 0 0 3px #eeece3}.submit-button{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;background:var(--olive);color:var(--paper);padding:18px 24px;font-size:14px;transition:background .2s}.submit-button:hover{background:#4c523e}.submit-button:disabled{opacity:.7;cursor:wait}.form-note{font-size:11px;line-height:1.7;opacity:.65;margin-top:15px}.honey{display:none}.form-error{font-size:14px;color:#963c34;margin-bottom:20px}.success{text-align:center;padding:60px 0}.success-mark{width:72px;height:72px;border:1px solid #b0b59e;border-radius:50%;display:grid;place-items:center;margin:0 auto 30px}.success h3{font-size:42px}.success p{font-size:15px;margin-top:22px}footer{text-align:center;padding:70px 24px 60px;background:var(--olive);color:var(--paper)}.footer-label{font-size:11px;letter-spacing:.2em}footer>div{font-family:var(--serif);font-size:clamp(40px,6vw,76px);margin:22px 0;line-height:1.1}footer em{color:#d4b6a7;margin:0 12px}footer p{font-size:11px;letter-spacing:.15em}
@media(min-width:1600px){.date-section,.wishes,.location{padding-left:calc((100vw - 1408px)/2);padding-right:calc((100vw - 1408px)/2)}}
@media(max-width:1000px){.nav{gap:20px}.section{padding-top:80px;padding-bottom:80px}.hero{min-height:760px}.story-layout,.program-layout,.dress-layout,.rsvp{gap:6vw}.choice-grid{flex-direction:column}.timeline-row{grid-template-columns:74px 15px 1fr;gap:13px}.form-wrap{padding:30px 24px}.venue{padding:35px 30px}.dress-guidelines{gap:24px}.dress-guidelines>div+div{padding-left:24px}.wishes{gap:5vw}.wish>button{font-size:26px}}
@media(max-width:700px){html{scroll-padding-top:24px}.header{height:72px;padding:0 24px}.brand{font-size:25px}.header-rsvp{margin-left:auto;margin-right:16px;padding:7px 16px;font-size:12px}.menu-toggle{display:block;padding:5px}.nav{display:none;position:absolute;top:72px;left:0;right:0;background:#545b44;padding:24px;box-shadow:0 10px 20px #0001}.nav.open{display:flex;flex-direction:column;gap:20px}.nav a{font-size:15px}.hero{min-height:730px;max-height:1000px;padding:122px 24px 36px}.hero-frame{inset:92px 16px 19px}.hero-top{font-size:10px;letter-spacing:.2em}.hero h1{font-size:clamp(76px,19vw,130px);line-height:1}.hero h1 .name:first-child{padding-left:5%}.hero h1 .second{padding-right:3%}.amp{margin:6px 0}.hero-tag{font-size:21px;margin-top:23px}.hero-date{font-size:35px}.hero-bottom p{font-size:10px}.hero-side{display:none}.hero-monogram{font-size:480px;top:43%}.scroll-link{font-size:11px;margin-top:22px}.section{padding:66px 24px}.section-label{margin-bottom:32px;font-size:10px;letter-spacing:.14em}h2{font-size:52px}.story-layout,.program-layout,.dress-layout,.rsvp,.wishes{grid-template-columns:1fr;gap:38px}.story-heading h2{font-size:92px}.small-italic{font-size:25px}.story-heading .fine-line{margin-top:25px;width:70px}.story-copy h3{font-size:35px;margin-bottom:24px}.story-copy p{font-size:15px}.outline-heart{display:none}.italic-note{font-size:23px!important}.date-section{grid-template-columns:1fr;gap:35px;padding:58px 24px}.date-copy h2{font-size:52px}.date-copy p{font-size:16px;margin-top:18px}.calendar{padding:25px;max-width:440px;margin:0 auto}.calendar-grid{row-gap:8px}.calendar>p{font-size:17px}.program-intro p{font-size:15px;margin-top:20px}.timing-note{margin-top:22px;max-width:100%}.timeline-row{grid-template-columns:78px 18px 1fr;gap:12px;padding-bottom:32px}.timeline h3{font-size:29px}.timeline p{font-size:13px}.timeline-dot:after{height:84px}.wishes-head p{font-size:13px}.wish>button{padding:20px 0}.wish-body{padding:0 16px 24px 37px}.wish-body p{font-size:14px}.dress-intro p{font-size:15px;margin-top:24px}.palette-card{padding:18px 16px 16px;max-width:440px;margin:auto;width:100%}.dress-guidelines{grid-template-columns:1fr;gap:25px;margin-top:40px;padding-top:25px}.dress-guidelines>div+div{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:25px}.detail-label{font-size:10px}.dress-guidelines h3{font-size:31px;margin:12px 0}.location-grid{grid-template-columns:1fr;margin-top:35px;gap:18px}.venue{padding:30px}.venue h3{font-size:39px}.venue-number{font-size:70px;right:25px}.rsvp{gap:30px}.rsvp-intro>p{font-size:15px;margin-top:22px}.deadline{margin-top:28px}.rsvp-small{max-width:100%}.form-wrap{padding:28px 22px}.choice-grid{flex-direction:row}.choice{font-size:11px;padding:12px 8px;gap:7px}.field{font-size:13px}.form-wrap legend{font-size:13px}footer{padding:55px 24px}.success{padding:35px 0}.success h3{font-size:36px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.entrance{animation:none}.scroll-line{animation:none}.motion-ready .reveal{opacity:1;transform:none;transition:none}*{transition:none!important}}

/* Wedding photograph and a softer invitation cover. */
:root{--paper:#faf7f3;--rose:#cba9a0}
.header{color:#514b43;background:#faf7f3ed;border-bottom:1px solid #b6a89b38}
.brand span{color:#ad8478}.header-rsvp{border-color:#9b817566}.header-rsvp:hover{background:#e8d8ce66}
.hero{background:#f2e9e1;color:#514b43;align-items:flex-start;padding-left:6vw;padding-right:6vw;min-height:800px}
.hero:after{background:radial-gradient(ellipse at 15% 65%,#fffaf680,transparent 60%);z-index:0}
.hero-photo{position:absolute;inset:0 0 0 52%;overflow:hidden;background:#d7d1ca}
.hero-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%;animation:photo-arrive 2s ease both}
.hero-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#f2e9e1 0%,#f2e9e100 18%),linear-gradient(0deg,#403b3012,transparent 45%)}
.hero-frame{inset:110px 51% 28px 3vw;border-color:#a58f7755;z-index:1}
.hero-top,.hero-names,.hero-bottom{width:43%;text-align:center}
.hero-top{letter-spacing:.2em}.hero h1{font-size:clamp(76px,8.6vw,136px)}
.hero h1 .name:first-child{padding-left:0}.hero h1 .second{padding-right:0}.hero .amp{color:#b18c80}
.hero-tag{font-size:25px}.hero-monogram{left:27%;opacity:.055;font-size:540px;z-index:0}
.hero-side{color:#7a6f63}.hero-date{font-size:37px}.scroll-line{background:#9b8175}
.drinks-hint{margin-bottom:14px}.drinks-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.drink-choice{font-size:12px;padding:12px;min-height:48px}.check-box{width:16px;height:16px;border:1px solid #8b907b;display:grid;place-items:center;flex-shrink:0;border-radius:3px}
.drink-choice.active .check-box{background:var(--olive);border-color:var(--olive);color:var(--paper)}
@keyframes photo-arrive{from{opacity:0;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}
@media(max-width:1000px) and (min-width:701px){.hero{padding-left:5vw;padding-right:5vw}.hero-top,.hero-names,.hero-bottom{width:46%}.hero h1{font-size:80px}.hero-tag{font-size:22px}.hero-top{font-size:10px}.hero-date{font-size:33px}}
@media(max-width:700px){
 .header{background:#faf7f3f2}.nav{background:#faf7f3;color:#514b43}
 .hero{height:auto;max-height:none;min-height:980px;justify-content:flex-start;gap:36px;align-items:center;padding:116px 28px 405px}
 .hero-top,.hero-names,.hero-bottom{width:100%}.hero-top{font-size:10px}.hero h1{font-size:clamp(78px,21vw,126px)}
 .hero h1 .name:first-child{padding-left:5%}.hero h1 .second{padding-right:3%}.hero-tag{font-size:23px;margin-top:26px}
 .hero-photo{inset:auto 0 0;height:365px}.hero-photo img{object-position:50% 52%}
 .hero-photo:after{background:linear-gradient(180deg,#f2e9e1 0%,#f2e9e100 25%)}
 .hero-frame{inset:91px 16px 378px}.hero-monogram{left:50%;top:32%;font-size:440px}.hero-date{font-size:35px}
 .scroll-link{margin-top:18px}.scroll-line{height:22px}.drinks-grid{gap:8px}.drink-choice{font-size:11px;padding:11px 9px;gap:8px}
}
@media(prefers-reduced-motion:reduce){.hero-photo img{animation:none}}

.field select{width:100%;min-height:48px;border:1px solid #b7b9a7;border-radius:0;background:var(--paper);color:var(--ink);padding:12px;font:inherit;font-size:14px}.drink-detail{padding-left:15px;border-left:2px solid #cba9a066}

[hidden]{display:none!important}
