/* Capas originales alineadas sobre el mismo lienzo. */
#loec-intro{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;background:#FAF7F2;overflow:hidden;opacity:1}
#loec-intro[hidden]{display:none!important}
.loec-intro-pending{overflow:hidden}
.loec-intro-pending #site-content{visibility:hidden}
.intro-logo{position:relative;width:min(340px,64vw,62svh);aspect-ratio:1;contain:layout paint}
.intro-layer,.intro-complete{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.intro-layer{opacity:0}
.intro-complete{opacity:0}
.intro-running .intro-layer{animation-duration:var(--layer-duration);animation-delay:var(--layer-delay);animation-timing-function:cubic-bezier(.22,.61,.36,1);animation-fill-mode:both}
.intro-running .intro-rise{animation-name:intro-rise}
.intro-running .intro-reveal{animation-name:intro-reveal}
.intro-running .intro-word{animation-name:intro-word}
.intro-running .intro-caption{animation-name:intro-caption}
#loec-intro.intro-exit{opacity:0;transition:opacity var(--intro-exit-ms,260ms) ease}
#loec-intro.intro-static .intro-complete{opacity:1}
#loec-intro.intro-static .intro-layer{display:none}
@keyframes intro-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes intro-reveal{from{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}
@keyframes intro-word{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes intro-caption{from{opacity:0;clip-path:inset(0 50% 0 50%)}to{opacity:1;clip-path:inset(0 0 0 0)}}
@media(max-width:767px){.intro-logo{width:min(270px,70vw,57svh)}}
@media(prefers-reduced-motion:reduce){.intro-layer{animation:none!important}#loec-intro.intro-exit{transition:none}}
