/* Motion CSS — generated by designlang (motionlang)
 * Source: https://airbnb.com
 * 2026-06-12T12:48:51.822Z
 *
 *   <link rel="stylesheet" href="./airbnb.com-motion.css">
 *   <div class="mo-slide-up">…</div>
 */

:root {
  --duration-xs: 100ms;
  --duration-sm: 175ms;
  --duration-md: 300ms;
  --duration-xxl: 451754s;
  --ease-custom-1: cubic-bezier(0.2, 0, 0, 1); /* 54× on page */
  --ease-ease-in-out: cubic-bezier(0, 0, 1, 1); /* 2× on page */
  --ease-linear: linear; /* 2× on page */
}

@keyframes fade-in   { from { opacity: 0; }                              to { opacity: 1; } }
@keyframes slide-up  { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes scale-in  { from { opacity: 0; transform: scale(0.96); }      to { opacity: 1; transform: none; } }
@keyframes pop       { 0% { transform: scale(0.9); } 60% { transform: scale(1.03); } 100% { transform: scale(1); } }

@keyframes opacity-fade-in-1ntc5ot {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

.mo-animate,
[class^="mo-"], [class*=" mo-"] {
  animation-duration: var(--duration-md, 300ms);
  animation-timing-function: var(--ease-custom-1);
  animation-fill-mode: both;
}

.mo-fade-in { animation-name: fade-in; }
.mo-slide-up { animation-name: slide-up; }
.mo-scale-in { animation-name: scale-in; }
.mo-pop { animation-name: pop; animation-timing-function: var(--ease-custom-1); }

@media (prefers-reduced-motion: reduce) {
  *, ::before, ::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
