/*
 * Small CSS-only fallbacks for interactions ported from vsmu-main-frontend.
 * The NewsCard hover-expand ("Подробнее" reveal) is fully handled by
 * kursorium/js/news-card.js, using the same .news-card--expanded /
 * --height-new contract as the original app.css.
 */

/*
 * .app-section__head (app.css) has no positioning context of its own;
 * give it one so absolutely-positioned children can anchor to it.
 */
.app-section__head {
    position: relative;
    z-index: 0;
}

/*
 * Hero background video: reuse the same cover behaviour as the banner image.
 */
.kursorium-hero__background video {
    height: 100%;
    width: 100%;
    object-fit: cover;
}

/*
 * Footer marquee: the original clones .footer__marquee-track via JS and
 * animates it with GSAP (Footer/Marquee module), sized to fill the viewport
 * exactly. Here the mustache template renders two identical
 * .footer__marquee-track blocks (each with the ticker text repeated a fixed
 * few times) side by side inside .kh-footer-marquee-track, and this single
 * keyframe slides that wrapper left by exactly one track-width (50%) —
 * the classic dependency-free infinite-marquee trick.
 */
.footer__marquee {
    overflow: hidden;
}

.kh-footer-marquee-track {
    display: flex;
    width: max-content;
    animation: kh-footer-marquee 30s linear infinite;
}

@keyframes kh-footer-marquee {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }
}
