@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap";:root{--forest:#173e38;--paper:#fbfaf7;--lavender:#cfc5df;--lavender-deep:#847399;--line:#d8d7d0;--muted:#61746d;background:var(--paper);color:var(--forest);font-family:DM Sans,sans-serif;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--lavender-deep);outline-offset:3px}.site-header{align-items:center;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fbfaf7e6;display:flex;height:76px;justify-content:space-between;left:0;padding:0 clamp(24px,5vw,80px);position:fixed;right:0;top:0;z-index:10}.brand{color:var(--forest);font-family:Playfair Display,serif;font-size:29px;font-weight:600;letter-spacing:-.1em;text-decoration:none}.brand span{color:var(--lavender-deep);font-style:italic;margin:0 3px}.navigation{align-items:center;display:flex;gap:clamp(15px,2.2vw,30px)}.navigation button,footer button{background:transparent;border:0;color:var(--forest);font-size:12px;padding:8px 0}.navigation button:not(.nav-rsvp):hover{color:var(--lavender-deep)}.navigation .language-button{color:var(--lavender-deep);font-family:DM Mono,monospace;font-size:10px;letter-spacing:.08em}.navigation .nav-rsvp{border-bottom:1px solid var(--forest);font-weight:600}.menu-button{display:none}.hero{align-items:center;background:linear-gradient(135deg,#d4cabf,#e8e4e4 47%,#c8c1df);display:flex;flex-direction:column;justify-content:center;min-height:min(820px,100svh);overflow:hidden;padding:140px 24px 100px;position:relative;text-align:center}.hero:before,.hero:after{border:1px solid rgba(23,62,56,.15);border-radius:50%;content:"";position:absolute}.hero:before{height:min(61vw,800px);left:-30vw;top:-25vw;width:min(61vw,800px)}.hero:after{bottom:-44vw;height:min(75vw,900px);right:-32vw;width:min(75vw,900px)}.hero-orb{border-radius:50%;opacity:.5;position:absolute}.hero-orb-one{background:#dbe5c8;height:25vw;left:10%;top:23%;width:25vw}.hero-orb-two{background:#d6aeb4;bottom:13%;height:18vw;right:10%;width:18vw}.hero-star{color:#173e386b;font-family:Playfair Display,serif;font-size:clamp(130px,20vw,270px);line-height:1;position:absolute}.star-one{left:5%;top:13%;transform:rotate(-17deg)}.star-two{bottom:7%;right:3%;transform:rotate(23deg)}.eyebrow,.section-kicker{font-family:DM Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.14em;margin:0 0 20px;position:relative;text-transform:uppercase;z-index:1}.hero h1{font-family:Playfair Display,serif;font-size:clamp(61px,10vw,145px);font-weight:500;letter-spacing:-.08em;line-height:.9;margin:0;position:relative;z-index:1}.hero h1 i{color:var(--lavender-deep);font-weight:500}.hero-date{font-family:Playfair Display,serif;font-size:clamp(17px,2vw,24px);margin:34px 0 27px;position:relative;z-index:1}.text-link,.card-link{background:transparent;border:0;border-bottom:1px solid currentColor;color:var(--forest);font-size:13px;padding:0 0 7px;position:relative;text-decoration:none;z-index:1}.text-link span{color:var(--lavender-deep);font-size:18px;margin-left:8px}.section-shell{margin:0 auto;max-width:1160px;padding-left:28px;padding-right:28px}.intro{padding-bottom:145px;padding-top:145px;text-align:center}.section-kicker{color:var(--lavender-deep)}h2{font-family:Playfair Display,serif;font-size:clamp(40px,5vw,67px);font-weight:500;letter-spacing:-.06em;line-height:1.04;margin:0}.intro-copy{font-size:16px;line-height:1.8;margin:29px auto 0;max-width:560px}.ornament{align-items:center;color:var(--lavender-deep);display:flex;font-size:18px;gap:12px;justify-content:center;margin-top:43px}.ornament span{background:var(--line);height:1px;width:70px}.details{padding-bottom:140px}.section-heading{align-items:end;display:flex;justify-content:space-between;margin-bottom:43px}.section-heading .section-kicker{margin:0 0 7px}.detail-grid{background:var(--line);border:1px solid var(--line);display:grid;gap:1px;grid-template-columns:repeat(2,1fr)}.detail-card{background:var(--paper);min-height:275px;padding:37px}.featured-card{background:#e6e0ee}.detail-icon{color:var(--lavender-deep);display:block;font-family:Playfair Display,serif;font-size:28px;margin-bottom:32px}.detail-card h3,.travel-card h3,.etiquette-grid h3,.uploaded-list h3{font-family:Playfair Display,serif;font-size:27px;font-weight:500;margin:0 0 8px}.time{font-size:16px;margin:0}.muted{color:var(--muted);font-size:13px;line-height:1.65}.detail-card .muted{margin:17px 0 22px}.card-link{font-size:12px}.schedule{padding-bottom:145px;padding-top:145px}.timeline{border-top:1px solid var(--line);list-style:none;margin:0;padding:0}.timeline li{align-items:center;border-bottom:1px solid var(--line);display:grid;gap:20px;grid-template-columns:25% 1fr;padding:22px 0}.timeline time{color:var(--lavender-deep);font-family:DM Mono,monospace;font-size:13px}.timeline span{font-family:Playfair Display,serif;font-size:clamp(20px,2.5vw,29px)}.travel{background:var(--forest);color:var(--paper);padding:132px 0}.travel .section-kicker{color:#c8bcdf}.travel-shell{display:grid;gap:70px;grid-template-columns:.7fr 1.3fr}.travel-heading h2{max-width:370px}.travel-grid{display:grid;gap:1px;grid-template-columns:1fr 1fr}.travel-card{background:#ffffff0f;padding:34px}.hotel-card{background:#cfc5df26}.travel-card .detail-icon{color:#d8cfe8;margin-bottom:24px}.travel-card h3{color:#f8f6f1;font-size:29px}.travel-card p{color:#d6dfd8;font-size:14px;line-height:1.7}.travel-card .travel-note{border-top:1px solid rgba(255,255,255,.2);font-family:DM Mono,monospace;font-size:10px;letter-spacing:.03em;margin:22px 0 0;padding-top:19px}.etiquette{padding-bottom:145px;padding-top:145px}.stacked-heading{align-items:start;flex-direction:column;gap:7px}.etiquette-grid{display:grid;gap:60px;grid-template-columns:1fr 1fr}.etiquette-grid article{border-top:1px solid var(--line);padding-top:28px}.etiquette-grid article>span{color:var(--lavender-deep);display:block;font-size:27px;margin-bottom:34px}.etiquette-grid p{line-height:1.75;max-width:430px}.photos{background:#e5e0ec;padding:128px 0}.photos-grid{align-items:start;display:grid;gap:clamp(48px,9vw,130px);grid-template-columns:.8fr 1.2fr}.photos-copy>p:not(.section-kicker){line-height:1.75;margin:26px 0;max-width:400px}.qr-wrap{align-items:center;display:flex;gap:16px;margin-top:35px}.qr-wrap img{background:var(--paper);height:94px;padding:7px;width:94px}.qr-wrap span{font-family:DM Mono,monospace;font-size:10px;line-height:1.6;max-width:170px}.upload-panel{background:var(--paper);padding:34px}.upload-panel form,.rsvp-form{display:grid;gap:18px}.upload-panel label,.rsvp-form label{display:grid;font-size:12px;font-weight:600;gap:8px}.upload-panel input,.rsvp-form input,.rsvp-form select,.rsvp-form textarea{background:#fff;border:1px solid var(--line);border-radius:0;color:var(--forest);min-height:46px;padding:12px}.file-picker{align-items:center;background:var(--forest);color:#fff;cursor:pointer;display:flex!important;justify-content:center;min-height:100px;position:relative;text-align:center}.file-picker input{cursor:pointer;top:0;right:0;bottom:0;left:0;opacity:0;position:absolute;width:100%}.file-list{color:var(--muted);font-size:11px;line-height:1.6;margin:0 0 7px}.button{background:var(--forest);border:1px solid var(--forest);color:#fff;font-size:13px;font-weight:600;min-height:47px;padding:13px 22px;transition:background .2s,color .2s}.button:hover:not(:disabled){background:transparent;color:var(--forest)}.form-success,.form-error{font-size:13px;line-height:1.5;margin:18px 0 0}.form-success{color:#2e6b51}.form-error{color:#a03536}.uploaded-list{border-top:1px solid var(--line);margin-top:29px;padding-top:25px}.uploaded-list h3{font-size:21px}.uploaded-list a{color:var(--forest);display:block;font-size:12px;margin-top:9px;overflow:hidden;text-decoration:underline;text-overflow:ellipsis;white-space:nowrap}.faq{padding-bottom:145px;padding-top:145px}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line);padding:22px 0}.faq-list summary{align-items:center;cursor:pointer;display:flex;font-family:Playfair Display,serif;font-size:clamp(19px,2.4vw,27px);justify-content:space-between;list-style:none}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{color:var(--lavender-deep);font-family:DM Sans,sans-serif;font-size:27px;font-weight:400}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list p{line-height:1.7;margin:18px 40px 2px 0;max-width:650px}.contact{align-items:center;background:#f0eee9;display:grid;gap:30px;grid-template-columns:.8fr .8fr 1fr;max-width:none;padding-bottom:82px;padding-left:clamp(28px,10vw,150px);padding-right:clamp(28px,10vw,150px);padding-top:82px}.contact .section-kicker{margin-bottom:10px}.contact>p{line-height:1.7;margin:0}.contact-links{display:grid;gap:17px}.contact-links a{color:var(--forest);display:grid;font-size:13px;gap:3px;text-decoration:none}.contact-links span{color:var(--muted);font-size:12px;text-decoration:underline}.rsvp{background:var(--forest);color:var(--paper);padding:130px 0}.rsvp .section-kicker{color:#c8bcdf}.rsvp-shell{display:grid;gap:80px;grid-template-columns:.75fr 1.25fr}.rsvp-heading>p:not(.section-kicker){color:#d4ddd6;line-height:1.65;margin:23px 0 0}.rsvp-form{grid-template-columns:1fr 1fr}.rsvp-form label{color:#e6ece6;font-size:11px}.rsvp-form .full-width{grid-column:1/-1}.rsvp-form .consent{align-items:start;display:flex;font-weight:400;line-height:1.5}.consent input{accent-color:var(--lavender-deep);min-height:auto;margin:3px 0 0}.rsvp .button{background:#ded6eb;border-color:#ded6eb;color:var(--forest)}.rsvp .button:hover:not(:disabled){background:transparent;color:#ded6eb}.rsvp .form-success{color:#cbe5d3}.rsvp .form-error{color:#ffc9c9}footer{align-items:center;background:var(--forest);border-top:1px solid rgba(255,255,255,.16);color:#d7dfd8;display:flex;font-family:DM Mono,monospace;font-size:10px;justify-content:space-between;letter-spacing:.09em;padding:28px clamp(24px,5vw,80px);text-transform:uppercase}footer button{color:#d7dfd8;font-family:DM Mono,monospace;font-size:10px;letter-spacing:.09em;text-transform:uppercase}@media(max-width:800px){.site-header{height:64px}.menu-button{background:none;border:0;display:grid;gap:6px;padding:10px 0 10px 10px}.menu-button span{background:var(--forest);display:block;height:1px;width:24px}.navigation{align-items:stretch;background:var(--paper);box-shadow:0 12px 25px #173e3814;display:none;flex-direction:column;gap:6px;left:0;padding:18px 28px 27px;position:absolute;right:0;top:64px}.navigation.is-open{display:flex}.navigation button{text-align:left}.navigation .nav-rsvp{align-self:flex-start;margin-top:4px}.hero{min-height:680px}.hero-orb-one{height:55vw;left:-10%;width:55vw}.hero-orb-two{height:45vw;right:-15%;width:45vw}.intro,.schedule,.etiquette,.faq{padding-bottom:90px;padding-top:90px}.details{padding-bottom:90px}.section-heading{align-items:start;flex-direction:column;gap:7px;margin-bottom:30px}.detail-grid,.travel-grid,.etiquette-grid,.photos-grid,.rsvp-shell,.rsvp-form,.contact{grid-template-columns:1fr}.detail-card{min-height:0;padding:29px}.travel{padding:86px 0}.travel-shell{gap:36px}.travel-card{padding:28px}.photos{padding:88px 0}.photos-grid{gap:41px}.upload-panel{padding:25px}.contact{padding-bottom:62px;padding-top:62px}.rsvp{padding:88px 0}.rsvp-shell{gap:38px}}.upload-progress{margin-top:20px}.upload-progress>div:first-child{display:flex;font-family:DM Mono,monospace;font-size:10px;justify-content:space-between;letter-spacing:.02em;margin-bottom:9px}.progress-track{background:#e3e0e7;height:6px;overflow:hidden}.progress-track span{background:var(--lavender-deep);display:block;height:100%;transition:width .2s ease-out}.progress-track.is-uploading span{animation:transfer 1.1s ease-in-out infinite;width:100%!important}.progress-track.is-uploading{background:linear-gradient(90deg,#e3e0e7,#d7cee5,#e3e0e7);background-size:200% 100%;animation:track 1.1s linear infinite}@keyframes transfer{0%{transform:translate(-70%)}to{transform:translate(100%)}}@keyframes track{to{background-position:-200% 0}}
