:root{--silk:#f7efe8;--card:#fffaf6db;--wine:#4a2c38;--rose:#a85a6a;--forest:#2c473c;--ink:#3a2e2a;--mute:#7a6860;--line:#e4d2c6;--ease:cubic-bezier(.22, .8, .28, 1)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:72px}html,body,#app{background:var(--silk);width:100%;color:var(--ink);margin:0;font-family:Nunito Sans,sans-serif;overflow-x:hidden}img{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0}a{color:inherit;text-decoration:none}.veil{z-index:80;color:#f7e9de;background:#4a2c38;place-items:center;display:grid;position:fixed;inset:0}.mono{border:1px solid #f7e9de73;border-radius:50%;place-items:center;width:92px;height:92px;font-family:Great Vibes,cursive;font-size:2rem;display:grid}.hero{width:100%;min-height:100svh;position:relative;overflow:hidden}.hero-stage{z-index:1;justify-content:center;align-items:center;width:100%;min-height:100svh;padding:32px 20px;display:flex;position:relative}.hero-bg{object-fit:cover;object-position:center;transform-origin:50%;filter:saturate(.92);width:100%;height:100%;position:absolute;inset:0}.hero:after{content:"";background:radial-gradient(#4a2c382e,#4a2c3885);position:absolute;inset:0}.invite{z-index:1;text-align:center;background:var(--card);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid #ffffffb3;width:min(440px,100% - 8px);margin-inline:auto;padding:44px 28px 36px;position:relative;box-shadow:0 30px 80px #4a2c3838}.invite-ornament{background:var(--rose);width:56px;height:1px;margin:0 auto 18px}.invite .small{letter-spacing:.32em;text-transform:uppercase;color:var(--rose);font-size:.72rem}.invite h1{color:var(--wine);margin:12px 0 0;font-family:Great Vibes,cursive;font-size:clamp(3.4rem,12vw,4.6rem);font-weight:400;line-height:1.05}.amp{color:var(--mute);margin:4px 0;font-family:Libre Baskerville,serif;font-size:1rem;font-style:italic;display:block}.invite-date{color:var(--ink);margin:18px 0 0;font-family:Libre Baskerville,serif;font-size:.95rem;line-height:1.6}.pets{letter-spacing:.14em;text-transform:uppercase;color:var(--forest);margin:14px 0 0;font-size:.78rem}.invite-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:26px;display:flex}.btn{letter-spacing:.12em;text-transform:uppercase;border-radius:999px;padding:11px 20px;font-size:.78rem}.btn-fill{background:var(--wine);color:#f7e9de}.btn-line{border:1px solid var(--wine);color:var(--wine)}.nav{z-index:40;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:transform .45s var(--ease), border-color .3s;background:#f7efe8e6;border-bottom:1px solid #0000;justify-content:center;gap:22px;padding:14px 16px;display:flex;position:fixed;top:0;left:0;right:0;transform:translateY(-110%)}.nav.on{border-bottom-color:var(--line);transform:translateY(0)}.nav a{letter-spacing:.18em;text-transform:uppercase;color:var(--wine);font-size:.72rem}.hashtag,.share-quiet{letter-spacing:.16em;text-transform:uppercase;color:var(--rose);margin:12px auto 0;font-size:.72rem;display:block}.share-quiet{letter-spacing:.12em;color:var(--mute);margin-top:16px}.cal-pop{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:14px;display:flex}.cal-pop button,.cal-pop a{letter-spacing:.08em;text-transform:uppercase;color:var(--wine);border-bottom:1px solid var(--line);padding-bottom:2px;font-size:.72rem}.clock{text-align:center;color:var(--mute);padding:36px 16px 8px}.clock>p{letter-spacing:.22em;text-transform:uppercase;margin:0 0 16px;font-size:.72rem}.ticks{justify-content:center;gap:10px;display:flex}.ticks div{border:1px solid var(--line);background:#fffaf6;min-width:84px;padding:14px 10px 12px}.ticks strong{color:var(--wine);font-family:Libre Baskerville,serif;font-size:1.7rem;font-weight:400;display:block}.ticks span{letter-spacing:.14em;text-transform:uppercase;font-size:.68rem}.flow{max-width:760px;margin:0 auto;padding:20px 18px 80px}.prose{text-align:center;padding:28px 8px 36px}.prose h2{color:var(--wine);margin:0 0 12px;font-family:Libre Baskerville,serif;font-size:1.8rem;font-weight:400}.prose p{max-width:34em;color:var(--mute);margin:0 auto;line-height:1.75}.film{gap:14px;margin-bottom:48px;display:grid}.film img{object-fit:cover;border-radius:6px;width:100%;height:220px;box-shadow:0 12px 40px #4a2c381f}.timeline{padding:12px 0 40px;position:relative}.timeline:before{content:"";background:var(--line);width:1px;position:absolute;top:0;bottom:0;left:18px}.beat{padding:0 0 32px 48px;position:relative}.beat:before{content:"";background:var(--silk);border:2px solid var(--rose);border-radius:50%;width:13px;height:13px;position:absolute;top:18px;left:12px}.beat img{object-fit:cover;border-radius:6px;width:100%;height:200px;margin-bottom:12px}.beat small{letter-spacing:.18em;text-transform:uppercase;color:var(--rose);font-size:.68rem}.beat h3{margin:6px 0 4px;font-family:Libre Baskerville,serif;font-size:1.45rem;font-weight:400}.beat p{color:var(--mute);margin:0}.map-link{letter-spacing:.14em;text-transform:uppercase;color:var(--rose);border-bottom:1px solid var(--line);margin-top:10px;font-size:.72rem;display:inline-block}.party,.stays,.faqs{margin:0 0 40px;padding:0;list-style:none}.party{gap:18px 24px;display:grid}.party li{text-align:center}.party small,.gift small{letter-spacing:.16em;text-transform:uppercase;color:var(--rose);margin-bottom:4px;font-size:.68rem;display:block}.party strong{font-family:Libre Baskerville,serif;font-size:1.15rem;font-weight:400}.stays li{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:16px;padding:16px 0;display:flex}.stays li:last-child{border-bottom:1px solid var(--line)}.stays h3{margin:0 0 4px;font-family:Libre Baskerville,serif;font-size:1.15rem;font-weight:400}.stays p{color:var(--mute);margin:0;font-size:.9rem}.stays a{letter-spacing:.14em;text-transform:uppercase;color:var(--rose);flex-shrink:0;font-size:.72rem}.gift{text-align:center;border:1px solid var(--line);background:#fffaf6;max-width:360px;margin:0 auto 48px;padding:28px 20px}.gift strong{margin:6px 0 4px;font-family:Libre Baskerville,serif;font-size:1.45rem;font-weight:400;display:block}.gift span{color:var(--mute);font-size:.9rem;display:block}.gift button{letter-spacing:.14em;text-transform:uppercase;color:var(--wine);border-bottom:1px solid var(--line);margin-top:14px;padding-bottom:2px;font-size:.72rem}.faq{text-align:left;border-top:1px solid var(--line);width:100%;color:inherit;padding:16px 0;display:block}.faq:last-child{border-bottom:1px solid var(--line)}.faq span{font-family:Libre Baskerville,serif;font-size:1.05rem}.faq p{color:var(--mute);margin:10px 0 0;font-size:.95rem;line-height:1.65}.menu-list{flex-direction:column;gap:12px;margin:8px 0 28px;display:flex}.dish{grid-template-columns:72px 1fr;align-items:center;gap:14px;display:grid}.dish img{object-fit:cover;border-radius:50%;width:72px;height:72px}.dish h3{margin:0 0 2px;font-family:Libre Baskerville,serif;font-size:1.15rem;font-weight:400}.dish p{color:var(--mute);margin:0;font-size:.9rem}.note{text-align:center;color:var(--mute);margin-bottom:40px;font-size:.9rem}.rsvp{border:1px solid var(--line);background:#fffaf6;border-radius:18px;padding:28px 20px 24px}.rsvp h2{text-align:center;color:var(--wine);margin:0 0 18px;font-family:Great Vibes,cursive;font-size:2.6rem;font-weight:400}.form{flex-direction:column;gap:14px;display:flex}.form label{letter-spacing:.08em;text-transform:uppercase;color:var(--mute);flex-direction:column;gap:6px;font-size:.75rem;display:flex}.form input,.form select,.form textarea{border:1px solid var(--line);text-transform:none;letter-spacing:0;background:#fff;border-radius:10px;padding:11px 12px}.pills{gap:8px;display:flex}.pills button{border:1px solid var(--line);border-radius:999px;flex:1;padding:10px;font-size:.85rem}.pills button.on{background:var(--wine);color:#f7e9de;border-color:var(--wine)}.send{background:var(--forest);color:#f4efe6;letter-spacing:.1em;text-transform:uppercase;border-radius:999px;margin-top:6px;padding:13px;font-size:.78rem}.send:disabled{opacity:.4}.thanks{text-align:center}.thanks h3{color:var(--wine);margin:0 0 8px;font-family:Great Vibes,cursive;font-size:2.4rem;font-weight:400}.thanks-sub{color:var(--mute)}.thanks-actions{margin-top:18px}.couple{text-align:center;letter-spacing:.14em;text-transform:uppercase;width:100%;color:var(--mute);margin-top:16px;font-size:.75rem;display:block}.foot{text-align:center;color:var(--mute);padding:36px 16px 48px;font-size:.85rem}.foot em{color:var(--wine);margin-bottom:4px;font-family:Great Vibes,cursive;font-size:1.8rem;font-style:normal;display:block}.modal{z-index:50;background:#4a2c3873;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal-card{background:#fffaf6;border-radius:18px;width:min(420px,100%);max-height:86svh;padding:24px;overflow:auto}.modal-card h3{margin:0 0 14px;font-family:Libre Baskerville,serif;font-weight:400}.modal-card.wide{width:min(560px,100%)}.stats{text-align:center;letter-spacing:.06em;text-transform:uppercase;color:var(--mute);grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px;font-size:.75rem;display:grid}.stats strong{color:var(--wine);letter-spacing:0;text-transform:none;font-family:Libre Baskerville,serif;font-size:1.3rem;font-weight:400;display:block}@media (width<=520px){.stats{grid-template-columns:1fr 1fr}}.meal-tally{color:var(--mute);flex-wrap:wrap;gap:8px 14px;font-size:.8rem;display:flex}.guest-rows{margin:0 0 16px;padding:0;list-style:none}.guest-rows li{border-top:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 0;font-size:.92rem;display:flex}.guest-rows small{color:var(--mute);margin-top:4px;font-size:.8rem;display:block}.guest-rows button{letter-spacing:.1em;text-transform:uppercase;color:var(--rose);flex-shrink:0;font-size:.68rem}@media (width>=800px){.invite{padding:56px 48px 44px}.film{grid-template-rows:1fr 1fr;grid-template-columns:1.3fr .9fr}.film img:first-child{grid-row:1/3;height:100%;min-height:420px}.film img{height:202px}.timeline:before{left:50%}.beat{width:50%;padding:0 40px 48px}.beat:nth-child(odd){margin-left:50%}.beat:nth-child(2n){text-align:right}.beat:nth-child(odd):before{left:-7px}.beat:nth-child(2n):before{left:auto;right:-7px}.flow{padding:40px 24px 100px}.party{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
