*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}html:has(.rsvp-root){font-size:clamp(16px,6px + .95vw,34px)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}.rsvp-root{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-body);letter-spacing:.02em;padding:3rem 1.25rem 4rem;font-size:1.0625rem;font-weight:500;line-height:1.5}@media (min-width:900px){.rsvp-root:not(.embedded){padding-top:12vh}}.rsvp-root.embedded{min-height:0;padding:.5rem 1rem 1.5rem}html:has(.rsvp-root.embedded){background:0 0}html:has(.rsvp-root.embedded) body{background:0 0}.title,.event-name,.summary-name,.btn{font-family:var(--font-heading);font-weight:var(--heading-weight);font-stretch:var(--heading-width);text-transform:var(--heading-case)}.rsvp{max-width:36rem;margin:0 auto}.progress{background:var(--border);height:2px;margin-bottom:2.25rem}.progress-bar{background:var(--accent);height:2px;transition:width .4s}.panel{animation:.35s both fade-in}@keyframes fade-in{0%{opacity:0;transform:translateY(.375rem)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.panel{animation:none}.progress-bar{transition:none}}.eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 .625rem;font-size:.8125rem;font-weight:600}.title{letter-spacing:-.01em;overflow-wrap:break-word;-webkit-hyphens:none;hyphens:none;outline:none;margin:0 0 1.25rem;font-size:clamp(1.875rem,8.5vw,3rem);line-height:.98}.lede{color:var(--text);margin:0 0 1.75rem}.note{margin:1.25rem 0 0;font-weight:700}.fine{color:var(--muted);margin:.75rem 0 0;font-size:.875rem}.field-row{gap:1rem;display:grid}@media (min-width:520px){.field-row{grid-template-columns:1fr 1fr}}.field{margin-top:1rem;display:block}.field-row .field{margin-top:0}.label{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem;font-size:.75rem;font-weight:600;display:block}.field-spaced{margin-top:1.75rem}.help{margin-bottom:.625rem;font-size:.9375rem;line-height:1.45;display:block}.label-spaced{margin-top:1rem}.optional{text-transform:none;letter-spacing:0}.input{width:100%;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);appearance:none;outline:none;padding:.8125rem .875rem;font-size:1rem;transition:border-color .15s}.input:focus,.input:focus-visible{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);outline:none}.input::placeholder{color:var(--muted)}.input[aria-invalid=true]{border-color:var(--error)}.textarea{resize:vertical;min-height:3.75rem}.error{color:var(--error);margin:.875rem 0 0;font-size:.875rem;font-weight:600}.error.small{margin-top:.625rem;font-size:.8125rem}.actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;margin-top:2.25rem;display:flex}.btn{letter-spacing:.02em;border-radius:var(--radius);cursor:pointer;border:1px solid #0000;min-height:3rem;padding:.9375rem 1.625rem;font-size:.9375rem;line-height:1;transition:opacity .15s,background .15s,color .15s}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-text)}.btn-primary:not(:disabled):hover{opacity:.88}.btn-secondary{color:var(--text);border-color:var(--text);background:0 0}.btn-ghost{font-family:var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);background:0 0;margin-right:auto;padding-left:.25rem;padding-right:.25rem;font-size:.8125rem;font-weight:600;font-stretch:100%}.btn-ghost:hover{color:var(--text)}@media (max-width:479px){.actions{flex-direction:column-reverse;align-items:stretch}.btn{width:100%}.btn-ghost{margin-right:0}}.link{font:inherit;letter-spacing:.14em;text-transform:uppercase;color:var(--text);text-underline-offset:.1875rem;cursor:pointer;background:0 0;border:0;padding:.25rem 0;font-size:.75rem;font-weight:600;text-decoration:underline}.link.inline{margin-left:.625rem;padding:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.party{border-top:1px solid var(--border);margin:.5rem 0 0;padding:0;list-style:none}.party li{border-bottom:1px solid var(--border);padding:.75rem 0;font-size:1.3125rem;font-weight:600}.choices{gap:.625rem;display:grid}.choice{font:inherit;text-align:left;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:1rem}.choice:hover{border-color:var(--accent)}.events,.meals{gap:.875rem;display:grid}.event,.meal{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:0;margin:0;padding:1.125rem}.event-invalid{border-color:var(--error)}.event-name{float:left;width:100%;padding:0;font-size:1.25rem;line-height:1.1}.event-name+*{clear:both}.event-meta{color:var(--muted);margin:.25rem 0 .875rem;font-size:.875rem}.toggle{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.toggle-btn{font:inherit;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:0 0;min-height:2.875rem;padding:.75rem .5rem;font-size:.875rem;transition:background .15s,color .15s,border-color .15s}.toggle-btn:hover{border-color:var(--accent)}.toggle-btn.selected{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:700}.meal .event-name{margin-bottom:.75rem}.options{gap:.5rem;margin-top:.25rem;display:grid}.option{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:flex-start;gap:.75rem;padding:.75rem .875rem;display:flex}.option.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.option input{accent-color:var(--accent);flex:none;width:1rem;height:1rem;margin:.25rem 0 0}.option-name{font-weight:600;display:block}.option-desc{color:var(--muted);font-size:.875rem;display:block}.summary-email{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;margin-bottom:.5rem;padding-bottom:1rem;display:flex}.summary-email p{word-break:break-all;margin:0}.summary-guest{border-bottom:1px solid var(--border);padding:1.125rem 0}.summary-head{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.summary-name{margin:0 0 .5rem;font-size:1.1875rem}.summary-list{margin:0}.summary-row{justify-content:space-between;gap:1rem;padding:.3125rem 0;font-size:.9375rem;display:flex}.summary-row dt{color:var(--muted)}.summary-row dd{text-align:right;margin:0;font-weight:600}.summary-row dd.no{color:var(--muted);font-weight:500}
