.paper-background{position:fixed;top:0;left:0;right:0;bottom:auto;height:100vh;height:100lvh;z-index:-1;pointer-events:none}.paper-background img{width:100%;height:100%;object-fit:cover;display:block}.section-heading{text-align:center;margin:0 auto 28px;max-width:34rem}.section-title{margin:0;font-family:var(--font-display);font-weight:400;font-size:clamp(32px,8.5vw,42px);line-height:1.1;letter-spacing:.01em;color:var(--slate-ink)}.section-subtitle{margin:14px 0 0;font-family:var(--font-display);font-size:18px;line-height:1.5;color:var(--slate-ink);opacity:.85}.rsvp{position:relative;padding:56px 20px 64px;font-family:var(--font-display);color:var(--slate-ink-deep);--rsvp-line: color-mix(in srgb, var(--dusty-blue) 45%, transparent);--rsvp-line-soft: color-mix(in srgb, var(--dusty-blue) 25%, transparent);--rsvp-rule: color-mix(in srgb, var(--dusty-blue) 80%, transparent)}.rsvp-card{position:relative;max-width:34rem;margin:0 auto;padding:40px 22px 32px;background:var(--card-ivory);border:1px solid color-mix(in srgb,var(--dusty-blue) 75%,transparent);border-radius:6px;box-shadow:inset 0 0 0 7px var(--card-ivory),inset 0 0 0 8px color-mix(in srgb,var(--dusty-blue) 45%,transparent),0 22px 44px -20px color-mix(in srgb,var(--slate-ink-deep) 45%,transparent)}.rsvp-card-center{text-align:center;padding:48px 24px}.rsvp-card .section-heading{margin-bottom:14px}.rsvp-deadline{margin:0 0 26px;text-align:center;font-size:16px;letter-spacing:.04em;color:var(--slate-ink);opacity:.8}.rsvp-form{display:flex;flex-direction:column;gap:16px;margin-top:8px}.rsvp-field{display:flex;flex-direction:column;gap:12px;margin:0;padding:0;border:0;min-width:0}.rsvp-field-label{padding:0;line-height:1.35;font-size:17px;letter-spacing:.02em;color:var(--slate-ink)}legend.rsvp-field-label{margin-bottom:12px}.rsvp-required{color:var(--dusty-blue)}.rsvp-input{width:100%;min-width:0;min-height:46px;padding:10px 2px;font:inherit;font-size:18px;color:var(--slate-ink);background:transparent;border:0;border-bottom:1px solid var(--rsvp-rule);border-radius:0;transition:border-color .2s ease,box-shadow .2s ease}.rsvp-input::placeholder{color:color-mix(in srgb,var(--slate-ink) 50%,transparent)}.rsvp-input:focus-visible{outline:none;border-color:var(--slate-ink);box-shadow:0 1px 0 var(--slate-ink)}.rsvp-dropdown{position:relative}.rsvp-dropdown-button{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;cursor:pointer}.rsvp-dropdown-button.empty .rsvp-dropdown-value{color:color-mix(in srgb,var(--slate-ink) 50%,transparent)}.rsvp-dropdown-chevron{flex:none;width:12px;height:8px;margin-right:4px;transition:transform .2s ease}.rsvp-dropdown.open .rsvp-dropdown-chevron{transform:rotate(180deg)}.rsvp-dropdown-list{position:absolute;z-index:5;top:calc(100% + 6px);left:0;right:0;max-height:260px;overflow-y:auto;margin:0;padding:6px;list-style:none;background:var(--card-ivory);border:1px solid var(--rsvp-rule);border-radius:6px;box-shadow:0 16px 32px -14px color-mix(in srgb,var(--slate-ink-deep) 45%,transparent);animation:rsvp-dropdown-in .16s ease-out}.rsvp-dropdown-list[hidden]{display:none}@keyframes rsvp-dropdown-in{0%{opacity:0;transform:translateY(-4px)}}.rsvp-dropdown-option{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:8px 12px;font-size:18px;color:var(--slate-ink);border-radius:4px;cursor:pointer}.rsvp-dropdown-option.active{background:color-mix(in srgb,var(--ice-blue) 70%,transparent)}.rsvp-dropdown-option[aria-selected=true]{color:var(--slate-ink-deep)}.rsvp-dropdown-check{flex:none;width:14px;height:10px;color:var(--dusty-blue)}@media (prefers-reduced-motion: reduce){.rsvp-dropdown-list{animation:none}.rsvp-dropdown-chevron{transition:none}}.rsvp-textarea{min-height:96px;padding:10px 12px;resize:vertical;line-height:1.45;border:1px solid color-mix(in srgb,var(--dusty-blue) 55%,transparent);border-radius:6px}.rsvp-textarea:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--dusty-blue) 25%,transparent)}.rsvp-guest{display:flex;flex-direction:column;gap:12px;padding:16px;background:color-mix(in srgb,var(--ice-blue) 35%,transparent);border:0;border-radius:6px}.rsvp-guest-head{display:flex;align-items:center;gap:6px}.rsvp-guest-name{width:100%;margin:0 0 4px;padding:0;font-size:22px;line-height:1.25;text-align:center}.rsvp-names{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:8px;min-width:0}.rsvp-remove{flex:none;display:grid;place-items:center;width:40px;height:40px;padding:0;color:var(--slate-ink);opacity:.6;background:none;border:0;border-radius:50%;cursor:pointer}.rsvp-remove:hover,.rsvp-remove:focus-visible{opacity:1;background:color-mix(in srgb,var(--dusty-blue) 15%,transparent)}.rsvp-choices{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;border:0;min-width:0}.rsvp-choice,.rsvp-option{position:relative;display:flex;align-items:center;justify-content:center;min-height:46px;padding:10px 16px;font-size:18px;letter-spacing:.03em;color:var(--slate-ink);background:transparent;border:1px solid var(--rsvp-rule);border-radius:999px;cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease}.rsvp-choice input,.rsvp-option input{position:absolute;opacity:0;top:0;right:0;bottom:0;left:0;margin:0;cursor:pointer}.rsvp-choice:has(input:focus-visible),.rsvp-option:has(input:focus-visible){box-shadow:0 0 0 3px color-mix(in srgb,var(--dusty-blue) 35%,transparent)}.rsvp-choice-yes:has(input:checked),.rsvp-option:has(input:checked){color:var(--paper-ivory);background:var(--slate-ink);border-color:var(--slate-ink)}.rsvp-choice-no:has(input:checked){color:var(--decline-rose);background:color-mix(in srgb,var(--decline-rose) 10%,transparent);border-color:color-mix(in srgb,var(--decline-rose) 55%,transparent)}.rsvp-options{display:flex;flex-wrap:wrap;gap:8px}.rsvp-option{flex:1 1 30%;min-width:6rem;font-size:17px}.rsvp-questions{display:flex;flex-direction:column;gap:26px;padding-top:18px;border-top:1px solid var(--rsvp-line)}.rsvp-added{display:flex;flex-direction:column;gap:12px;padding-top:4px}.rsvp-added-head{text-align:center}.rsvp-added-title{margin:0;font-size:19px}.rsvp-added-subtitle{margin:4px 0 0;font-size:16px;opacity:.8}.rsvp-add{min-height:46px;font:inherit;font-size:17px;letter-spacing:.04em;color:var(--slate-ink);background:transparent;border:1px dashed var(--rsvp-rule);border-radius:999px;cursor:pointer}.rsvp-add:hover,.rsvp-add:focus-visible{background:color-mix(in srgb,var(--dusty-blue) 10%,transparent)}.rsvp-error{margin:0;font-size:17px;line-height:1.4;text-align:center;color:var(--decline-rose)}.rsvp-error:empty{display:none}.rsvp-submit{display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;margin-top:6px;font:inherit;font-size:19px;letter-spacing:.14em;text-transform:uppercase;color:var(--paper-ivory);background:var(--slate-ink);border:1px solid var(--slate-ink);border-radius:12px;cursor:pointer;transition:background-color .25s ease}.rsvp-submit:hover{background:var(--slate-ink-deep)}.rsvp-submit:focus-visible,.rsvp-secondary:focus-visible,.rsvp-add:focus-visible{outline:2px solid var(--dusty-blue);outline-offset:3px}.rsvp-submit:disabled{opacity:.7;cursor:progress}.rsvp-secondary{min-height:44px;margin-top:18px;padding:8px 24px;font:inherit;font-size:16px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate-ink);background:transparent;border:1px solid var(--slate-ink);border-radius:12px;cursor:pointer}.rsvp-spinner{width:16px;height:16px;border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;animation:rsvp-spin .9s linear infinite}.rsvp-spinner-large{display:block;width:28px;height:28px;margin:0 auto 16px;color:var(--dusty-blue)}@keyframes rsvp-spin{to{transform:rotate(360deg)}}.rsvp-confirmed{display:flex;justify-content:center;scroll-margin:24px}.rsvp-confirmed>.rsvp-card{width:100%}.rsvp-confirmed-mark{display:block;width:52px;height:52px;margin:0 auto 18px;color:var(--dusty-blue)}.rsvp-confirmed-title{margin:0;font-weight:400;font-size:28px;line-height:1.25}.rsvp-confirmed-text,.rsvp-message-text{margin:12px auto 0;max-width:26rem;font-size:18px;line-height:1.5;opacity:.9}.rsvp-message-error .rsvp-confirmed-title{color:var(--decline-rose)}.rsvp-closed{position:relative;max-width:34rem;margin:0 auto}.rsvp-closed-content{pointer-events:none;filter:blur(1.5px);opacity:.6}.rsvp-closed-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-start;justify-content:center;padding:120px 24px 24px}.rsvp-closed-overlay p{position:sticky;top:30vh;max-width:24rem;margin:0;padding:28px 24px;font-size:19px;line-height:1.5;text-align:center;background:var(--card-ivory);border:1px solid var(--rsvp-line);border-radius:12px;box-shadow:0 18px 40px -24px color-mix(in srgb,var(--slate-ink) 35%,transparent)}@media (max-width: 360px){.rsvp-names{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.rsvp-spinner{animation-duration:2.4s}}.dress-code{padding:56px 20px 24px;text-align:center;font-family:var(--font-display);color:var(--slate-ink)}.dress-code .section-heading{margin-bottom:18px}.dress-code-title{margin:0;font-family:var(--font-hand);font-weight:400;font-size:clamp(32px,8.5vw,40px);line-height:1.15;color:var(--slate-ink)}.dress-code-description{max-width:26rem;margin:10px auto 0;font-size:18px;line-height:1.55;opacity:.9}.dress-code-image{display:block;width:min(100%,34rem);height:auto;aspect-ratio:3 / 2;object-fit:contain;margin:18px auto 0}.countdown{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:center;aspect-ratio:1122 / 1402;padding:30px 20px 80px;font-family:var(--font-display);color:var(--slate-ink-deep);text-align:center}.countdown:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:url(/countdown/countdown-portrait.webp) center / cover no-repeat;-webkit-mask-image:linear-gradient(transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(transparent,#000 5%,#000 95%,transparent)}@media (min-width: 700px){.countdown{aspect-ratio:1823 / 683;padding:44px 20px 52px}.countdown:before{background-image:url(/countdown/countdown-wide.webp)}}.countdown .section-title{color:var(--slate-ink-deep)}.countdown .section-subtitle{font-family:var(--font-hand);font-size:clamp(26px,7vw,32px);opacity:1}.countdown-clock{display:flex;justify-content:center;--unit-gap: clamp(8px, 2.5vw, 36px);gap:var(--unit-gap);max-width:36rem;margin:8px auto 0}.countdown-unit{position:relative;display:flex;flex-direction:column;align-items:center;min-width:clamp(60px,18vw,96px)}.countdown-unit+.countdown-unit:before{content:"";position:absolute;top:10%;bottom:30%;left:calc(var(--unit-gap) / -2);width:1px;background:color-mix(in srgb,var(--dusty-blue) 60%,transparent)}.countdown-value{font-size:clamp(40px,11vw,64px);line-height:1.05;font-variant-numeric:lining-nums tabular-nums;color:var(--slate-ink-deep)}.countdown-label{margin-top:6px;font-size:clamp(12px,3.2vw,14px);letter-spacing:.13em;text-transform:uppercase}@media (min-width: 700px){.countdown-clock{--unit-gap: clamp(10px, 4vw, 36px)}.countdown-label{letter-spacing:.18em}}.section-divider{display:block;width:min(78%,460px);height:auto;margin:0 auto 40px}@media (min-width: 760px){.section-divider{width:min(60%,560px);margin-bottom:48px}}@media (prefers-reduced-motion: no-preference){.section-divider.painted{-webkit-mask-image:linear-gradient(to right,transparent,#000 30%,#000 70%,transparent);mask-image:linear-gradient(to right,transparent,#000 30%,#000 70%,transparent);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:25% 100%;mask-size:25% 100%;opacity:0}.section-divider.painted.in{animation:paint-in 1.6s cubic-bezier(.4,0,.2,1) forwards}}@keyframes paint-in{0%{-webkit-mask-size:25% 100%;mask-size:25% 100%;opacity:0}30%{opacity:1}to{-webkit-mask-size:260% 100%;mask-size:260% 100%;opacity:1}}.events{padding:24px 20px;font-family:var(--font-display);color:var(--slate-ink);--rail: 62px;--line-x: 26px;--line-width: 22px;--vine-width: 54px;--heart: 50px;--heart-h: calc(var(--heart) * 165 / 192)}.timeline{position:relative;max-width:46rem;margin:0 auto}.timeline-line{position:absolute;top:var(--line-top, 0);left:var(--line-x);width:var(--vine-width);height:var(--line-length, 0);transform:translate(-50%);overflow:hidden;overflow:clip;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 14px,#000 calc(100% - 14px),transparent);mask-image:linear-gradient(to bottom,transparent,#000 14px,#000 calc(100% - 14px),transparent);opacity:0;transition:opacity .6s ease}.timeline.measured .timeline-line{opacity:1}.line-frost,.line-vine{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.line-frost>div,.line-vine>div{position:absolute;top:0;bottom:0;left:50%}.line-frost>div{width:var(--line-width);margin-left:calc(var(--line-width) / -2);background:url(/timeline/line.webp) center top / 100% auto repeat-y}.line-vine{display:none}.line-vine>div{width:var(--vine-width);margin-left:calc(var(--vine-width) / -2)}.timeline.near .line-vine>div{background:url(/timeline/vine.webp) center top / 100% auto repeat-y}@supports (animation-timeline: view()){.timeline-line{view-timeline:--bloom block;view-timeline-inset:50vh 50vh;view-timeline-inset:50svh calc(100% - 50svh)}.line-vine{display:block;-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 14px),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 14px),transparent)}.line-frost{-webkit-mask-image:linear-gradient(to bottom,transparent,#000 14px);mask-image:linear-gradient(to bottom,transparent,#000 14px)}.line-vine,.line-vine>div,.line-frost,.line-frost>div{animation-duration:auto;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--bloom;animation-range:cover 0% cover 100%}.line-vine{animation-name:window-from-above}.line-vine>div{animation-name:art-from-below}.line-frost{animation-name:window-to-below}.line-frost>div{animation-name:art-to-above}}@keyframes window-from-above{0%{transform:translateY(-100%)}to{transform:none}}@keyframes art-from-below{0%{transform:translateY(100%)}to{transform:none}}@keyframes window-to-below{0%{transform:none}to{transform:translateY(100%)}}@keyframes art-to-above{0%{transform:none}to{transform:translateY(-100%)}}.timeline-heart-rail{position:absolute;top:calc(var(--line-top, 0px) - var(--heart-h) / 2);left:var(--line-x);z-index:2;width:var(--heart);height:calc(var(--line-length, 0px) + var(--heart-h));margin-left:calc(var(--heart) / -2);pointer-events:none;opacity:0;transition:opacity .6s ease}.timeline.measured .timeline-heart-rail{opacity:1}.timeline-heart{position:sticky;top:calc(50vh - var(--heart-h) / 2);top:calc(50svh - var(--heart-h) / 2);display:block;width:var(--heart);height:var(--heart-h);filter:drop-shadow(0 4px 8px color-mix(in srgb,var(--slate-ink) 18%,transparent))}.timeline-list{position:relative;margin:0;padding:0;list-style:none}.timeline-event{position:relative;display:grid;grid-template-columns:var(--rail) 1fr;grid-template-areas:". card";padding:0 0 56px;opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease}.timeline-event:last-child{padding-bottom:48px}.timeline-event.shown{opacity:1;transform:none}.timeline-node{position:absolute;top:17px;left:var(--line-x);width:1px;height:1px;transform:translate(-50%,-50%)}.timeline-time{order:-1;margin:0;font-weight:600;font-size:28px;line-height:34px;letter-spacing:.12em;color:var(--slate-ink-deep)}.timeline-card{grid-area:card;min-width:0;display:flex;flex-direction:column;align-items:flex-start}.timeline-title{margin:10px 0 0;font-family:var(--font-hand);font-weight:400;font-size:clamp(34px,9vw,42px);line-height:1.15}.timeline-subtitle{margin:6px 0 0;font-size:18px;line-height:1.5;opacity:.9}.timeline-place{margin:10px 0 0;font-size:15px;letter-spacing:.14em;text-transform:uppercase}.timeline-map{display:inline-flex;align-items:center;gap:7px;min-height:42px;margin-top:14px;padding:8px 16px;font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--slate-ink);text-decoration:none;border:1px solid var(--slate-ink);border-radius:2px;transition:background-color .2s ease,color .2s ease}.timeline-map:hover{color:var(--paper-ivory);background:var(--slate-ink)}.timeline-map:focus-visible{outline:2px solid var(--dusty-blue);outline-offset:3px}@media (min-width: 760px){.events{--line-x: 50%;--line-width: 24px;--vine-width: 64px;--heart: 64px}.timeline-event{grid-template-columns:1fr 96px 1fr;padding-bottom:72px}.timeline-event.left{grid-template-areas:"card . ."}.timeline-event.right{grid-template-areas:". . card"}.timeline-event.left .timeline-card{align-items:flex-end;text-align:right}.timeline-node{top:25px}.timeline-title{margin-top:0}.timeline-time{order:0;margin:8px 0 4px;font-size:30px;line-height:36px}}@media (prefers-reduced-motion: reduce){.timeline-event{transform:none;transition-duration:.01s}}.marquee{display:flex;align-items:center;box-sizing:border-box;height:var(--marquee-h);overflow:hidden;margin:0;padding:2px 0 0;background:var(--dusty-blue);box-shadow:inset 0 1px color-mix(in srgb,var(--paper-ivory) 45%,transparent),inset 0 -1px color-mix(in srgb,var(--paper-ivory) 45%,transparent)}.marquee-track{display:flex;width:max-content}.marquee-track.running{animation:marquee-glide 48s linear infinite}.marquee-item{display:inline-flex;align-items:center;gap:26px;padding-right:26px;font-family:var(--font-hand);font-size:var(--marquee-font);line-height:1.3;white-space:nowrap;color:#fff}.marquee-heart{width:20px;height:auto}@keyframes marquee-glide{to{transform:translate(-50%)}}@media (prefers-reduced-motion: reduce){.marquee-track.running{animation:none}}.faq{padding:40px 20px 32px;font-family:var(--font-display);color:var(--slate-ink);--faq-line: color-mix(in srgb, var(--dusty-blue) 45%, transparent)}.faq-list{max-width:34rem;margin:0 auto;border-top:1px solid var(--faq-line)}.faq-item{border-bottom:1px solid var(--faq-line)}.faq-question{margin:0;font-weight:400}.faq-question button{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:56px;padding:16px 4px;font:inherit;font-size:20px;line-height:1.35;letter-spacing:.01em;text-align:left;color:var(--slate-ink);background:none;border:0;cursor:pointer}.faq-question button:focus-visible{outline:2px solid var(--dusty-blue);outline-offset:2px}.faq-chevron{flex:none;width:14px;height:9px;color:var(--dusty-blue);transition:transform .3s ease}.faq-item.open .faq-chevron{transform:rotate(180deg)}.faq-answer p{margin:0;padding:0 4px 20px;font-size:18px;line-height:1.6;white-space:pre-line;opacity:.9;animation:faq-open .35s ease}@keyframes faq-open{0%{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion: reduce){.faq-answer p{animation:none}}.language-switcher{display:inline-flex;gap:2px;padding:4px;border-radius:999px;background:#f8f5efeb;font-family:var(--font-display);font-size:15px}.language-switcher a{padding:4px 14px;border-radius:999px;color:var(--slate-ink);text-decoration:none;letter-spacing:.02em}.language-switcher a[aria-current=true]{background:var(--slate-ink);color:var(--paper-ivory)}.site-footer{display:flex;flex-direction:column;align-items:center;gap:14px;padding:22px 16px calc(var(--marquee-h) + 68px)}@media (min-width: 700px){.site-footer{padding-bottom:40px}}.site-credit{display:flex;align-items:center;gap:8px;margin:0;font-family:var(--font-display);font-size:15px;letter-spacing:.02em;color:color-mix(in srgb,var(--slate-ink) 80%,transparent)}.site-credit-mark{flex:none;width:17px;height:17px;color:var(--slate-ink)}.site-credit a{color:var(--slate-ink);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--dusty-blue) 70%,transparent);text-underline-offset:3px;transition:text-decoration-color .2s ease}.site-credit a:hover,.site-credit a:focus-visible{text-decoration-color:var(--slate-ink)}.site-credit a:focus-visible{outline:2px solid var(--dusty-blue);outline-offset:3px}.gift-registry{padding:56px 20px 24px;text-align:center;font-family:var(--font-display);color:var(--slate-ink)}.gift-registry .section-subtitle{white-space:pre-line;max-width:28rem;margin-inline:auto}.gift-registry-content{max-width:28rem;margin:0 auto;padding:20px 18px;font-size:17px;line-height:1.5;text-align:left;background:color-mix(in srgb,var(--card-ivory) 75%,transparent);border:1px solid color-mix(in srgb,var(--dusty-blue) 40%,transparent);border-radius:2px;overflow-wrap:anywhere}.gift-registry-content a{color:var(--slate-ink);text-underline-offset:3px}.gift-registry-content .copy-btn{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:6px 16px;font:inherit;font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--slate-ink);background:transparent;border:1px solid var(--slate-ink);border-radius:2px;cursor:pointer;transition:background-color .2s ease,color .2s ease}.gift-registry-content .copy-btn.success{color:var(--paper-ivory);background:var(--slate-ink)}.gift-registry-content .copy-btn:focus-visible{outline:2px solid var(--dusty-blue);outline-offset:3px}.reveal{opacity:0;transform:translateY(12px);transition:opacity .7s ease,transform .7s ease}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.reveal{transform:none;transition-duration:.01s}}.hero{min-height:calc(100vh - var(--marquee-h));min-height:calc(100svh - var(--marquee-h));display:flex;align-items:center;justify-content:center;padding:20px 0 16px}.hero-inner{--col: min(100vw, 520px);width:var(--col);display:flex;flex-direction:column;align-items:center;text-align:center;color:var(--slate-ink)}.hero-inner>*{margin:0}.hero-kicker{margin-bottom:14px!important;font-family:var(--font-hand);font-size:34px;line-height:1}.hero-names{display:flex;align-items:baseline;justify-content:center;gap:.28em;margin-top:4px!important;font-family:var(--font-display);font-weight:400;line-height:1;white-space:nowrap;font-size:min(64px,calc((var(--col) - 48px) / (var(--len) * .5 + 1.4)))}.hero-amp{font-family:var(--font-script);font-size:1.1em;line-height:.8;color:#3d4f61}.hero-photo{width:calc(min(100% - 40px,(100vh - 280px - var(--marquee-h)) / 1.25)*.86);width:calc(min(100% - 40px,(100svh - 280px - var(--marquee-h)) / 1.25)*.86);margin-top:14px!important}.hero-date{margin-top:14px!important;font-family:var(--font-display);font-size:21px;letter-spacing:.06em}@media (min-width: 900px){.hero{padding:32px 0}.hero-inner{--col: min(92vw, 1180px);--gap: clamp(32px, 4vw, 72px);display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr auto auto auto 1fr;grid-template-areas:".      photo" "kicker photo" "names  photo" "date   photo" ".      photo";column-gap:var(--gap);justify-items:center;align-items:center}.hero-kicker{grid-area:kicker;margin-bottom:18px!important;font-size:clamp(38px,2.9vw,50px)}.hero-names{grid-area:names;flex-wrap:wrap;row-gap:.02em;column-gap:.18em;margin-top:0!important;line-height:1.05;font-size:min(116px,calc(((var(--col) - var(--gap)) / 2 - 24px) / (var(--line) * .48)))}.hero-names>span:last-child{flex-basis:100%;text-align:center}.hero-date{grid-area:date;margin-top:28px!important;font-size:clamp(24px,1.9vw,32px);letter-spacing:.08em}.hero-photo{grid-area:photo;width:min(100%,(100vh - 120px - var(--marquee-h)) / 1.25);width:min(100%,(100svh - 120px - var(--marquee-h)) / 1.25);margin-top:0!important}}.hero-photo img[src=""],.hero-photo img:not([src]){visibility:hidden}.story{padding:56px 20px 48px;font-family:var(--font-display);color:var(--slate-ink);overflow:hidden;overflow:clip}.story-inner{display:grid;grid-template-areas:"heading" "collage" "text";justify-items:center;max-width:1080px;margin:0 auto}.story-heading{grid-area:heading;text-align:center}.story-heading .section-heading{margin-bottom:0}.story-heading .section-divider{width:min(72%,300px);margin:14px auto 20px}.story-collage{grid-area:collage;width:min(100% - 40px,380px);aspect-ratio:279 / 319;margin:-12px 0 12px}.story-text{grid-area:text;max-width:34rem;text-align:center}.story-text p{margin:0 0 1em;font-size:19px;line-height:1.65;white-space:pre-line}.story-text p:last-child{margin-bottom:0}@media (min-width: 900px){.story{padding:88px 32px 32px}.story-inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:1fr auto auto 1fr;grid-template-areas:"collage ." "collage heading" "collage text" "collage .";column-gap:clamp(40px,5vw,88px);align-items:center}.story-collage{justify-self:end;width:min(100% - 48px,460px);margin:0}.story-heading .section-divider{width:min(80%,340px);margin:16px auto 28px}.story-text p{font-size:20px}}.gallery{padding:40px 16px 24px;font-family:var(--font-display)}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:45px;gap:10px;max-width:640px;margin:0 auto}@media (min-width: 600px){.gallery-grid{grid-auto-rows:80px}}.gallery-tl{grid-column:1;grid-row:1 / 5}.gallery-tr{grid-column:2;grid-row:1 / 7}.gallery-words{grid-column:1;grid-row:5 / 8}.gallery-br{grid-column:2;grid-row:7 / 13}.gallery-bl{grid-column:1;grid-row:8 / 13}.gallery-item{overflow:hidden;border-radius:6px;opacity:0;transform:translateY(24px);transition:opacity .9s ease-out,transform .9s cubic-bezier(.22,1,.36,1)}.gallery.in .gallery-item{opacity:1;transform:none}.gallery-tl{transition-delay:0s}.gallery-tr{transition-delay:.12s}.gallery-words{transition-delay:.24s}.gallery-br{transition-delay:.36s}.gallery-bl{transition-delay:.48s}.gallery-item img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s ease-out}@media (hover: hover){.gallery-item:hover img{transform:scale(1.05)}}.gallery-item.empty{background:color-mix(in srgb,var(--ice-blue) 70%,transparent)}.gallery-words{position:relative;border-radius:6px;background:var(--dusty-blue);box-shadow:0 6px 18px color-mix(in srgb,var(--slate-ink) 14%,transparent);display:flex;align-items:center;justify-content:center;padding:12px;text-align:center;overflow:visible}.gallery-frame{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.gallery-frame rect{fill:none;stroke:#fff;stroke-width:2.5;stroke-dasharray:100;stroke-dashoffset:100}.gallery.in .gallery-frame rect{animation:gallery-frame-draw 3s ease-out 1.1s forwards}@keyframes gallery-frame-draw{to{stroke-dashoffset:0}}.gallery-text{position:relative;margin:0;font-family:var(--font-hand);font-weight:400;font-size:clamp(34px,7.8vw,54px);line-height:1.05;color:#fff;text-shadow:0 1px 3px color-mix(in srgb,var(--slate-ink-deep) 35%,transparent);text-wrap:balance}@media (prefers-reduced-motion: reduce){.gallery-item{opacity:1;transform:none;transition:none}.gallery.in .gallery-frame rect,.gallery-frame rect{animation:none;stroke-dashoffset:0}}.closing{position:relative;display:flex;flex-direction:column;justify-content:flex-end;margin-top:40px;height:78vh;height:78svh;min-height:460px;max-height:780px;overflow:hidden;color:#fff}.closing-media{position:absolute;top:0;right:0;bottom:0;left:0;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 72px,#000 calc(100% - 56px),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 72px,#000 calc(100% - 56px),transparent 100%)}.closing-media img{width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block;transform:scale(1.06);transition:transform 2.4s cubic-bezier(.22,.61,.36,1)}.closing-media:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,color-mix(in srgb,var(--slate-ink-deep) 58%,transparent) 0%,color-mix(in srgb,var(--slate-ink-deep) 40%,transparent) 22%,color-mix(in srgb,var(--slate-ink-deep) 14%,transparent) 42%,transparent 58%)}.closing-words{position:relative;padding:0 24px clamp(76px,11svh,116px);text-align:center;opacity:0;transform:translateY(10px);transition:opacity 1.2s ease .35s,transform 1.2s ease .35s}.closing-headline{margin:0 auto;max-width:14em;font-family:var(--font-hand);font-weight:400;font-size:clamp(42px,11vw,74px);line-height:1.12;white-space:pre-line;text-wrap:balance;text-shadow:0 1px 14px color-mix(in srgb,var(--slate-ink-deep) 55%,transparent)}.closing-signature{margin:18px 0 0;font-family:var(--font-display);font-size:clamp(13px,3.4vw,15px);letter-spacing:.22em;text-transform:uppercase;opacity:.95;text-shadow:0 1px 10px color-mix(in srgb,var(--slate-ink-deep) 60%,transparent)}.closing.in .closing-media img{transform:scale(1)}.closing.in .closing-words{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.closing-media img,.closing-words{transition:none;transform:none}.closing-words{opacity:1}}.couple-names{margin:0;font-family:var(--font-display);font-weight:400;font-style:normal;font-size:clamp(52px,14.6vw,58px);line-height:1.05;color:var(--slate-ink);overflow-wrap:anywhere}.couple-names span{display:block}.splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;height:100dvh;overflow:hidden;background:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}.phase-frosted{cursor:pointer}.phase-exiting{opacity:0;transition:opacity var(--exit-ms) ease;pointer-events:none}.splash-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.splash-layer.fade{transition:opacity .7s ease}.splash-layer.gone{opacity:0}.splash-intro{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 8vw;text-align:center;color:var(--slate-ink);font-family:var(--font-display);font-weight:400;pointer-events:none}.splash-intro.out{opacity:0;transition:opacity .45s ease}.splash-glow{position:absolute;left:50%;top:50%;width:min(205vw,1500px);height:min(118vw,74vh);transform:translate(-50%,-50%);background:radial-gradient(closest-side,rgba(var(--glow-ivory),.86),rgba(var(--glow-ivory),.82) 12%,rgba(var(--glow-ivory),.7),rgba(var(--glow-ivory),.5) 38%,rgba(var(--glow-ivory),.3),rgba(var(--glow-ivory),.15),rgba(var(--glow-ivory),.05) 80%,rgba(var(--glow-ivory),.01) 92%,rgba(var(--glow-ivory),0));filter:blur(24px);opacity:0;transition:opacity .8s ease}.splash-soften{position:absolute;left:50%;top:50%;width:min(205vw,1500px);height:min(118vw,74vh);transform:translate(-50%,-50%);opacity:0;transition:opacity .8s ease;-webkit-backdrop-filter:contrast(.8) brightness(1.03);backdrop-filter:contrast(.8) brightness(1.03);-webkit-mask-image:radial-gradient(closest-side,#000 0%,rgba(0,0,0,.6) 45%,transparent 100%);mask-image:radial-gradient(closest-side,#000 0%,rgba(0,0,0,.6) 45%,transparent 100%)}.intro-guest,.intro-welcome,.intro-names,.intro-tap{position:relative;margin:0}.intro-guest{max-width:16em;margin-bottom:10px;font-family:var(--font-hand);font-size:clamp(34px,9.5vw,44px);line-height:1.15;color:var(--slate-ink);overflow-wrap:anywhere}.intro-welcome{font-size:clamp(18px,4.8vw,22px);letter-spacing:.02em}.intro-names{margin:16px 0 30px}.intro-tap{font-size:clamp(16px,4.3vw,18px);letter-spacing:.06em;color:var(--slate-ink-deep)}.intro-guest,.intro-welcome,.intro-names{opacity:0;transition:opacity .8s ease}.splash-intro.in .splash-soften,.splash-intro.in .splash-glow,.splash-intro.in .intro-guest,.splash-intro.in .intro-welcome,.splash-intro.in .intro-names{opacity:1}.intro-tap{opacity:0}.splash-intro.in .intro-tap{animation:tap-in 2.4s ease .9s forwards}@keyframes tap-in{0%{opacity:0}25%{opacity:1}55%{opacity:.55}85%,to{opacity:1}}.splash-cover{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--paper-ivory)}@media (prefers-reduced-motion: reduce){.splash-intro.in .intro-tap{animation:tap-fade .6s ease .9s forwards}}@keyframes tap-fade{to{opacity:1}}.splash:focus{outline:none}.splash.keyboard:focus .intro-tap{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}:root{--paper-ivory: #f5f2ec;--ice-blue: #dce6ee;--dusty-blue: #8fa6b8;--silver: #c3c8ce;--slate-ink: #2f3e4e;--slate-ink-deep: #26323f;--card-ivory: #fbf9f5;--decline-rose: #8f5552;--glow-ivory: 248, 245, 239;--font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;--font-script: "Mrs Saint Delafield", "Brush Script MT", cursive;--font-hand: "Sacramento", "Brush Script MT", cursive;--marquee-font: clamp(28px, 7.5vw, 36px);--marquee-h: calc(var(--marquee-font) * 1.3 + 14px)}*{box-sizing:border-box}html,body{margin:0;color:var(--slate-ink);font-family:Georgia,Times New Roman,serif;-webkit-tap-highlight-color:transparent}html{background:var(--paper-ivory)}body{background:transparent}main{overflow-x:clip}html.scroll-locked,html.scroll-locked body{overflow:hidden}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.load-error{max-width:28rem;margin:40vh auto 0;padding:0 20px;text-align:center;font-family:var(--font-display);font-size:20px;color:var(--slate-ink)}
