
:root{--wine:#570d22;--cream:#f4eddc;--muted:#cbb8aa}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-snap-type:y proximity}
body{margin:0;background:var(--wine);color:var(--cream);font-family:'Cormorant Garamond',Georgia,serif}
button,input{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
section{min-height:100svh;scroll-snap-align:start;position:relative}
.hero{display:flex;align-items:center;justify-content:center;padding:32px 24px 80px;text-align:center;overflow:hidden}
.border{position:absolute;inset:17px;pointer-events:none;border:1px solid #f4eddc36}
.eyebrow{font-size:12px;letter-spacing:.27em;text-transform:uppercase}
.poster{width:min(100%,440px)}
.topline{margin:0 0 30px;font-style:italic;font-size:20px}
.title{position:relative;width:100%;margin:0 0 28px;height:205px}
.after{font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(120px,35vw,180px);font-weight:700;letter-spacing:-.035em;line-height:1;display:block}
.party{position:absolute;font-family:'Great Vibes',cursive;font-size:clamp(92px,25vw,125px);font-weight:400;line-height:1;top:99px;left:50%;transform:translateX(-50%) rotate(-10deg);text-shadow:0 3px var(--wine);white-space:nowrap}
.invitation{font-size:18px;line-height:1.4;margin:0 auto 18px;max-width:260px}
.names{font-size:29px;font-style:italic;margin:16px 0}
.names small{font-size:20px;padding:0 5px}
.date{font-family:'Barlow Condensed',sans-serif;letter-spacing:.13em;font-size:24px;margin:15px 0 5px}
.location{font-size:15px;color:var(--muted);margin:0}
.glasses{width:95px;height:76px;display:block;margin:17px auto 0;fill:none;stroke:var(--cream);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.scroll{position:absolute;bottom:29px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;text-decoration:none;color:inherit;gap:7px}
.scroll span{font-size:10px;letter-spacing:.2em;text-transform:uppercase}
.chevrons{display:flex;gap:15px}
.chevrons svg{width:15px;height:23px;animation:down 1.8s infinite}
.chevrons svg+svg{animation-delay:.2s}
@keyframes down{0%,100%{transform:translateY(-3px);opacity:.4}
50%{transform:translateY(4px);opacity:1}
}
.reveal{animation:in .9s both}
.poster .title{animation-delay:.15s}
.poster .details{animation-delay:.4s}
@keyframes in{from{opacity:0;transform:translateY(16px)}
to{opacity:1;transform:translateY(0)}
}
.rsvp{display:flex;align-items:center;justify-content:center;padding:80px 30px;background:var(--cream);color:var(--wine)}
.rsvp-inner{width:100%;max-width:420px}
.text-center{text-align:center}
#form input{text-align:center}
.menu-info{text-align:center;margin:0 0 28px}
.menu-name{font-size:20px;margin:0 0 5px}
.menu-price{font-family:'Barlow Condensed',sans-serif;font-size:30px;font-weight:600;letter-spacing:.04em;margin:0}
.rsvp .eyebrow{display:block;text-align:center}
.rsvp h2{font-size:clamp(54px,12vw,74px);font-weight:400;font-style:italic;line-height:.95;text-align:center;margin:27px 0 22px}
.intro{font-size:20px;line-height:1.4;text-align:center;margin:0 auto 30px;max-width:290px}
.choices{display:grid;gap:12px}
.button{width:100%;border:1px solid var(--wine);border-radius:0;background:transparent;color:var(--wine);min-height:55px;padding:14px 18px;font-family:'Barlow Condensed',sans-serif;letter-spacing:.09em;font-size:16px;cursor:pointer}
.button.primary,.button.active{background:var(--wine);color:var(--cream)}
.button:hover{box-shadow:0 0 0 1px var(--wine)}
.line{width:40px;height:1px;background:currentColor;opacity:.4;margin:30px auto}
.footer{text-align:center;font-size:14px;opacity:.65;margin-top:32px}
.panel{margin-top:26px;animation:in .35s both}
.panel[hidden]{display:none}
label{display:block;font-size:17px;margin:20px 0 8px}
input{width:100%;min-height:51px;border:0;border-bottom:1px solid #570d2270;border-radius:0;color:var(--wine);background:transparent;font-size:22px;padding:9px 0;outline-offset:4px}
input::placeholder{color:#570d227a}
.hint{font-size:14px;margin:6px 0 23px;opacity:.7}
.message{text-align:center;font-size:28px;line-height:1.1;font-style:italic}
.back{display:block;margin:16px auto 0;border:0;background:none;color:inherit;text-decoration:underline;font-size:16px;cursor:pointer}
.note{font-size:12px;text-align:center;opacity:.65;margin-top:14px}
.tick{display:block;text-align:center;font-size:40px}
@media(min-width:700px){.title{height:226px}
.party{top:110px}
.hero{padding-top:45px}
.poster{max-width:440px}
.topline{margin-bottom:32px}
.glasses{margin-top:24px}
}
@media(max-height:740px) and (max-width:699px){.hero{padding-top:35px}
.topline{margin-bottom:20px;font-size:18px}
.title{height:170px;margin-bottom:14px}
.after{font-size:130px}
.party{font-size:100px;top:82px}
.names{margin:10px 0}
.glasses{margin-top:10px;height:60px}
.invitation{margin-bottom:10px}
.date{margin-top:8px}
.scroll{bottom:26px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important}
}



.reveal,.poster .title,.poster .details,.chevrons svg{animation:none}

.after{perspective:650px}
.letter{display:inline-block;transform-origin:50% 100%}
.party-word{display:inline-block;transform-origin:15% 65%}



.venue-name{font-size:20px;color:var(--cream);margin-top:8px}
.venue-links{display:flex;justify-content:center;gap:13px;margin-top:10px;font-size:14px}
.venue-links a{color:var(--cream);text-decoration-thickness:1px;text-underline-offset:4px;padding:8px 0}
.venue-links span{align-self:center;opacity:.5}
@media(max-height:740px) and (max-width:699px){.hero{padding-bottom:94px}
.topline{margin-bottom:12px}
.title{height:155px}
.after{font-size:120px}
.party{font-size:92px;top:76px}
.glasses{height:45px;margin-top:4px}
.venue-links{margin-top:3px}
.venue-name{margin-top:5px}
}

.guest-stepper{display:flex;align-items:center;gap:12px;width:max-content;margin:12px auto 0}

.guest-stepper button{width:48px;height:48px;border:1px solid var(--wine);color:var(--wine);background:transparent;font-size:28px;cursor:pointer;line-height:1}

.guest-stepper button:hover:not(:disabled){background:var(--wine);color:var(--cream)}

.guest-stepper button:disabled{opacity:.28;cursor:not-allowed}

.guest-stepper #guests{width:54px;min-height:48px;height:48px;text-align:center;padding:0;font-size:29px;appearance:textfield;-moz-appearance:textfield}

#guests::-webkit-inner-spin-button,#guests::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

.clink-spark{opacity:0}


:focus-visible{outline:2px solid currentColor;outline-offset:5px}

.venue-links a{min-height:44px;display:inline-flex;align-items:center}

.scroll{min-width:180px;min-height:48px}

.form-status{font-family:Arial,sans-serif;font-size:13px;line-height:1.6;margin:16px 0;min-height:21px;color:var(--wine)}

.privacy{font-size:14px;line-height:1.5;opacity:.7;margin:18px 0 0}

.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}

#submit:disabled{opacity:.45;cursor:not-allowed}

#security-retry{display:none;margin:12px auto;padding:10px 0;min-height:44px}

#security-retry.visible{display:block}

#turnstile-widget{display:flex;justify-content:center;margin:15px 0;min-height:1px}

.choices[hidden]{display:none}

.no-js{padding:14px 25px;margin:0;text-align:center;font-size:16px;background:var(--cream);color:var(--wine)}

