.ns-opening{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:24px;border:0;background:transparent;overflow:hidden;color:#2000ae}
.ns-opening[open]{display:grid;place-items:center}
.ns-opening::backdrop{background:white;opacity:1;transition:opacity .5s cubic-bezier(.4,0,.2,1)}
.ns-opening neural-square-logo{width:min(360px,65vw,55dvh);transform-origin:top left;will-change:transform}
.ns-opening-skip{position:absolute;right:24px;bottom:24px;border:1px solid #ddd9f1;border-radius:999px;padding:10px 20px;background:white;color:#261389;font:500 14px system-ui;cursor:pointer}
.ns-opening.is-leaving::backdrop{opacity:0}
.ns-opening.is-leaving .ns-opening-skip{opacity:0;pointer-events:none;transition:opacity .15s}
.ns-corner-slot{width:100%;aspect-ratio:1}
.ns-corner.is-awaiting-logo{opacity:0}
.ns-corner .ns-website-logo :is(.ns-trace,.ns-mechanics,.ns-terminals,.ns-letter,.ns-neurons){animation:none!important}
/* Build the artwork before the existing half-second flight to the corner. */
.ns-opening .ns-trace{animation:ns-route-draw .6s var(--route-delay,0ms) cubic-bezier(.4,0,.2,1) both}
.ns-opening .ns-mechanics{animation:none}
.ns-opening .ns-mechanics > circle{animation:ns-arrive .4s .25s both}
.ns-opening .ns-part{animation:ns-part-build .6s var(--part-delay,.15s) cubic-bezier(.16,1,.3,1) both}
.ns-part-gear{--part-x:38px;--part-y:-35px;--part-delay:.1s}
.ns-part-hub{--part-x:-20px;--part-y:35px;--part-delay:.2s}
.ns-part-left{--part-x:-55px;--part-y:-15px;--part-delay:.18s}
.ns-part-right{--part-x:50px;--part-y:30px;--part-delay:.26s}
.ns-opening .ns-build-energy{display:block;fill:none;stroke:#45d5fa;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:14 86;filter:drop-shadow(0 0 3px #22baff);animation:ns-build-current .95s .1s ease-out both}
.ns-opening .ns-entry-ring{display:block;animation:ns-build-ring 1s .18s ease-out both}
.ns-opening .ns-shine{animation:ns-build-shine .45s .78s ease-out both}
.ns-opening .ns-terminals{animation:ns-arrive .3s .3s both}
.ns-opening .ns-letter-n{animation:ns-assemble-n .42s .35s cubic-bezier(.16,1,.3,1) both}
.ns-opening .ns-letter-s{animation:ns-assemble-s .42s .48s cubic-bezier(.16,1,.3,1) both}
.ns-opening .ns-neurons{animation:ns-arrive .2s .8s both}
.ns-website-logo .ns-entry-ring{display:none}
.ns-corner{position:fixed;left:max(14px,env(safe-area-inset-left));bottom:max(14px,env(safe-area-inset-bottom));width:106px;padding:8px 8px 24px;border:1px solid #eceaf6;border-radius:16px;background:#ffffffed;box-shadow:0 4px 20px #16087512;z-index:900;isolation:isolate}
.ns-corner button{position:absolute;bottom:4px;left:50%;transform:translateX(-50%);border:0;border-radius:5px;background:transparent;color:#594a88;font:500 11px system-ui;min-height:20px;padding:1px 8px;cursor:pointer}
.ns-corner button:hover{background:#eeebfa}
.ns-corner button:focus-visible,.ns-opening-skip:focus-visible{outline:2px solid #3151df;outline-offset:2px}
@media(max-width:600px){.ns-corner{width:76px;padding:6px 6px 24px;left:8px;bottom:max(8px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.ns-opening.is-leaving{transition:none}}
@keyframes ns-part-build{0%{opacity:0;translate:var(--part-x) var(--part-y);filter:blur(5px)}70%{opacity:1;filter:blur(0)}100%{opacity:1;translate:0 0;filter:blur(0)}}
@keyframes ns-build-current{0%{opacity:0;stroke-dashoffset:100}15%{opacity:1}80%{opacity:.8}100%{opacity:0;stroke-dashoffset:-100}}
@keyframes ns-build-ring{0%{opacity:0;transform:scale(.15)}25%{opacity:.35}100%{opacity:0;transform:scale(2.4)}}
@keyframes ns-build-shine{0%{opacity:0;transform:translateX(0)}25%{opacity:.8}100%{opacity:0;transform:translateX(190px)}}
