/* Tela de carregamento: logo grande (fundo transparente) + barra futurista. */
.splash{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:#0B0B0B;color:#F5F5F5;
  --p:0;transition:opacity .52s ease,visibility .52s;overflow:hidden}
.splash.is-leaving{opacity:0;visibility:hidden;pointer-events:none}
.splash-glow{position:absolute;inset:0;background:radial-gradient(ellipse 50% 42% at 50% 44%,rgba(168,85,247,.16),transparent 70%);
  animation:glow 4.5s ease-in-out infinite alternate}
.splash-center{position:relative;display:flex;flex-direction:column;align-items:center;gap:clamp(28px,6vh,56px);padding:24px}
.splash-logo{width:min(46vmin,360px);height:auto;aspect-ratio:1;background:transparent;user-select:none;-webkit-user-drag:none;
  animation:logo-in .9s cubic-bezier(.2,.7,.2,1) both,breathe 3.6s ease-in-out .9s infinite;
  filter:drop-shadow(0 0 28px rgba(168,85,247,.28))}
.splash-stage{position:relative;height:44px;width:min(300px,64vw);display:grid;place-items:center}

/* barra */
.splash-bar{position:relative;width:100%;height:14px;transition:opacity .26s ease}
.bar-track,.bar-fill,.bar-scan{position:absolute;left:0;right:0;top:6px;height:2px;border-radius:2px}
.bar-track{background:rgba(255,255,255,.1)}
.bar-fill{transform-origin:left center;transform:scaleX(var(--p));
  background:linear-gradient(90deg,#6d28d9,#A855F7 55%,#EC4899);box-shadow:0 0 10px rgba(168,85,247,.55)}
.bar-scan{overflow:hidden;background:none}
.bar-scan::after{content:"";position:absolute;top:0;bottom:0;width:34%;left:-34%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.85),transparent);animation:scan 1.5s linear infinite}
.bar-head{position:absolute;top:3px;left:calc(var(--p) * 100%);width:8px;height:8px;margin-left:-4px;border-radius:50%;
  background:#fff;box-shadow:0 0 0 3px rgba(168,85,247,.25),0 0 16px 4px rgba(236,72,153,.7)}
.bar-tick{position:absolute;top:2px;width:1px;height:10px;background:rgba(255,255,255,.35)}
.bar-tick.left{left:-8px}.bar-tick.right{right:-8px}
.splash.is-complete .bar-scan{opacity:0}
.splash.is-tagline .splash-bar{opacity:0;position:absolute}

/* lema */
.splash-tagline{margin:0;position:absolute;display:flex;justify-content:center;white-space:nowrap;
  font:300 clamp(12px,1.7vw,16px)/1 "Segoe UI Variable Display","Segoe UI",Inter,system-ui,-apple-system,sans-serif;
  letter-spacing:.62em;text-transform:uppercase;color:rgba(245,245,245,.86);padding-left:.62em}
.splash-tagline::after{content:"";position:absolute;left:50%;bottom:-14px;height:1px;width:0;transform:translateX(-50%);
  background:linear-gradient(90deg,transparent,#A855F7,transparent)}
.splash.is-tagline .splash-tagline::after{animation:rule .9s .5s cubic-bezier(.2,.7,.2,1) forwards}
.tl-char,.tl-space{display:inline-block;opacity:0;filter:blur(6px);transform:translateY(5px)}
.splash.is-tagline .tl-char,.splash.is-tagline .tl-space{animation:letter .7s calc(var(--i) * 45ms) cubic-bezier(.2,.7,.2,1) forwards}

/* erro */
.splash-error{display:none;position:absolute;bottom:12vh;text-align:center;max-width:80vw}
.splash.is-error .splash-error{display:block}
.splash.is-error .splash-bar{opacity:.2}
.splash-error-title{margin:0 0 6px;font-weight:600}
.splash-error-text{margin:0 0 14px;color:#A3A3A3;font-size:13px}
.splash-error button{background:none;color:#F5F5F5;border:1px solid rgba(255,255,255,.4);border-radius:10px;padding:8px 18px;
    cursor:pointer;font:inherit}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

@keyframes scan{to{left:100%}}
@keyframes logo-in{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
@keyframes breathe{50%{filter:drop-shadow(0 0 46px rgba(168,85,247,.42))}}
@keyframes glow{to{opacity:.55}}
@keyframes letter{to{opacity:1;filter:blur(0);transform:none}}
@keyframes rule{to{width:min(220px,50vw)}}
@media (prefers-reduced-motion:reduce){
  .splash{transition-duration:.2s}
  .splash-logo,.splash-glow,.bar-scan::after{animation:none}
  .splash.is-tagline .tl-char,.splash.is-tagline .tl-space{animation-duration:.01s;animation-delay:0s}
}
