/* ==================== ENCABEZADO ANIMADO ==================== */

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

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

/* Imagen animada inicial */
.heading-portfolio-title::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-portfolio-title>* {
    position: relative;
    z-index: 2;
}

/* Texto de entra después del fondo */
.heading-portfolio-title .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);
    }
}

/* ==================== PROJECT CARD ==================== */
.projects-container {
    padding-top: 0rem;
    padding-bottom: 2rem;
    /* color: var(--color-text-tertiary); */
}

/* Card base */
.project-card {
    border-radius: var(--card-radius);
    overflow: hidden;
    transform-origin: center;
}

/* Media wrapper controla el zoom interno */
.project-media {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 12;
    overflow: hidden;
}

/* Imagen */
.project-media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1);
    transition: transform var(--time-transition-slow) ease;
    will-change: transform;
}

/* Mobile */
@media (max-width: 1025px) {
    .project-media {
        height: 500px;
    }
}

/* Overlay más blur para legibilidad */
.project-overlay {
    position: absolute;
    inset: 0;
    background: var(--degraded-bg-color-card);
    backdrop-filter: blur(0.75px);
    /* Filtro del fondo visto a través del elemento */
    -webkit-backdrop-filter: blur(0.75px);
    /* Filtro del fondo visto a través del elemento para más navegadores */
    z-index: 1;
}

/* Hover */
.project-card:hover .project-media img {
    transform: scale(1.06);
}

/* Detalle extra: brillo sutil */
.project-card::after {
    content: "";
    position: absolute;
    inset: -40%;
    background: radial-gradient(circle at 30% 20%, rgba(255, 255, 255, 0.10), transparent 42%);
    opacity: 0.0;
    transition: opacity 220ms ease;
    pointer-events: none;
}

.project-card:hover::after {
    opacity: 1;
}

/* ==================== TEXTO DE LA CARD ==================== */

/* Configuración global del texto */
.project-content {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0 25px;
    gap: 18px;
    font-family: var(--font-cabinet);
    color: var(--color-text-tertiary);
    text-align: center;
}

/* Título */
.project-title {
    font-size: 2.25rem;
    font-weight: 700;
}

/* Descripción */
.project-desc {
    font-size: 1.00rem;
}