.splash {
    position: fixed; inset: 0; z-index: 1000;
    display: grid; place-items: center;
    background:
            radial-gradient(120% 120% at 50% 30%, var(--jm-indigo-soft), var(--jm-indigo) 70%);
    animation: splash-out .6s ease forwards;
    animation-delay: 1.6s;          /* temps d'affichage du logo */
}
.splash__logo {
    width: min(58vw, 240px); aspect-ratio: 1;
    opacity: 0; transform: scale(.86);
    animation: splash-in .7s cubic-bezier(.2,.8,.2,1) forwards;
    filter: drop-shadow(0 10px 30px rgba(0,0,0,.35));
}
.splash__tagline {
    position: absolute; bottom: calc(18% + var(--jm-safe-bottom));
    color: var(--jm-sand); font-size: .95rem; letter-spacing: .04em;
    opacity: 0; animation: splash-in .6s ease .35s forwards;
}

@keyframes splash-in  { to { opacity: 1; transform: scale(1); } }
@keyframes splash-out { to { opacity: 0; visibility: hidden; } }

/* Respect des préférences d'accessibilité : pas d'anim, disparition immédiate */
@media (prefers-reduced-motion: reduce) {
    .splash { animation: none; opacity: 0; visibility: hidden; }
    .splash__logo, .splash__tagline { animation: none; opacity: 1; transform: none; }
}