:root{--ivory:#f6f1e8;--paper:#fffdf8;--ink:#17263a;--navy:#24374f;--blue:#7389a6;--red:#863f45;--red-dark:#6c3037;--sand:#d8ccba;--muted:#696b69;--line:rgba(23,38,58,.16);--serif:"Libre Caslon Display",Georgia,serif;--sans:"DM Sans",Arial,sans-serif;--shadow:0 22px 70px rgba(38,45,55,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65}body.menu-open{overflow:hidden}a{color:inherit}button,input{font:inherit}.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}.skip-link{position:fixed;left:1rem;top:-4rem;z-index:999;background:var(--ink);color:white;padding:.7rem 1rem}.skip-link:focus{top:1rem}.site-header{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(1.3rem,5vw,5.5rem);position:absolute;inset:0 0 auto;z-index:20;color:var(--ink)}.site-header.scrolled{position:fixed;background:rgba(246,241,232,.94);backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--line);animation:drop .35s ease}.wordmark{display:inline-flex;align-items:center;gap:.55rem;text-decoration:none;font-family:var(--serif);font-size:1.25rem}.wordmark i{width:24px;height:1px;background:var(--red);display:block}.site-header nav{display:flex;align-items:center;gap:clamp(1.2rem,2.5vw,2.4rem)}.site-header nav a{text-decoration:none;font-size:.75rem;letter-spacing:.13em;text-transform:uppercase;font-weight:600}.site-header nav a:hover{color:var(--red)}.nav-rsvp{border:1px solid currentColor;padding:.65rem 1.1rem}.menu-toggle{display:none;background:none;border:0;padding:8px}.menu-toggle>span:not(.sr-only){display:block;width:25px;height:1px;background:currentColor;margin:5px}
.hero{position:relative;min-height:min(850px,100vh);height:100svh;overflow:hidden;display:flex;align-items:center}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.hero-wash{position:absolute;inset:0;background:linear-gradient(90deg,rgba(246,241,232,.98) 0%,rgba(246,241,232,.92) 30%,rgba(246,241,232,.18) 65%,rgba(246,241,232,0) 100%)}.hero-content{position:relative;z-index:2;padding:6rem clamp(1.4rem,8vw,8rem) 2rem;max-width:760px}.eyebrow,.section-kicker{text-transform:uppercase;letter-spacing:.24em;font-size:.69rem;font-weight:600;color:var(--red);margin:0 0 1.1rem}.hero h1{font-family:var(--serif);font-size:clamp(4.5rem,10vw,8.5rem);line-height:.78;font-weight:400;margin:0;letter-spacing:-.045em}.hero h1 em{color:var(--red);font-weight:400;font-size:.72em}.date{font-size:.78rem;letter-spacing:.19em;text-transform:uppercase;font-weight:600;margin:2rem 0}.date span{color:var(--red);padding:0 .6rem}.hero-actions{display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;border:0;text-decoration:none;text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;font-weight:600;padding:1rem 1.45rem;min-height:50px;cursor:pointer;transition:.25s ease}.button-primary{background:var(--ink);color:white}.button-primary:hover{background:var(--red-dark);transform:translateY(-2px)}.text-link{text-decoration:none;font-size:.78rem;font-weight:600;letter-spacing:.05em}.text-link span{color:var(--red);margin-left:.25rem}.text-link:hover span{margin-left:.5rem}.countdown{position:absolute;z-index:2;right:clamp(1.5rem,5vw,5rem);bottom:2.7rem;display:flex;gap:1px;background:rgba(255,255,255,.28);backdrop-filter:blur(10px)}.countdown div{background:rgba(246,241,232,.76);min-width:88px;padding:.7rem 1rem;text-align:center}.countdown strong{font-family:var(--serif);font-size:1.55rem;font-weight:400;display:block;line-height:1.2}.countdown span{font-size:.58rem;text-transform:uppercase;letter-spacing:.16em}
.section-pad{padding:clamp(5rem,9vw,9rem) clamp(1.3rem,6vw,6.5rem)}.intro{text-align:center;max-width:980px;margin:auto}.intro h2,.section-heading h2,.registry h2,.rsvp h2{font-family:var(--serif);font-size:clamp(2.5rem,5vw,4.7rem);font-weight:400;line-height:1.08;letter-spacing:-.03em;margin:.2rem 0 1.5rem}.intro>p:not(.section-kicker){color:var(--muted);max-width:700px;margin:auto;font-size:1.05rem}.ornament{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:2.8rem;color:var(--red)}.ornament span{width:50px;height:1px;background:var(--sand)}.ornament i{font-style:normal;font-size:.65rem}.details{background:var(--paper)}.section-heading{text-align:center;max-width:760px;margin:0 auto 3.5rem}.section-heading>p:last-child{color:var(--muted);max-width:650px;margin:0 auto}.detail-grid,.travel-grid{display:grid;grid-template-columns:repeat(3,1fr);max-width:1250px;margin:auto}.detail-card{padding:2.6rem;border:1px solid var(--line);margin-right:-1px;position:relative;background:var(--paper)}.card-number{position:absolute;right:1.8rem;top:1.5rem;font-family:var(--serif);font-size:3.5rem;color:rgba(23,38,58,.06)}.detail-card h3,.travel-card h3,.timeline h3{font-family:var(--serif);font-size:1.75rem;font-weight:400;margin:.25rem 0 1rem}.detail-card>p:not(.section-kicker){color:var(--muted);min-height:6rem}.muted{color:var(--navy)}.accent-card{background:var(--red-dark);color:white;border-color:var(--red-dark)}.accent-card .section-kicker,.accent-card .text-link span{color:#e7bec0}.accent-card>p:not(.section-kicker){color:rgba(255,255,255,.78)}
.schedule{background:var(--ink);color:white}.section-heading.light .section-kicker{color:#cf9da1}.timeline{max-width:780px;margin:1rem auto}.timeline-item{display:grid;grid-template-columns:110px 30px 1fr;gap:1.2rem;min-height:105px}.timeline-item time{text-align:right;font-size:.72rem;letter-spacing:.12em;font-weight:600;padding-top:.35rem;color:#ddd5c9}.timeline-item>span{width:9px;height:9px;background:var(--red);border:2px solid var(--ink);outline:1px solid rgba(255,255,255,.55);border-radius:50%;margin-top:.55rem;position:relative}.timeline-item:not(:last-child)>span:after{content:"";position:absolute;width:1px;background:rgba(255,255,255,.24);top:12px;bottom:-87px;left:2px}.timeline h3{margin:0;font-size:1.45rem}.timeline p{color:rgba(255,255,255,.61);margin:.2rem 0}.schedule-note{text-align:center;color:rgba(255,255,255,.45);font-size:.75rem;letter-spacing:.04em;margin-top:1.5rem}
.travel{background:var(--ivory)}.travel-grid{gap:1.3rem}.travel-card{background:var(--paper);padding:2.4rem;box-shadow:0 1px 0 var(--line);transition:.3s ease}.travel-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.travel-card .icon{width:46px;height:46px;border:1px solid var(--sand);border-radius:50%;display:grid;place-items:center;color:var(--red);font-size:1.2rem}.travel-card p{color:var(--muted);min-height:5.5rem}.status{display:inline-block;background:#eef0f2;color:var(--navy);padding:.45rem .7rem;font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;font-weight:600}.registry{background:linear-gradient(135deg,#e5d8c8,#f4eee5 55%,#d9e0e4);text-align:center}.registry-inner{max-width:760px;margin:auto}.registry p:not(.section-kicker){color:var(--muted);max-width:580px;margin:0 auto 2rem}.button-outline{border:1px solid var(--ink);background:transparent;color:var(--ink)}.button-outline:hover{background:var(--ink);color:white}
.faq{background:var(--paper)}.faq-tools{max-width:920px;margin:0 auto 2.2rem}.faq-search{display:flex;align-items:center;border-bottom:1px solid var(--ink);padding:.8rem .15rem;gap:.8rem}.faq-search svg{width:20px;height:20px;fill:none;stroke:var(--red);stroke-width:1.6}.faq-search input{width:100%;border:0;background:transparent;outline:0;font-family:var(--serif);font-size:1.35rem;color:var(--ink)}.faq-search input::placeholder{color:#a5a29c}.faq-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.2rem}.faq-filters button{border:1px solid var(--line);background:transparent;padding:.55rem .85rem;cursor:pointer;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.faq-filters button:hover,.faq-filters button.active{background:var(--ink);color:white;border-color:var(--ink)}.faq-list{max-width:920px;margin:auto;border-top:1px solid var(--line)}.faq-item{border-bottom:1px solid var(--line)}.faq-question{width:100%;display:grid;grid-template-columns:1fr auto;gap:1rem;text-align:left;padding:1.4rem .2rem;border:0;background:transparent;cursor:pointer;color:var(--ink)}.faq-question>span:first-child{font-family:var(--serif);font-size:1.25rem}.faq-question .plus{width:23px;height:23px;position:relative}.faq-question .plus:before,.faq-question .plus:after{content:"";position:absolute;background:var(--red);left:4px;right:4px;height:1px;top:11px}.faq-question .plus:after{transform:rotate(90deg);transition:.2s}.faq-question[aria-expanded=true] .plus:after{transform:rotate(0)}.faq-answer{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease}.faq-answer>div{overflow:hidden}.faq-answer p{color:var(--muted);margin:0;padding:0 3rem 1.4rem .2rem}.faq-item.open .faq-answer{grid-template-rows:1fr}.no-results{text-align:center;color:var(--muted);padding:2rem}.rsvp{background:var(--paper);padding-top:1rem}.rsvp-card{background:var(--red-dark);color:white;padding:clamp(2rem,5vw,4.5rem);max-width:1180px;margin:auto;display:grid;grid-template-columns:minmax(0,.8fr) minmax(360px,1fr);align-items:start;gap:clamp(2.5rem,6vw,6rem)}.rsvp-copy{max-width:520px;position:sticky;top:110px}.rsvp-card .section-kicker{color:#e8bfc2}.rsvp h2{margin-bottom:.7rem}.rsvp-copy>p:last-child{color:rgba(255,255,255,.75)}.rsvp-form{display:grid;gap:1.15rem;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);padding:clamp(1.3rem,3vw,2.1rem)}.rsvp-form label{display:grid;gap:.45rem}.rsvp-form label>span{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;font-weight:600}.rsvp-form small{font-size:.62rem;color:rgba(255,255,255,.55);margin-left:.4rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.rsvp-form input,.rsvp-form textarea{width:100%;border:0;border-bottom:1px solid rgba(255,255,255,.42);border-radius:0;background:rgba(255,255,255,.08);color:white;padding:.85rem .9rem;outline:none}.rsvp-form input:focus,.rsvp-form textarea:focus{border-color:white;background:rgba(255,255,255,.13);box-shadow:0 0 0 2px rgba(255,255,255,.12)}.rsvp-form textarea{resize:vertical;min-height:92px}.rsvp-form textarea::placeholder{color:rgba(255,255,255,.42)}.rsvp-form .button{justify-self:start}.button-light{background:var(--ivory);color:var(--ink);flex-shrink:0}.button-light:hover{background:white;transform:translateY(-2px)}.button-light:disabled{opacity:.6;cursor:wait;transform:none}.form-status{font-size:.82rem;min-height:1.4em;margin:0;color:rgba(255,255,255,.82)}.form-status.success{color:#d7efdb}.form-status.error{color:#ffd1d4}.honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
footer{text-align:center;padding:4rem 1rem;background:var(--paper);border-top:1px solid var(--line)}.footer-mark{font-size:1.7rem}.footer-note,footer>p{font-size:.72rem;text-transform:uppercase;letter-spacing:.15em;color:var(--muted);margin:1rem 0 0}.footer-note{opacity:.65!important;text-transform:none!important;letter-spacing:.05em!important}.toast{position:fixed;z-index:100;left:50%;bottom:1.5rem;transform:translate(-50%,140%);background:var(--ink);color:white;padding:.85rem 1.1rem;box-shadow:var(--shadow);font-size:.82rem;transition:.3s ease}.toast.show{transform:translate(-50%,0)}.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}@keyframes drop{from{transform:translateY(-100%)}to{transform:none}}
@media (max-width:850px){.site-header nav{position:fixed;inset:0;background:var(--ivory);display:flex;flex-direction:column;justify-content:center;gap:1.7rem;transform:translateX(100%);transition:.3s ease}.site-header nav.open{transform:none}.site-header nav a{font-family:var(--serif);font-size:1.7rem;text-transform:none;letter-spacing:0;font-weight:400}.nav-rsvp{font-family:var(--sans)!important;font-size:.75rem!important;text-transform:uppercase!important;letter-spacing:.14em!important}.menu-toggle{display:block;z-index:2}.menu-toggle[aria-expanded=true]>span:first-child{transform:translateY(6px) rotate(45deg)}.menu-toggle[aria-expanded=true]>span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true]>span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.detail-grid,.travel-grid{grid-template-columns:1fr;max-width:580px}.detail-card{margin:0 0 -1px}.detail-card>p:not(.section-kicker),.travel-card p{min-height:0}.rsvp-card{grid-template-columns:1fr}.rsvp-copy{position:static}}
@media (max-width:620px){.site-header{height:68px}.hero{height:auto;min-height:790px;align-items:flex-start}.hero>img{object-position:67% center}.hero-wash{background:linear-gradient(180deg,rgba(246,241,232,.94) 0%,rgba(246,241,232,.82) 48%,rgba(246,241,232,.12) 78%)}.hero-content{padding-top:8.5rem}.hero h1{font-size:clamp(4.2rem,24vw,6rem)}.countdown{left:1.3rem;right:auto;bottom:1.5rem}.countdown div{min-width:75px;padding:.6rem}.section-pad{padding-top:4.8rem;padding-bottom:4.8rem}.section-heading{margin-bottom:2.5rem}.timeline-item{grid-template-columns:78px 20px 1fr;gap:.75rem}.timeline-item time{font-size:.62rem}.faq-filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.5rem}.faq-filters button{flex:0 0 auto}.rsvp{padding-left:.75rem;padding-right:.75rem}.rsvp-card{text-align:left}.form-row{grid-template-columns:1fr}.rsvp-form .button{width:100%;justify-self:stretch}.toast{width:calc(100% - 2rem);text-align:center}.countdown strong{font-size:1.3rem}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
