:root{--dark:#1a1f0f;--dark-mid:#2c3319;--dark-deep:#12160a;--light:#f5f0e8;--light-warm:#fdfbf7;--text-on-dark:#f0ebe3;--text-on-light:#2c3319;--text-muted:#7a7a6e;--text-muted-dark:#8a8a7e;--gold:#b8965a;--gold-hover:#cfab6e;--swatch-1:#98a869;--swatch-2:#9caf88;--swatch-3:#f7e7ce;--swatch-4:#d6b588;--error:#8b3a3a;--success:#4a5528;--font-display:"ivypresto-display", serif;--font-body:"Cormorant", Georgia, serif;--font-ui:"Jost", system-ui, sans-serif;--font-script:"the-seasons", serif;--text-massive:clamp(8rem, 20vw, 20rem);--text-hero:clamp(3.5rem, 8vw, 6rem);--text-display:clamp(2.5rem, 5vw, 4rem);--text-heading:clamp(1.75rem, 3.5vw, 2.5rem);--text-subheading:clamp(1.25rem, 2.5vw, 1.75rem);--text-body:clamp(1.05rem, 1.8vw, 1.2rem);--text-small:clamp(.8rem, 1.4vw, .9375rem);--text-xs:.8125rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--space-10:8rem;--space-11:10rem;--space-12:14rem;--content-max:1200px;--content-narrow:680px;--section-py:clamp(5rem, 12vw, 10rem);--section-px:clamp(1.5rem, 5vw, 4rem);--ease-luxury:cubic-bezier(.25, 0, .2, 1);--duration-slow:.7s;--duration-normal:.5s;--z-base:0;--z-above:10;--z-grain:9999}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;min-height:100vh}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}:focus-visible{outline:1px solid var(--gold);outline-offset:3px}body{font-family:var(--font-body);font-size:var(--text-body);color:var(--text-on-dark);background-color:var(--dark);line-height:1.6}.display{font-family:var(--font-display);letter-spacing:.2em;text-transform:uppercase;font-weight:400;line-height:1}.display--bold{font-weight:700}.display--massive{font-size:var(--text-massive);letter-spacing:.05em}.heading{font-family:var(--font-body);font-size:var(--text-heading);font-weight:300;line-height:1.3}.subheading{font-family:var(--font-body);font-size:var(--text-subheading);font-weight:300;line-height:1.4}.body-text{font-family:var(--font-body);font-size:var(--text-body);font-weight:300;line-height:1.8}.body-text--italic{font-style:italic}.label{font-family:var(--font-ui);font-size:var(--text-small);letter-spacing:.2em;text-transform:uppercase;font-weight:300}.script{font-family:var(--font-script);font-style:italic;font-weight:400;line-height:1.2}.gold{color:var(--gold)}.muted{color:var(--text-muted)}.text-center{text-align:center}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.composition{width:100%;padding:var(--section-py) var(--section-px);position:relative;overflow:hidden}.composition--dark{background-color:var(--dark);color:var(--text-on-dark)}.composition--light{background-color:var(--light);color:var(--text-on-light)}.composition--full{justify-content:center;align-items:center;min-height:100svh;display:flex}.composition__inner{max-width:var(--content-max);width:100%;margin:0 auto}.composition__inner--narrow{max-width:var(--content-narrow)}.names__initials{pointer-events:none;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden}.names__initial{font-family:var(--font-display);background:url(/assets/hero-BL9k4bjP.webp) 50%/cover no-repeat;-webkit-text-fill-color:transparent;color:#0000;opacity:.4;-webkit-background-clip:text;background-clip:text;font-size:clamp(18rem,50vw,50rem);font-weight:700;line-height:.85}.names__initial:first-child{margin-left:-5%}.names__initial:last-child{margin-right:-5%}.names{text-align:center;z-index:var(--z-above);position:relative}.names__couple{z-index:var(--z-above);text-align:center;position:relative}.names__name{font-family:var(--font-display);font-size:var(--text-hero);letter-spacing:.25em;text-transform:uppercase;font-weight:400;display:block}@media (width<=767px){.names__name{letter-spacing:.2em;font-size:3.5rem}.names__and{margin:var(--space-2) 0;font-size:1.75rem}.names__date{letter-spacing:.25em;margin-top:var(--space-5);font-size:.9rem}}.names__and{font-family:var(--font-script);letter-spacing:0;text-transform:none;margin:var(--space-3) 0;color:var(--text-muted-dark);font-size:clamp(1.5rem,3vw,2.5rem);font-style:italic;font-weight:400;display:block}.names__date{font-family:var(--font-ui);font-size:var(--text-small);letter-spacing:.3em;color:var(--gold);margin-top:var(--space-7);font-weight:300}.names__scroll-hint{bottom:var(--space-8);font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);opacity:.5;position:absolute;left:50%;transform:translate(-50%)}.story{gap:var(--space-12);flex-direction:column;display:flex}.story__moment{gap:var(--space-7);grid-template-columns:1fr;align-items:center;display:grid}.story__photo-wrap{border-radius:2px;position:relative;overflow:hidden}.story__photo-wrap:after{content:"";background:radial-gradient(ellipse at center, transparent 50%, var(--dark) 90%);pointer-events:none;position:absolute;inset:0}.story__photo{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto;display:block}.memory-photo{filter:blur(15px);opacity:0;will-change:filter, opacity, transform;transform:scale(1.08)}.story__text{max-width:480px}.story__date{margin-bottom:var(--space-3);color:var(--gold)}.story__title{margin-bottom:var(--space-4)}.story__desc{color:var(--text-muted-dark);line-height:1.8}@media (width>=768px){.story__moment{gap:var(--space-9);grid-template-columns:1.2fr 1fr}.story__moment--reverse{grid-template-columns:1fr 1.2fr}.story__moment--reverse .story__photo-wrap{order:2}.story__moment--reverse .story__text{text-align:right;order:1;margin-left:auto}}.fullbleed-photo{height:100vh;padding:0;position:relative;overflow:hidden}.fullbleed-photo__bg{position:absolute;inset:-10%}.fullbleed-photo__bg img{object-fit:cover;width:100%;height:100%}.fullbleed-photo__overlay{background:linear-gradient(to bottom, var(--dark) 0%, #1a1f0f33 30%, #1a1f0f33 70%, var(--dark) 100%);position:absolute;inset:0}.interstitial{padding:var(--space-9) var(--section-px);background-color:var(--dark);justify-content:center;display:flex}.interstitial__img{aspect-ratio:3/2;object-fit:cover;clip-path:inset(40% 10%);will-change:clip-path;border-radius:2px;width:70vw;max-width:900px}.gallery-section{padding-bottom:var(--space-7)}.gallery__heading{padding:0 var(--section-px);margin-bottom:var(--space-8)}.fgallery-wrap{position:relative;overflow:hidden}.fgallery{padding:0 var(--section-px);align-items:center;gap:clamp(1rem,2vw,1.5rem);display:flex}.fgallery__slide{border-radius:3px;flex-shrink:0;overflow:hidden}.fgallery__slide img{width:auto;height:auto;max-height:75vh;display:block}.fgallery__slide:hover img{transition:transform .8s var(--ease-luxury);transform:scale(1.02)}.fgallery__hint{text-align:center;color:var(--text-muted);margin-top:var(--space-5);display:none}@media (width<=767px){.fgallery-wrap{-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;scrollbar-width:none;overflow:auto hidden}.fgallery-wrap::-webkit-scrollbar{display:none}.fgallery__slide img{max-width:85vw;max-height:55vh}.fgallery__hint{display:block}.interstitial__img{width:90vw}}@media (width>=1024px){.fgallery__slide img{max-height:80vh}}.words{text-align:center;padding:var(--space-12) 0}.words__text{font-family:var(--font-body);font-size:var(--text-display);max-width:800px;margin:0 auto;font-style:italic;font-weight:300;line-height:1.8}.words__parents{margin-top:var(--space-9);gap:var(--space-6);flex-direction:column;display:flex}.words__parent-group{text-align:center}.words__parent-label{font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:.25em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-2);font-weight:300}.words__parent-names{font-family:var(--font-body);font-size:var(--text-body);font-weight:300}@media (width>=768px){.words__parents{justify-content:center;gap:var(--space-10);flex-direction:row}}.day{gap:var(--space-9);text-align:center;flex-direction:column;display:flex}.day__date-stack{gap:var(--space-2);flex-direction:column;display:flex}.day__weekday{font-family:var(--font-ui);font-size:var(--text-small);letter-spacing:.3em;text-transform:uppercase;font-weight:300}.day__date{font-family:var(--font-display);font-size:var(--text-display);letter-spacing:.15em;font-weight:400}.day__time{font-family:var(--font-ui);font-size:var(--text-small);letter-spacing:.2em;color:var(--text-muted-dark);font-weight:300}.day__countdown{justify-content:center;gap:var(--space-6);display:flex}.day__unit{text-align:center}.day__number{font-family:var(--font-display);font-size:var(--text-heading);letter-spacing:.05em;font-weight:400;display:block}.day__label{font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted-dark);font-weight:300}.day__calendar-btn{font-family:var(--font-ui);font-size:var(--text-small);letter-spacing:.15em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid var(--gold);padding-bottom:var(--space-1);transition:opacity var(--duration-normal) var(--ease-luxury);margin-top:var(--space-7);font-weight:300;display:inline-block}.day__calendar-btn:hover{opacity:.7}@media (width>=768px){.day{justify-content:center;align-items:center;gap:var(--space-10);text-align:left;flex-direction:row}.day__divider{background:var(--text-muted);opacity:.2;width:1px;height:120px}}.places{gap:var(--space-10);flex-direction:column;display:flex}.places__venue{text-align:center}.places__type{font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:.3em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-4);font-weight:300}.places__name{font-family:var(--font-display);font-size:var(--text-subheading);letter-spacing:.1em;margin-bottom:var(--space-3);font-weight:400}.places__address{font-family:var(--font-body);font-size:var(--text-body);color:var(--text-muted);margin-bottom:var(--space-5);font-weight:300}.places__map-link{font-family:var(--font-ui);font-size:var(--text-small);letter-spacing:.1em;color:var(--gold);padding-bottom:var(--space-1);transition:border-color var(--duration-normal) var(--ease-luxury);border-bottom:1px solid #0000;font-weight:300}.places__map-link:hover{border-color:var(--gold)}.plan{max-width:var(--content-narrow);margin:0 auto}.plan__title{font-family:var(--font-display);font-size:var(--text-heading);letter-spacing:.15em;text-transform:uppercase;text-align:center;margin-bottom:var(--space-9);font-weight:400}.plan__timeline{padding-left:var(--space-8);position:relative}.plan__timeline:before{content:"";background:var(--gold);opacity:.3;width:1px;position:absolute;top:0;bottom:0;left:0}.plan__item{padding:var(--space-5) 0;gap:var(--space-6);align-items:baseline;display:flex}.plan__time{font-family:var(--font-ui);font-size:var(--text-small);letter-spacing:.1em;color:var(--gold);white-space:nowrap;min-width:80px;font-weight:300}.plan__event{font-family:var(--font-body);font-size:var(--text-subheading);font-weight:300}.dresscode{text-align:center}.dresscode__title{font-family:var(--font-display);font-size:var(--text-heading);letter-spacing:.2em;text-transform:uppercase;margin-bottom:var(--space-8);font-weight:400}.dresscode__swatches{justify-content:center;gap:var(--space-5);margin-bottom:var(--space-6);display:flex}.dresscode__swatch{border:1px solid #f0ebe326;border-radius:50%;width:48px;height:48px}.dresscode__note{font-family:var(--font-body);font-size:var(--text-body);color:var(--text-muted-dark);max-width:480px;margin:0 auto;font-style:italic;font-weight:300}.ask{gap:var(--space-10);text-align:center;flex-direction:column;display:flex}.ask__block-title{font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:.3em;text-transform:uppercase;margin-bottom:var(--space-4);font-weight:400}.ask__block-text{font-family:var(--font-body);font-size:var(--text-body);max-width:520px;margin:0 auto;font-weight:300;line-height:1.8}.closing{text-align:center;padding:var(--space-12) 0}.closing__prefix{font-family:var(--font-script);font-size:var(--text-heading);color:var(--text-muted-dark);margin-bottom:var(--space-5);font-style:italic;font-weight:400}.closing__names{font-family:var(--font-display);font-size:var(--text-display);letter-spacing:.15em;margin-bottom:var(--space-5);font-weight:400}.closing__date{font-family:var(--font-ui);font-size:var(--text-small);letter-spacing:.25em;text-transform:uppercase;color:var(--text-muted);font-weight:300}.rsvp{max-width:var(--content-narrow);text-align:center;margin:0 auto}.rsvp__title{font-family:var(--font-display);font-size:var(--text-display);letter-spacing:.15em;text-transform:uppercase;margin-bottom:var(--space-9);font-weight:400}.rsvp__toggle{justify-content:center;gap:var(--space-6);margin-bottom:var(--space-8);display:flex}.rsvp__toggle-btn{font-family:var(--font-ui);font-size:var(--text-small);letter-spacing:.15em;text-transform:uppercase;padding:var(--space-3) var(--space-6);border:1px solid var(--text-muted);color:var(--text-muted);transition:all var(--duration-normal) var(--ease-luxury);font-weight:300}.rsvp__toggle-btn[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}.rsvp__toggle-btn:hover{border-color:var(--text-on-dark);color:var(--text-on-dark)}.rsvp__form{text-align:left}.rsvp__accept-fields{display:none}.rsvp__accept-fields.is-visible{display:block}.form-group{margin-bottom:var(--space-5)}.form-label{font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted-dark);margin-bottom:var(--space-2);font-weight:300;display:block}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-3) 0;font-family:var(--font-body);font-size:var(--text-body);color:var(--text-on-dark);border:none;border-bottom:1px solid var(--text-muted);transition:border-color var(--duration-normal) var(--ease-luxury);appearance:none;background:0 0;border-radius:0;font-weight:300}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--gold);outline:none}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted);font-style:italic}.form-textarea{resize:vertical;border:none;border-bottom:1px solid var(--text-muted);min-height:100px;padding:var(--space-3) 0}.form-select{cursor:pointer}.form-select option{background-color:var(--dark);color:var(--text-on-dark)}.form-error{font-family:var(--font-ui);font-size:var(--text-xs);color:var(--error);margin-top:var(--space-2);display:none}.form-error.is-visible{display:block}.rsvp__submit{font-family:var(--font-ui);font-size:var(--text-small);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid var(--gold);padding:var(--space-2) 0;margin-top:var(--space-7);transition:opacity var(--duration-normal) var(--ease-luxury);font-weight:400;display:inline-block}.rsvp__submit:hover{opacity:.7}.rsvp__status{text-align:center;margin-top:var(--space-5);font-family:var(--font-ui);font-size:var(--text-small)}.form-honeypot{opacity:0;pointer-events:none;position:absolute;left:-9999px}@keyframes force-visible{to{opacity:1!important;filter:none!important;transform:none!important}}.names__name,.names__and,.names__date,.names__scroll-hint,[data-fade],[data-split],[data-stagger]>*,.words__text,.words__parents,.day__date-stack,.day__countdown,.day__calendar-btn,.places__venue,.plan__title,.plan__item,.dresscode__title,.dresscode__swatches,.dresscode__note,.ask>div,.rsvp__title,.closing__prefix,.closing__names,.closing__date,.gallery__title,.interstitial__img,.memory-photo{animation:0s 4s forwards force-visible}.cursor{pointer-events:none;z-index:10000;display:none}@media (width>=768px) and (hover:hover){.cursor{display:block}*{cursor:none!important}.cursor__dot,.cursor__ring{pointer-events:none;border-radius:50%;position:fixed;top:0;left:0}.cursor__dot{background:var(--gold);width:6px;height:6px;margin:-3px 0 0 -3px}.cursor__ring{border:1px solid var(--text-on-dark);opacity:.4;width:36px;height:36px;margin:-18px 0 0 -18px}}@media (prefers-reduced-motion:reduce){body:after{animation:none}[data-fade]{opacity:1;transform:none}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
