/* KC-RSVP Diamond · Azula & Luna, el libro de cuentos.
   Arriba, la firma KC-RSVP con la misma estrella de oro del footer KC – Universe. Fuera del pergamino, la identidad
   (nombre entre filetes de oro, pases, fecha límite). La pregunta vive en el pergamino con su guirnalda; Sí / No son filas
   finas con el loto del estanque: dormido en reposo, florece al elegir. Enviar es el mismo listón de satín del libro.
   El pase es la noche del estanque del footer: lo único que queda al confirmar.
   Base técnica: la de la familia princesa_sapo (theme-esmeralda), con tokens --sy-* y el rosa de las cuatas. */

#rsvp [hidden] { display: none !important; }
#rsvp :is(label, button, select) { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
#rsvp.sy-garden-scene[data-garden-scene] { background-color: #E8EFDD; }
#rsvp .kc-section-inner { max-width: 34rem; }
#rsvp .kc-rsvp-card { display: flex; flex-direction: column; padding: 0; background: none; border: 0; border-radius: 0; box-shadow: none; }
#rsvp .kc-rsvp-card::before, #rsvp .kc-rsvp-card::after { content: none; }


/* ── La firma: KC-RSVP con estrella dorada entre filetes ── */
#rsvp .sy-rsvp-mark { display: flex; align-items: center; justify-content: center; gap: .55rem; margin: 0 auto .5rem; max-width: 20rem; font-family: var(--sy-font-caps); font-size: .8rem; letter-spacing: .3em; line-height: 1; text-transform: uppercase; color: var(--sy-rosa); }
#rsvp .sy-rsvp-mark::before, #rsvp .sy-rsvp-mark::after { content: ""; flex: 1 1 0; height: 1px; background: linear-gradient(90deg, rgba(200, 166, 89, 0), var(--sy-rule)); }
#rsvp .sy-rsvp-mark::after { transform: scaleX(-1); }
#rsvp .sy-rsvp-mark span { padding-left: .3em; }   /* el tracking deja aire a la derecha: se compensa */
#rsvp .sy-rsvp-star { flex: none; width: 1.15rem; height: 1.15rem; margin-left: -.15rem; filter: drop-shadow(0 0 4px rgba(246, 215, 118, .55)); animation: sy-rsvp-star-twinkle 3.2s ease-in-out infinite; }

/* ── Identidad, fuera del pergamino ── */
#rsvp .kc-rsvp-reservation { order: 1; display: grid; justify-items: center; gap: .35rem; margin: 0 0 .4rem; padding: 0; text-align: center; border: 0; background: none; }
#rsvp .kc-rsvp-reservation-eyebrow { margin: 0; font-family: var(--sy-font-caps); font-size: .78rem; letter-spacing: .26em; text-transform: uppercase; color: var(--sy-moss); }
#rsvp .kc-rsvp-reservation-name { display: flex; align-items: center; gap: .7rem; width: 100%; margin: .1rem 0; font-family: var(--sy-font-text); font-weight: 400; font-size: clamp(1.55rem, 6.8vw, 1.95rem); line-height: 1.15; color: var(--sy-green); overflow-wrap: anywhere; }
#rsvp .kc-rsvp-reservation-name::before, #rsvp .kc-rsvp-reservation-name::after { content: ""; flex: 1 1 0; min-width: 18px; height: 9px; background: linear-gradient(135deg, #F6E7AE, var(--sy-rule) 55%, var(--sy-gold-deep)) 100% 50% / 7px 7px no-repeat, linear-gradient(90deg, rgba(200, 166, 89, 0), var(--sy-rule)) 0 50% / calc(100% - 12px) 1px no-repeat; }
#rsvp .kc-rsvp-reservation-name::after { transform: scaleX(-1); }
#rsvp .kc-rsvp-reservation-passes { margin: .15rem 0 0; padding: .36rem 1.05rem; border-radius: 999px; background: rgba(163, 192, 128, .32); box-shadow: inset 0 0 0 1px rgba(94, 133, 80, .45); font-family: var(--sy-font-caps); font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; color: var(--sy-green); white-space: nowrap; }
#rsvp .kc-rsvp-intro { order: 2; margin: .3rem auto 1rem; max-width: 30ch; text-align: center; font-family: var(--sy-font-text); font-style: italic; font-size: 1.02rem; line-height: 1.5; color: var(--sy-moss); }
#rsvp #kc-rsvp-form { order: 3; }

/* ── El pergamino con su guirnalda ── */
#rsvp #kc-rsvp-form.sy-rsvp-parchment {
  position: relative; margin: 2.4rem 0 0; box-sizing: border-box; border-style: solid; border-width: clamp(30px, 8vw, 44px);
  border-image: url("../../assets/garden/parchment.webp?v=r7b") 120 fill / clamp(30px, 8vw, 44px) round;
  background: none; padding: 1.2rem .3rem .6rem;
}
#rsvp .sy-rsvp-garland { position: absolute; left: 50%; top: calc(-1 * clamp(30px, 8vw, 44px) - 1.9rem); width: min(118%, 34rem); max-width: none; height: auto; translate: -50% 0; pointer-events: none; z-index: 2; }
#rsvp #kc-rsvp-form > :not(.sy-rsvp-garland) { position: relative; z-index: 1; }

/* ── La pregunta ── */
#rsvp .kc-rsvp-attendance { border: 0; margin: 0; padding: 0; min-width: 0; }
#rsvp .kc-rsvp-attendance legend { width: 100%; margin: 0 0 .9rem; padding: 0; text-align: center; font: 400 clamp(2.1rem, 9vw, 2.6rem) / 1.1 var(--sy-font-script); color: var(--sy-green); }
#rsvp .sy-rsvp-choices { display: grid; gap: .6rem; }
#rsvp .kc-rsvp-attendance-hint, #rsvp .kc-rsvp-decline-note { margin: .8rem 0 0; text-align: center; font-family: var(--sy-font-text); font-size: 1.02rem; line-height: 1.5; color: var(--sy-moss); }

/* Sí / No: filas finas; un solo dibujo por control, el loto (dormido → florece) */
#rsvp .sy-rsvp-choice { position: relative; display: flex; align-items: center; gap: .8rem; width: 100%; min-width: 0; min-height: 56px; margin: 0; padding: .5rem 1rem .5rem .75rem; flex: none; cursor: pointer; border: 0; border-radius: 14px; background: rgba(255, 254, 248, .62); box-shadow: inset 0 0 0 1px rgba(94, 133, 80, .38); text-align: left; -webkit-user-select: none; user-select: none; transition: background-color .35s ease, box-shadow .35s ease; }
#rsvp .sy-rsvp-choice:hover { background: rgba(255, 254, 248, .85); box-shadow: inset 0 0 0 1px rgba(94, 133, 80, .6); }
#rsvp .sy-rsvp-choice::before, #rsvp .sy-rsvp-choice::after { content: none; display: none; }   /* theme-esmeralda pinta caja oscura y punto de radio: aquí no */
#rsvp .sy-rsvp-choice input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; clip-path: inset(50%); }   /* enfocable: nunca display:none */
#rsvp .sy-rsvp-choice-bloom { flex: none; width: 2rem; height: 2rem; opacity: .45; transform: scale(.8); transition: opacity .3s ease, transform .5s cubic-bezier(.2, .9, .3, 1.5); pointer-events: none; }
#rsvp .sy-rsvp-choice-text { flex: 1 1 auto; font-family: var(--sy-font-text); font-size: 1.12rem; line-height: 1.25; letter-spacing: .01em; color: var(--sy-ink); }
#rsvp .sy-rsvp-choice-check { flex: none; width: 18px; height: 18px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px rgba(94, 133, 80, .5); transition: background .3s ease, box-shadow .3s ease; }
#rsvp .sy-rsvp-choice:has(input:checked) { background: var(--sy-rosa-mist); box-shadow: inset 0 0 0 1px var(--sy-rule), 0 0 0 3px rgba(200, 166, 89, .16); }
#rsvp .sy-rsvp-choice:has(input:checked) .sy-rsvp-choice-bloom { opacity: 1; transform: scale(1.08) rotate(-8deg); }
#rsvp .sy-rsvp-choice:has(input:checked) .sy-rsvp-choice-text { color: var(--sy-rosa); }
#rsvp .sy-rsvp-choice:has(input:checked) .sy-rsvp-choice-check { background: radial-gradient(circle, #F6E7AE 0 2.5px, var(--sy-rule) 3px 5.5px, transparent 6px); box-shadow: inset 0 0 0 1.5px var(--sy-gold-deep); }
#rsvp .sy-rsvp-choice--no:has(input:checked) .sy-rsvp-choice-bloom { opacity: .5; transform: scale(.86); }   /* el loto se queda dormido. Sin filter: grayscale en transición sobre <img> SVG revienta WebKit */
#rsvp .sy-rsvp-choice:has(input:focus-visible) { outline: 2px solid var(--sy-green); outline-offset: 3px; }

/* ── Campos: el registro, en píldoras crema ── */
#rsvp :is(.kc-field, .kc-rsvp-field-group, .kc-rsvp-extra-field) { display: grid; gap: .4rem; margin-top: 1rem; }
#rsvp .kc-rsvp-extra { display: grid; gap: 0; }
#rsvp :is(.kc-field, .kc-rsvp-field-group, .kc-rsvp-extra-field) label { padding-left: .3rem; font-family: var(--sy-font-caps); font-size: .74rem; letter-spacing: .18em; text-transform: uppercase; color: var(--sy-moss); }
#rsvp #kc-rsvp-form :is(input:not([type="radio"]), select, textarea) {
  width: 100%; min-height: 50px; padding: .6rem 1rem; font: 400 16px / 1.4 var(--sy-font-text); color: var(--sy-ink);
  background-color: rgba(255, 254, 248, .8); border: 0; border-radius: 14px; box-shadow: inset 0 0 0 1px rgba(94, 133, 80, .42), inset 0 2px 6px rgba(62, 90, 50, .06);
}
#rsvp #kc-rsvp-form select { -webkit-appearance: none; appearance: none; padding-right: 2.6rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%237E6228' stroke-width='1.6'/%3E%3C/svg%3E"); background-position: right 1.1rem center; background-size: 12px 8px; background-repeat: no-repeat; }
#rsvp #kc-rsvp-form textarea { min-height: 5.5rem; resize: vertical; border-radius: 14px; }
#rsvp #kc-rsvp-form :is(input, textarea)::placeholder { color: #536845; opacity: 1; }
#rsvp #kc-rsvp-form :is(input:not([type="radio"]), select, textarea):focus { outline: 2px solid rgba(62, 90, 50, .5); outline-offset: 2px; box-shadow: inset 0 0 0 1px var(--sy-rule); }
#rsvp #kc-rsvp-form :is(.kc-rsvp-allocation-note, .kc-status) { margin: .6rem 0 0; text-align: center; font-family: var(--sy-font-text); font-style: italic; font-size: .98rem; line-height: 1.45; color: var(--sy-moss); }
#rsvp #kc-rsvp-form .kc-field-error { margin: .6rem 0 0; padding: .5rem .7rem; border-radius: 8px; text-align: center; font-size: 1rem; color: var(--sy-error); background: var(--sy-error-paper); }

/* ── Enviar: el listón de satín del libro («Abre el libro» → «Confirmar asistencia») ── */
#rsvp :where(.kc-ticket-share-btn, .kc-rsvp-update) { position: relative; isolation: isolate; display: flex; align-items: center; justify-content: center; gap: .7rem; width: 100%; min-height: 52px; padding: .8rem 1.6rem; cursor: pointer; border: 0; border-radius: 999px; background: transparent; color: var(--sy-green); font: 400 1.12rem / 1 var(--sy-font-text); letter-spacing: .03em; -webkit-tap-highlight-color: transparent; }
#rsvp :where(.kc-ticket-share-btn, .kc-rsvp-update)::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; border: 1px solid rgba(94, 133, 80, .55); background: var(--sy-cream); box-shadow: 0 8px 20px rgba(36, 56, 31, .18), inset 2px 2px 10px rgba(255, 255, 255, .7); }
/* sy-pages / theme-esmeralda (#kc-main ..., overflow:hidden) pisan la base: se blinda en 3,0,0 */
#kc-main #rsvp #kc-rsvp-submit, #kc-main #rsvp #kc-rsvp-submit:hover, #kc-main #rsvp #kc-rsvp-submit:is(:disabled, [aria-busy="true"]) {
  position: relative; isolation: isolate; display: flex; align-items: center; justify-content: center;
  width: max-content; min-width: 0; max-width: calc(100% - 64px); min-height: 52px; margin: 2rem auto .8rem; padding: 0; overflow: visible;
  color: #FFF5E6; background: transparent; border: 0; border-radius: 0; box-shadow: none; opacity: 1; transform: none;
  font: 400 1.25rem / 1.1 var(--sy-font-script); letter-spacing: 0; text-transform: none; text-shadow: none; cursor: pointer;
}
#kc-main #rsvp #kc-rsvp-submit[hidden] { display: none; }
/* las colas en V, asomando detrás y abajo, y su doblez */
#rsvp #kc-rsvp-submit::before, #rsvp #kc-rsvp-submit::after { content: ""; position: absolute; z-index: 0; top: 13px; bottom: -11px; width: 46px; background: linear-gradient(180deg, rgba(255, 236, 228, .22), rgba(255, 236, 228, 0) 40%), linear-gradient(180deg, #A9476A, #8A3150); pointer-events: none; }
#rsvp #kc-rsvp-submit::before { left: -30px; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 34% 50%); }
#rsvp #kc-rsvp-submit::after { right: -30px; clip-path: polygon(0 0, 100% 0, 66% 50%, 100% 100%, 0 100%); }
#rsvp .sy-rsvp-fold { position: absolute; z-index: 0; bottom: -11px; width: 16px; height: 11px; background: #5A1C35; pointer-events: none; }
#rsvp .sy-rsvp-fold--l { left: 0; clip-path: polygon(0 0, 100% 0, 100% 100%); }
#rsvp .sy-rsvp-fold--r { right: 0; clip-path: polygon(0 0, 100% 0, 0 100%); }
#rsvp .sy-rsvp-band { position: relative; z-index: 1; box-sizing: border-box; min-width: 220px; min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: .55rem; padding: .6rem 1.5rem; overflow: hidden;
  background: linear-gradient(180deg, rgba(255, 232, 225, .3) 0, rgba(255, 232, 225, .12) 1px, transparent 5px), linear-gradient(105deg, #B5506F 0, #9D3D5D 52%, #8E3352 100%);
  box-shadow: 0 9px 20px rgba(62, 26, 43, .32), inset 0 1px 0 rgba(255, 245, 230, .32); transition: transform .25s ease; }
#rsvp .sy-rsvp-stitch { position: absolute; z-index: 3; inset: 4px; border: 1px dashed #E9CF7A; pointer-events: none; }
#rsvp .sy-rsvp-crown, #rsvp .sy-rsvp-submit-text { position: relative; z-index: 4; flex: 0 0 auto; }
#rsvp .sy-rsvp-crown { width: 1.25rem; height: .95rem; overflow: visible; }
#rsvp .sy-rsvp-submit-text { white-space: nowrap; }
#rsvp #kc-rsvp-submit:hover .sy-rsvp-band { transform: translateY(-1px); }
#kc-main #rsvp #kc-rsvp-submit:active { transform: scale(.97); }
#rsvp #kc-rsvp-submit:is([aria-busy="true"], :disabled) { cursor: progress; }
#rsvp #kc-rsvp-submit:is([aria-busy="true"], :disabled) .sy-rsvp-band { filter: none; opacity: .82; }
#rsvp :is(.kc-ticket-share-btn, .kc-rsvp-update):active { transform: scale(.97); }
#rsvp #kc-rsvp-submit:focus-visible { outline: 3px solid #E9CF7A; outline-offset: 6px; }
#rsvp :is(.kc-ticket-share-btn, .kc-rsvp-update):focus-visible { outline: 2px solid var(--sy-green); outline-offset: 4px; }

/* Con el pase o la despedida en pantalla, el estado queda solo para lector de pantalla */
#rsvp #kc-rsvp-form:has(#kc-rsvp-ticket-host:not([hidden])) #kc-rsvp-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* ── El pase: la noche del estanque ── */
#rsvp .kc-rsvp-ticket-host { margin-top: .4rem; }
/* confirmado: el pergamino se va y el pase queda solo */
#rsvp #kc-rsvp-form.sy-rsvp-parchment:has(.kc-ticket) { margin-top: 0; padding: 0; border: 0; border-image: none; }
#rsvp #kc-rsvp-form:has(.kc-ticket) .sy-rsvp-garland { display: none; }
#rsvp .kc-rsvp-ticket-host .kc-ticket {
  position: relative; overflow: hidden; padding: 2.2rem 1.3rem 1.5rem; text-align: center; color: var(--sy-cream); border-radius: 20px;
  background: linear-gradient(180deg, transparent 58%, rgba(20, 27, 44, .62) 82%, rgba(20, 27, 44, .78)), url("../../assets/footer/night-pond.webp") 50% 100% / 100% auto no-repeat, radial-gradient(90% 50% at 50% 0%, rgba(246, 215, 118, .18), transparent 62%), linear-gradient(180deg, #24304A, var(--sy-night) 62%, #141B2C);
  box-shadow: 0 26px 44px -20px rgba(20, 27, 44, .85), inset 0 0 0 1px rgba(200, 166, 89, .6);
  animation: sy-rsvp-pass-in .5s cubic-bezier(.2, .9, .3, 1.1) both;
}
#rsvp .kc-rsvp-ticket-host .kc-ticket::before { content: ""; position: absolute; inset: .55rem; border: 1px solid rgba(200, 166, 89, .55); border-radius: 14px; pointer-events: none; }
#rsvp .kc-ticket-particles { position: absolute; inset: 0; pointer-events: none; }
#rsvp .kc-tp { position: absolute; width: 7px; height: 7px; font-size: 0; border-radius: 50%; background: radial-gradient(circle, #FFF6C8 0, #F6D776 45%, rgba(246, 215, 118, 0) 72%); box-shadow: 0 0 12px 4px rgba(246, 215, 118, .45); animation: sy-rsvp-firefly-pulse 2.6s ease-in-out infinite alternate; }
#rsvp .kc-tp-1 { left: 11%; top: 14%; }
#rsvp .kc-tp-2 { right: 12%; top: 30%; width: 5px; height: 5px; animation-delay: -.8s; }
#rsvp .kc-tp-3 { left: 14%; bottom: 34%; width: 5px; height: 5px; animation-delay: -1.6s; }
#rsvp .kc-tp-4 { right: 17%; bottom: 18%; animation-delay: -2.2s; }
#rsvp .kc-rsvp-ticket-host .kc-ticket > :not(.kc-ticket-particles) { position: relative; z-index: 1; }
#rsvp .kc-ticket-header { display: grid; justify-items: center; gap: .3rem; margin: 0 0 .3rem; }
#rsvp :is(.kc-ticket-crown-ornament, .kc-ticket-guest-label, .kc-ticket-qr-hint) { font-family: var(--sy-font-caps); font-size: .74rem; letter-spacing: .24em; text-transform: uppercase; color: #E8D49A; }
#rsvp .kc-ticket-status { display: none; }
#rsvp .kc-ticket-event { margin: .1rem 0 0; font: 400 clamp(1.8rem, 8.6vw, 2.5rem) / 1.1 var(--sy-font-script); color: #FBEFD7; text-shadow: 0 0 18px rgba(246, 215, 118, .4); white-space: nowrap; }
#rsvp .kc-ticket-celebrant { margin: 0; font-family: var(--sy-font-caps); font-size: .92rem; letter-spacing: .3em; text-transform: uppercase; color: var(--sy-sage); }
#rsvp .kc-ticket-rule { margin: .9rem auto; width: 70%; height: 1px; font-size: 0; background: linear-gradient(90deg, transparent, rgba(200, 166, 89, .8), transparent); }
#rsvp .kc-ticket-guest { margin: .3rem 0 .15rem; font: 400 1.5rem / 1.2 var(--sy-font-text); color: #FBEFD7; overflow-wrap: anywhere; }
#rsvp .kc-ticket-passes { display: inline-block; margin: .2rem 0 0; padding: .32rem .95rem; border: 1px solid rgba(163, 192, 128, .65); border-radius: 999px; font-family: var(--sy-font-caps); font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; color: var(--sy-sage); white-space: nowrap; }
#rsvp .kc-ticket-date { margin: .55rem 0 0; font-family: var(--sy-font-text); font-size: 1rem; letter-spacing: .04em; color: var(--sy-cream); }
#rsvp .kc-ticket-qr-wrap { margin: 1.2rem 0 0; padding-top: 1.2rem; border-top: 1px dashed rgba(200, 166, 89, .45); }
#rsvp .kc-ticket-qr-frame { display: inline-block; padding: .65rem; background: var(--sy-paper); border-radius: 6px; box-shadow: 0 0 0 1px rgba(200, 166, 89, .95), 0 0 0 4px rgba(27, 35, 56, .6), 0 0 0 5px rgba(232, 212, 154, .5), 0 0 26px -4px rgba(246, 215, 118, .5); }
#rsvp .kc-ticket-qr-img svg { display: block; width: min(11rem, 52vw); height: auto; }
#rsvp .kc-ticket-qr-hint { margin: .85rem 0 0; }
#rsvp :is(.kc-ticket-qr-hint, .kc-ticket-id, .kc-ticket-brand) { text-shadow: 0 1px 2px rgba(10, 14, 24, .9), 0 0 10px rgba(10, 14, 24, .8); }   /* legibles sobre el estanque */
#rsvp .kc-ticket-id { margin: .7rem 0 0; font-size: .8rem; letter-spacing: .22em; color: rgba(246, 241, 220, .7); }
#rsvp .kc-ticket-brand { margin: .8rem 0 0; font-family: var(--sy-font-caps); font-size: .66rem; letter-spacing: .26em; text-transform: uppercase; color: rgba(246, 241, 220, .6); }

/* ── Guardar pase / actualizar: la misma píldora crema, sin hojas ── */
#rsvp .kc-ticket-share { margin-top: 1rem; }
#rsvp .kc-rsvp-update { margin-top: .8rem; }
#rsvp .kc-rsvp-update::before { background: rgba(255, 254, 248, .55); box-shadow: none; }
#rsvp .kc-ticket-share-btn:disabled { opacity: .7; cursor: progress; }

/* ── "No podré" (queda en el pergamino) y cierre ── */
#rsvp :is(.kc-rsvp-farewell, .kc-rsvp-closed-note) { padding: .4rem 0 .6rem; text-align: center; color: var(--sy-ink); }
#rsvp .kc-rsvp-farewell-eyebrow { margin: 0; font-family: var(--sy-font-caps); font-size: .78rem; letter-spacing: .2em; text-transform: uppercase; color: var(--sy-moss); }
#rsvp .kc-rsvp-farewell-guest { margin: .25rem 0 .3rem; font: 400 1.7rem / 1.2 var(--sy-font-text); color: var(--sy-green); overflow-wrap: anywhere; }
#rsvp :is(.kc-rsvp-farewell-body, .kc-rsvp-closed-note p) { margin: .4rem 0 0; font-family: var(--sy-font-text); font-size: 1.02rem; line-height: 1.55; color: var(--sy-moss); }
#rsvp .kc-rsvp-farewell-brand { margin: .8rem 0 0; font-family: var(--sy-font-caps); font-size: .66rem; letter-spacing: .26em; text-transform: uppercase; color: var(--sy-moss); }
#rsvp .kc-rsvp-closed-note strong { display: block; font: 400 1.25rem / 1.3 var(--sy-font-text); color: var(--sy-green); }

@keyframes sy-rsvp-pass-in { from { opacity: 0; transform: translateY(12px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes sy-rsvp-firefly-pulse { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }
@keyframes sy-rsvp-star-twinkle { 0%, 100% { opacity: .75; transform: scale(.92) rotate(0); } 50% { opacity: 1; transform: scale(1.06) rotate(8deg); } }
@keyframes sy-rsvp-leaf-sprout { from { top: 10%; left: 50%; width: 0; opacity: 0; } to { top: var(--to-top); left: var(--to-left); width: var(--to-w); opacity: 1; overflow: visible; } }
@keyframes sy-rsvp-leaf-breeze { from { transform: rotate(-2.5deg); } to { transform: rotate(2.5deg); } }
@media (prefers-reduced-motion: reduce) {
  #rsvp .kc-rsvp-ticket-host .kc-ticket, #rsvp .kc-tp { animation: none; }
  #rsvp :is(.sy-rsvp-choice, .sy-rsvp-choice-bloom, .sy-rsvp-choice-check) { transition: none; }
}

/* Export PNG del pase: sin luciérnagas ni sombras que el rasterizador ensucie. Sin scope: va en <html>. */
.kc-rsvp-capture-clean #rsvp .kc-rsvp-ticket-host .kc-ticket { animation: none; box-shadow: none; border-radius: 0; }
.kc-rsvp-capture-clean #rsvp .kc-ticket-particles { display: none; }
.kc-rsvp-capture-clean #rsvp .kc-rsvp-ticket-host .kc-ticket::before { display: none; }
.kc-rsvp-capture-clean #rsvp .kc-ticket-qr-frame { box-shadow: none; border: 2px solid #C8A659; }   /* WebKit ensucia los anillos de box-shadow en el PNG */
/* sin estrella titilando ni listón animado con reduced-motion */
@media (prefers-reduced-motion: reduce) { #rsvp .sy-rsvp-band { transition: none; } }
