/* Entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . */

.slide-in-bck-top {
	-webkit-animation: slide-in-bck-top 0.6s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
	        animation: slide-in-bck-top 0.6s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
}


@-webkit-keyframes slide-in-bck-top {
  0% {
    -webkit-transform: translateZ(700px) translateY(-300px);
            transform: translateZ(700px) translateY(-300px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateZ(0) translateY(0);
            transform: translateZ(0) translateY(0);
    opacity: 1;
  }
}
@keyframes slide-in-bck-top {
  0% {
    -webkit-transform: translateZ(700px) translateY(-300px);
            transform: translateZ(700px) translateY(-300px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateZ(0) translateY(0);
            transform: translateZ(0) translateY(0);
    opacity: 1;
  }
}

.slide-in-bck-bottom {
	-webkit-animation: slide-in-bck-bottom 0.6s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
	        animation: slide-in-bck-bottom 0.6s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
}


@-webkit-keyframes slide-in-bck-bottom {
  0% {
    -webkit-transform: translateZ(-300px) translateY(700px);
            transform: translateZ(-300px) translateY(700px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateZ(0) translateY(0);
            transform: translateZ(0) translateY(0);
    opacity: 1;
  }
}
@keyframes slide-in-bck-bottom {
  0% {
    -webkit-transform: translateZ(-300px) translateY(700px);
            transform: translateZ(-300px) translateY(700px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateZ(0) translateY(0);
            transform: translateZ(0) translateY(0);
    opacity: 1;
  }
}

/* ===== ANIMAÇÕES DE ENTRADA ===== */
/* Fade */
@keyframes animacao-fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Slide */
@keyframes animacao-slideInUp {
  from { opacity: 0; transform: translateY(50px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes animacao-slideInLeft {
  from { opacity: 0; transform: translateX(-50px); }
  to { opacity: 1; transform: translateX(0); }
}

/* Zoom */
@keyframes animacao-zoomIn {
  from { opacity: 0; transform: scale(0.5); }
  to { opacity: 1; transform: scale(1); }
}

/* Rotação */
@keyframes animacao-rotateIn {
  from { opacity: 0; transform: rotate(-15deg); }
  to { opacity: 1; transform: rotate(0); }
}

/* Flip */
@keyframes animacao-flipInX {
  from { transform: perspective(400px) rotateX(90deg); opacity: 0; }
  to { transform: perspective(400px) rotateX(0); opacity: 1; }
}

/* ===== ANIMAÇÕES DE SAÍDA ===== */
@keyframes animacao-fadeOut {
  from { opacity: 1; }
  to { opacity: 0; }
}

@keyframes animacao-slideOutDown {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(50px); }
}

@keyframes animacao-zoomOut {
  from { opacity: 1; transform: scale(1); }
  to { opacity: 0; transform: scale(0.5); }
}

@keyframes animacao-rotateOut {
  from { opacity: 1; transform: rotate(0); }
  to { opacity: 0; transform: rotate(15deg); }
}

/* ===== EFEITOS ESPECIAIS ===== */
/* Pulsar */
@keyframes animacao-pulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(1); }
}

/* Balanço */
@keyframes animacao-swing {
  20% { transform: rotate(5deg); }
  40% { transform: rotate(-5deg); }
  60% { transform: rotate(2deg); }
  80% { transform: rotate(-2deg); }
  100% { transform: rotate(0); }
}

/* PROPRIEDADES COMUNS */
.elemento-animado {
  opacity: 0;
  animation-duration: 0.6s;
  animation-fill-mode: forwards;
  animation-timing-function: ease-out;
}

.animar-infinito {
  animation-iteration-count: infinite !important;
}

.animar-rapido {
  animation-duration: 0.3s !important;
}

.animar-lento {
  animation-duration: 1s !important;
}
/* Cards . . . . . . . . . . . . . . . . . . . . . . . . . . . */


