:root{--bg:#0f1221;--card:#1a1f35;--card2:#222845;--ink:#f4f1ea;--muted:#a8b0c8;--accent:#ff6b9a;--accent2:#7c9cff;--yes:#3dd68c;--maybe:#f5c84c;--no:#ff7a7a;--line:rgba(255,255,255,0.08);--radius:18px;--shadow:0 18px 50px rgba(0,0,0,0.45);font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink)}body{min-height:100dvh;background:radial-gradient(900px 480px at 10% -10%,rgba(255,107,154,.22),transparent 55%),radial-gradient(700px 400px at 100% 0,rgba(124,156,255,.18),transparent 50%),var(--bg)}a{color:var(--accent2)}.wrap{width:min(440px,100%);margin:0 auto;padding:16px 16px 48px}.wrap-wide{width:min(720px,100%);margin:0 auto;padding:24px 16px 64px}.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.card,.hero{background:linear-gradient(160deg,var(--card),var(--card2));border:1px solid var(--line);border-radius:24px;padding:22px 20px 20px;box-shadow:var(--shadow)}h1{font-size:clamp(1.6rem,6vw,1.95rem);line-height:1.15;margin:0 0 8px}h2{font-size:1.05rem;margin:22px 0 10px}.demo-tag,.muted{color:var(--muted);font-size:.92rem}label{display:block;font-size:.85rem;margin:12px 0 6px;color:var(--muted)}input,select,textarea{width:100%;border-radius:12px;border:1px solid var(--line);background:#12162a;color:var(--ink);padding:11px 12px;font:inherit}.btn,.rsvp-opt{border:0;border-radius:12px;padding:12px 14px;font:inherit;font-weight:600;cursor:pointer}.btn{width:100%;margin-top:12px;background:var(--accent);color:#0f1221}.btn.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}.rsvp-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:8px;gap:8px}.rsvp-opt.yes{background:rgba(61,214,140,.15);color:var(--yes)}.rsvp-opt.maybe{background:rgba(245,200,76,.15);color:var(--maybe)}.rsvp-opt.no{background:rgba(255,122,122,.15);color:var(--no)}.rsvp-opt[aria-pressed=true]{outline:2px solid currentColor}.counts{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:8px;gap:8px;margin-bottom:10px}.count{background:#12162a;border-radius:12px;padding:10px;text-align:center}.count b{display:block;font-size:1.3rem}.guest{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.avatar{width:32px;height:32px;border-radius:50%;background:#2a3152;display:grid;place-items:center;font-size:12px}#consent-banner,.notice{background:#12162a;border:1px solid var(--line);border-radius:14px;padding:12px;margin:12px 0}#consent-banner{position:-webkit-sticky;position:sticky;bottom:12px;width:min(720px,100%);margin:12px auto}.consent-actions,.share-row{display:grid;grid-gap:8px;gap:8px}.consent-actions{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.consent-actions .btn,.consent-actions .btn.secondary{margin-top:0;background:var(--card2);color:var(--ink);border:1px solid var(--line)}.share-row{grid-template-columns:1fr}.toast{display:none;margin-top:10px;color:var(--yes)}.toast.show{display:block}.toast.error{color:var(--no)}.host-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px 12px;margin-bottom:12px}.host-bar .btn{width:auto;margin-top:0;padding:6px 12px}.host-bar .host-sign-out{margin:0}.btn.danger{background:var(--no);color:#0f1221}.confirm-panel{border:1px solid var(--no);border-radius:12px;padding:12px;margin-top:12px}.legal{line-height:1.55}.legal h1{font-size:1.6rem}.site-nav{display:flex;justify-content:space-between;gap:12px;margin-bottom:18px;font-size:.9rem}.site-footer{max-width:560px;margin:24px auto 16px;padding:0 16px;text-align:center;font-size:.85rem;color:var(--muted)}.site-footer a,.site-footer button{color:inherit;text-decoration:underline}.site-footer button{background:none;border:0;padding:0;font:inherit;cursor:pointer}