@font-face{font-family:WeddingSerif;src:local('Bodoni MT'),local('Didot');font-display:swap}
:root{--paper:#f6f3eb;--white:#fffdf8;--ink:#343e32;--muted:#6b6c60;--line:#d9d7ca;--gold:#8a784c;--soft:#e9eadf;--serif:WeddingSerif,'Baskerville','Palatino Linotype',Georgia,serif;--sans:'Segoe UI',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:16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}a{color:inherit}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:5px}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.08}h2{font-size:clamp(2.35rem,4.4vw,4.2rem);letter-spacing:-.035em}h2 em{font-weight:400}h3{font-size:1.9rem}img{display:block;width:100%;object-fit:cover}a{text-decoration:none}p+p{margin-top:1rem}[hidden]{display:none!important}.eyebrow{font-size:.75rem;letter-spacing:.2em;font-weight:600;line-height:1.6}.muted{color:var(--muted)}.small{font-size:.875rem}.section-pad{padding:82px 24px}.site-header{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 6%;border-bottom:1px solid var(--line);background:var(--paper)}.monogram{font:1.75rem var(--serif);letter-spacing:-.07em;white-space:nowrap}.monogram span{font-size:1.1rem;font-style:italic;color:var(--gold);margin:0 5px}nav{display:flex;gap:36px;align-items:center;font-size:.875rem}nav a{padding:10px 0}.nav-rsvp{border-bottom:1px solid var(--ink)}.nav-rsvp span{padding-left:12px}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:700px}.hero-paper{padding:76px 30px 44px;display:flex;flex-direction:column;align-items:center;text-align:center}.hero h1{font-size:clamp(5rem,8.2vw,8rem);line-height:.92;margin:28px 0 34px;letter-spacing:-.05em}.hero h1 span{font-size:.48em;font-style:italic;color:var(--gold);vertical-align:middle;margin-left:5px}.hero-date{font-size:.8rem;letter-spacing:.17em}.hero-rule{width:46px;height:1px;background:var(--gold);margin:24px 0}.hero-place{font:1.6rem var(--serif)}.hero .muted{font-size:.875rem;margin-top:4px}.button{display:inline-flex;min-height:50px;align-items:center;justify-content:center;gap:25px;background:var(--ink);color:var(--white);padding:13px 26px;border:1px solid var(--ink);border-radius:3px;font-size:.875rem;font-weight:500;transition:background .2s,transform .2s}.button:hover{background:#46513f}.button.outline{color:var(--ink);background:transparent}.button.outline:hover{background:var(--soft)}.hero-button{margin-top:34px}.hero-footnote{font:italic 1.1rem var(--serif);margin-top:28px!important;color:var(--muted)}.hero-photo{position:relative;min-width:0;overflow:hidden}.hero-photo img{height:100%;position:absolute;inset:0}.hero-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 20%,#172819ab)}.photo-label{position:absolute;z-index:1;bottom:70px;left:52px;color:white}.photo-label>span{font-size:.7rem;letter-spacing:.2em}.photo-label p{font:clamp(2.5rem,4.6vw,4.5rem)/1.05 var(--serif);margin-top:18px}.photo-credit{position:absolute;right:20px;bottom:18px;z-index:1;color:#fff;font-size:.75rem}.welcome{text-align:center;max-width:880px;margin:auto}.welcome h2{margin:25px 0}.welcome>p:not(.eyebrow){max-width:600px;margin-left:auto;margin-right:auto}.countdown{display:flex;justify-content:center;align-items:flex-start;gap:28px;margin:40px auto 14px}.countdown div{display:flex;flex-direction:column;min-width:65px}.countdown span{font:3.6rem/1.1 var(--serif);font-variant-numeric:tabular-nums}.countdown small{font-size:.65rem;letter-spacing:.16em;margin-top:10px}.countdown i{font:2rem var(--serif);color:var(--gold);margin-top:8px}.skip-link{position:absolute;top:-80px;left:20px;background:var(--ink);color:#fff;padding:14px;z-index:50}.skip-link:focus{top:10px}footer{text-align:center;background:var(--ink);color:var(--paper);padding:56px 24px 96px}footer .monogram{font-size:2.8rem}footer p{margin:20px 0;font-size:.875rem}footer>.eyebrow{font-weight:400;color:#d7cbae}.mobile-rsvp{display:none}
@media(min-width:1400px){.hero{min-height:760px}.hero-paper{padding-top:85px}}
@media(max-width:760px){html{scroll-padding-top:20px}.site-header{height:68px;padding:0 24px}.site-header .monogram{font-size:1.6rem}nav>a:not(.nav-rsvp){display:none}nav{font-size:.8rem}.nav-rsvp{border:0}.hero{display:flex;flex-direction:column;min-height:0}.hero-paper{padding:45px 22px 40px}.hero h1{font-size:6rem;line-height:.9;margin:23px 0 27px}.hero-date{font-size:.72rem;letter-spacing:.14em}.hero-place{font-size:1.5rem}.hero-rule{margin:19px 0}.hero-button{margin-top:24px}.hero-footnote{margin-top:19px!important}.hero-photo{height:330px;margin:0 18px;border-radius:48% 48% 0 0}.hero-photo img{object-position:center}.photo-label{left:30px;bottom:48px}.photo-label p{font-size:2.65rem}.photo-label>span{font-size:.65rem}.photo-credit{font-size:.65rem;right:14px;bottom:12px}.section-pad{padding:65px 24px}.welcome h2{font-size:2.5rem}.countdown{gap:12px;margin-top:34px}.countdown div{min-width:50px}.countdown span{font-size:2.9rem}.countdown i{font-size:1.5rem}.countdown small{font-size:.6rem;letter-spacing:.12em}.mobile-rsvp{display:flex;position:fixed;bottom:0;left:0;width:100%;align-items:center;justify-content:space-between;padding:15px 26px calc(15px + env(safe-area-inset-bottom));background:var(--ink);color:white;z-index:10;font-size:.875rem;box-shadow:0 -3px 14px #0001}.eyebrow{font-size:.69rem;letter-spacing:.17em}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
.day{background:var(--ink);color:var(--paper);display:grid;grid-template-columns:1fr 1.25fr;gap:40px 10%;padding-left:9%;padding-right:9%}.section-heading h2{margin:25px 0}.section-heading>p:last-child{color:#d2d7c8;max-width:300px}.timeline{padding:0;margin:0;list-style:none}.timeline li{display:grid;grid-template-columns:38px 1fr;gap:24px;padding:0 0 34px}.timeline li+li{padding-top:8px}.step-number{font:italic 1.25rem var(--serif);color:#c6ba94;border-top:1px solid #ffffff40;padding-top:12px}.timeline-meta{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:.7rem;letter-spacing:.13em;color:#d6d1bf;margin-bottom:10px}.timeline h3{font-size:2.2rem}.timeline p{font-size:.95rem;color:#d2d7c8;margin-top:12px;max-width:350px}.pill{border:1px solid #d2d2b95c;border-radius:24px;padding:3px 9px;font-size:.75rem;letter-spacing:0}.schedule-note{grid-column:1/-1;border-top:1px solid #ffffff30;padding-top:22px;color:#d2d7c8;max-width:100%;margin-top:0}.venue{display:grid;grid-template-columns:1.05fr 1fr;gap:8%;padding-left:7%;padding-right:7%;align-items:center}.venue-image{position:relative}.venue-image img{aspect-ratio:1/1;object-fit:cover}.venue-image>span{position:absolute;left:24px;bottom:24px;font-size:.65rem;letter-spacing:.14em;color:white;max-width:80%;text-shadow:0 2px 3px #000}.venue-copy h2{margin:23px 0}.venue-copy>p{max-width:440px}.address{font-size:.875rem;border-top:1px solid var(--line);padding-top:20px;margin-top:25px!important}.venue-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:25px}.text-button{border:0;border-bottom:1px solid currentColor;background:transparent;color:var(--ink);padding:8px 0;font-size:.875rem}.source-credit{font-size:.75rem;color:var(--muted);margin-top:22px!important}.source-credit a{text-decoration:underline;text-underline-offset:3px}#map-area{margin-top:25px}#map-area iframe{width:100%;height:290px;border:1px solid var(--line)}.essentials{margin:0 7%;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:10%;padding:36px 0 65px}.essentials h3{margin:15px 0;font-size:1.8rem}.essentials p:last-child{font-size:.95rem;max-width:430px;color:var(--muted)}.rsvp-section{background:#e8e9df;display:grid;grid-template-columns:.85fr 1.15fr;gap:8%;padding-left:9%;padding-right:9%;align-items:start}.rsvp-intro{position:sticky;top:70px}.rsvp-intro h2{margin:25px 0}.rsvp-intro>p:last-child{max-width:320px}.rsvp-card{background:var(--white);padding:40px;box-shadow:0 8px 40px #26302706;border:1px solid #e0e1d6}.locked-state,.success-state{text-align:center;padding:15px 0}.locked-state h3,.success-state h3{margin:20px 0;font-size:2rem}.locked-state p,.success-state p{font-size:.95rem}.small-symbol{font-size:2rem}.success-mark{display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;border:1px solid var(--gold);border-radius:50%;font-size:1.7rem}.success-state .button{margin-top:24px}fieldset{border:0;margin:0;padding:0;min-width:0}legend{font-weight:600;font-size:.875rem;padding:0;margin-bottom:14px}label:not(.chip){font-size:.875rem}input:not([type=radio]):not([type=checkbox]),select,textarea{display:block;width:100%;border:1px solid var(--line);background:var(--white);color:var(--ink);border-radius:3px;padding:12px 14px;margin:8px 0 20px;min-height:50px;font-size:1rem}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#77776c}input[type=radio],input[type=checkbox]{accent-color:var(--ink);width:19px;height:19px;flex:0 0 19px;margin:3px 0;cursor:pointer}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice-grid label{display:flex;align-items:center;padding:14px 12px;border:1px solid var(--line);gap:9px;border-radius:3px;cursor:pointer}.choice-grid label:has(input:checked){background:var(--soft);border-color:var(--ink)}.attendance-choice{margin-bottom:30px}.person{border-top:1px solid var(--line);padding-top:24px;margin-top:10px}.person legend{float:left;display:block;width:100%;margin-bottom:16px;font:1.55rem var(--serif)}.person legend+label{clear:both;display:block}.check-row{display:flex;align-items:flex-start;gap:10px;line-height:1.5;margin:14px 0;cursor:pointer}.dietary-switch{padding:12px 0}.dietary-switch input{width:20px;height:20px}.diet-details{padding:18px;background:#f1f1e9;margin:10px 0 25px}.chips{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.chip{position:relative;cursor:pointer}.chip input{position:absolute;opacity:0;width:100%;height:100%;margin:0;z-index:1}.chip span{display:block;border:1px solid #bcbfb0;border-radius:24px;padding:8px 12px;font-size:.875rem;background:var(--white)}.chip input:checked+span{background:var(--ink);color:white;border-color:var(--ink)}.chip input:focus-visible+span{outline:3px solid var(--gold);outline-offset:3px}.diet-details textarea{background:var(--white);margin-bottom:0}.attendance-details{margin-top:20px}.field-hint{margin-top:-10px;margin-bottom:23px}.privacy-note{border-top:1px solid var(--line);padding-top:22px;margin-top:22px}.privacy-note p{font-size:.8rem;color:var(--muted)}.privacy-note .check-row{font-size:.8rem}.submission-note{margin:24px 0 20px}.submit-button{width:100%;min-height:54px}.form-status{padding:16px;background:var(--soft);margin:0 0 20px;font-size:.95rem}.form-status.error{background:#faeae2;color:#8b331e;border-left:3px solid #a8482e}.demo-notice{font-size:.75rem;line-height:1.6;border:1px solid #bcb89e;padding:12px 14px;margin-bottom:24px;background:#f0eedc}.faq{display:grid;grid-template-columns:.85fr 1.15fr;gap:8%;padding-left:9%;padding-right:9%}.faq h2{margin-top:23px}.faq-items details{border-bottom:1px solid var(--line)}.faq-items details:first-child{border-top:1px solid var(--line)}summary{font-size:1rem;cursor:pointer;list-style:none;padding:21px 32px 21px 0;position:relative}summary::-webkit-details-marker{display:none}summary:after{content:'+';position:absolute;right:3px;font-size:1.35rem;font-weight:300;top:16px}details[open] summary:after{content:'−'}.faq-items details p{padding:0 28px 23px 0;color:var(--muted);font-size:.95rem}.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}.map-open{min-height:240px}
@media(max-width:1000px){.rsvp-section,.day,.faq{padding-left:6%;padding-right:6%;gap:45px}.rsvp-card{padding:28px}.timeline li{gap:16px}.venue{gap:5%}}
@media(max-width:760px){.day,.venue,.rsvp-section,.faq{grid-template-columns:1fr;gap:35px;padding:62px 24px}.section-heading h2{margin:20px 0}.timeline{margin-top:5px}.timeline li{grid-template-columns:30px 1fr;gap:17px;padding-bottom:28px}.timeline h3{font-size:2rem}.timeline-meta{font-size:.65rem;gap:8px}.schedule-note{margin-top:-6px;font-size:.8rem}.venue{gap:35px}.venue-image img{aspect-ratio:1.12}.venue-copy h2{font-size:3rem}.essentials{grid-template-columns:1fr;margin:0 24px;gap:32px;padding-bottom:55px}.essentials h3{font-size:1.75rem}.rsvp-intro{position:static;text-align:center}.rsvp-intro>p:last-child{margin:auto}.rsvp-intro h2{font-size:2.9rem;margin:20px 0}.rsvp-section{padding-left:16px;padding-right:16px}.rsvp-card{padding:25px 20px}.choice-grid{gap:8px}.choice-grid label{font-size:.83rem;padding:13px 9px}.faq h2{font-size:2.6rem}.faq{gap:28px}.privacy-note .check-row{font-size:.825rem}.hero-photo img{object-position:53% center}.venue-actions{gap:17px}}
@media(max-width:360px){.hero h1{font-size:5.3rem}.countdown{gap:8px}.countdown div{min-width:45px}.countdown span{font-size:2.5rem}.rsvp-card{padding:22px 15px}.choice-grid{grid-template-columns:1fr}}
.rsvp-intro,.rsvp-card,.venue-copy,.section-heading,.faq>div{min-width:0}h2,h3,legend,summary{overflow-wrap:anywhere}.photo-label{right:24px}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-grid label{min-width:0;overflow-wrap:anywhere}select{max-width:100%;text-overflow:ellipsis}.timeline>li>div{min-width:0}
@media(max-width:760px){.hero h1{font-size:min(6rem,25vw);max-width:100%}.rsvp-section,.day,.venue,.faq{grid-template-columns:minmax(0,1fr)}.countdown span{font-size:min(2.9rem,12vw)}.countdown small{overflow-wrap:anywhere}.hero-paper .button{max-width:100%}.rsvp-intro h2{font-size:min(2.9rem,12vw)}}
@media(max-width:360px){.choice-grid{grid-template-columns:minmax(0,1fr)}}
