#introOverlay{
  position:fixed;
  inset:0;
  background:#04060b;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:99999;
}

.intro-text{
  font-size:clamp(42px,7vw,110px);
  font-weight:700;
  letter-spacing:-2px;
  background:linear-gradient(90deg,#fff,#7ab6ff);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-size:0% 100%;
  background-repeat:no-repeat;
  transition:background-size 2.2s cubic-bezier(.77,0,.18,1);
}

.intro-text.fill{
  background-size:100% 100%;
}

.site-wrapper{
  transform:translateY(120px);
  opacity:0;
  transition:transform 1.4s cubic-bezier(.16,1,.3,1),
             opacity 1.4s cubic-bezier(.16,1,.3,1);
}

.site-wrapper.visible{
  transform:translateY(0);
  opacity:1;
}

body.loading{
  overflow:hidden;
}
