.fade-in-up {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.fade-in-up.visible {
  opacity: 1;
  transform: translateY(0);
}
/*------------------------FALLING-WORD--------------*/

.falling-word {
    display: inline-block;
    animation: fall-and-clear 0.8s ease-out forwards;
    }

    @keyframes fall-and-clear {
    0% {
        transform: translateY(-20px);
        filter: blur(6px);
        opacity: 0;
    }
    100% {
        transform: translateY(0);
        filter: blur(0);
        opacity: 1;
    }
    }

/*------------------------https://www.reactbits.dev/text-animations/blur-text--------------*/








/*------------------------https://www.reactbits.dev/text-animations/shiny-text-------------*/
.shiny-text {
  position: relative;
  display: inline-block;
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  background-image: linear-gradient(
    90deg,
    #FFD700 0%,          /* Amarillo dorado brillante */
    #ffbb00 20%,         /* Naranja clásico */
    #FFA500 40%,         /* Naranja intenso */
    #ffa600 60%,        /* Naranja-rojo vibrante */
    #ffbb00 80%,        /* Regresa a naranja intenso */
    #FFD700 100%  
  );
  background-size: 200% 100%;
  animation: shiny 3s infinite linear;
}

@keyframes shiny {
  0% {
      background-position: 100% 0;  /* Empieza desde la derecha */
  }
  100% {
      background-position: -100% 0;  /* Termina en la izquierda (pero suave) */
  }
}


/* === ESTILOS BASE DEL BOTÓN (opcional) === */
.btn-shiny {
  display: inline-block;
  padding: 12px 30px;
  max-width: 240px;
  margin-top: 15px;
  font-size: 19px;
  font-weight: bold;
  text-align: center;
  text-decoration: none;
  border-radius: 7px; /* Bordes redondeados */
  background: #ffbb00; /* Color de fondo sólido (por si la animación no carga) */
  color: white !important; /* Texto blanco (el !important evita conflictos) */
  box-shadow: 0 4px 15px rgba(255, 174, 0, 0.4); /* Sombra naranja */
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden; /* Oculta el desbordamiento del gradiente */
}

/* === EFECTO SHINY (gradiente animado) === */
.btn-shiny::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: linear-gradient(
      90deg,
      #FFD700 0%,          /* Amarillo dorado brillante */
      #ffbb00 20%,         /* Naranja clásico */
      #FFA500 40%,         /* Naranja intenso */
      #ffa600 60%,        /* Naranja-rojo vibrante */
      #ffbb00 80%,        /* Regresa a naranja intenso */
      #FFD700 100%  
  );
  background-size: 200% 100%;
  animation: shiny 3s infinite linear;
  z-index: -1; /* Lo coloca detrás del texto */
}

/* Animación */
@keyframes shiny {
  0% {
      background-position: 100% 0;
  }
  100% {
      background-position: -100% 0;
  }
}

/* Efecto hover (opcional) */
.btn-shiny:hover {
  transform: translateY(-3px);
  box-shadow: 0 7px 20px rgba(255, 107, 0, 0.6);
}
  /* BLANCO
  .shiny-text {
    position: relative;
    display: inline-block;
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
    background-image: linear-gradient(
      90deg,
      #ffbb00 0%,
      #ffbb00 20%,
      #ffbb00  20%,
      #f8b600 40%,
      #f5b400 40%,
      #eeae00 60%,
      #e6a800  60%,
      #eeae00  80%,
      #f7b500 80%,
      #ffe08a 100%
    );
    background-size: 200% 100%;
    animation: shiny 6s infinite linear;
  }
  
  @keyframes shiny {
    0% {
      background-position: 200% 0;
    }
    100% {
      background-position: -100% 0;
    }
  }
  */
  /*TEXTO MOVIMIENTO*/
/* === BASE DEL EFECTO === */
.texto-movimiento {
  perspective: 300px; /* Profundidad 3D muy ligera */
}

.texto-movimiento .char {
  display: inline-block;
  transform-origin: 50% 50%;
  animation: movimiento-letra 0.8s ease-in-out infinite alternate;
}

@keyframes movimiento-letra {
  0% { transform: translateZ(0); }
  100% { transform: translateZ(8px); }
}







/*----------------------RESPONSIVE-----------------------------*/


@media (max-width: 480px) {
      /* Animación de aparición desde abajo */
    @keyframes slideUp {
      from {
          opacity: 0;
          transform: translateY(90px);
      }
      to {
          opacity: 1;
          transform: translateY(0);
      }
    }

    .columna-derecha img {
      width: 200px;
      height: 200px;
      animation: slideUp 0.8s ease-out forwards;
      opacity: 0;
      filter: drop-shadow(0 5px 10px rgba(218, 198, 21, 0.2));
      transition: transform 0.3s ease, filter 0.3s ease;
    }


    .columna-derecha img:hover {
      transform: translateY(-5px);
      filter: drop-shadow(0 8px 15px rgba(243, 197, 44, 0.3));
    }
}