/* Animaciones ligeras que respetan la preferencia de movimiento del dispositivo. */
@media (prefers-reduced-motion: no-preference) {
  .screen:not([hidden]) { animation: invitation-enter 1.2s ease-out both; }
  .bottom-menu { animation: menu-enter .8s .25s both; }
  .bottom-menu img { transition: transform .35s cubic-bezier(.2,.8,.2,1); }
  .bottom-menu a:hover img,
  .bottom-menu a:focus-visible img { transform: translateY(-5px) rotate(-7deg) scale(1.1); }
  .bottom-menu a:active img { transform: scale(.9); }
  dialog[open] { animation: dialog-enter .35s cubic-bezier(.2,.8,.2,1) both; }
  dialog[open]::backdrop { animation: backdrop-enter .3s ease-out both; }
  dialog[open] #event-icon { animation: icon-enter .6s .08s both; }
  .confirm, .map-link { transition: transform .2s, box-shadow .2s; }
  .confirm:hover, .map-link:hover { transform: translateY(-2px); box-shadow: 0 8px 20px #4e1b2625; }
  .confirm:active, .map-link:active { transform: scale(.97); }
  .choice { transition: background .25s, border-color .25s, transform .25s; }
  .choice:has(input:checked) { transform: translateX(3px); }
  .reveal-pending { opacity: 0; transform: translateY(22px); }
  .reveal-visible { animation: section-enter .75s ease-out both; }
}
.petal-layer, .celebration-layer { position: fixed; inset: 0; pointer-events: none; overflow: hidden; z-index: 6; }
.petal { position: absolute; top: -30px; width: 11px; height: 18px; border-radius: 85% 10% 80% 20%; background: #efd751; opacity: 0; animation: petal-fall var(--duration) var(--delay) linear both; }
.petal:nth-child(3n) { background: #2e6b50; }
.petal:nth-child(3n + 1) { background: #c8427d; }
.confetti { position: absolute; width: 7px; height: 12px; border-radius: 2px; background: var(--color); }
@keyframes invitation-enter { from { opacity: 0; } to { opacity: 1; } }
@keyframes menu-enter { from { opacity: 0; translate: 0 35px; } to { opacity: 1; translate: 0 0; } }
@keyframes dialog-enter { from { opacity: 0; transform: translateY(24px) scale(.95); } to { opacity: 1; transform: none; } }
@keyframes backdrop-enter { from { opacity: 0; } to { opacity: 1; } }
@keyframes icon-enter { from { opacity: 0; transform: scale(.65) rotate(-14deg); } to { opacity: 1; transform: none; } }
@keyframes section-enter { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes petal-fall {
  0% { opacity: 0; transform: translate3d(0,-20px,0) rotate(0); }
  12% { opacity: .55; }
  80% { opacity: .4; }
  100% { opacity: 0; transform: translate3d(65px,105vh,0) rotate(260deg); }
}
@media (prefers-reduced-motion: reduce) {
  .petal-layer, .celebration-layer { display: none; }
  .reveal-pending { opacity: 1; transform: none; }
  *, *::before, *::after { animation: none !important; }
}
