.hero-slide {
    position: relative;
}

#hero-slide .bg-img {
    position: relative;
    background-attachment: fixed;
}

#hero-slide .bg-img::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: var(--url);
    background-repeat: repeat-x;
    filter: invert(1);
    opacity: 0.2;
    z-index: -1;
}

#hero-slide li img {
    height: calc(100dvh - var(--navbar-height) - var(--timing-bar-height));
    min-height: 500px;
    -webkit-mask-image: linear-gradient(to bottom, black 80%, transparent 98%);
    mask-image: linear-gradient(to bottom, black 80%, transparent 98%);
    object-fit: cover;
    object-position: 10% center;
    transition: object-position ease 4000ms;
}

.hero #hero-slide .splide__slide.is-active img {
    object-position: 90% center;
}

.hero-text-content {
    position: relative;
    --py: 1rem;
    padding: var(--py) 2rem;
    z-index: 1;
    margin-top: -50dvh;
}

.hero-text-content::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: calc(100% + 4rem);
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    -webkit-mask-image: linear-gradient(to right, black, transparent);
    mask-image: linear-gradient(to right, black, transparent);
    z-index: -1;
}

.hero-text-content .hero-title {
    font-size: 3em;
}

.hero-subtitle {
    color: var(--c2);
}

.hero-content h1 {
    font-weight: 900;
    font-family: "Limelight", sans-serif;
}

.hero-content h1 .hc-1 {
    color: var(--c1);
    font-size: 2.5em;
}

.hero-content h1 .hc-2 {
    color: var(--text);
    font-size: 1.5em;
    display: block;
    margin-top: -1.5rem;
}

.hero-content h2 {
    font-family: "Josefin Sans", sans-serif;
    font-weight: normal;
}

.hero-content .tagline {
    font-family: "Tangerine", cursive;
    font-size: 3rem;
    font-weight: bold;
    color: var(--c2);
}

.hero-content p {
    text-align: justify;
}

@media screen and (min-width: 768px) {
    .hero {
        height: calc(100dvh - var(--navbar-height) - var(--timing-bar-height));
        min-height: 500px;
    }

    .hero-text-content {
        position: absolute;
        top: 50%;
        margin-top: 0;
        transform: translateY(calc(-50% - var(--py)));
    }

    .hero #hero-slide img {
        object-position: center 30%;
        -webkit-mask-image: none;
        mask-image: none;
    }

    .hero #hero-slide .splide__slide.is-active img {
        object-position: center 70%;
    }

    .cta {
        margin-top: 5rem;
    }
}