/* 16 · Nubes volumétricas vectoriales: entrada, mensaje y apertura lateral. */
.welcome-intro { background:transparent;backdrop-filter:none;isolation:isolate;transition:opacity .35s ease; }
.welcome-intro:before,.welcome-intro:after { display:none; }
.welcome-veil { position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,#fffaf0,#e2d1b6);z-index:-3;transition:opacity 1.8s .3s ease; }
.welcome-clouds { position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden; }
.welcome-cloud { position:absolute;width:85vw;height:75vh;filter:blur(7px);will-change:transform,opacity;opacity:.94;transition:transform 2.3s cubic-bezier(.3,0,.18,1),opacity 2s ease; }
.welcome-cloud svg { display:block;width:100%;height:100%; }
.welcome-cloud.cloud-0 { left:-34%;top:-30%;animation:cloudFromLeft 1.5s both;--exit-x:-90%;--exit-y:-38%; }
.welcome-cloud.cloud-1 { right:-34%;top:-27%;animation:cloudFromRight 1.7s both;--exit-x:90%;--exit-y:-35%; }
.welcome-cloud.cloud-2 { left:-30%;bottom:-33%;animation:cloudFromLeft 1.8s both;--exit-x:-90%;--exit-y:40%; }
.welcome-cloud.cloud-3 { right:-30%;bottom:-35%;animation:cloudFromRight 1.6s both;--exit-x:90%;--exit-y:40%; }
.welcome-intro h2 { animation:cloudWords 1.2s 1.05s both; }
.welcome-intro .eyebrow { animation:cloudWords 1.1s .8s both; }
.welcome-intro .welcome-name { animation:cloudWords 1s 1.45s both; }
.welcome-intro .welcome-mark { animation:cloudMark 1.8s .6s both;transform:translate(-50%,-50%);z-index:-2; }
.welcome-intro.welcome-opening .welcome-cloud { opacity:.94;transition:none; }
.welcome-intro.welcome-opening .cloud-0 { animation:cloudToLeft 1.8s cubic-bezier(.4,0,.65,1) both; }
.welcome-intro.welcome-opening .cloud-1 { animation:cloudToRight 2s cubic-bezier(.4,0,.65,1) both; }
.welcome-intro.welcome-opening .cloud-2 { animation:cloudToLeft 2.2s cubic-bezier(.4,0,.65,1) both; }
.welcome-intro.welcome-opening .cloud-3 { animation:cloudToRight 1.9s cubic-bezier(.4,0,.65,1) both; }
.welcome-opening .welcome-veil { opacity:0; }
.welcome-opening h2 { animation:cloudWordsAway 1.35s ease-in both; }
.welcome-opening .eyebrow { animation:cloudWordsAway 1s ease-in both; }
.welcome-opening .welcome-name { animation:cloudWordsAway 1.1s .1s ease-in both; }
.welcome-opening .welcome-mark { animation:none;opacity:0;transition:opacity 1s; }
.welcome-intro.welcome-leaving { filter:none;opacity:0; }
@keyframes cloudFromLeft { from { transform:translate(-55%,8%) scale(1.15);opacity:0; } to { transform:translate(0,0);opacity:.94; } }
@keyframes cloudFromRight { from { transform:translate(55%,-8%) scale(1.15);opacity:0; } to { transform:translate(0,0);opacity:.94; } }
/* Explicit exit keyframes: keep the clouds visible as they travel off-screen.
   Removing an entry animation then transitioning transform skips motion on Safari. */
@keyframes cloudToLeft { from { transform:translate(0,0) scale(1);opacity:.94; } to { transform:translate(-90%,8%) scale(1.15);opacity:.94; } }
@keyframes cloudToRight { from { transform:translate(0,0) scale(1);opacity:.94; } to { transform:translate(90%,-8%) scale(1.15);opacity:.94; } }
@keyframes cloudWords { from { opacity:0;filter:blur(18px);transform:translateY(22px) scale(.97); } to { opacity:1;filter:blur(0);transform:none; } }
@keyframes cloudWordsAway { from { opacity:1;filter:blur(0);transform:none; } to { opacity:0;filter:blur(16px);transform:translateY(-35px) scale(1.07); } }
@keyframes cloudMark { from { opacity:0; } to { opacity:.07; } }
@media(max-width:700px) {
 .welcome-cloud { width:135vw;height:65vh;filter:blur(5px); }
 .welcome-cloud.cloud-0 { left:-65%;top:-20%; }.welcome-cloud.cloud-1 { right:-65%;top:-25%; }
 .welcome-cloud.cloud-2 { left:-65%;bottom:-22%; }.welcome-cloud.cloud-3 { right:-65%;bottom:-26%; }
 .welcome-intro h2 { font-size:clamp(38px,10vw,52px); }
}
@media(prefers-reduced-motion:reduce) { .welcome-intro { display:none; } }
