/* Bebela Code — movimentos de curso. Finito, sem dependências e sem alterar layout. */
.bcm-entry-step,
.bcm-entry-card,
.bcm-entry-badge,
.bcm-entry-star {
  animation-fill-mode: both;
  animation-timing-function: cubic-bezier(.2, .86, .28, 1);
}

.bcm-entry-step,
.lesson__body > .step.bcm-entry-step {
  animation: bcm-step-in .42s both cubic-bezier(.2, .86, .28, 1);
}

.bcm-entry-card {
  animation: bcm-card-in .42s var(--bcm-delay, 0ms) both cubic-bezier(.2, .86, .28, 1);
}

.bcm-entry-badge {
  animation: bcm-badge-in .42s var(--bcm-delay, 0ms) both cubic-bezier(.2, 1.35, .35, 1);
}

.bcm-entry-star {
  transform-origin: 50% 70%;
  animation: bcm-star-in .46s var(--bcm-delay, 0ms) both cubic-bezier(.2, 1.45, .35, 1);
}

.bcm-feedback-in {
  animation: bcm-feedback-in .3s both cubic-bezier(.2, .9, .3, 1);
}

.bcm-press {
  transform: translateY(2px) scale(.985) !important;
  transition: transform .08s ease !important;
}

@keyframes bcm-step-in {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes bcm-card-in {
  from { opacity: 0; transform: translateY(10px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes bcm-badge-in {
  from { opacity: 0; transform: translateY(7px) scale(.92); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes bcm-star-in {
  from { opacity: 0; transform: scale(.45) rotate(-12deg); }
  72% { opacity: 1; transform: scale(1.12) rotate(3deg); }
  to { opacity: 1; transform: scale(1) rotate(0); }
}

@keyframes bcm-feedback-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .bcm-entry-step,
  .bcm-entry-card,
  .bcm-entry-badge,
  .bcm-entry-star,
  .bcm-feedback-in {
    animation: none !important;
  }

  .bcm-press { transform: none !important; transition: none !important; }
}
