/* Vector intro; the homepage opens directly when JavaScript is unavailable. */
.atlas-welcome { display:none; }
html.atlas-welcome-active { overflow:hidden; }
.atlas-welcome-active body { overflow:hidden; }
.atlas-welcome-active body > :not(.atlas-welcome) { opacity:0; pointer-events:none; }
.atlas-welcome-active .atlas-welcome {
  display:block; position:fixed; inset:0; z-index:2147483647;
  height:100vh; height:100dvh; overflow:hidden; color:#111; background:#fff;
  -webkit-font-smoothing:antialiased;
}
.atlas-welcome-composition { position:absolute; inset:0; }
.atlas-welcome-scene {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  display:block; width:min(620px,78vw); height:auto; overflow:visible;
}
.atlas-welcome-letter { fill-opacity:0; stroke:currentColor; stroke-width:1; stroke-dasharray:1; stroke-dashoffset:1; }
.atlas-welcome-morph path { vector-effect:non-scaling-stroke; stroke-width:1.9; }
.atlas-welcome-composition > [hidden] { display:none !important; }
.atlas-intro-logo {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  display:block; width:min(760px,70vw); height:auto; overflow:visible; color:#111;
}
.atlas-intro-logo .atlas-logo-unit { opacity:0; transform-box:fill-box; transform-origin:center; }
.atlas-intro-logo .atlas-logo-path { fill-opacity:0; stroke:currentColor; stroke-width:1.5; stroke-linejoin:round; stroke-linecap:round; stroke-dasharray:1; stroke-dashoffset:1; }
.atlas-welcome-logo-stage .atlas-logo-unit { animation:atlas-logo-assemble 650ms cubic-bezier(.2,.7,.2,1) var(--logo-delay) both; }
.atlas-welcome-logo-stage .atlas-logo-symbol { animation:atlas-logo-position 450ms cubic-bezier(.2,.7,.2,1) 550ms both; }
.atlas-welcome-logo-stage .atlas-logo-path { animation:atlas-logo-trace var(--logo-trace-duration,650ms) ease var(--logo-delay) forwards,atlas-logo-fill var(--logo-fill-duration,360ms) ease calc(var(--logo-delay) + var(--logo-fill-delay,480ms)) forwards; }
/* These contours have already arrived from BEM-VINDO; continue by filling them. */
.atlas-welcome-logo-stage .atlas-logo-unit[data-morphed] { animation:none; opacity:1; }
.atlas-welcome-logo-stage .atlas-logo-unit[data-morphed] .atlas-logo-path { stroke-dashoffset:0; animation:atlas-logo-fill 360ms ease 100ms forwards; }
@keyframes atlas-logo-position { from { transform:translateX(300px); } to { transform:translateX(0); } }
@keyframes atlas-logo-assemble { from { opacity:0; transform:translateY(10px) rotate(-4deg); } to { opacity:1; transform:translateY(0) rotate(0); } }
@keyframes atlas-logo-trace { to { stroke-dashoffset:0; } }
@keyframes atlas-logo-fill { to { fill-opacity:1; stroke-opacity:0; } }
.atlas-welcome:focus,.atlas-welcome-focus-target:focus { outline:none; }
.atlas-welcome-active.atlas-welcome-leaving body > :not(.atlas-welcome) { opacity:1; transition:opacity 700ms ease; }
.atlas-welcome-leaving .atlas-welcome { opacity:0; pointer-events:none; transition:opacity 700ms ease; }
@media (max-width:700px) {
  .atlas-welcome-scene { width:min(340px,84vw); }
  .atlas-intro-logo { width:min(340px,82vw); }
}
@media (max-height:500px) {
  .atlas-welcome-scene { width:min(560px,78vw,150vh); }
  .atlas-intro-logo { width:min(500px,62vw,135vh); }
}
@media (prefers-reduced-motion:reduce) {
  .atlas-welcome-logo-stage .atlas-logo-unit { animation:none; opacity:1; transform:none; }
  .atlas-welcome-logo-stage .atlas-logo-symbol { animation:none; transform:none; }
  .atlas-welcome-logo-stage .atlas-logo-path,
  .atlas-welcome-logo-stage .atlas-logo-unit[data-morphed] .atlas-logo-path { animation:none; fill-opacity:1; stroke:none; }
  .atlas-welcome-active.atlas-welcome-leaving body > :not(.atlas-welcome),.atlas-welcome-leaving .atlas-welcome { transition-duration:150ms; }
}
