:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#153e54;background:#eff5f7}*{box-sizing:border-box}body{margin:0}.layout{width:min(100% - 28px,680px);margin:auto;padding:24px 0 45px}header{text-align:center;padding:13px 6px 22px}.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:.7rem;font-weight:750;color:#167692}h1{font-size:clamp(2rem,7vw,3rem);line-height:1.1;margin:8px 0;color:#0a416b}h1 span{color:#d01251}header p{color:#526c79}.flyer,.card{box-shadow:0 10px 35px #0c42611a;border-radius:21px;overflow:hidden;background:white}.flyer img{width:100%;display:block}.card{margin-top:22px;padding:clamp(20px,5vw,32px)}h2{font-size:1.5rem;margin:0 0 12px;color:#0c4b74}.details{text-align:center}.details p{line-height:1.7}.calendar{display:inline-block;background:#eaf3f8;color:#064a77;text-decoration:none;font-weight:700;padding:13px 18px;border-radius:12px;margin-top:8px}.rsvp>p{color:#4e6571;line-height:1.55}form{margin-top:22px}form>label:first-child,legend{display:block;font-size:.95rem;font-weight:700;margin-bottom:8px}input[type=text],input[name=name]{border:1px solid #bed0d9;border-radius:12px;width:100%;font:inherit;padding:15px;outline-offset:3px}fieldset{border:0;padding:20px 0;margin:0}legend{padding:0}.choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice{cursor:pointer}.choice input{position:absolute;opacity:0}.choice span{height:100%;min-height:75px;border:2px solid #c6d6de;display:flex;align-items:center;justify-content:center;text-align:center;padding:12px;border-radius:15px;font-weight:750}.choice input:checked+span{border-color:#137c9b;background:#e4f7f7}.choice input:focus-visible+span{outline:3px solid #e69e1f;outline-offset:2px}.consent{display:flex;gap:10px;align-items:start;font-size:.88rem;line-height:1.45;color:#4b616e}.consent input{margin-top:4px;flex-shrink:0}button{background:#0b5f8b;color:#fff;font:inherit;font-weight:800;border:0;border-radius:14px;width:100%;padding:16px;cursor:pointer;margin-top:20px}button:disabled{opacity:.55;cursor:wait}#status:not(:empty){padding:12px;border-radius:10px;background:#eaf3f8}#status.error{background:#ffebeb;color:#992e31}#status.ok{background:#e8f7ed;color:#216540}.note{font-size:.83rem}footer{text-align:center;color:#647b87;font-size:.8rem;padding:25px 0}.trap{position:absolute;left:-9999px}@media(max-width:420px){.choices{grid-template-columns:1fr}}
