/* ========================================
   HOMEPAGE INTRO & MOTION SYSTEM
   Intro éditoriale : logo, marque, tagline
   Style Awwwards — cinématique, épuré
   ======================================== */

/* --- Couche atmosphère (fond vivant, très subtil) --- */
.home2-page.has-atmosphere {
    position: relative;
}

.home-atmosphere {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    overflow: hidden;
}

.home-atmosphere__gradient {
    position: absolute;
    inset: -20%;
    background: radial-gradient(
        ellipse 120% 80% at 50% 20%,
        rgba(255, 255, 255, 0.03) 0%,
        transparent 50%
    );
    animation: atmosphereBreath 25s ease-in-out infinite;
}

html:not(.day-mode) .home-atmosphere__gradient {
    background: radial-gradient(
        ellipse 120% 80% at 50% 15%,
        rgba(255, 255, 255, 0.02) 0%,
        transparent 45%
    );
}

@keyframes atmosphereBreath {
    0%, 100% { opacity: 0.6; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.02); }
}

@media (prefers-reduced-motion: reduce) {
    .home-atmosphere__gradient {
        animation: none;
        opacity: 0.8;
    }
}

/* --- Overlay d'intro --- */
.home-intro {
    position: fixed;
    inset: 0;
    z-index: 10002;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-day);
    /* Opacité explicite + couche composite : fondu de sortie fluide (voile ivoire → contenu). */
    opacity: 1;
    transform: translateZ(0);
    transition: opacity 1.05s cubic-bezier(0.22, 1, 0.36, 1);
}

html:not(.day-mode) .home-intro {
    background: var(--bg-night);
}

.home-intro.home-intro--done {
    pointer-events: none;
    opacity: 0;
}

/* Fond léger derrière le bloc (lueur douce) */
.home-intro__backdrop {
    position: absolute;
    inset: 0;
    background: radial-gradient(
        ellipse 115% 85% at 50% 42%,
        rgba(255, 255, 255, 0.06) 0%,
        rgba(255, 255, 255, 0.02) 45%,
        transparent 68%
    );
    pointer-events: none;
}

html:not(.day-mode) .home-intro__backdrop {
    background: radial-gradient(
        ellipse 115% 85% at 50% 42%,
        rgba(255, 255, 255, 0.07) 0%,
        rgba(255, 255, 255, 0.02) 48%,
        transparent 65%
    );
}

.home-intro__inner {
    position: relative;
    text-align: center;
    padding: clamp(1.5rem, 5vw, 3.5rem);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: clamp(1.25rem, 3vh, 2.5rem);
    width: min(96vw, 42rem);
    min-height: min(72vh, 38rem);
    transform: translateY(-4vh);
}

/* --- Logo (lyre) : apparition en douceur --- */
.home-intro__logo-wrap {
    position: relative;
    margin-bottom: 0;
    opacity: 0;
    transform: scale(0.94);
    animation: introLogoReveal 1.4s cubic-bezier(0.16, 1, 0.3, 1) 0.2s forwards;
}

.home-intro__logo-wrap::after {
    content: '';
    position: absolute;
    inset: -45%;
    background: radial-gradient(
        ellipse 80% 80% at 50% 50%,
        rgba(255, 255, 255, 0.08) 0%,
        transparent 70%
    );
    opacity: 0;
    animation: introLogoGlow 2s ease-out 0.3s forwards;
    pointer-events: none;
}

html:not(.day-mode) .home-intro__logo-wrap::after {
    background: radial-gradient(
        ellipse 80% 80% at 50% 50%,
        rgba(255, 255, 255, 0.06) 0%,
        transparent 70%
    );
}

@keyframes introLogoReveal {
    from {
        opacity: 0;
        transform: scale(0.94);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes introLogoGlow {
    0% { opacity: 0; }
    40% { opacity: 1; }
    100% { opacity: 0.6; }
}

.home-intro__logo {
    display: block;
    width: 100%;
    height: auto;
    max-width: clamp(11rem, 32vw, 19rem);
    max-height: clamp(13rem, 38vw, 22rem);
    object-fit: contain;
    filter: none;
}

/* Mode jour : logo sombre pour contraste */
html.day-mode .home-intro__logo {
    filter: brightness(0.15);
}

/* --- Titre Lyreval (lettre par lettre, effet harpe) --- */
.home-intro__title {
    font-family: 'Crimson Pro', 'Lora', serif;
    font-size: clamp(2.65rem, 10.5vw, 5.25rem);
    font-weight: 500;
    letter-spacing: 0.18em;
    margin: 0;
    color: var(--text-primary);
    display: inline-flex;
    justify-content: center;
    flex-wrap: wrap;
    row-gap: 0.12em;
    max-width: 100%;
    line-height: 1.05;
}

html:not(.day-mode) .home-intro__title {
    color: rgba(231, 231, 231, 0.98);
}

.home-intro__title-letter {
    display: inline-block;
    opacity: 0;
    transform: translateY(10px) scale(0.88);
    animation: introLetterPluck 0.5s cubic-bezier(0.34, 1.4, 0.64, 1) forwards;
    animation-delay: calc(0.65s + var(--i) * 0.09s);
}

@keyframes introLetterPluck {
    0% {
        opacity: 0;
        transform: translateY(10px) scale(0.88);
    }
    55% {
        opacity: 1;
        transform: translateY(-2px) scale(1.06);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* --- Tagline --- */
.home-intro__tagline {
    font-family: 'Lora', serif;
    font-size: clamp(1.125rem, 3vw, 1.375rem);
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.04em;
    color: var(--text-secondary);
    margin: 0;
    opacity: 0;
    transform: translateY(8px);
    animation: introTaglineReveal 1s cubic-bezier(0.16, 1, 0.3, 1) 1.05s forwards;
}

html:not(.day-mode) .home-intro__tagline {
    color: rgba(231, 231, 231, 0.78);
}

@keyframes introTaglineReveal {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Skip : tout apparaît vite */
.home-intro.home-intro--skip .home-intro__logo-wrap,
.home-intro.home-intro--skip .home-intro__tagline {
    animation-duration: 0.25s;
}

.home-intro.home-intro--skip .home-intro__logo-wrap {
    animation-delay: 0s;
}

.home-intro.home-intro--skip .home-intro__title-letter {
    animation-duration: 0.15s;
    animation-delay: calc(0.05s + var(--i) * 0.02s);
}

.home-intro.home-intro--skip .home-intro__tagline {
    animation-delay: 0.1s;
}

.home-intro.home-intro--skip .home-intro__logo-wrap::after {
    animation: none;
    opacity: 0;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .home-intro {
        transition: opacity 0.28s ease-out;
    }
    .home-intro__logo-wrap,
    .home-intro__title-letter,
    .home-intro__tagline {
        animation: none;
        opacity: 1;
        transform: none;
    }
    .home-intro__logo-wrap::after {
        animation: none;
        opacity: 0;
    }
}
