*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:#1a0f1e;font-family:Georgia,Times New Roman,serif;overflow:hidden}.hero{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}.hero-inner{--hero-tx: -50%;position:absolute;top:50%;left:50%;aspect-ratio:1672 / 941;min-width:100%;min-height:100%;container-type:size;transform:translate(var(--hero-tx),-50%);animation:breathe 26s ease-in-out infinite alternate}@keyframes breathe{0%{transform:translate(var(--hero-tx),-50%) scale(1.01)}to{transform:translate(var(--hero-tx),-50%) scale(1.045)}}.hero-art{width:100%;height:100%;display:block;-webkit-user-select:none;user-select:none}.phone-field,.rsvp,.confirmation{position:absolute;display:flex;align-items:center}.phone-field{gap:1cqw;padding:0 1.6cqw;background:#2b1c30;border:.09cqw solid rgba(238,214,178,.55);border-radius:1.4cqw;box-shadow:0 .3cqw 1.6cqw #00000059}.phone-icon{width:1.4cqw;height:1.4cqw;color:#e9d3a8;flex-shrink:0}.phone-field input{flex:1;min-width:0;background:transparent;border:none;outline:none;color:#f3e4c4;font-family:inherit;font-size:1.45cqw;letter-spacing:.06cqw}.phone-field input::placeholder{color:#eed8b6bf}.phone-field:focus-within{border-color:#f6e2bee6;box-shadow:0 0 1.8cqw #f0d2a059}.rsvp{justify-content:center;gap:.7cqw;border:none;border-radius:3cqw;background:linear-gradient(180deg,#f7e2b2,#e9c489);color:#4a3a26;font-family:inherit;font-size:1.5cqw;letter-spacing:.12cqw;cursor:pointer;box-shadow:0 .3cqw 1.6cqw #0000004d;transition:filter .2s ease,box-shadow .2s ease}.rsvp:hover{filter:brightness(1.06);box-shadow:0 .3cqw 2.2cqw #f0d2a073}.rsvp .arrow{font-size:1.6cqw}.overlay-form.shake .phone-field{animation:shake .5s ease;border-color:#ffa08ce6}@keyframes shake{0%,to{margin-left:0}20%,60%{margin-left:-.5cqw}40%,80%{margin-left:.5cqw}}.confirmation{justify-content:center;color:#f3e4c4;font-style:italic;font-size:1.5cqw;letter-spacing:.08cqw;text-align:center;text-shadow:0 .15cqw 1cqw rgba(0,0,0,.7);background:#1a0f1e8c;border-radius:1.4cqw;animation:fade-in 1.8s ease both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media(max-aspect-ratio:6/5){.hero-inner{--hero-tx: -43.8%}.rsvp{left:36.9%!important;top:65%!important;width:13.8%!important;height:7%!important}.confirmation{left:29.9%!important;top:54.1%!important;width:27.8%!important;height:7.9%!important}}
