/* ==================== DEPLOYMENT EC2 ==================== */

/* Contenedor principal */
.heading-title-post-deployment-ec2 {
    position: relative;
    overflow: hidden;
    min-height: 75vh;
    --hero-bg: url("/static/img/aws_ec2.webp");
    background-image: none;
}

/* Overlay negro opaco tras animación */
.heading-title-post-deployment-ec2::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--degraded-bg-color);
    z-index: 1;
}

/* Imagen animada inicial */
.heading-title-post-deployment-ec2::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: var(--hero-bg);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    opacity: 0;
    pointer-events: none;
    z-index: 0;
    animation: heroBgReveal 0.5s ease-out forwards;
}

/* Contenido siempre encima */
.heading-title-post-deployment-ec2>* {
    position: relative;
    z-index: 2;
}

/* Texto de entra después del fondo */
.heading-title-post-deployment-ec2 .generic-title-page {
    opacity: 0;
    transform: translateY(10px);
    animation: heroTextIn 0.75s ease-out forwards;
    animation-delay: 0.5s;
    margin: 0 1.5rem;
}

/* Keyframes */
/* @keyframes heroBgReveal {
    0% {
        opacity: 0;
        filter: brightness(0.25) saturate(0.85);
        transform: scale(1.05);
    }

    100% {
        opacity: 1;
        filter: brightness(1) saturate(1);
        transform: scale(1);
    }
}

@keyframes heroTextIn {
    to {
        opacity: 1;
        transform: translateY(0);
    }
} */


/* ==================== DJANGO VS FLASK ==================== */

/* Contenedor principal */
.heading-title-post-django-vs-flask {
    position: relative;
    overflow: hidden;
    min-height: 75vh;
    --hero-bg: url("/static/img/django_vs_flask.webp");
    background-image: none;
}

/* Overlay negro opaco tras animación */
.heading-title-post-django-vs-flask::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--degraded-bg-color);
    z-index: 1;
}

/* Imagen animada inicial */
.heading-title-post-django-vs-flask::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: var(--hero-bg);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    opacity: 0;
    pointer-events: none;
    z-index: 0;
    animation: heroBgReveal 0.5s ease-out forwards;
}

/* Contenido siempre encima */
.heading-title-post-django-vs-flask>* {
    position: relative;
    z-index: 2;
}

/* Texto de entra después del fondo */
.heading-title-post-django-vs-flask .generic-title-page {
    opacity: 0;
    transform: translateY(10px);
    animation: heroTextIn 0.75s ease-out forwards;
    animation-delay: 0.5s;
    margin: 0 1.5rem;
}

/* Keyframes */
/* @keyframes heroBgReveal {
    0% {
        opacity: 0;
        filter: brightness(0.25) saturate(0.85);
        transform: scale(1.05);
    }

    100% {
        opacity: 1;
        filter: brightness(1) saturate(1);
        transform: scale(1);
    }
}

@keyframes heroTextIn {
    to {
        opacity: 1;
        transform: translateY(0);
    }
} */


/* ==================== DJANGO VS FLASK ==================== */

/* Contenedor principal */
.heading-title-post-prophet-forecast {
    position: relative;
    overflow: hidden;
    min-height: 75vh;
    --hero-bg: url("/static/img/prophet_forecasting.webp");
    background-image: none;
}

/* Overlay negro opaco tras animación */
.heading-title-post-prophet-forecast::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--degraded-bg-color);
    z-index: 1;
}

/* Imagen animada inicial */
.heading-title-post-prophet-forecast::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: var(--hero-bg);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    opacity: 0;
    pointer-events: none;
    z-index: 0;
    animation: heroBgReveal 0.5s ease-out forwards;
}

/* Contenido siempre encima */
.heading-title-post-prophet-forecast>* {
    position: relative;
    z-index: 2;
}

/* Texto de entra después del fondo */
.heading-title-post-prophet-forecast .generic-title-page {
    opacity: 0;
    transform: translateY(10px);
    animation: heroTextIn 0.75s ease-out forwards;
    animation-delay: 0.5s;
    margin: 0 1.5rem;
}

/* Keyframes */
/* @keyframes heroBgReveal {
    0% {
        opacity: 0;
        filter: brightness(0.25) saturate(0.85);
        transform: scale(1.05);
    }

    100% {
        opacity: 1;
        filter: brightness(1) saturate(1);
        transform: scale(1);
    }
}

@keyframes heroTextIn {
    to {
        opacity: 1;
        transform: translateY(0);
    }
} */


/* ==================== GOOGLE SHEETS API ==================== */

/* Contenedor principal */
.heading-title-post-google-sheets-api {
    position: relative;
    overflow: hidden;
    min-height: 75vh;
    --hero-bg: url("/static/img/google_sheets_api.webp");
    background-image: none;
}

/* Overlay negro opaco tras animación */
.heading-title-post-google-sheets-api::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--degraded-bg-color);
    z-index: 1;
}

/* Imagen animada inicial */
.heading-title-post-google-sheets-api::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: var(--hero-bg);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    opacity: 0;
    pointer-events: none;
    z-index: 0;
    animation: heroBgReveal 0.5s ease-out forwards;
}

/* Contenido siempre encima */
.heading-title-post-google-sheets-api>* {
    position: relative;
    z-index: 2;
}

/* Texto de entra después del fondo */
.heading-title-post-google-sheets-api .generic-title-page {
    opacity: 0;
    transform: translateY(10px);
    animation: heroTextIn 0.75s ease-out forwards;
    animation-delay: 0.5s;
    margin: 0 1.5rem;
}


/* ==================== SOCIO ESTRATÉGICO ==================== */

/* Contenedor principal */
.heading-title-post-strategic-data-partner {
    position: relative;
    overflow: hidden;
    min-height: 75vh;
    --hero-bg: url("/static/img/claudio_strategic_data_partner.webp");
    background-image: none;
}

/* Overlay negro opaco tras animación */
.heading-title-post-strategic-data-partner::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--degraded-bg-color);
    z-index: 1;
}

/* Imagen animada inicial */
.heading-title-post-strategic-data-partner::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: var(--hero-bg);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    opacity: 0;
    pointer-events: none;
    z-index: 0;
    animation: heroBgReveal 0.5s ease-out forwards;
}

/* Contenido siempre encima */
.heading-title-post-strategic-data-partner>* {
    position: relative;
    z-index: 2;
}

/* Texto de entra después del fondo */
.heading-title-post-strategic-data-partner .generic-title-page {
    opacity: 0;
    transform: translateY(10px);
    animation: heroTextIn 0.75s ease-out forwards;
    animation-delay: 0.5s;
    margin: 0 1.5rem;
}


/* ==================== INTEGRACIÓN NUMÉRICA ==================== */

/* Contenedor principal */
.heading-title-post-numerical_integration {
    position: relative;
    overflow: hidden;
    min-height: 75vh;
    --hero-bg: url("/static/img/numerical_integration.webp");
    background-image: none;
}

/* Overlay negro opaco tras animación */
.heading-title-post-numerical_integration::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--degraded-bg-color);
    z-index: 1;
}

/* Imagen animada inicial */
.heading-title-post-numerical_integration::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: var(--hero-bg);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    opacity: 0;
    pointer-events: none;
    z-index: 0;
    animation: heroBgReveal 0.5s ease-out forwards;
}

/* Contenido siempre encima */
.heading-title-post-numerical_integration>* {
    position: relative;
    z-index: 2;
}

/* Texto de entra después del fondo */
.heading-title-post-numerical_integration .generic-title-page {
    opacity: 0;
    transform: translateY(10px);
    animation: heroTextIn 0.75s ease-out forwards;
    animation-delay: 0.5s;
    margin: 0 1.5rem;
}


/* ==================== GREEN MEDIC ==================== */

/* Contenedor principal */
.heading-title-portfolio-green-medic {
    position: relative;
    overflow: hidden;
    min-height: 75vh;
    --hero-bg: url("/static/img/green_medic.webp");
    background-image: none;
}

/* Overlay negro opaco tras animación */
.heading-title-portfolio-green-medic::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--degraded-bg-color);
    z-index: 1;
}

/* Imagen animada inicial */
.heading-title-portfolio-green-medic::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: var(--hero-bg);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    opacity: 0;
    pointer-events: none;
    z-index: 0;
    animation: heroBgReveal 0.5s ease-out forwards;
}

/* Contenido siempre encima */
.heading-title-portfolio-green-medic>* {
    position: relative;
    z-index: 2;
}

/* Texto de entra después del fondo */
.heading-title-portfolio-green-medic .generic-title-page {
    opacity: 0;
    transform: translateY(10px);
    animation: heroTextIn 0.75s ease-out forwards;
    animation-delay: 0.5s;
    margin: 0 1.5rem;
}

/* Keyframes */
/* @keyframes heroBgReveal {
    0% {
        opacity: 0;
        filter: brightness(0.25) saturate(0.85);
        transform: scale(1.05);
    }

    100% {
        opacity: 1;
        filter: brightness(1) saturate(1);
        transform: scale(1);
    }
}

@keyframes heroTextIn {
    to {
        opacity: 1;
        transform: translateY(0);
    }
} */


/* ==================== KEY FRAMES GENERALES ==================== */

/* Keyframes */
@keyframes heroBgReveal {
    0% {
        opacity: 0;
        filter: brightness(0.25) saturate(0.85);
        transform: scale(1.05);
    }

    100% {
        opacity: 1;
        filter: brightness(1) saturate(1);
        transform: scale(1);
    }
}

@keyframes heroTextIn {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}