body:has(.accueil) footer {
    display: none;
}

html:has(.accueil) {
    scroll-behavior: smooth;
}

.accueil {
    position: relative;
    min-height: 100vh;
    background: var(--color-white);
    isolation: isolate;
}

.home-background,
.home-background-layer {
    position: fixed;
    inset: 0;
    pointer-events: none;
}

.home-background {
    z-index: -1;
    overflow: hidden;
}

.home-background-layer {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.home-background-one {
    background-image: url("../assets/background/1.webp");
}

.home-background-two {
    background-image: url("../assets/background/2.webp");
}

.home-background-three {
    background-image: url("../assets/background/3.webp");
}

.home-background-four {
    background-image: url("../assets/background/4.webp");
}

.home-background-one,
.home-background-two,
.home-background-three,
.home-background-four {
    opacity: 0;
    animation-fill-mode: forwards;
    animation-name: home-background-fade;
    animation-play-state: paused;
    animation-timing-function: ease-in-out;
    will-change: opacity;
}

.accueil.is-loaded .home-background-one {
    animation-delay: 150ms;
    animation-duration: 900ms;
    animation-play-state: running;
}

.accueil.is-loaded .home-background-two {
    animation-delay: 850ms;
    animation-duration: 950ms;
    animation-play-state: running;
}

.accueil.is-loaded .home-background-three {
    animation-delay: 1550ms;
    animation-duration: 1000ms;
    animation-play-state: running;
}

.accueil.is-loaded .home-background-four {
    animation-delay: 2250ms;
    animation-duration: 900ms;
    animation-play-state: running;
}

@keyframes home-background-fade {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.home-hero {
    position: relative;
    display: grid;
    min-height: 100vh;
    place-items: center;
    padding: 2rem;
    text-align: center;
}

.home-hero-logo {
    width: clamp(4.8rem, 10vh, 7rem);
    height: auto;
    margin-bottom: clamp(1.3rem, 3vh, 2.2rem);
}

.home-title {
    margin: 0;
    color: var(--color-ink);
    font-size: clamp(5.5rem, 14vw, 13rem);
    font-weight: 700;
    line-height: 0.85;
    text-transform: uppercase;
}

.home-subtitle {
    margin: clamp(1.3rem, 3vh, 2rem) 0 0;
    color: var(--color-ink);
    font-size: clamp(1.25rem, 2.5vw, 2rem);
    font-weight: 700;
    line-height: 1.35;
}

.home-scroll {
    align-self: end;
    margin-bottom: 1.2rem;
    color: var(--color-ink);
    font-size: 1rem;
    font-weight: 700;
    text-decoration: none;
}

.home-scroll::after {
    display: block;
    width: 1px;
    height: 2.8rem;
    margin: 0.65rem auto 0;
    background: var(--color-ink);
    content: "";
}

.home-suite {
    display: grid;
    min-height: 100vh;
    align-content: center;
    gap: clamp(2rem, 6vh, 4rem);
    padding: clamp(3rem, 8vw, 6rem);
}

.home-intro {
    max-width: 44rem;
}

.home-intro h2 {
    margin: 0 0 1rem;
    color: var(--color-ink);
    font-size: clamp(2.4rem, 5vw, 4.6rem);
    line-height: 1;
}

.home-intro p {
    margin: 0;
    color: var(--color-ink);
    font-size: clamp(1.15rem, 2vw, 1.55rem);
    font-weight: 700;
    line-height: 1.4;
}

.home-links {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.4rem;
}

.home-link {
    display: grid;
    gap: 0.55rem;
    min-height: 11rem;
    align-content: end;
    padding: 1.5rem;
    color: var(--color-ink);
    text-decoration: none;
    background: var(--color-paper-soft);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: var(--shadow-soft);
    transition: transform 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

.home-link:hover,
.home-link:focus-visible {
    background: var(--color-paper-glass-active);
    box-shadow: var(--shadow-card);
    transform: translateY(-0.25rem);
}

.home-link span {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
}

.home-link small {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
}

@media (max-width: 760px) {
    .home-title {
        font-size: clamp(4rem, 18vw, 6rem);
    }

    .home-suite {
        padding: 3rem 1.25rem;
    }

    .home-links {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    html:has(.accueil) {
        scroll-behavior: auto;
    }

    .home-background-one,
    .home-background-two,
    .home-background-three,
    .home-background-four {
        opacity: 1;
        animation: none;
    }
}
