*{margin:0;padding:0;box-sizing:border-box}:root{--burgundy: #6c150d;--cream: #FAF9F6}html{scroll-behavior:smooth;scroll-snap-type:y proximity}html,body{height:100%}body{background-color:var(--cream);color:var(--burgundy);font-family:Cormorant Garamond,Georgia,serif}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;scroll-snap-type:none}}.hero,.page{scroll-snap-align:start}.hero{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;position:relative}@supports not (min-height: 100dvh){.hero{min-height:100vh}}.hero-content{text-align:center;width:min(90vw,clamp(520px,50vw,700px));position:relative;padding:clamp(3rem,6vw,5rem) clamp(2.5rem,5vw,4rem)}.corner{position:absolute;width:40px;height:40px;border-color:var(--burgundy);border-style:solid;border-width:0}.corner-tl{top:0;left:0;border-top-width:1px;border-left-width:1px}.corner-tr{top:0;right:0;border-top-width:1px;border-right-width:1px}.corner-bl{bottom:0;left:0;border-bottom-width:1px;border-left-width:1px}.corner-br{bottom:0;right:0;border-bottom-width:1px;border-right-width:1px}.subtitle{font-size:clamp(.875rem,1.1vw,1.05rem);letter-spacing:.3em;text-transform:uppercase;margin-bottom:2rem}.heading-image{margin:1rem auto 0;max-width:clamp(360px,42vw,560px)}.heading-image img{width:100%;height:auto}.illustration{margin:1.5rem auto;max-width:clamp(400px,46vw,620px)}.illustration img{width:100%;height:auto}.date{font-size:clamp(1.5rem,2.6vw,2.25rem);font-weight:400;margin-bottom:.5rem}.venue{font-size:clamp(.875rem,1vw,1.05rem);letter-spacing:.25em;text-transform:uppercase;white-space:nowrap}.venue a{color:var(--burgundy);font-size:inherit;text-decoration:none;border-bottom:1px solid rgba(108,21,13,.15);transition:border-color .3s}.venue a:hover{border-bottom-color:var(--burgundy)}.scroll-hint{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.6rem;color:var(--burgundy)}.hero-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.9rem}.hero-nav a:first-child{justify-self:end}.hero-nav a:last-child{justify-self:start}.hero-nav a{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:var(--burgundy);opacity:.85;padding-bottom:2px;border-bottom:1px solid transparent;transition:border-color .3s,opacity .3s}.hero-nav a:hover{opacity:1;border-bottom-color:var(--burgundy)}.hero-nav-sep{width:3px;height:3px;border-radius:50%;background:var(--burgundy);opacity:.4}.scroll-arrow{display:block;line-height:0;animation:gentleBounce 2s ease-in-out 2s infinite}@media(prefers-reduced-motion:reduce){.scroll-arrow{animation:none}}.scroll-arrow svg{width:22px;height:22px;stroke:var(--burgundy);opacity:.8}.page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:5rem 1.5rem}@supports not (min-height: 100dvh){.page{min-height:100vh}}.page-inner{width:100%;max-width:520px;margin:0 auto;text-align:center}.section-heading{font-weight:500;font-size:clamp(1.85rem,5vw,2.75rem);line-height:1.15}.section-heading.script{font-weight:500}.heading-rule{position:relative;display:block;width:72px;height:1px;margin:1.25rem auto 2rem;background:#6c150d38}.heading-rule:after{content:"";position:absolute;top:50%;left:50%;width:5px;height:5px;background:var(--cream);border:1px solid rgba(108,21,13,.45);transform:translate(-50%,-50%) rotate(45deg)}.rsvp-section .page-inner{max-width:460px}.form-group{margin-bottom:1.25rem;text-align:left}.form-label{display:block;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;margin-bottom:.5rem;opacity:.7}.form-input{width:100%;padding:.75rem 1rem;border:1px solid rgba(108,21,13,.12);background:transparent;color:var(--burgundy);font-family:Cormorant Garamond,Georgia,serif;font-size:1.05rem;border-radius:0;outline:none;transition:border-color .3s}.form-input:focus{border-color:var(--burgundy)}.form-input::placeholder{color:var(--burgundy);opacity:.35}.guest-row{text-align:left;margin-bottom:1.5rem}.input-row{display:flex;gap:.5rem;align-items:stretch}.input-row .form-input{flex:1}.remove-btn{background:none;border:1px solid rgba(108,21,13,.12);color:var(--burgundy);width:42px;flex-shrink:0;cursor:pointer;font-size:1.2rem;opacity:.5;transition:opacity .3s}.remove-btn:hover{opacity:1}.veg-checkbox{display:inline-flex;align-items:center;gap:.5rem;margin-top:.6rem;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;opacity:.65;cursor:pointer;user-select:none;transition:opacity .3s}.veg-checkbox:hover{opacity:1}.veg-checkbox input[type=checkbox]{appearance:none;-webkit-appearance:none;width:16px;height:16px;flex-shrink:0;border:1px solid rgba(108,21,13,.35);background:transparent;cursor:pointer;margin:0;padding:0;position:relative;transition:border-color .2s,background .2s}.veg-checkbox input[type=checkbox]:after{content:"";position:absolute;top:50%;left:50%;width:9px;height:5px;border-left:1.5px solid var(--cream);border-bottom:1.5px solid var(--cream);transform:translate(-50%,-65%) rotate(-45deg);opacity:0;transition:opacity .15s}.veg-checkbox input[type=checkbox]:hover{border-color:var(--burgundy)}.veg-checkbox input[type=checkbox]:checked{background:var(--burgundy);border-color:var(--burgundy)}.veg-checkbox input[type=checkbox]:checked:after{opacity:1}.add-guest-btn{background:none;border:none;color:var(--burgundy);font-family:Cormorant Garamond,Georgia,serif;font-size:.85rem;letter-spacing:.1em;cursor:pointer;opacity:.6;transition:opacity .3s;margin-bottom:1.5rem;display:inline-block}.add-guest-btn:hover{opacity:1}.submit-btn{background:var(--burgundy);color:var(--cream);border:none;font-family:Cormorant Garamond,Georgia,serif;font-size:.85rem;letter-spacing:.25em;text-transform:uppercase;padding:.9rem 2.5rem;cursor:pointer;transition:opacity .3s;margin-top:1rem}.submit-btn:hover{opacity:.85}.timeline{list-style:none;position:relative;max-width:320px;margin:0 auto;padding:0 0 0 30px;text-align:left}.timeline:before{content:"";position:absolute;left:4px;top:.6rem;bottom:.9rem;width:1px;transform:translate(-50%);background:#6c150d33}.timeline-item{position:relative;padding-bottom:2rem}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:"";position:absolute;left:-26px;top:.5rem;width:6px;height:6px;background:var(--cream);border:1px solid rgba(108,21,13,.45);transform:translate(-50%) rotate(45deg)}.timeline-time{display:block;font-size:1.4rem;font-weight:500;letter-spacing:.05em;line-height:1;font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum" 1,"tnum" 1}.timeline-label{display:block;margin-top:.4rem;font-size:1.05rem;opacity:.8}.info-divider{display:block;width:40px;height:1px;margin:clamp(2.25rem,5vh,3.25rem) auto clamp(1.75rem,4vh,2.5rem);background:#6c150d33}.info-list{list-style:none;max-width:380px;margin:0 auto;text-align:left;display:flex;flex-direction:column;gap:1.15rem}.info-row{display:flex;align-items:flex-start;gap:.9rem}.info-icon{flex-shrink:0;line-height:0;margin-top:.15rem;opacity:.7}.info-icon svg{width:22px;height:22px;stroke:var(--burgundy)}.info-text{font-size:1.08rem;line-height:1.5;opacity:.88}@keyframes gentleBounce{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.hero-fade{animation:fadeIn 1.8s ease .3s both}@media(prefers-reduced-motion:reduce){.hero-fade{animation:none}}.fade-in{opacity:0;transition:opacity .8s ease}.fade-in.visible{opacity:1}.rsvp-status{text-align:center;padding:1rem 0}.success-heading{font-size:clamp(1.85rem,5vw,2.75rem);font-weight:500;line-height:1.15;margin-bottom:1rem}.success-message{font-size:1.05rem;line-height:1.4;opacity:.85}.rsvp-error{color:var(--burgundy);text-align:center;margin-top:1rem;font-size:.95rem;opacity:.85}.submit-btn:disabled{opacity:.6;cursor:wait}
