body{margin:0}#root{min-height:100vh}:root{--display:"Cormorant Garamond", Georgia, serif;--sans:"Plus Jakarta Sans", system-ui, sans-serif;--navy:#26406e;--blue:#4a76b8;--muted:#7a8fab;--faint:#a9b9cf}*{box-sizing:border-box;margin:0;padding:0}.invite{background:radial-gradient(circle at 15% 10%,#e8f2ff 0%,#0000 45%),radial-gradient(circle at 85% 90%,#d8e9fb 0%,#0000 45%),linear-gradient(#f4f8fd 0%,#e6eefb 100%);justify-content:center;align-items:center;min-height:100dvh;padding:2rem;display:flex;position:relative}.bg{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.bg-item{left:var(--x);top:var(--y);font-size:var(--s);opacity:.55;line-height:1;position:absolute}.bg-item.float{animation:7s ease-in-out infinite floatUp;animation-delay:var(--d)}.bg-item.drift{animation:18s ease-in-out infinite drift;animation-delay:var(--d)}.bg-item.twinkle{animation:4s ease-in-out infinite twinkle;animation-delay:var(--d)}.bg-item.bob{animation:5s ease-in-out infinite bob;animation-delay:var(--d)}.bg-item.flutter{animation:6s ease-in-out infinite flutter;animation-delay:var(--d)}@keyframes floatUp{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-22px)rotate(5deg)}}@keyframes drift{0%,to{transform:translate(0)}50%{transform:translate(24px)}}@keyframes twinkle{0%,to{opacity:.15;transform:scale(.8)rotate(0)}50%{opacity:.6;transform:scale(1.1)rotate(15deg)}}@keyframes bob{0%,to{transform:translateY(0)rotate(-6deg)}50%{transform:translateY(-12px)rotate(6deg)}}@keyframes flutter{0%,to{transform:translateY(0)rotate(-5deg)}50%{transform:translateY(-14px)rotate(5deg)}}.card{z-index:1;text-align:center;background:#fff;border-radius:28px;width:100%;max-width:480px;padding:3rem 2.5rem;position:relative;box-shadow:0 1px 2px #26406e0d,0 12px 40px #26406e1f}.emblem{background:linear-gradient(160deg,#cfe0f7,#eaf2fc);border-radius:50%;justify-content:center;align-items:center;width:104px;height:104px;margin:0 auto 2rem;display:flex;box-shadow:0 10px 24px #4a76b82e}.emblem-icon{color:#4a76b8;width:3.4rem;height:3.4rem}.eyebrow{font-family:var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--blue);margin-bottom:1.25rem;font-size:.68rem;font-weight:500;display:inline-block}.names{font-family:var(--display);color:var(--navy);margin-bottom:1.25rem;font-size:clamp(2.6rem,8vw,3.3rem);font-weight:500;line-height:1.05}.verse{font-family:var(--display);color:#5b7396;margin-bottom:.4rem;font-size:1.15rem;font-style:italic;line-height:1.55}.verse-ref{font-family:var(--sans);letter-spacing:.06em;color:var(--faint);margin-bottom:2rem;font-size:.8rem}.details{border-top:1px solid #eef2f8;border-bottom:1px solid #eef2f8;margin-bottom:1.75rem;padding:1.1rem 0}.detail{flex-direction:column;gap:.2rem;padding:.45rem 0;display:flex}.label{font-family:var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--faint);font-size:.64rem;font-weight:500}.value{font-family:var(--sans);color:var(--navy);font-size:1.12rem}.address{font-family:var(--sans);color:var(--blue);font-size:.85rem;line-height:1.45;text-decoration:none;transition:color .2s}.address:hover{color:#335a94;text-decoration:underline}.footer{font-family:var(--sans);color:var(--muted);margin-top:1.6rem;font-size:.88rem;line-height:1.55}@media (width<=480px){.invite{padding:1rem}.card{padding:2.25rem 1.5rem}.emblem{width:92px;height:92px}}
