/**
 * Portada — anclas, ritmo visual y scroll cómodo bajo cabecera sticky.
 */
body.td-home-portada {
    background:
        radial-gradient(ellipse 120% 80% at 50% -20%, rgba(56, 189, 248, 0.12) 0%, transparent 55%),
        radial-gradient(ellipse 90% 50% at 100% 30%, rgba(16, 185, 129, 0.07) 0%, transparent 45%),
        var(--td-page-bg, #d8e2ee);
}

html[data-theme="dark"] body.td-home-portada {
    background:
        radial-gradient(ellipse 100% 60% at 50% -10%, rgba(14, 165, 233, 0.12) 0%, transparent 50%),
        var(--td-page-bg, #090f1a);
}

.td-home-anchor {
    scroll-margin-top: calc(var(--td-home-sticky-top, 112px) + 56px);
    width: 100%;
    min-width: 0;
}

.td-home-anchor:focus {
    outline: none;
}

.td-home-anchor > * {
    animation: td-home-section-in 0.45s ease both;
}

@keyframes td-home-section-in {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .td-home-anchor > * {
        animation: none;
    }
}

.td-app-main.td-app-main--home-grid {
    gap: var(--td-home-card-gap, 15px);
}

/* Hub + pulse + nav de secciones: bloque de entrada unificado */
.td-home-intro {
    display: flex;
    flex-direction: column;
    gap: 10px;
    grid-column: 1 / -1;
}

@media (min-width: 900px) {
    .td-home-intro {
        gap: 12px;
    }

    .td-home-intro .td-home-hub__grid {
        gap: 12px;
    }
}
