:root{--cream:#f7f0e5;--paper:#fffaf1;--burg:#6f1d31;--gold:#af873f;--olive:#586148;--ink:#49443d;--line:rgba(175,135,63,.42)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Georgia,"Times New Roman",serif;background:var(--cream);color:var(--ink)}body.lock{overflow:hidden}button,input{font:inherit}.page{width:min(100%,760px);margin:auto}.invite{display:block;width:100%;min-height:100svh;object-fit:cover;object-position:center top}.fab{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:20;width:58px;height:58px;border:1px solid rgba(175,135,63,.55);border-radius:50%;background:rgba(255,250,241,.94);box-shadow:0 14px 38px rgba(55,33,20,.2);display:grid;place-content:center;gap:4px}.fab i{width:4px;height:4px;border-radius:50%;background:var(--burg)}.shade{position:fixed;inset:0;z-index:24;background:rgba(35,24,17,.3);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:.3s}.shade.open{opacity:1;visibility:visible}.sheet{position:fixed;left:50%;bottom:0;z-index:25;width:min(100%,680px);padding:9px 16px calc(18px + env(safe-area-inset-bottom));border:1px solid rgba(175,135,63,.4);border-bottom:0;border-radius:28px 28px 0 0;background:rgba(255,250,241,.98);box-shadow:0 -16px 55px rgba(49,29,17,.2);transform:translate(-50%,105%);visibility:hidden;transition:transform .38s cubic-bezier(.22,.78,.18,1),visibility .38s}.sheet.open{transform:translate(-50%,0);visibility:visible}.handle{width:42px;height:4px;margin:0 auto 16px;border-radius:99px;background:rgba(73,68,61,.2)}.head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.head small,.card small{color:var(--gold);letter-spacing:.12em;text-transform:uppercase}.head h1,.card h2{margin:4px 0 0;color:var(--burg);font-size:22px;font-weight:500}.x{width:40px;height:40px;border:0;border-radius:50%;background:#f1e5d3;color:#675b49;font-size:24px}.row{width:100%;min-height:72px;margin-top:9px;padding:10px 12px;border:1px solid var(--line);border-radius:18px;background:#fffdf8;color:var(--ink);text-decoration:none;display:grid;grid-template-columns:46px 1fr 22px;align-items:center;gap:11px;text-align:left}.row>b{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#f4ead8}.row span{display:flex;flex-direction:column;gap:4px}.row strong{color:var(--olive);font-size:15px}.row em{font-style:normal;color:#887b68;font-size:12px}.row u{text-decoration:none;color:var(--gold);font-size:25px}.rsvp{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:20px 18px;opacity:0;visibility:hidden;transition:.35s}.rsvp.open{opacity:1;visibility:visible}.rsvp>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.blur{position:absolute;inset:0;background:rgba(55,37,24,.28);backdrop-filter:blur(6px)}.card{position:relative;z-index:2;width:min(100%,520px);padding:34px 22px 24px;border:1px solid rgba(175,135,63,.48);border-radius:27px;background:rgba(255,250,241,.96);box-shadow:0 24px 70px rgba(53,32,20,.28)}.close{position:absolute;right:16px;top:16px}.card form>label{display:block;margin:24px 0 8px;font-size:12px;letter-spacing:.07em;text-transform:uppercase}.card input[name=name]{width:100%;height:52px;padding:0 15px;border:1px solid rgba(175,135,63,.58);border-radius:15px;background:#fffdf8}.choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.choices label{position:relative}.choices input{position:absolute;opacity:0}.choices span{min-height:52px;padding:10px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(175,135,63,.58);border-radius:15px;background:#fffdf8}.choices input:checked+span{background:var(--burg);border-color:var(--burg);color:#fff}.send{width:100%;min-height:54px;margin-top:15px;border:0;border-radius:15px;background:var(--burg);color:#fff}.check{width:64px;height:64px;margin:0 auto 16px;border-radius:50%;display:grid;place-items:center;background:#f4ead8;color:var(--burg);font-size:31px}#thanks{text-align:center}#msg{min-height:18px;text-align:center;color:#8f6b31;font-size:12px}@media(min-width:760px){.invite{min-height:auto}.fab{right:max(22px,calc((100vw - 760px)/2 + 22px))}}@media(max-width:420px){.choices{grid-template-columns:1fr}}