
/* Original Uiverse jeremyssocial/helpless-chipmunk-98 loader CSS, selectors scoped to content overlay. */
.nixbot-dynamic-loading .cube-loader {
  position: relative;
  width: 40px;
  height: 40px;
  margin: auto;
}.nixbot-dynamic-loading .cube {
  position: absolute;
  width: 50%;
  height: 50%;
  background-color: #333;
  border: 2px solid #fff;
  animation: foldCube 2.4s infinite linear;
}.nixbot-dynamic-loading .cube1 {
  top: 0;
  left: 0;
  transform-origin: 100% 100%;
}.nixbot-dynamic-loading .cube2 {
  top: 0;
  right: 0;
  transform-origin: 0 100%;
}.nixbot-dynamic-loading .cube3 {
  bottom: 0;
  right: 0;
  transform-origin: 0 0;
}.nixbot-dynamic-loading .cube4 {
  bottom: 0;
  left: 0;
  transform-origin: 100% 0;
}


@keyframes foldCube {0%,
 10% {
    transform: perspective(140px) rotateX(-180deg);
    opacity: 0;
  }25%,
 75% {
    transform: perspective(140px) rotateX(0deg);
    opacity: 1;
  }90%,
 100% {
    transform: perspective(140px) rotateY(180deg);
    opacity: 0;
  }
}.nixbot-dynamic-loading .cube1 {
  animation-delay: 0.3s;
}.nixbot-dynamic-loading .cube2 {
  animation-delay: 0.6s;
}.nixbot-dynamic-loading .cube3 {
  animation-delay: 0.9s;
}.nixbot-dynamic-loading .cube4 {
  animation-delay: 1.2s;
}

/* The original folding cube remains unchanged above.
   Positioning is viewport-centered, while only dashboard content is blurred;
   header/sidebar remain mounted and unblurred. No skeletons or captions. */
#dashboard-content.nixbot-is-navigating{position:relative;min-height:65vh;}
#dashboard-content.nixbot-is-navigating > :not(.nixbot-dynamic-loading){
 filter:blur(5px);opacity:.46;pointer-events:none;
}
.nixbot-dynamic-loading{
 position:fixed;inset:0;z-index:120;display:flex;align-items:center;
 justify-content:center;padding:0;margin:0;pointer-events:none;
 background:transparent;
}
.nixbot-dynamic-loading .cube-loader{
 width:40px;height:40px;flex:0 0 40px;margin:0;
}
@media(prefers-reduced-motion:reduce){.nixbot-dynamic-loading .cube{animation:none!important;}}
