:root{--cream: #f7f3ed;--burgundy: #7a1e2c;--red: #9b2335;--gold: #c5a04d;--text-dark: #3d3d3d;--text-muted: #5c5c5c;--font-serif: "Cinzel", Georgia, serif;--max-width: 520px;--transition: .3s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-serif);background-color:var(--cream);color:var(--text-dark);line-height:1.6;min-height:100vh;overflow-x:hidden}.petals{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.petal{position:absolute;width:8px;height:12px;background:var(--red);border-radius:50% 50% 50% 0;opacity:0;animation:fall linear infinite}.petal:nth-child(1){left:10%;animation-duration:12s;animation-delay:0s}.petal:nth-child(2){left:25%;animation-duration:15s;animation-delay:2s}.petal:nth-child(3){left:45%;animation-duration:11s;animation-delay:4s}.petal:nth-child(4){left:65%;animation-duration:14s;animation-delay:1s}.petal:nth-child(5){left:80%;animation-duration:13s;animation-delay:3s}.petal:nth-child(6){left:92%;animation-duration:16s;animation-delay:5s}@keyframes fall{0%{opacity:0;transform:translateY(-20px) rotate(0)}10%{opacity:.5}90%{opacity:.3}to{opacity:0;transform:translateY(100vh) rotate(360deg)}}@media(prefers-reduced-motion:reduce){.petal{animation:none;display:none}}.page{position:relative;z-index:1;max-width:var(--max-width);margin:0 auto;padding:1.5rem 1.25rem 3rem}.card{margin-bottom:.5rem}.card__figure{margin:0;line-height:0}.card__image{display:block;width:100%;height:auto;border-radius:2px;box-shadow:0 2px 8px #3d3d3d0f,0 8px 32px #3d3d3d14}.rsvp{padding:2rem 0 1rem;text-align:center;border-top:1px solid rgba(197,160,77,.25)}.rsvp__heading{font-size:.85rem;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem}.rsvp__subheading{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:2rem}.rsvp__form{text-align:left;max-width:400px;margin:0 auto}.form-group{margin-bottom:1.25rem}.form-group label,.form-group legend{display:block;font-size:.68rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.4rem}.form-group legend{margin-bottom:.6rem}.required{color:var(--burgundy)}.form-group input[type=text],.form-group input[type=email],.form-group input[type=tel],.form-group textarea{width:100%;padding:.75rem 1rem;border:1px solid rgba(197,160,77,.4);border-radius:2px;background:#fff9;font-family:Georgia,Times New Roman,serif;font-size:.95rem;color:var(--text-dark);transition:border-color var(--transition),box-shadow var(--transition)}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 2px #c5a04d26}.form-group textarea{resize:vertical;min-height:100px}.radio-group{display:flex;flex-direction:column;gap:.6rem}.radio-label{display:flex;align-items:center;gap:.6rem;font-family:Georgia,Times New Roman,serif;font-size:.9rem;color:var(--text-dark);cursor:pointer;padding:.5rem .75rem;border:1px solid transparent;border-radius:2px;transition:background var(--transition)}.radio-label:hover{background:#c5a04d0f}.radio-label input[type=radio]{accent-color:var(--burgundy);width:16px;height:16px}.radio-label input[type=radio]:checked+span{color:var(--burgundy);font-weight:500}.form-error{display:block;font-size:.75rem;color:var(--burgundy);margin-top:.35rem;min-height:1rem}.form-error--general{text-align:center;margin-top:1rem}.rsvp__submit{display:block;width:100%;padding:.9rem 1.5rem;margin-top:.5rem;background:var(--burgundy);color:var(--cream);border:none;border-radius:2px;font-family:var(--font-serif);font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:background var(--transition),opacity var(--transition)}.rsvp__submit:hover:not(:disabled){background:var(--red)}.rsvp__submit:disabled{opacity:.6;cursor:not-allowed}.rsvp__success{max-width:400px;margin:0 auto;padding:2rem 1rem}.rsvp__success-message{font-family:Georgia,Times New Roman,serif;font-size:.95rem;color:var(--text-dark);line-height:1.7}.rsvp__closed{max-width:400px;margin:0 auto;padding:1.5rem;font-size:.85rem;color:var(--text-muted);border:1px solid rgba(122,30,44,.2);border-radius:2px;background:#7a1e2c0a}@media(min-width:768px){.page{padding:2.5rem 2rem 4rem}.card__image{border-radius:3px}}
