@keyframes rsAboutOrbit {
  from {
    transform:
      translateY(-50%) rotate(0deg);
  }

  to {
    transform:
      translateY(-50%) rotate(360deg);
  }
}

@keyframes rsAboutOrbitReverse {
  from {
    transform:
      translateY(-50%) rotate(360deg);
  }

  to {
    transform:
      translateY(-50%) rotate(0deg);
  }
}

@keyframes rsCursorBlink {

  0%,
  49% {
    opacity: 1
  }

  50%,
  100% {
    opacity: 0
  }
}

@keyframes rsHeroPersonIn {
  from {
    opacity: 0;
    transform: translateX(-16px) scale(1.015);
    filter: blur(8px) drop-shadow(0 0 18px rgba(255, 44, 44, .20));
  }

  to {
    opacity: 1;
    transform: translateX(0) scale(1);
    filter: blur(0) drop-shadow(0 0 0 rgba(255, 44, 44, 0));
  }
}

@keyframes rsHeroOutlineOut {
  0% {
    opacity: 1;
    filter:
      drop-shadow(0 0 0 rgba(242, 31, 38, 0));
  }

  22% {
    opacity: 1;
    filter:
      drop-shadow(0 0 1px rgba(242, 31, 38, .9)) drop-shadow(0 0 6px rgba(242, 31, 38, .55));
  }

  38% {
    opacity: 1;
    filter:
      drop-shadow(1px 0 1px rgba(242, 31, 38, 1)) drop-shadow(-1px 0 1px rgba(242, 31, 38, 1)) drop-shadow(0 1px 1px rgba(242, 31, 38, 1)) drop-shadow(0 -1px 1px rgba(242, 31, 38, 1)) drop-shadow(0 0 10px rgba(242, 31, 38, .75)) drop-shadow(0 0 22px rgba(242, 31, 38, .35));
  }

  52% {
    opacity: .45;
    filter:
      drop-shadow(1px 0 2px rgba(242, 31, 38, 1)) drop-shadow(-1px 0 2px rgba(242, 31, 38, 1)) drop-shadow(0 1px 2px rgba(242, 31, 38, 1)) drop-shadow(0 -1px 2px rgba(242, 31, 38, 1)) drop-shadow(0 0 15px rgba(242, 31, 38, .8)) blur(.8px) brightness(1.08);
  }

  62%,
  100% {
    opacity: 0;
    filter:
      drop-shadow(0 0 18px rgba(242, 31, 38, .25)) blur(2px);
  }
}

@keyframes rsHeroOutlineIn {

  0%,
  42% {
    opacity: 0;
    filter:
      drop-shadow(0 0 14px rgba(242, 31, 38, .5)) blur(2px);
  }

  52% {
    opacity: .4;
    filter:
      drop-shadow(1px 0 2px rgba(242, 31, 38, 1)) drop-shadow(-1px 0 2px rgba(242, 31, 38, 1)) drop-shadow(0 1px 2px rgba(242, 31, 38, 1)) drop-shadow(0 -1px 2px rgba(242, 31, 38, 1)) drop-shadow(0 0 16px rgba(242, 31, 38, .8)) blur(.8px) brightness(1.08);
  }

  68% {
    opacity: 1;
    filter:
      drop-shadow(1px 0 1px rgba(242, 31, 38, .8)) drop-shadow(-1px 0 1px rgba(242, 31, 38, .8)) drop-shadow(0 1px 1px rgba(242, 31, 38, .8)) drop-shadow(0 -1px 1px rgba(242, 31, 38, .8)) drop-shadow(0 0 9px rgba(242, 31, 38, .5));
  }

  82% {
    opacity: 1;
    filter:
      drop-shadow(0 0 5px rgba(242, 31, 38, .25));
  }

  100% {
    opacity: 1;
    filter:
      drop-shadow(0 0 0 rgba(242, 31, 38, 0));
  }
}

@keyframes rsHeroPhotoLeave {
  0% {
    opacity: 1;
    transform:
      translate3d(0, 0, 0) scale(1) rotate(0deg);
  }

  100% {
    opacity: 0;
    transform:
      translate3d(34px, -2px, 0) scale(.97) rotate(1.3deg);
  }
}

@keyframes rsHeroPhotoEnter {
  0% {
    opacity: 0;
    transform:
      translate3d(-30px, 2px, 0) scale(1.025) rotate(-1.3deg);
  }

  55% {
    opacity: .82;
  }

  100% {
    opacity: 1;
    transform:
      translate3d(0, 0, 0) scale(1) rotate(0deg);
  }
}

@keyframes virtuaHeartPulse {

  0%,
  100% {
    transform: rotate(-45deg) scale(1);
  }

  14% {
    transform: rotate(-45deg) scale(1.25);
  }

  28% {
    transform: rotate(-45deg) scale(1);
  }

  42% {
    transform: rotate(-45deg) scale(1.16);
  }

  56% {
    transform: rotate(-45deg) scale(1);
  }
}

@keyframes rsWhatsappNotification {
  0% {
    opacity: .8;
    transform:
      translate(-50%, -50%) scale(1);
  }

  70% {
    opacity: 0;
    transform:
      translate(-50%, -50%) scale(1.8);
  }

  100% {
    opacity: 0;
    transform:
      translate(-50%, -50%) scale(1.8);
  }
}

@keyframes rsWhatsappFloat {

  0%,
  100% {
    translate: 0 0;
  }

  50% {
    translate: 0 -5px;
  }
}

@keyframes rsCourseImageReveal {
  0% {
    opacity: 0;
    transform:
      translate3d(-38px, 28px, 0) scale(.965);
  }

  45% {
    opacity: 1;
  }

  100% {
    opacity: 1;
    transform:
      translate3d(0, 0, 0) scale(1);
  }
}

@keyframes rsCourseContentReveal {
  0% {
    opacity: 0;

    transform:
      translate3d(28px, 16px, 0);
  }

  100% {
    opacity: 1;

    transform:
      translate3d(0, 0, 0);
  }
}

@keyframes rsCourseNumberReveal {
  0% {
    opacity: 0;

    transform:
      translate3d(20px, -12px, 0);
  }

  100% {
    opacity: 1;

    transform:
      translate3d(0, 0, 0);
  }
}

@keyframes rsCourseGlowReveal {
  0% {
    opacity: 0;

    transform:
      translate3d(60px, -30px, 0) scale(.75);
  }

  100% {
    opacity: .45;

    transform:
      translate3d(0, 0, 0) scale(1);
  }
}

@keyframes rsCourseGlowFloat {

  0%,
  100% {
    opacity: .42;

    transform:
      translate3d(0, 0, 0) scale(1);
  }

  50% {
    opacity: .62;

    transform:
      translate3d(-20px, 18px, 0) scale(1.06);
  }
}

@keyframes rsCourseImageFloat {

  0%,
  100% {
    transform:
      translate3d(0, 0, 0) scale(1);
  }

  50% {
    transform:
      translate3d(0, -6px, 0) scale(1);
  }
}

@keyframes rsErrorDotFloat {

  0%,
  100% {
    transform:
      translate3d(0, 0, 0) scale(1);
  }

  50% {
    transform:
      translate3d(0, -18px, 0) scale(1.15);
  }
}

@keyframes vbTitleReveal {
  from {
    clip-path: inset(0 0 100% 0);
    transform: translateY(30%)
  }

  to {
    clip-path: inset(0);
    transform: none
  }
}

@keyframes vbPortraitEnter {
  from {
    opacity: .1;
    transform: translateY(2rem) scale(1.02)
  }

  to {
    opacity: 1;
    transform: none
  }
}

@keyframes vbRise {
  from {
    opacity: 0;
    transform: translateY(18px)
  }

  to {
    opacity: 1;
    transform: none
  }
}

@keyframes vbLineReveal {
  from {
    transform: scaleX(0)
  }

  to {
    transform: scaleX(1)
  }
}

@keyframes vbFadeIn {
  from {
    opacity: 0
  }

  to {
    opacity: 1
  }
}

@keyframes vbMantraCycle {

  0%,
  7% {
    opacity: 0;
    transform: translateY(55%)
  }

  12%,
  27% {
    opacity: 1;
    transform: none
  }

  33%,
  100% {
    opacity: 0;
    transform: translateY(-55%)
  }
}

@keyframes vb-marquee {
  to {
    transform: translateX(-50%);
  }
}

@keyframes vb-page-banner-rise {
  from {
    opacity: 0;
    transform: translateY(1rem);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes vbEmberFloat {
  0% {
    opacity: 0;
    transform: translate3d(0, 0, 0) scale(.55);
  }

  12% {
    opacity: .95;
  }

  65% {
    opacity: .65;
  }

  100% {
    opacity: 0;
    transform: translate3d(.9rem, -9rem, 0) scale(1.45);
  }
}

@keyframes vbCemDetailFloat {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-.45rem);
  }
}

@keyframes vbSiteIntroRonaldo {
  0% {
    opacity: 0;
    transform: translate3d(-130vw, 0, 0);
  }

  9% {
    opacity: 1;
  }

  46% {
    transform: translate3d(-54%, 0, 0);
  }

  58% {
    transform: translate3d(-46%, 0, 0);
  }

  100% {
    opacity: 1;
    transform: translate3d(130vw, 0, 0);
  }
}

@keyframes vbSiteIntroSouza {
  0% {
    opacity: 0;
    transform: translate3d(130vw, 0, 0);
  }

  9% {
    opacity: 1;
  }

  46% {
    transform: translate3d(-46%, 0, 0);
  }

  58% {
    transform: translate3d(-54%, 0, 0);
  }

  100% {
    opacity: 1;
    transform: translate3d(-130vw, 0, 0);
  }
}

@media (max-width:800px) {
  @keyframes rsCourseContentReveal {
    0% {
      opacity: 0;

      transform:
        translate3d(0, 20px, 0);
    }

    100% {
      opacity: 1;

      transform:
        translate3d(0, 0, 0);
    }
  }
}
