.fade-in-up {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.fade-in-up.animate {
    opacity: 1;
    transform: translateY(0);
}

.fade-in-left {
    opacity: 0;
    transform: translateX(-30px);
    transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.fade-in-left.animate {
    opacity: 1;
    transform: translateX(0);
}

.fade-in-right {
    opacity: 0;
    transform: translateX(30px);
    transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.fade-in-right.animate {
    opacity: 1;
    transform: translateX(0);
}

.scale-in {
    opacity: 0;
    transform: scale(0.8);
    transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.scale-in.animate {
    opacity: 1;
    transform: scale(1);
}

.bounce-in {
    opacity: 0;
    transform: scale(0.3);
    transition: all 0.8s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.bounce-in.animate {
    opacity: 1;
    transform: scale(1);
}

.slide-in-from-bottom {
    opacity: 0;
    transform: translateY(50px);
    transition: all 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}

.slide-in-from-bottom.animate {
    opacity: 1;
    transform: translateY(0);
}

/* Delays escalonados */
.stagger-delay-1 { transition-delay: 0.1s; }
.stagger-delay-2 { transition-delay: 0.2s; }
.stagger-delay-3 { transition-delay: 0.3s; }
.stagger-delay-4 { transition-delay: 0.4s; }
.stagger-delay-5 { transition-delay: 0.5s; }
.stagger-delay-6 { transition-delay: 0.6s; }

/* Animaciones adicionales */
.floating {
    animation: floating 3s ease-in-out infinite;
}

@keyframes floating {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

.pulse-glow {
    animation: pulseGlow 2s ease-in-out infinite alternate;
}

@keyframes pulseGlow {
    from {
        box-shadow: 0 0 20px rgba(102, 126, 234, 0.3);
    }
    to {
        box-shadow: 0 0 30px rgba(118, 75, 162, 0.5);
    }
}

/* Estilos originales del blog */
.card-shadow {
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

.hero-bg {
    position: relative;
    overflow: hidden;
}

.hero-bg::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image:
        radial-gradient(circle at 20% 50%, rgba(156, 163, 175, 0.1) 0%, transparent 50%),
        radial-gradient(circle at 80% 20%, rgba(156, 163, 175, 0.08) 0%, transparent 50%),
        radial-gradient(circle at 40% 80%, rgba(156, 163, 175, 0.06) 0%, transparent 50%);
    background-size: 800px 600px, 600px 400px, 700px 500px;
}

.hero-bg::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background:
        linear-gradient(135deg, transparent 0%, rgba(156, 163, 175, 0.03) 50%, transparent 100%),
        repeating-linear-gradient(90deg, transparent, transparent 2px, rgba(156, 163, 175, 0.02) 2px, rgba(156, 163, 175, 0.02) 4px);
}

.hero-bg::before,
.hero-bg::after {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
}

.category-pill { background: rgba(59, 130, 246, 0.1); }
.tech-pill     { background: rgba(99, 102, 241, 0.1); }
.lifestyle-pill{ background: rgba(34, 197, 94, 0.1); }
.travel-pill   { background: rgba(168, 85, 247, 0.1); }
.health-pill   { background: rgba(245, 158, 11, 0.1); }
.culture-pill  { background: rgba(236, 72, 153, 0.1); }

/* Blog article hover effects */
.blog-article {
    transition: all 0.3s ease;
}

.blog-article:hover {
    transform: translateY(-4px);
}

.blog-article:hover .article-image {
    transform: scale(1.05);
}

.article-image {
    transition: transform 0.3s ease;
}

/* Author card hover effects */
.author-card {
    transition: all 0.3s ease;
}

.author-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

.hero-content {
    position: relative;
    z-index: 10;
}

/* En móvil desactiva animaciones complejas */
@media (max-width: 768px) {
    .floating { animation: none !important; }
    .pulse-glow { animation: none !important; }
    .hero-bg::before,
    .hero-bg::after { display: none; }
}

/* === Píldoras / Explorar por categoría === */
#category-pills a{
  opacity: 0;
  transform: translateY(8px) scale(.98);
  transition:
    transform .26s cubic-bezier(.22,.7,.22,1),
    opacity   .26s ease,
    background-color .18s ease,
    color .18s ease,
    border-color .18s ease;
}

#category-pills a.animate{
  opacity: 1;
  transform: translateY(0) scale(1);
}

#category-pills .pill-delay-1 { transition-delay: .04s; }
#category-pills .pill-delay-2 { transition-delay: .08s; }
#category-pills .pill-delay-3 { transition-delay: .12s; }
#category-pills .pill-delay-4 { transition-delay: .16s; }
#category-pills .pill-delay-5 { transition-delay: .20s; }
#category-pills .pill-delay-6 { transition-delay: .24s; }
#category-pills .pill-delay-7 { transition-delay: .28s; }
#category-pills .pill-delay-8 { transition-delay: .32s; }
#category-pills .pill-delay-9 { transition-delay: .36s; }
#category-pills .pill-delay-10{ transition-delay: .40s; }
#category-pills .pill-delay-11{ transition-delay: .44s; }
#category-pills .pill-delay-12{ transition-delay: .48s; }

#category-pills a:hover{
  transform: translateY(-2px) scale(1.02);
}

#category-pills .bounce-in{ animation:none !important; transform:none !important; }

@media (prefers-reduced-motion: reduce){
  #category-pills a{ transition:none !important; opacity:1; transform:none; }
}

/* ==========================================================
   FIX específico: cards laterales (two-up) en móvil
   ========================================================== */

/* Contenedor de texto de las dos cards */
.two-up-body{
    display:flex;
    flex-direction:column;
    height:100%;
}

/* Solo por semántica, no hace nada especial ahora mismo */
.two-up-excerpt{
    /* sin flex-grow: respeta el line-clamp en Safari/iOS */
}

/* En escritorio empujamos autor+fecha hacia abajo */
.two-up-meta{
    margin-top:auto;
}

/* En móvil desactivamos el truco y dejamos flujo normal */
@media (max-width: 768px){
    .two-up-meta{
        margin-top:0.75rem;
    }
}
