/* Image & media sizing */

.hero-media {
    aspect-ratio: 16 / 9;
}

.card-thumb {
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.card-thumb>.card-img-top {
    width: 100%;
    height: 100%;
    object-fit: cover;
}


/* Subtle card hover */

.lift {
    transition: transform .25s ease, box-shadow .25s ease;
    will-change: transform;
}

.lift:hover {
    transform: translateY(-6px);
    box-shadow: 0 .75rem 1.25rem rgba(0, 0, 0, .08);
}


/* Reveal animations (prefers-reduced-motion respected) */

@media (prefers-reduced-motion: no-preference) {
    .reveal {
        opacity: 0;
        transform: translateY(14px);
    }
    .reveal.in {
        opacity: 1;
        transform: none;
        transition: opacity .6s ease, transform .6s ease;
    }
    .reveal[data-reveal="fade-in"] {
        transform: none;
    }
    .reveal[data-reveal="fade-up"] {
        transform: translateY(18px);
    }
    .reveal[data-reveal="rise"] {
        transform: translateY(24px);
    }
}


/* Minor typographic polish */

section+section {
    scroll-margin-top: 90px;
}