.nav{display:flex;align-items:center;justify-content:space-between;padding:24px 5vw;flex-wrap:nowrap;gap:14px;position:absolute;top:0;left:0;right:0;z-index:5;background:transparent}.nav__side{display:flex;gap:24px;font-size:11px;letter-spacing:2px;text-transform:uppercase;flex:1}.nav__side--right{justify-content:flex-end;align-items:center;gap:16px}.nav__name{font-family:var(--font-serif);font-size:24px;letter-spacing:3px;flex:0 1 auto;text-align:center;white-space:nowrap}.nav__rsvp{border:1px solid var(--ink);padding:9px 16px;white-space:nowrap}@media (max-width: 720px){.nav{padding:18px 4vw;gap:10px}.nav__side--left,.nav__faqs{display:none}.nav__side--right{flex:0 0 auto;gap:0}.nav__name{font-size:19px;flex:1 1 auto;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis}.nav__rsvp{padding:8px 12px}}.photo-slot{position:relative;width:100%;height:100%;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#0000000b;border:1px dashed var(--border-soft);-webkit-user-select:none;user-select:none}.photo-slot--on-dark{background:#ffffff0f;border-color:#ffffff40}.photo-slot--filled{border-style:solid;border-color:transparent}.photo-slot__placeholder{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:#00000061;text-align:center;padding:0 12px}.photo-slot--on-dark .photo-slot__placeholder{color:#ffffff8c}.photo-slot__img{width:100%;height:100%;object-fit:cover;display:block}.hero-gallery{display:flex;flex-direction:column;align-items:center;gap:18px;margin:0 auto;width:100%}.hero-gallery__main-row{display:flex;align-items:center;justify-content:center;gap:12px;width:100%}.hero-gallery__arrow{flex:0 0 auto;width:36px;height:36px;border-radius:50%;border:1px solid var(--border-soft);background:transparent;color:var(--ink);font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s}.hero-gallery__arrow:hover{background:#0000000d;border-color:var(--ink)}.hero-gallery__frames{flex:1;min-width:0;outline:none}.hero-gallery__row{display:flex;align-items:flex-start;justify-content:center;gap:28px;touch-action:pan-y}.hero-gallery__frame{aspect-ratio:3 / 4;position:relative;flex:0 0 auto}.hero-gallery__frame--main{width:min(440px,36vh)}.hero-gallery__frame--side{width:min(220px,28.5vh);margin-top:70px;margin-left:12vw;margin-right:12vw}@keyframes hero-gallery-from-right{0%{transform:translate(18px);opacity:.45}to{transform:none;opacity:1}}@keyframes hero-gallery-from-left{0%{transform:translate(-18px);opacity:.45}to{transform:none;opacity:1}}.hero-gallery__row--right{animation:hero-gallery-from-right .28s ease-out}.hero-gallery__row--left{animation:hero-gallery-from-left .28s ease-out}@media (prefers-reduced-motion: reduce){.hero-gallery__row--right,.hero-gallery__row--left{animation:none}}.hero-gallery__heart{position:absolute;transform:translate(-50%,-50%);font-size:clamp(40px,18vw,72px);line-height:1;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.4);pointer-events:none;z-index:2;animation:hero-gallery-heart-pop .7s ease-out forwards}@keyframes hero-gallery-heart-pop{0%{transform:translate(-50%,-50%) scale(.3);opacity:0}18%{transform:translate(-50%,-50%) scale(1.15);opacity:1}35%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-50%) scale(1.3);opacity:0}}@media (prefers-reduced-motion: reduce){.hero-gallery__heart{animation:none;opacity:0}}.hero-gallery__dots{display:flex;gap:8px}.hero-gallery__dot{width:6px;height:6px;border-radius:50%;border:none;padding:0;background:#0003;cursor:pointer}.hero-gallery__dot--active{background:var(--ink)}@media (max-width: 720px){.hero-gallery{gap:6px}.hero-gallery__row{gap:16px}.hero-gallery__frame--side{display:none}.hero-gallery__frame--main{width:min(100%,30vh)}.hero-gallery__arrow{width:32px;height:32px;font-size:18px}}.hero{min-height:100vh;min-height:100dvh;padding:14vh 5vw 4vh;text-align:center;display:flex;flex-direction:column;justify-content:center;position:relative}.hero__date{position:absolute;top:35%;left:50%;transform:translate(-50%,-50%);z-index:3;font-family:var(--font-serif);font-size:clamp(100px,4vw,46px);letter-spacing:6px;white-space:nowrap;pointer-events:none;color:#000;text-shadow:0 14px 24px rgba(255,255,255,.45),0 1px 6px rgba(0,0,0,.35)}.hero__tagline{max-width:440px;margin:42px auto 0;font-size:13px;letter-spacing:1.5px;line-height:2;text-transform:uppercase;color:var(--muted)}@media (max-width: 720px){.hero{padding:12vh 5vw 8vh}.hero__date{font-size:clamp(48px,9vw,48px);letter-spacing:4px}}.schedule{min-height:100vh;min-height:100dvh;position:relative;color:var(--cream);padding:10vh 6vw;text-align:center;display:flex;flex-direction:column;justify-content:center;overflow:hidden;background:var(--dark-bg)}.schedule__bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.schedule__scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#0a0907e0;z-index:1}.schedule__content{position:relative;z-index:2}.schedule__title{font-family:var(--font-serif);font-weight:400;font-size:clamp(32px,6vw,56px);margin:0 0 64px;letter-spacing:1px;line-height:1.15;text-transform:uppercase}.schedule__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;max-width:920px;margin:0 auto}.schedule__time{font-family:var(--font-serif);font-size:clamp(26px,4.5vw,36px);margin-bottom:12px}.schedule__label{font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:var(--gold)}@media (max-width: 720px){.schedule__grid{grid-template-columns:1fr 1fr}}.location{min-height:100vh;min-height:100dvh;padding:10vh 6vw;display:flex;flex-direction:column;justify-content:center}.location__grid{display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:24px;align-items:center;margin:0 auto;width:100%}.location__text{display:flex;align-items:center;justify-content:center;height:100%;text-align:center;font-size:12px;letter-spacing:1.5px;line-height:2.1;text-transform:uppercase}.location__photo-wrap{position:relative;max-width:380px;margin:0 auto;width:100%}.location__heading{position:relative;display:inline-block;top:0;left:50%;transform:translate(-50%,-55%);z-index:2;font-family:var(--font-serif);font-weight:400;font-size:clamp(30px,5.5vw,46px);letter-spacing:2px;white-space:nowrap;text-transform:uppercase}.location__photo{width:100%}.location__photo--bordered.photo-slot{border:10px solid #fff}.location__cta{text-align:center;margin-top:52px}.location__cta a{display:inline-block;background:var(--ink);color:var(--cream);font-size:11px;letter-spacing:2px;text-transform:uppercase;padding:16px 30px}@media (max-width: 720px){.location__grid{grid-template-columns:1fr}.location__heading{display:none}}.countdown{min-height:100vh;min-height:100dvh;position:relative;color:var(--cream);padding:10vh 6vw;text-align:center;display:flex;flex-direction:column;justify-content:center;overflow:hidden;background:var(--dark-bg)}.countdown__bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.countdown__scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#0a0907d1;z-index:1}.countdown__content{position:relative;z-index:2}.countdown__content .eyebrow{margin-bottom:32px}.countdown__grid{display:flex;justify-content:center;gap:clamp(20px,6vw,56px);flex-wrap:wrap}.countdown__value{font-family:var(--font-serif);font-size:clamp(46px,10vw,84px);line-height:1;font-variant-numeric:tabular-nums}.countdown__label{font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:var(--gold);margin-top:8px}.bank-accounts{aspect-ratio:1;width:100%;background:#000;color:#fff;display:flex;flex-direction:column;gap:14px}.bank-accounts__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.bank-accounts__item+.bank-accounts__item{border-top:1px solid rgba(255,255,255,.35)}.bank-accounts__label{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:#fff9}.bank-accounts__number{background:transparent;border:none;padding:0;cursor:pointer;color:#fff;font-family:var(--font-serif);font-size:clamp(22px,4vw,30px);letter-spacing:2px;transition:opacity .2s ease}.bank-accounts__number:hover{opacity:.7}.bank-accounts__hint{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#fff6}.dr{min-height:100vh;min-height:100dvh;padding:10vh 6vw;display:flex;flex-direction:column;justify-content:center}.dr__grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;max-width:1000px;margin:0 auto;width:100%}.dr__col{text-align:center}.dr__photo-wrap{position:relative;max-width:320px;margin:0 auto 24px}.dr__heading{position:relative;top:0;left:50%;transform:translate(-50%,-55%);z-index:2;font-family:var(--font-serif);font-weight:400;font-size:clamp(28px,5vw,38px);letter-spacing:1px;white-space:nowrap;text-transform:uppercase}.dr__photo{aspect-ratio:1;width:100%}.dr__photo--bordered.photo-slot{border:14px solid #fff}.dr__copy{font-size:12px;letter-spacing:.5px;line-height:1.9;color:var(--muted);max-width:320px;margin:0 auto 20px}.dr__link{display:inline-block;font-size:11px;letter-spacing:2px;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:3px}@media (max-width: 720px){.dr__grid{grid-template-columns:1fr}}.faqs{min-height:100vh;min-height:100dvh;padding:10vh 6vw;background:var(--faq-bg);display:flex;flex-direction:column;justify-content:center}.faqs__title{font-family:var(--font-serif);font-weight:400;font-size:clamp(32px,6vw,48px);margin:0 0 56px;letter-spacing:1px;text-align:center;text-transform:uppercase}.faqs__list{max-width:700px;margin:0 auto;display:flex;flex-direction:column;width:100%}.faqs__item{border-bottom:1px solid var(--border);padding:24px 0}.faqs__q{font-family:var(--font-serif);font-size:18px;margin-bottom:8px}.faqs__a{font-size:13px;line-height:1.8;color:var(--muted)}.rsvp{min-height:100vh;min-height:100dvh;padding:10vh 6vw;text-align:center;display:flex;flex-direction:column;justify-content:center}.rsvp .eyebrow{color:#a89f8d;margin-bottom:16px}.rsvp__title{font-family:var(--font-serif);font-weight:400;font-size:clamp(28px,6vw,48px);margin:0 0 12px;letter-spacing:1px;text-transform:uppercase}.rsvp__form{max-width:460px;margin:34px auto 0;text-align:left}.rsvp__group{margin-bottom:28px}.rsvp__group label{display:block;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#a89f8d;margin-bottom:8px}.rsvp__group>input{width:100%;padding:14px;border:1px solid var(--border-soft);background:transparent;font-size:14px;font-family:var(--font-sans)}.rsvp__input--error{border-color:var(--error)!important}.rsvp__field-error{font-size:11px;color:var(--error);margin-top:8px;letter-spacing:.5px;min-height:15px}.rsvp__checkbox-list{display:flex;flex-direction:column;margin-bottom:12px}.rsvp__checkbox-row{display:flex;align-items:center;gap:14px;padding:12px 4px;border-bottom:1px solid var(--border);cursor:pointer}.rsvp__checkbox-row input{width:18px;height:18px;vertical-align:middle;accent-color:var(--ink)}.rsvp__checkbox-row span{font-size:14px}.rsvp__submit{width:100%;padding:16px;background:var(--ink);color:var(--cream);border:none;font-size:12px;letter-spacing:2px;text-transform:uppercase;cursor:pointer}.rsvp__submit:disabled{opacity:.6;cursor:default}.rsvp__thanks{max-width:420px;margin:40px auto 0}.rsvp__thanks-title{font-family:var(--font-serif);font-size:28px;margin-bottom:14px}.rsvp__thanks-copy{font-size:13px;line-height:1.9;color:var(--muted)}.rsvp__edit{display:inline-block;margin-top:20px;font-size:11px;letter-spacing:2px;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:3px}@media (max-width: 720px){.rsvp{height:auto;padding:13vh 6vw 5vh}.rsvp .eyebrow{margin-bottom:10px}.rsvp__form{margin-top:20px}.rsvp__group{margin-bottom:16px}.rsvp__group>input{padding:11px 14px}.rsvp__checkbox-row{padding:8px 4px}}.rsvp__steps{display:flex;justify-content:center;gap:8px;margin-bottom:32px}.rsvp__step-dot{width:7px;height:7px;border-radius:50%;background:var(--border);transition:background .25s ease}.rsvp__step-dot.is-done{background:var(--gold)}.rsvp__note{max-width:420px;margin:0 auto 24px;font-size:13px;line-height:1.8;color:var(--muted)}.rsvp__toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.rsvp__toggle-label{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}.rsvp__switch{flex:0 0 auto;width:52px;height:30px;padding:0;border:1px solid var(--border-soft);border-radius:999px;background:transparent;cursor:pointer;position:relative;transition:background .2s ease,border-color .2s ease}.rsvp__switch-knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--border-soft);transition:transform .2s ease,background .2s ease}.rsvp__switch.is-on{background:var(--ink);border-color:var(--ink)}.rsvp__switch.is-on .rsvp__switch-knob{transform:translate(22px);background:var(--cream)}.rsvp__switch-wrap{flex:0 0 auto;position:relative;display:inline-flex}.rsvp__confetti{position:absolute;left:50%;top:50%;width:0;height:0;pointer-events:none;z-index:2}.rsvp__confetti-piece{position:absolute;margin-left:calc(var(--w) / -2);margin-top:calc(var(--h) / -2);animation:rsvp-confetti-drift 2s linear var(--delay) both}.rsvp__confetti-chip{display:block;width:var(--w);height:var(--h);background:var(--c);border-radius:var(--r);animation:rsvp-confetti-arc 2s var(--delay) both}@keyframes rsvp-confetti-drift{0%{transform:translate(0);opacity:1}70%{opacity:1}to{transform:translate(var(--dx));opacity:0}}@keyframes rsvp-confetti-arc{0%{transform:translateY(0) rotate(0) scale(.6);animation-timing-function:cubic-bezier(.12,.62,.36,1)}38%{transform:translateY(var(--rise)) rotate(calc(var(--spin) * .42)) scale(1);animation-timing-function:cubic-bezier(.5,0,.9,.55)}to{transform:translateY(var(--fall)) rotate(var(--spin)) scale(1)}}@media (prefers-reduced-motion: reduce){.rsvp__confetti{display:none}}.rsvp__toggle-state{margin-top:8px;font-size:12px;color:var(--muted);min-height:18px}.rsvp__group.is-disabled{opacity:.4}.rsvp__group.is-disabled input,.rsvp__group.is-disabled label{cursor:default}.rsvp__form input[readonly]{color:var(--muted);cursor:default}.rsvp__summary{max-width:420px;margin:0 auto;text-align:left}.rsvp__summary-list{list-style:none;margin:0;padding:0}.rsvp__summary-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--border)}.rsvp__summary-row:last-child{border-bottom:none}.rsvp__summary-name{font-family:var(--font-serif);font-size:17px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rsvp__summary-status{flex:0 0 auto;font-size:11px;letter-spacing:2px;text-transform:uppercase}.rsvp__summary-status.is-yes{color:var(--ink)}.rsvp__summary-status.is-no{color:var(--muted)}.rsvp__actions{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-top:28px}.rsvp__actions .rsvp__submit{width:auto;flex:0 0 auto;min-width:150px;min-height:46px;margin-top:0}.rsvp__back{min-height:46px;padding:12px 22px;font-family:var(--font-sans);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);background:transparent;border:1px solid var(--border);border-radius:2px;cursor:pointer}.rsvp__back:hover{color:var(--ink);border-color:var(--border-soft)}@media (max-width: 720px){.rsvp__form input[type=text],.rsvp__form input:not([type]),.rsvp__group input{font-size:16px}.rsvp__actions{gap:10px}.rsvp__actions .rsvp__submit{min-width:0;flex:1 1 auto}.rsvp__back{padding:12px 18px}.rsvp__summary-name{font-size:16px}}.footer{padding:36px 6vw;text-align:center;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#a89f8d;border-top:1px solid var(--border)}:root{--bg: #f6f3ee;--ink: #1a1a1a;--muted: #4a4a4a;--dark-bg: #161512;--cream: #f4f1ea;--gold: #c9bfa9;--faq-bg: #efeade;--error: #b3402f;--border: rgba(0, 0, 0, .12);--border-soft: rgba(0, 0, 0, .2);--font-serif: "Playfair Display", serif;--font-sans: "Jost", sans-serif;--mobile: 720px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans)}a{color:inherit;text-decoration:none}a:hover{opacity:.65}input,textarea,button{font-family:var(--font-sans)}::selection{background:var(--ink);color:var(--bg)}.eyebrow{font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--gold)}
