/* A finite sentence, then the site. Loading and retry remain independent. */
.ej-splash {
    position: fixed; inset: 0; z-index: 200;
    display: grid; place-items: center; padding: 24px;
    min-height: 100svh; background: var(--ej-ink);
    animation: ej-splash-dismiss 900ms cubic-bezier(.65,0,.2,1) 4200ms both;
}
.ej-splash-line {
    display: inline-flex; align-items: baseline; gap: .24em;
    max-width: 100%; margin: 0; white-space: nowrap;
    color: var(--ej-cream); font: 700 clamp(28px,4.6vw,72px)/1.6 var(--ej-font-display);
    animation: ej-splash-line-enter 700ms cubic-bezier(.16,1,.3,1) both,
               ej-splash-line-exit 650ms cubic-bezier(.4,0,.2,1) 4000ms forwards;
}
.ej-splash-line > span:empty { display: none; }
.ej-splash-words { display: inline-grid; color: var(--ej-orange); }
.ej-splash-words > span { grid-area: 1 / 1; text-align: start; opacity: 0; }
.ej-splash-words > span:nth-child(1) { opacity: 1; animation: ej-word-first 3800ms cubic-bezier(.4,0,.2,1) 400ms both; }
.ej-splash-words > span:nth-child(2) { animation: ej-word-second 3800ms cubic-bezier(.4,0,.2,1) 400ms both; }
.ej-splash-words > span:nth-child(3) { animation: ej-word-third 3800ms cubic-bezier(.4,0,.2,1) 400ms both; }
@keyframes ej-splash-line-enter {
    from { opacity: 0; transform: translateY(10px) scale(.985); filter: blur(8px); }
    to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}
@keyframes ej-splash-line-exit {
    to { opacity: 0; transform: translateY(-8px); filter: blur(3px); }
}
@keyframes ej-word-first {
    0%,28% { opacity: 1; transform: translateY(0); filter: blur(0); }
    36%,100% { opacity: 0; transform: translateY(-.28em); filter: blur(5px); }
}
@keyframes ej-word-second {
    0%,28% { opacity: 0; transform: translateY(.28em); filter: blur(5px); }
    38%,62% { opacity: 1; transform: translateY(0); filter: blur(0); }
    70%,100% { opacity: 0; transform: translateY(-.28em); filter: blur(5px); }
}
@keyframes ej-word-third {
    0%,62% { opacity: 0; transform: translateY(.28em); filter: blur(5px); }
    72%,100% { opacity: 1; transform: translateY(0); filter: blur(0); }
}
@keyframes ej-splash-dismiss {
    from { clip-path: inset(0); }
    to { clip-path: inset(0 0 100% 0); visibility: hidden; pointer-events: none; }
}
.ej-splash[data-dismissed] { display: none; animation: none; }
@media (max-width: 700px) {
    .ej-splash { padding-inline: 20px; }
    .ej-splash-line { font-size: clamp(24px,7.5vw,40px); }
    html[lang="en"] .ej-splash-line { font-size: clamp(24px,6.3vw,40px); }
}
@media (prefers-reduced-motion: reduce) {
    .ej-splash { display: none; animation: none; }
    .ej-splash * { animation: none !important; }
}
