:root{--font-display:"Cormorant Garamond", Georgia, serif;--font-body:"Jost", sans-serif;--text-xs:clamp(.72rem, .68rem + .2vw, .82rem);--text-sm:clamp(.85rem, .8rem + .25vw, .95rem);--text-base:clamp(1rem, .95rem + .25vw, 1.1rem);--text-lg:clamp(1.1rem, 1rem + .6vw, 1.4rem);--text-xl:clamp(1.4rem, 1.1rem + 1.1vw, 2rem);--text-2xl:clamp(1.8rem, 1rem + 2.5vw, 3rem);--text-3xl:clamp(2.4rem, .8rem + 4vw, 4.5rem);--sp2:.5rem;--sp3:.75rem;--sp4:1rem;--sp5:1.25rem;--sp6:1.5rem;--sp8:2rem;--sp10:2.5rem;--sp12:3rem;--surf:#f5f4f0;--surf2:#edecea;--surf3:#e4e2de;--muted:#6b6a65;--faint:#a8a7a2;--border:#c8c6c0;--text:#1a1916;--teal:#1a8c96;--teal2:#126872;--gold:#c5933a;--gold2:#a87928;--cream:#f7f2ea;--r-lg:.75rem;--r-full:9999px;--tr:.18s cubic-bezier(.16,1,.3,1);--shadow:0 24px 72px #14323c2e, 0 6px 20px #0a140a1a}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased}body{min-height:100dvh;font-family:var(--font-body);color:#fff;padding:var(--sp8) var(--sp4);background:linear-gradient(#0828378c 0%,#08283759 50%,#08283799 100%),url(/images/tega-ruthie.jpg) 50%/cover no-repeat fixed;justify-content:center;align-items:center;display:flex}img{max-width:100%;display:block}a{cursor:pointer;font:inherit;border:none}.card{-webkit-backdrop-filter:blur(18px)saturate(140%);backdrop-filter:blur(18px)saturate(140%);background:linear-gradient(#1450642e 0%,#14506452 100%);border:1px solid #ffffff4d;border-radius:26px;width:100%;max-width:480px;position:relative;overflow:hidden;box-shadow:0 30px 80px #051e2880,0 8px 24px #051e284d}.floaters{pointer-events:none;z-index:5;position:absolute;inset:0;overflow:hidden}.photo-wrap{aspect-ratio:4/5;width:100%;position:relative;overflow:hidden}.photo-wrap img{object-fit:cover;object-position:center 28%;width:100%;height:100%}.photo-wrap:after{content:"";pointer-events:none;background:linear-gradient(#0000 0% 45%,#0f374859 80%,#0f374880 100%);position:absolute;inset:0}.photo-tagline{bottom:var(--sp5);z-index:3;text-align:center;padding:0 var(--sp6);position:absolute;left:0;right:0}.tagline-pill{background:0 0;border:none;padding:.25rem .5rem;display:inline-block}.tagline-pill p{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:var(--text-xl);color:#fff;letter-spacing:.03em;text-shadow:0 1px 2px #0000008c,0 2px 14px #0a1e2899,0 0 28px #0a1e2859;opacity:0;line-height:1.3;animation:.9s cubic-bezier(.16,1,.3,1) .3s forwards riseIn}.body{padding:var(--sp3) var(--sp8) var(--sp10);align-items:center;gap:var(--sp5);flex-direction:column;display:flex}.body>.action-line{margin-top:calc(var(--sp2) * -1)}.pearl-divider{opacity:0;justify-content:center;align-items:center;gap:6px;width:100%;animation:.7s .85s forwards riseIn;display:flex}.pearl-divider .line{background:linear-gradient(to right,transparent,var(--gold));flex:1;max-width:60px;height:1px}.pearl-divider .line.r{background:linear-gradient(to left,transparent,var(--gold))}.pearl-bead{border-radius:var(--r-full);background:radial-gradient(circle at 35% 35%,#fff 0%,#ddd8cc 60%,#c8c2b4 100%);width:8px;height:8px;box-shadow:0 1px 3px #0000002e}.pearl-bead.lg{width:11px;height:11px}.name-block{text-align:center;opacity:0;animation:.7s 1s forwards riseIn}.baby-label{font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:#ffffffd9;margin-bottom:var(--sp2);text-shadow:0 1px 4px #001e2880;justify-content:center;align-items:center;gap:6px;font-weight:500;display:flex}.baby-label .shell-ico{font-size:.9rem}.parents-name{font-family:var(--font-display);font-size:var(--text-3xl);color:#fff;letter-spacing:-.01em;text-shadow:0 2px 14px #001e2899;font-weight:300;line-height:1.05}.parents-name .amp{color:#f1d68a;padding:0 .12em;font-size:.85em;font-style:italic}.action-line{font-family:var(--font-display);font-style:italic;font-size:var(--text-lg);color:#fff;text-align:center;text-shadow:0 1px 8px #001e288c;opacity:0;font-weight:400;line-height:1.5;animation:.7s 1.15s forwards riseIn}.details{gap:var(--sp3);opacity:0;grid-template-columns:1fr 1fr;width:100%;animation:.7s 1.3s forwards riseIn;display:grid;position:relative}.pearl-baby-overlay{pointer-events:none;z-index:2;opacity:.5;mix-blend-mode:screen;filter:drop-shadow(0 8px 24px #0a505a66)saturate(.85)brightness(1.05);background:0 0;width:150px;height:auto;position:absolute;top:50%;right:8px;transform:translateY(-50%)}@media (width<=440px){.pearl-baby-overlay{opacity:.45;width:110px;right:6px}}.det{-webkit-backdrop-filter:blur(12px)saturate(140%);backdrop-filter:blur(12px)saturate(140%);border-radius:var(--r-lg);padding:var(--sp4) var(--sp5);color:#fff;background:#ffffff24;border:1px solid #ffffff47;flex-direction:column;gap:2px;display:flex}.det.wide{grid-column:1/-1}.det-lbl{font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:#f1d68a;text-shadow:0 1px 3px #001e2866;margin-bottom:3px;font-weight:600}.det-val{font-family:var(--font-display);font-size:var(--text-lg);color:#fff;text-shadow:0 1px 4px #001e2880;font-weight:400;line-height:1.2}.det-sub{font-size:var(--text-xs);color:#ffffffc7;margin-top:2px}.reg-link{font-family:var(--font-display);font-size:var(--text-lg);color:#bce8ee;text-shadow:0 1px 4px #001e2880;word-break:break-all;transition:color var(--tr);font-weight:400;line-height:1.2;text-decoration:none}.reg-link:hover{color:#fff;text-decoration:underline}.reg-note{font-family:var(--font-display);font-style:italic;font-size:var(--text-xs);color:#fff9;text-shadow:0 1px 4px #001e2866;margin-top:6px;line-height:1.4;display:block}.dress-pill{align-items:center;gap:var(--sp2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--r-full);padding:.45rem var(--sp5);font-size:var(--text-sm);color:#ffffffe6;letter-spacing:.04em;opacity:0;background:#ffffff2e;border:1px solid #ffffff59;animation:.7s 1.45s forwards riseIn;display:inline-flex}.dress-pill b{color:#fff;font-weight:600}.swatches{gap:3px;display:flex}.sw{border-radius:var(--r-full);border:1.5px solid #283c468c;width:14px;height:14px;box-shadow:0 1px 3px #00000059}.sw.w{background:#fff}.sw.c{background:#f5f0e8}.pool-note{color:#ffffffd9;text-align:center;font-style:italic;font-family:var(--font-display);text-shadow:0 1px 6px #001e2880;opacity:0;max-width:30ch;font-size:clamp(.82rem,.78rem + .2vw,.95rem);line-height:1.7;animation:.7s 1.6s forwards riseIn}.baby-icons{justify-content:center;align-items:center;gap:var(--sp8);opacity:0;animation:.7s 1.7s forwards riseIn;display:flex}.baby-icons svg{color:#fff;opacity:.9;filter:drop-shadow(0 1px 4px #001e2866)}.baby-icons svg:nth-child(2){color:#f1d68a}.photo-ico{pointer-events:none;z-index:10;color:var(--teal);position:absolute}.photo-star{color:var(--gold);opacity:.7;filter:drop-shadow(0 1px 3px #00000059);animation:5s ease-in-out infinite gentleFloat;top:18px;left:18px}.photo-bubble{color:#fff;opacity:.75;filter:drop-shadow(0 1px 4px #0000004d);animation:4.4s ease-in-out .6s infinite gentleFloat;top:24px;right:28px}.photo-wave{color:#fff;opacity:.7;filter:drop-shadow(0 1px 4px #0000004d);animation:6s ease-in-out 1.2s infinite gentleFloat;bottom:22%;left:14px}.photo-feet-1{color:#4f96b8;opacity:.9;filter:drop-shadow(0 2px 4px #00142880);animation:5.5s ease-in-out .3s infinite gentleFloat;top:40%;right:12px;transform:rotate(22deg)}.photo-feet-2{color:#4585a6;opacity:.85;filter:drop-shadow(0 2px 4px #00142880);animation:6.5s ease-in-out 1.6s infinite gentleFloat;top:54%;left:18px;transform:rotate(-18deg)scaleX(-1)}.photo-bow{color:#f5a4bd;opacity:.7;filter:drop-shadow(0 2px 5px #00000059);top:68%;left:49%;transform:translate(-50%,-50%)rotate(-50deg)}.float-ico{pointer-events:none;animation:6s ease-in-out infinite gentleFloat;position:absolute}.f-wave-1{color:var(--teal);opacity:.18;top:46%;right:-6px;transform:rotate(-8deg)}.f-wave-2{color:var(--teal2);opacity:.22;animation-delay:.8s;top:74%;left:-4px;transform:rotate(6deg)}.f-wave-3{color:var(--teal);opacity:.2;animation-delay:1.6s;top:92%;right:30%}.f-bubble-1{color:var(--teal);opacity:.22;animation-delay:.3s;top:58%;left:8px}.f-bubble-2{color:var(--gold);opacity:.28;animation-delay:1.1s;top:64%;right:14px}.f-bubble-3{color:var(--teal2);opacity:.16;animation-delay:.6s;top:82%;left:18%}.f-bubble-4{color:var(--gold2);opacity:.3;animation-delay:1.4s;top:70%;right:34%}.divider-shell{color:var(--gold);opacity:.85}.label-star{color:#f1d68a;opacity:.95;filter:drop-shadow(0 1px 2px #001e2866)}.inline-anchor{vertical-align:-1px;color:#fff;opacity:.9;margin-left:6px;font-size:1em;display:inline-block}.dress-heart{color:#f1d68a;opacity:.95;margin-right:2px}.registry-card{position:relative;overflow:hidden}.ghost-bottle{color:#fff;opacity:.18;pointer-events:none;position:absolute;bottom:-4px;right:10px}.rsvp-feet{color:var(--teal);opacity:.5;margin:0 auto -.25rem;animation:4s ease-in-out infinite gentleFloat;display:block}.rsvp{background:var(--teal);color:#fff;font-family:var(--font-body);font-size:var(--text-sm);letter-spacing:.12em;text-transform:uppercase;padding:var(--sp4) var(--sp12);border-radius:var(--r-full);text-align:center;opacity:0;transition:background var(--tr),transform var(--tr),box-shadow var(--tr);font-weight:500;text-decoration:none;animation:.7s 1.85s forwards riseIn;display:inline-block;box-shadow:0 4px 20px #1a8c9652}.rsvp:hover{background:var(--teal2);transform:translateY(-2px);box-shadow:0 8px 28px #1a8c966b}.rsvp:active{transform:translateY(0)}.deco-pearl{opacity:.7;background:radial-gradient(circle at 35% 35%,#fff 0%,#e8e3d8 55%,#cfc9bb 100%);border-radius:50%;position:absolute;box-shadow:0 2px 6px #00000026,inset 0 -1px 2px #fff9}.deco-pearl.p-1{opacity:.7;width:9px;height:9px;top:38%;left:14px}.deco-pearl.p-2{opacity:.6;width:6px;height:6px;top:52%;right:18px}.deco-pearl.p-3{opacity:.75;width:11px;height:11px;top:62%;left:24px}.deco-pearl.p-4{opacity:.65;width:7px;height:7px;top:70%;right:32px}.deco-pearl.p-5{opacity:.6;width:8px;height:8px;top:80%;left:30%}.deco-pearl.p-6{opacity:.55;width:6px;height:6px;top:88%;right:24%}.deco-pearl.p-7{opacity:.5;width:10px;height:10px;top:46%;right:38%}@keyframes riseIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes gentleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@media (width<=440px){body{padding:var(--sp4) var(--sp3)}.body{padding:var(--sp5) var(--sp5) var(--sp8)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.tagline-pill p,.pearl-divider,.name-block,.action-line,.details,.dress-pill,.pool-note,.baby-icons,.rsvp{opacity:1!important;transform:none!important}}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:var(--sp4);background:#0f2d3c59;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal{width:100%;max-width:420px;padding:var(--sp8) var(--sp6) var(--sp6);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(26px)saturate(160%);backdrop-filter:blur(26px)saturate(160%);color:#fff;background:linear-gradient(#14556e8c 0%,#0c374eb8 100%);border:1px solid #ffffff59;border-radius:22px;max-height:calc(100dvh - 2rem);animation:.35s cubic-bezier(.16,1,.3,1) riseIn;position:relative;overflow-y:auto}.modal-close{cursor:pointer;color:#fff;width:32px;height:32px;transition:background var(--tr);background:#fff3;border:none;border-radius:50%;font-size:1.4rem;line-height:1;position:absolute;top:10px;right:14px}.modal-close:hover{background:#ffffff59}.modal-title{font-family:var(--font-display);font-weight:300;font-size:var(--text-2xl);text-align:center;color:#fff;letter-spacing:.02em;text-shadow:0 2px 12px #001e288c}.modal-sub{font-family:var(--font-display);text-align:center;color:#ffffffeb;font-style:italic;font-size:var(--text-base);margin-bottom:var(--sp5);text-shadow:0 1px 6px #001e2880}.rsvp-form{gap:var(--sp4);flex-direction:column;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field>span,.field>legend{font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:#fff;text-shadow:0 1px 4px #001e288c;font-weight:600}.field input[type=text],.field input[type=number],.field textarea{font:inherit;font-size:var(--text-base);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--r-lg);color:#fff;transition:border-color var(--tr),background var(--tr);background:#ffffff38;border:1px solid #ffffff73;width:100%;padding:.65rem .85rem}.field input::placeholder,.field textarea::placeholder{color:#ffffffb3}.field input:focus,.field textarea:focus{background:#ffffff52;border-color:#fff;outline:none}.field textarea{resize:vertical;min-height:72px;font-family:var(--font-body)}.attending{border:none;flex-direction:column;gap:6px;padding:0;display:flex}.attending>legend{margin-bottom:2px;padding:0}.attending .pill{border-radius:var(--r-full);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;font-family:var(--font-display);font-style:italic;font-size:var(--text-base);cursor:pointer;transition:all var(--tr);background:#ffffff2e;border:1px solid #fff6;align-items:center;gap:8px;padding:.55rem .9rem;display:flex}.attending .pill input{accent-color:#fff;margin:0}.attending .pill.on{color:#fff;background:#ffffff61;border-color:#fff;font-weight:500}.form-err{color:#b1422f;font-size:var(--text-sm);text-align:center;background:#fbeae6;border-radius:8px;padding:.5rem .75rem}.modal-submit{margin-top:var(--sp2);opacity:1;cursor:pointer;border:none;width:100%;animation:none}.rsvp-success{align-items:center;gap:var(--sp5);text-align:center;padding:var(--sp6) 0;flex-direction:column;display:flex}.success-text{font-family:var(--font-display);font-style:italic;font-size:var(--text-lg);color:#f1d68a;text-shadow:0 2px 10px #001e2880;line-height:1.4}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
