/* Premium startup experience */
.splash-screen{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 42%, rgba(45,191,214,.16), transparent 30%),
    radial-gradient(circle at 50% 120%, rgba(107,234,255,.08), transparent 44%),
    linear-gradient(145deg,#040b15 0%,#07111f 48%,#09192d 100%);
  transition:opacity .85s var(--ease),visibility .85s var(--ease);
}
.splash-screen::before{
  content:"";
  position:absolute;
  inset:-20%;
  background-image:
    linear-gradient(rgba(107,234,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(107,234,255,.035) 1px,transparent 1px);
  background-size:58px 58px;
  transform:perspective(700px) rotateX(68deg) translateY(20%);
  transform-origin:center bottom;
  mask-image:linear-gradient(to bottom,transparent 10%,#000 70%);
  animation:splashGrid 5.5s ease-in-out infinite alternate;
}
.splash-screen::after{
  content:"";
  position:absolute;
  width:min(68vw,920px);
  aspect-ratio:1;
  border-radius:50%;
  border:1px solid rgba(107,234,255,.08);
  box-shadow:0 0 90px rgba(107,234,255,.06),inset 0 0 90px rgba(107,234,255,.03);
  animation:splashOrbit 9s linear infinite;
}
.splash-screen.is-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.splash-content{
  position:relative;
  z-index:2;
  width:min(88vw,760px);
  text-align:center;
  padding:48px;
}
.splash-logo-wrap{
  position:relative;
  width:196px;
  height:64px;
  margin:0 auto 34px;
  display:grid;
  place-items:center;
  opacity:0;
  transform:translateY(12px) scale(.96);
  animation:splashReveal .9s .12s forwards var(--ease);
}
.splash-logo-wrap::before{
  content:"";
  position:absolute;
  inset:-26px -46px;
  background:radial-gradient(ellipse,rgba(107,234,255,.22),transparent 68%);
  filter:blur(12px);
  opacity:.7;
}
.splash-logo{
  position:relative;
  width:100%;
  max-height:54px;
  object-fit:contain;
  filter:drop-shadow(0 0 20px rgba(107,234,255,.18));
}
.splash-kicker{
  margin:0 0 10px;
  color:var(--cyan);
  font-size:12px;
  font-weight:700;
  letter-spacing:.32em;
  text-transform:uppercase;
  opacity:0;
  transform:translateY(10px);
  animation:splashReveal .8s .45s forwards var(--ease);
}
.splash-title{
  margin:0;
  font-family:var(--font);
  font-size:clamp(38px,5vw,68px);
  line-height:1.04;
  font-weight:650;
  letter-spacing:-.045em;
  background:linear-gradient(105deg,#fff 12%,#dffbff 46%,#6beaff 82%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  text-shadow:0 12px 42px rgba(45,191,214,.1);
  opacity:0;
  transform:translateY(16px);
  animation:splashReveal .9s .65s forwards var(--ease);
}
.splash-tagline{
  margin:18px 0 0;
  color:#b9c9d8;
  font-size:clamp(15px,1.6vw,20px);
  font-weight:400;
  letter-spacing:.02em;
  opacity:0;
  transform:translateY(12px);
  animation:splashReveal .8s .9s forwards var(--ease);
}
.splash-loader{
  width:min(360px,72vw);
  margin:42px auto 0;
  opacity:0;
  animation:splashReveal .7s 1.12s forwards var(--ease);
}
.splash-track{
  height:2px;
  overflow:hidden;
  border-radius:99px;
  background:rgba(255,255,255,.09);
  box-shadow:inset 0 0 12px rgba(0,0,0,.35);
}
.splash-progress{
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#2dbfd6,#6beaff,#e7fdff);
  box-shadow:0 0 18px rgba(107,234,255,.85);
  animation:splashLoad 2.15s 1.18s forwards cubic-bezier(.25,.7,.28,1);
}
.splash-status{
  display:flex;
  justify-content:space-between;
  margin-top:12px;
  color:rgba(198,218,231,.62);
  font-size:10px;
  font-weight:650;
  letter-spacing:.2em;
  text-transform:uppercase;
}
.splash-node{
  position:absolute;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--cyan);
  box-shadow:0 0 18px var(--cyan);
  opacity:.55;
}
.splash-node{
  will-change:transform,opacity;
  transform:translate3d(0,0,0);
  backface-visibility:hidden;
  contain:layout paint style;
}
.splash-node.n1{left:13%;top:24%}
.splash-node.n2{right:16%;top:31%}
.splash-node.n3{left:20%;bottom:19%}
.splash-node.n4{right:21%;bottom:22%}
@keyframes splashReveal{to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes splashLoad{0%{width:0}28%{width:24%}58%{width:63%}82%{width:86%}100%{width:100%}}
@keyframes splashGrid{from{opacity:.35;transform:perspective(700px) rotateX(68deg) translateY(20%) scale(1)}to{opacity:.65;transform:perspective(700px) rotateX(68deg) translateY(17%) scale(1.04)}}
@keyframes splashOrbit{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){
  .splash-screen *,.splash-screen::before,.splash-screen::after{animation-duration:.01ms!important;animation-delay:0ms!important}
  .splash-progress{width:100%}
}
@media (max-width:600px){
  .splash-content{padding:28px 18px}
  .splash-logo-wrap{width:160px;margin-bottom:27px}
  .splash-title{font-size:40px}
  .splash-status{letter-spacing:.12em}
}
