/* ===== Hero Animations ===== */

/* Hidden state - elements start here */
.anim-hidden {
    opacity: 0;
    transform: translateY(30px);
    transition: none;
}

/* Visible state - elements animate to here */
.anim-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Default transition for text elements */
.hero-subtitle.anim-visible,
.name-line.anim-visible,
.hero-details.anim-visible,
.detail-item.anim-visible,
.status-badge.anim-visible {
    transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Image slides in from right */
.hero-image-wrapper.anim-hidden {
    opacity: 0;
    transform: translateX(60px) translateY(0);
}

.hero-image-wrapper.anim-visible {
    opacity: 1;
    transform: translateX(0) translateY(0);
    transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1),
                transform 1s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Glow scales in */
.hero-glow.anim-hidden {
    opacity: 0;
    transform: translateY(-50%) scale(0.5);
}

.hero-glow.anim-visible {
    opacity: 1;
    transform: translateY(-50%) scale(1);
    transition: opacity 1.5s ease-out,
                transform 1.5s ease-out;
}

/* Status badge slides down */
.status-badge.anim-hidden {
    opacity: 0;
    transform: translateY(-15px);
}

.status-badge.anim-visible {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.5s ease-out,
                transform 0.5s ease-out;
}
