@font-face{font-family:weddingFont;src:url(../media/bitter_latin_wght_normal-s.p.074r1hf89z7yy.woff2)format("woff2");font-display:swap;font-weight:100 900;font-style:normal}@font-face{font-family:weddingFont;src:url(../media/bitter_latin_wght_italic-s.p.15izk86q52wko.woff2)format("woff2");font-display:swap;font-weight:100 900;font-style:italic}@font-face{font-family:weddingFont Fallback;src:local(Arial);ascent-override:90.95%;descent-override:25.78%;line-gap-override:0.0%;size-adjust:102.8%}.HoNzzq_className{font-family:weddingFont,weddingFont Fallback,Georgia}
@font-face{font-family:namesFont;src:url(../media/dancing_script_latin_wght_normal-s.p.3omt7e9o8bdjl.woff2)format("woff2");font-display:swap;font-weight:400 700}@font-face{font-family:namesFont Fallback;src:local(Arial);ascent-override:115.78%;descent-override:35.24%;line-gap-override:0.0%;size-adjust:79.46%}.NmKEJW_className{font-family:namesFont,namesFont Fallback,Georgia}
:root{--bg:#fff;--bg-alt:#f5f5f4;--surface:#fff;--ink:#101010;--ink-soft:#3a3a3a;--ink-faint:#666;--rule:#d8d8d6;--display:"Bitter", Georgia, serif;--text:"Bitter", Georgia, serif;--names:"Dancing Script", Georgia, serif;--page:1180px;--prose:620px}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-size:18px;line-height:1.65}h1,h2{font-family:var(--display);text-wrap:balance;margin:0;font-weight:500;line-height:1.05}h1{letter-spacing:-.01em;font-size:clamp(3rem,9vw,6rem)}h2{letter-spacing:-.005em;font-size:clamp(2.2rem,5vw,3.4rem)}h3{font-family:var(--text);margin:0;font-size:1.3rem;font-weight:400;line-height:1.35}p{margin:0 0 1.1em}a{color:var(--ink);text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.eyebrow{color:var(--ink-faint);margin:0 0 14px;font-size:15px;font-style:italic}.rule{background:var(--ink);border:0;width:48px;height:1px;margin:26px auto}.section{padding:clamp(64px,10vw,120px) 24px}.inner{max-width:var(--page);margin:0 auto}.inner--prose{max-width:var(--prose)}.center{text-align:center}.text-link{text-underline-offset:5px;margin-top:12px;font-size:17px;text-decoration:underline;text-decoration-thickness:1px;display:inline-block}.text-link:hover{text-decoration-thickness:2px}.btn{font-family:var(--text);letter-spacing:.04em;border:1px solid var(--ink);background:var(--ink);color:var(--bg);cursor:pointer;padding:16px 40px;font-size:16px;text-decoration:none;transition:background .18s,color .18s;display:inline-block}.btn:hover{color:var(--ink);background:0 0}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--ghost{color:var(--ink);background:0 0}.btn--ghost:hover{background:var(--ink);color:var(--bg)}.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}.skip-link{z-index:100;background:var(--ink);color:var(--bg);padding:12px 20px;position:fixed;top:-100px;left:16px}.skip-link:focus{top:12px}.nav{z-index:40;background:var(--bg);border-bottom:1px solid var(--rule);position:sticky;top:0}.nav__inner{max-width:var(--page);justify-content:space-between;align-items:center;gap:16px;height:76px;margin:0 auto;padding:0 24px;display:flex}.nav__brand{align-items:center;padding-block:12px;text-decoration:none;display:flex;position:relative}.brand-surprise{pointer-events:none;position:absolute;inset:0}.brand-surprise span{opacity:0;font-size:23px;transition:opacity .3s,transform .65s cubic-bezier(.2,.7,.3,1);position:absolute;top:0;left:30%;transform:translateY(12px)scale(.5)}.brand-surprise span:nth-child(2){font-size:17px;transition-delay:80ms;left:66%}.brand-surprise span:nth-child(3){font-size:12px;transition-delay:.16s;left:90%}.nav__brand:is(:hover,:focus-visible) .brand-surprise span{opacity:1;transform:translate(-10px,-5px)rotate(-16deg)scale(1)}.nav__brand:is(:hover,:focus-visible) .brand-surprise span:nth-child(2){transform:translate(2px,-12px)rotate(12deg)scale(1)}.nav__brand:is(:hover,:focus-visible) .brand-surprise span:nth-child(3){transform:translate(12px,2px)rotate(20deg)scale(1)}.brand-mark{font-family:var(--display);font-size:30px;font-weight:600;line-height:1}.brand-mark span{font-family:var(--text);margin:0 3px;font-size:17px;font-style:italic}.nav__links{align-items:center;gap:30px;display:flex}.nav__link{color:var(--ink-soft);border-bottom:1px solid #0000;padding:4px 0;font-size:16px;text-decoration:none}.nav__link:hover,.nav__link[aria-current=page]{color:var(--ink);border-bottom-color:var(--ink)}.nav__toggle{color:var(--ink);cursor:pointer;background:0 0;border:0;padding:8px;font-size:22px;line-height:1;display:none}@media (max-width:760px){.nav__inner{height:64px}.nav__toggle{display:block}.nav__links{background:var(--bg);border-bottom:1px solid var(--rule);flex-direction:column;align-items:stretch;gap:0;padding:8px 24px 20px;position:absolute;top:64px;left:0;right:0}.nav__links[data-open=false]{display:none}.nav__link{border-bottom:1px solid var(--rule);padding:14px 0}}.opening{text-align:center;padding:clamp(40px,5vw,74px) 24px 36px;overflow:hidden}.opening__masthead{z-index:4;position:relative}.opening__masthead>p{margin-bottom:20px;font-size:17px}.opening h1{font-family:var(--names);letter-spacing:-.02em;font-size:clamp(4.5rem,11vw,10rem);font-weight:700;line-height:1.2}.opening h1 span{font:inherit}.opening__date{justify-content:center;gap:44px;margin-top:22px;font-size:17px;display:flex}.opening__date p{margin:0}.photo-stack{aspect-ratio:80/41;max-width:1220px;margin:48px auto 24px;position:relative}.photo-stack__photo{aspect-ratio:4/5;margin:0;position:absolute}.photo-stack__photo img{object-fit:cover}.photo-stack__photo--left{width:32%;top:10%;left:2%;transform:rotate(-5deg)}.photo-stack__photo--right{width:32%;top:7%;right:2%;transform:rotate(5deg)}.photo-stack__photo--center{z-index:2;width:41%;top:0;left:29.5%;box-shadow:0 8px 35px #0000001c}.opening__scroll{flex-direction:column;align-items:center;gap:6px;padding:12px;font-size:15px;text-decoration:none;display:inline-flex}.opening__scroll span{font-size:24px}.date-story{max-width:1440px;margin:0 auto;padding:72px 40px 110px}.date-story__intro{text-align:center;margin-bottom:70px}.date-story__intro>p{margin-bottom:20px;font-size:16px}.date-story__intro h2{font-size:clamp(2.4rem,5.3vw,4.5rem);line-height:1.12}.date-story__composition{grid-template-columns:1fr 1.65fr 1fr;align-items:start;gap:44px;min-height:1050px;display:grid}.date-story__photo{width:100%;margin:0;position:sticky;top:max(100px,50svh - min(47vw,620px)/2)}.date-story__image{aspect-ratio:4/5;max-height:620px;position:relative}.date-story__photo img{object-fit:cover}.date-story__side{text-align:center}.date-story__side--date{padding-top:110px}.date-story__side--place{padding-top:620px}.date-story__side>p{font-size:18px}.date-story__side .date-story__large{font-family:var(--display);letter-spacing:-.03em;margin-bottom:18px;font-size:clamp(2.4rem,4.5vw,4.5rem);line-height:1.1}.date-story__side .date-story__full-date{font-family:var(--display);font-size:clamp(1.5rem,2.5vw,2.2rem);font-weight:500;line-height:1.5}.date-story__side .date-story__note{color:var(--ink-soft);margin-top:40px;font-size:16px}.closing{grid-template-columns:1.5fr 1fr;align-items:center;gap:clamp(40px,6vw,100px);max-width:1440px;margin:0 auto;padding:0 40px 120px;display:grid}.closing__photo{aspect-ratio:4/3;margin:0;position:relative}.closing__photo img{object-fit:cover}.closing__copy h2{font-family:var(--names);font-size:clamp(3.2rem,5vw,4.5rem);font-weight:700;line-height:1.16}.closing__copy p{max-width:25ch;color:var(--ink-soft);margin:24px 0 0}#save-the-date{scroll-margin-top:80px}@media (max-width:760px){.opening{padding:38px 16px 20px}.opening h1{font-size:clamp(3.6rem,12vw,5.8rem)}.opening__date{flex-direction:column;gap:8px;margin-top:18px;font-size:16px}.photo-stack{aspect-ratio:5/3;margin-top:36px;margin-bottom:12px}.photo-stack__photo--left{width:36%;top:13%;left:-3%}.photo-stack__photo--right{width:36%;top:10%;right:-3%}.photo-stack__photo--center{width:48%;left:26%}.date-story{padding:48px 24px 64px}.date-story__intro{margin-bottom:38px}.date-story__composition{flex-direction:column;align-items:center;gap:32px;min-height:0;display:flex}.date-story__side--date,.date-story__side--place{padding-top:0}.date-story__photo{max-width:440px;position:relative;top:auto}.date-story__side--place .date-story__note{margin-top:24px}.closing{grid-template-columns:1fr;gap:32px;padding:0 24px 64px}.closing__copy{text-align:center}.closing__copy p{margin-inline:auto}}@media (hover:none) and (min-width:761px){.date-story__composition{align-items:center;min-height:0}.date-story__side--date,.date-story__side--place{padding-top:0}.date-story__photo{position:relative;top:auto}}@media (prefers-reduced-motion:reduce){.brand-surprise span{transform:none!important}}.page-heading{margin-bottom:clamp(48px,7vw,72px)}.page-heading h1{font-size:clamp(3.2rem,8vw,5.6rem)}.page-heading__copy{color:var(--ink-soft)}.page-heading__copy p:last-child{margin-bottom:0}.registry{min-height:72vh}.cards{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:20px;display:grid}.card{background:var(--surface);border:1px solid var(--rule);padding:30px}.card__meta{color:var(--ink-faint);margin:6px 0 0;font-size:15px}.form{max-width:var(--prose);margin:0 auto}.field{margin-bottom:28px}.field__label{color:var(--ink-soft);margin-bottom:8px;font-size:15px;display:block}.field__hint{color:var(--ink-faint);margin:8px 0 0;font-size:14px}input,select,textarea,.attendee,h1,h2,h3{scroll-margin-top:100px}input:not([type=file]):not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]),select,textarea{width:100%;font-family:var(--text);color:var(--ink);border:0;border-bottom:1px solid var(--ink);background:0 0;border-radius:0;padding:10px 2px;font-size:17px}input:focus,select:focus,textarea:focus{outline:2px solid var(--ink);outline-offset:4px}textarea{resize:vertical;min-height:90px}.choice{flex-wrap:wrap;gap:14px;display:flex}.choice__btn{font-family:var(--text);background:var(--surface);border:1px solid var(--rule);color:var(--ink-soft);cursor:pointer;flex:220px;padding:20px;font-size:16px;transition:border-color .16s,color .16s,background .16s}.choice__btn:hover{border-color:var(--ink);color:var(--ink)}.choice__btn[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}.attendee{background:var(--surface);border:1px solid var(--rule);margin-bottom:18px;padding:26px}.attendee__head{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.attendee__num{color:var(--ink-faint);font-size:14px;font-style:italic}.linkbtn{color:var(--ink);font-family:var(--text);cursor:pointer;text-underline-offset:4px;background:0 0;border:0;padding:4px;font-size:15px;text-decoration:underline}.alert{border:1px solid var(--rule);margin-bottom:24px;padding:16px 18px;font-size:16px}.alert--error{border-left:3px solid var(--ink);color:var(--ink)}.alert--info{background:var(--bg-alt);color:var(--ink-soft)}.stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:36px;display:grid}.stat{background:var(--surface);border:1px solid var(--rule);padding:22px}.stat__num{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:2.3rem;line-height:1}.stat__label{color:var(--ink-faint);margin-top:8px;font-size:14px;font-style:italic}.table-wrap{border:1px solid var(--rule);background:var(--surface);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:15px}th,td{text-align:left;border-bottom:1px solid var(--rule);vertical-align:top;padding:12px 14px}th{color:var(--ink-faint);white-space:nowrap;font-size:14px;font-style:italic;font-weight:400}tr:last-child td{border-bottom:0}.footer{border-top:1px solid var(--rule);text-align:center;background:var(--bg-alt);padding:56px 24px}.footer__names{font-family:var(--names);margin-bottom:14px;font-size:42px;font-weight:700}.footer p{color:var(--ink-faint);margin:0 0 6px;font-size:14px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
