:root{--background:#fff;--ink:#14213d;--muted:#4a5568;--border:#cbd5e0;--primary:#2f5bea}*{box-sizing:border-box}body{background:var(--background);color:var(--ink);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}main{max-width:640px;margin:0 auto;padding:24px 16px 48px}.brand{color:var(--primary);margin:0 0 24px;font-weight:700}.invited{color:var(--muted);margin:0}h1{overflow-wrap:anywhere;margin:4px 0 16px;font-size:28px;line-height:1.25}h2{margin:0 0 4px;font-size:18px}.past{color:var(--muted);font-style:italic}dl{margin:0 0 16px}dt{color:var(--muted);font-size:14px}dd{overflow-wrap:anywhere;margin:0 0 12px;font-size:17px}.description{white-space:pre-line}.map{border:1px solid var(--border);border-radius:12px;width:100%;height:260px}a{color:var(--primary);font-weight:600}.app{border:1px solid var(--border);border-radius:12px;margin-top:32px;padding:16px}.app p{color:var(--muted);margin:0}.rsvp{border-top:1px solid var(--border);margin-top:24px;padding-top:8px}.rsvp h2{margin-top:16px}.rsvp form{flex-direction:column;display:flex}.rsvp label{color:var(--muted);margin-top:12px;font-size:14px}.rsvp input:not([type=radio]),.rsvp textarea{font:inherit;color:var(--ink);border:1px solid var(--border);border-radius:10px;width:100%;margin-top:4px;padding:10px 12px;font-size:17px}.rsvp input[aria-invalid=true],.rsvp textarea[aria-invalid=true]{border-color:#b42318}.rsvp fieldset{border:0;margin:12px 0 0;padding:0}.rsvp legend{color:var(--muted);padding:0;font-size:14px}.choices{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.rsvp .choice{border:1px solid var(--border);min-width:96px;color:var(--ink);cursor:pointer;border-radius:10px;flex:1 1 0;align-items:center;gap:6px;margin:0;padding:10px 12px;font-size:16px;display:flex}.rsvp .choice input{flex:none;margin:0}.rsvp .choice:has(input:checked){border-color:var(--primary);background:#eef2fd}.people{grid-template-columns:1fr 1fr;gap:12px;display:grid}.people-hint{grid-column:1/-1;margin:4px 0 0}.hint{color:var(--muted);font-size:13px}.field-error,.form-error{color:#b42318;margin:4px 0 0;font-size:14px}.form-error{margin:12px 0}.rsvp button{font:inherit;background:var(--primary);color:#fff;cursor:pointer;border:0;border-radius:12px;margin-top:20px;padding:14px;font-size:17px;font-weight:600}.rsvp button[type=submit]{position:sticky;bottom:12px;box-shadow:0 4px 16px #14213d40}.rsvp button:disabled{opacity:.6}.saved{background:#eef2fd;border-radius:12px;margin-top:16px;padding:16px}.saved p{color:var(--muted);margin:0}.saved .saved-title{color:var(--ink);margin-bottom:4px;font-weight:700}.yours{margin:16px 0 0}.trap{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}@media (max-width:380px){.rsvp .choice{gap:4px;padding:10px 4px;font-size:14px}}.cancelled{color:#b42318;border:2px solid #b42318;border-radius:12px;margin:16px 0;padding:12px 16px}.cancelled p{margin:4px 0}.changed{color:#4a5568;font-size:14px}.guests{margin-top:24px}.guests ul{margin:4px 0 12px;padding-left:20px}.guests .total{margin-bottom:4px;font-weight:600}.cover{aspect-ratio:1200/630;object-fit:cover;border-radius:12px;width:100%;height:auto;margin-bottom:16px;display:block}.footer{gap:16px;max-width:640px;margin:0 auto;padding:0 16px 32px;font-size:14px;display:flex}.footer a{color:var(--muted)}
