.music-button{right:max(16px, env(safe-area-inset-right,0px));bottom:max(16px, env(safe-area-inset-bottom,0px));z-index:40;color:#31576a;cursor:pointer;opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#ffffffe8;border:1px solid #ffffffad;border-radius:50%;place-items:center;width:50px;height:50px;transition:opacity .45s .45s,transform .45s cubic-bezier(.2,.9,.2,1) .45s;display:grid;position:fixed;transform:translateY(14px)scale(.92);box-shadow:0 8px 24px #3e2b223d}.music-button.is-visible{opacity:1;pointer-events:auto;transform:none}.music-button__retry{right:max(74px, calc(58px + env(safe-area-inset-right,0px)));bottom:max(22px, calc(22px + env(safe-area-inset-bottom,0px)));z-index:40;color:#31576a;min-height:38px;font:inherit;cursor:pointer;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#fffffff0;border:1px solid #ffffffb8;border-radius:999px;padding:7px 13px;font-size:.82rem;font-weight:700;animation:1.6s ease-in-out infinite music-retry-pulse;position:fixed;box-shadow:0 8px 24px #3e2b223d}.music-button__retry:focus-visible{box-shadow:0 0 0 6px var(--gold);outline:3px solid #fff8df}.music-button:disabled{color:#7b8d93;cursor:wait}.music-button:focus-visible{box-shadow:0 0 0 6px var(--gold), 0 14px 34px -14px #5c35408c;outline:3px solid #fff8df}.music-button svg{fill:currentColor;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.music-button svg path:not(:first-child){fill:none}.music-button__wave{transform-origin:14px 12px;animation:1.5s ease-in-out infinite music-sound-wave}@keyframes music-sound-wave{50%{opacity:.52}}@keyframes music-retry-pulse{50%{transform:translateY(-2px)}}
.golden-action{color:#fff;min-height:45px;font-family:var(--body);background:linear-gradient(#ddb957,#c9a24b);border-radius:999px;justify-content:center;align-items:center;gap:8px;margin-top:18px;padding:10px 24px;font-size:.93rem;font-weight:700;text-decoration:none;transition:transform .18s,box-shadow .18s;display:inline-flex;box-shadow:0 14px 26px -12px #c9a24bbf}.golden-action svg{fill:none;stroke:currentColor;stroke-width:1.7px;width:18px;height:18px}.golden-action:active{transform:scale(.98)}.golden-action:focus-visible{outline-offset:3px;box-shadow:0 0 0 5px var(--gold);outline:3px solid #fff8df}.rsvp-section{background:#fffbf4c7;border:1px solid #c9a24b61;border-radius:22px;margin-inline:15px;padding:34px 20px;box-shadow:0 18px 42px #5b383014}.rsvp-section>p{color:#806d65;margin:5px 0 22px}.rsvp-form{text-align:right;gap:16px;display:grid}.rsvp-form>label,.rsvp-form fieldset{border:0;gap:7px;margin:0;padding:0;display:grid}.rsvp-form label>span,.rsvp-form legend{color:var(--plum);font-weight:700}.rsvp-form input,.rsvp-form textarea{width:100%;color:var(--plum);font:inherit;background:#ffffffb8;border:1px solid #c9a24b6b;border-radius:13px;outline:none}.rsvp-form input{min-height:46px;padding:8px 13px}.rsvp-form textarea{resize:vertical;min-height:96px;padding:12px 13px}.rsvp-form input:focus-visible,.rsvp-form textarea:focus-visible{border-color:var(--gold);box-shadow:0 0 0 3px #c9a24b29}.rsvp-options{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.rsvp-options label{cursor:pointer;position:relative}.rsvp-options input{opacity:0;width:1px;height:1px;position:absolute}.rsvp-options span{background:#fffaf2;border:1px solid #c9a24b66;border-radius:12px;place-items:center;min-height:44px;transition:all .18s;display:grid}.rsvp-options input:checked+span{border-color:var(--gold);background:var(--gold);color:#fff;box-shadow:0 8px 18px #c9a24b40}.rsvp-form small,.rsvp-error{color:#a23d52;font-weight:600}.rsvp-submit{justify-content:center;width:100%}.rsvp-submit:disabled{cursor:wait;opacity:.65}.rsvp-honeypot{width:1px!important;height:1px!important;position:absolute!important;left:-10000px!important}.rsvp-success{text-align:center;justify-items:center;gap:28px;width:100%;display:grid}.rsvp-success__message{background:#ffffff94;border:1px solid #c9a24b2e;border-radius:17px;justify-items:center;gap:7px;width:100%;padding:24px 16px;display:grid;box-shadow:0 14px 30px #51322814}.rsvp-success__celebration{font-size:2.35rem;line-height:1}.rsvp-success__message strong{color:var(--plum);font-family:var(--aref);font-size:1.55rem}.rsvp-success__message>span:not(.rsvp-success__celebration){color:var(--text-muted)}.rsvp-success__message b{color:#28745f;background:#4189741c;border-radius:999px;margin-top:8px;padding:8px 15px;font-size:.84rem}.rsvp-preview-note{color:var(--text-muted);margin-top:4px;font-size:.72rem;font-weight:500;line-height:1.8}.rsvp-success__secondary-actions{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.rsvp-success__secondary-actions a,.rsvp-success__secondary-actions button{color:#a67822;font:inherit;cursor:pointer;background:0 0;border:0;font-weight:700;text-decoration:underline}.attendance-share{border-top:1px dashed #c9a24b61;justify-items:center;gap:18px;width:100%;padding-top:27px;display:grid}.attendance-share__heading{justify-items:center;gap:6px;display:grid}.attendance-share__heading>span{color:var(--gold);font-size:1.35rem}.attendance-share__heading h3{color:var(--plum);font-family:var(--aref);margin:0;font-size:1.45rem;line-height:1.4}.attendance-share__heading p{max-width:350px;color:var(--text-muted);margin:0;font-size:.84rem;line-height:1.9}.attendance-card-frame{background:#ffffffbd;border-radius:17px;width:min(74vw,292px);padding:7px;box-shadow:0 22px 35px #492f252b,0 3px 8px #492f2517}.attendance-card-canvas{background:#fbf7ef;border-radius:12px;width:100%;height:auto;display:block}.attendance-share__actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;width:100%;display:grid}.attendance-share__button{min-height:47px;color:var(--plum);font:inherit;cursor:pointer;background:#ffffff94;border:1px solid #c9a24b7a;border-radius:999px;justify-content:center;align-items:center;gap:7px;padding:9px 14px;font-size:.88rem;font-weight:700;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex}.attendance-share__button--primary{border-color:var(--gold);background:var(--gold);color:#fff;box-shadow:0 12px 23px #c9a24b47}.attendance-share__button svg{stroke-width:1.8px;width:17px;height:17px}.attendance-share__button:disabled{cursor:wait;opacity:.64}.attendance-share__button:focus-visible{outline-offset:3px;outline:3px solid #c9a24b3d}.attendance-share__feedback{color:#28745f;min-height:1.6em;margin:-8px 0 0;font-size:.78rem}.attendance-share__feedback[data-state=error]{color:#a23d52}.attendance-share__spinner{animation:.8s linear infinite attendance-share-spin}.wishes-list{gap:12px;margin-top:23px;display:grid}.wishes-list blockquote{text-align:start;background:#fffcf7bd;border:1px solid #c9a24b3d;border-radius:16px;grid-template-columns:43px minmax(0,1fr);align-items:start;gap:12px;margin:0;padding:17px;display:grid;position:relative}.wishes-list p{color:var(--text-muted);margin:4px 0 0;line-height:1.85}.wishes-list cite{color:var(--plum);font-style:normal;font-weight:700}.wish-card__avatar{background:linear-gradient(145deg, var(--gold), #9c72bc);color:#fff;border-radius:50%;place-items:center;width:43px;height:43px;font-size:1rem;font-weight:800;display:grid;box-shadow:0 8px 17px #5b383021}.wish-card__body{min-width:0}.wish-card__preview-badge{color:#28745f;background:#4189741c;border-radius:999px;grid-column:2;width:fit-content;margin-top:-2px;padding:3px 9px;font-size:.67rem;font-weight:700}.wish-card.is-preview-local{background:#f8fffcd1;border-color:#41897461;animation:.42s ease-out both wish-card-arrive}@media (hover:hover) and (pointer:fine){.golden-action:hover,.attendance-share__button:hover{transform:translateY(-2px)}}@keyframes attendance-share-spin{to{rotate:1turn}}@keyframes wish-card-arrive{0%{opacity:0;transform:translateY(10px)}}@media (prefers-reduced-motion:reduce){.attendance-share__button,.golden-action,.wish-card.is-preview-local{transition:none;animation:none}.attendance-share__spinner{animation-duration:1.8s}}
.save-date-section{padding:12px 18px 42px}.save-date-section>h2{color:var(--gold);font-family:var(--ruqaa);margin-bottom:16px;font-size:clamp(1.35rem,5.8vw,1.8rem)}.save-date-section>h2 span{font-family:var(--amiri);font-size:.62em}.calendar-card{background:#fffaf2;border:1px solid #c9a24b5c;border-radius:20px;width:min(258px,100%);margin-inline:auto;overflow:hidden;box-shadow:0 20px 46px #785a4629}.calendar-card>header{color:#fff;background:linear-gradient(135deg,#c9a24b,#a9707a);padding:13px 10px 11px;font-size:.98rem;font-weight:800;position:relative}.calendar-card>header i{background:#d7ccdf;border-radius:4px;width:8px;height:15px;position:absolute;top:-6px;box-shadow:0 1px 2px #00000026}.calendar-card>header i:first-child{right:33%}.calendar-card>header i:last-child{left:33%}.calendar-card__body{padding:14px 10px 18px}.calendar-card__body span{color:var(--text-muted);font-size:.93rem;font-weight:700}.calendar-card__body strong{color:var(--gold);font-family:var(--ruqaa);font-size:3.9rem;font-weight:700;line-height:1.16;display:block}.calendar-card__body p{color:var(--rose-deep);margin-top:7px;font-size:.87rem;font-weight:700}.calendar-card>footer{border-top:1px dashed #c9a24b5c;padding:12px 10px 15px}.calendar-card>footer p{color:var(--text-body);margin-bottom:9px;font-size:.74rem;font-weight:700}.calendar-card>footer>div{flex-wrap:wrap;justify-content:center;gap:7px;display:flex}.calendar-card>footer a,.calendar-card>footer button{border:1.5px solid var(--gold);min-height:36px;color:var(--gold-deep);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;padding:6px 13px;font-size:.76rem;font-weight:700;text-decoration:none;transition:transform .16s,background-color .16s;display:inline-flex}.calendar-card>footer a:active,.calendar-card>footer button:active{transform:scale(.97)}.calendar-card a:focus-visible,.calendar-card button:focus-visible{outline-offset:3px;box-shadow:0 0 0 5px var(--gold);outline:3px solid #fff8df}@media (hover:hover) and (pointer:fine){.calendar-card>footer a:hover,.calendar-card>footer button:hover{background:#c9a24b17}}
