@keyframes viewIn {
  from {
    opacity:0;
    transform:translate3d(0,12px,0)
  }
  to {
    opacity:1;
    transform:translate3d(0,0,0)
  }
}
@keyframes fadeIn {
  from {
    opacity:0
  }
  to {
    opacity:1
  }
}
@keyframes sheetIn {
  from {
    opacity:0;
    transform:translate3d(0,36px,0)
  }
  to {
    opacity:1;
    transform:translate3d(0,0,0)
  }
}
@keyframes sheetOut {
  from {
    opacity:1;
    transform:translate3d(0,0,0)
  }
  to {
    opacity:0;
    transform:translate3d(0,22px,0)
  }
}
@keyframes dialogIn {
  from {
    opacity:0;
    transform:translate3d(0,16px,0) scale(.96)
  }
  to {
    opacity:1;
    transform:translate3d(0,0,0) scale(1)
  }
}
@keyframes dialogOut {
  from {
    opacity:1;
    transform:translate3d(0,0,0) scale(1)
  }
  to {
    opacity:0;
    transform:translate3d(0,10px,0) scale(.98)
  }
}
@keyframes fadeOut {
  from { opacity:1 }
  to { opacity:0 }
}
@keyframes drift {
  from { transform:translate3d(-2%, -1%, 0) scale(1) }
  to { transform:translate3d(2%, 1.5%, 0) scale(1.06) }
}
@keyframes orbitSpin {
  from { transform:rotate(-18deg) }
  to { transform:rotate(342deg) }
}
@keyframes barPulse {
  0%,100% { transform:scaleY(.35) }
  50% { transform:scaleY(1) }
}
@keyframes loaderSpin {
  to { transform:rotate(360deg) }
}
@keyframes softGlow {
  0%,100% { box-shadow:0 12px 30px rgba(163,119,246,.18) }
  50% { box-shadow:0 16px 36px rgba(163,119,246,.34) }
}
@keyframes feltBreath {
  0%,100% { box-shadow:inset 0 0 0 1px rgba(255,255,255,.08), 0 16px 40px rgba(0,0,0,.25) }
  50% { box-shadow:inset 0 0 0 1px rgba(255,255,255,.16), 0 18px 48px rgba(48,180,140,.28) }
}
@keyframes ripple {
  to {
    transform:scale(4);
    opacity:0
  }
}
@keyframes letterFloat {
  0%,100% {
    transform:rotateY(-11deg) rotateZ(-4deg) translateY(0)
  }
  50% {
    transform:rotateY(7deg) rotateZ(-2deg) translateY(-5px)
  }
}
@keyframes flipIn {
  0% {
    opacity:0;
    transform:rotateY(88deg) scale(.9)
  }
  65% {
    transform:rotateY(-12deg) scale(1.03)
  }
  100% {
    opacity:1;
    transform:rotateY(0) scale(1)
  }
}
@keyframes timerPulse {
  to {
    transform:scale(1.08)
  }
}
@keyframes answerPop {
  50% {
    transform:scale(1.025)
  }
}
@keyframes shake {
  25% {
    transform:translateX(-4px)
  }
  50% {
    transform:translateX(4px)
  }
  75% {
    transform:translateX(-2px)
  }
}
@keyframes revealIn {
  from {
    opacity:0;
    transform:translateY(7px)
  }
  to {
    opacity:1;
    transform:translateY(0)
  }
}
@keyframes skeleton {
  to {
    background-position:-200% 0
  }
}
@keyframes goldPulse {
  0%,100% {
    transform:scale(1)
  }
  50% {
    transform:scale(1.025)
  }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important
  }
}
