:root{
  --bosigo-space-accent:#F5C400;
  --bosigo-space-deep:#03070b;
}
body[data-space="nexus"]{--bosigo-space-accent:#F5C400;--bosigo-space-deep:#111610}
body[data-space="readiness"]{--bosigo-space-accent:#6B826B;--bosigo-space-deep:#171914}
body[data-space="innovation"]{--bosigo-space-accent:#5A8FFF;--bosigo-space-deep:#05070B}

.bosigo-space-transition{
  --space-accent:var(--bosigo-space-accent);
  --space-deep:var(--bosigo-space-deep);
  position:fixed;
  inset:0;
  z-index:9998;
  pointer-events:none;
  overflow:hidden;
  background:#000;
  opacity:1;
  visibility:visible;
  transition:opacity .8s cubic-bezier(.16,1,.3,1),visibility .8s linear;
}
.bosigo-space-transition::before,
.bosigo-space-transition::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  border-radius:50%;
  pointer-events:none;
}
.bosigo-space-transition::before{
  width:10px;
  height:10px;
  background:#fff;
  box-shadow:
    0 0 12px rgba(255,255,255,.95),
    0 0 42px color-mix(in srgb,var(--space-accent) 84%,transparent),
    0 0 120px color-mix(in srgb,var(--space-accent) 38%,transparent);
  transition:transform .95s cubic-bezier(.16,1,.3,1),opacity .72s ease;
}
.bosigo-space-transition::after{
  width:min(34vw,28rem);
  aspect-ratio:1;
  border:1px solid color-mix(in srgb,var(--space-accent) 42%,transparent);
  box-shadow:
    0 0 0 4rem color-mix(in srgb,var(--space-accent) 4%,transparent),
    0 0 0 11rem color-mix(in srgb,var(--space-accent) 2.5%,transparent),
    0 0 100px color-mix(in srgb,var(--space-accent) 12%,transparent),
    inset 0 0 80px color-mix(in srgb,var(--space-accent) 6%,transparent);
  opacity:.78;
  transform:translate(-50%,-50%) scale(.22);
  transition:transform 1.05s cubic-bezier(.16,1,.3,1),opacity .78s ease;
}
.bosigo-space-transition__label{
  position:absolute;
  left:50%;
  bottom:10vh;
  transform:translateX(-50%) translateY(10px);
  margin:0;
  color:rgba(241,247,249,.68);
  font:650 .62rem/1.2 ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.28em;
  text-transform:uppercase;
  white-space:nowrap;
  opacity:0;
  transition:opacity .35s ease,transform .55s cubic-bezier(.16,1,.3,1);
}

body.space-entering .bosigo-space-transition.is-open{
  opacity:0;
  visibility:hidden;
}
body.space-entering .bosigo-space-transition.is-open::before{
  transform:translate(-50%,-50%) scale(70);
  opacity:0;
}
body.space-entering .bosigo-space-transition.is-open::after{
  transform:translate(-50%,-50%) scale(7.5);
  opacity:0;
}
body.space-entering .bosigo-space-transition.is-open .bosigo-space-transition__label{
  opacity:.62;
  transform:translateX(-50%) translateY(0);
}

body.space-leaving{
  overflow:hidden!important;
}
body.space-leaving .bosigo-space-transition{
  opacity:1;
  visibility:visible;
  transition-duration:.58s;
  background:
    radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--space-accent) 10%,transparent),rgba(0,0,0,.82) 36%,#000 78%);
}
body.space-leaving .bosigo-space-transition::before{
  transform:translate(-50%,-50%) scale(1.4);
  opacity:1;
}
body.space-leaving .bosigo-space-transition::after{
  transform:translate(-50%,-50%) scale(.54);
  opacity:.9;
}
body.space-leaving .bosigo-space-transition__label{
  opacity:.82;
  transform:translateX(-50%) translateY(0);
}

@media(max-width:640px){
  .bosigo-space-transition::after{width:min(62vw,18rem)}
  .bosigo-space-transition__label{bottom:8vh;font-size:.54rem;letter-spacing:.22em}
}
@media(prefers-reduced-motion:reduce){
  .bosigo-space-transition{transition:opacity .15s linear}
  .bosigo-space-transition::before,.bosigo-space-transition::after,.bosigo-space-transition__label{transition:none}
  body.space-leaving> :not(.bosigo-space-transition){filter:none;transform:none;transition:none}
}

/* Stable post-entry state. The overlay stays mounted so exits can reuse it. */
.bosigo-space-transition.is-idle{
  opacity:0;
  visibility:hidden;
}
body.space-leaving .bosigo-space-transition.is-idle{
  opacity:1;
  visibility:visible;
}

/* Move the experience as a whole without transforming utility/assistive nodes. */
body.space-leaving .site-shell,
body.space-leaving .site-header,
body.space-leaving main,
body.space-leaving footer,
body.space-leaving .hub-root,
body.space-leaving .sr-header,
body.space-leaving .sr-system-nav,
body.space-leaving .sr-main,
body.space-leaving .sr-footer,
body.space-leaving .sf-header,
body.space-leaving .sf-main,
body.space-leaving .sf-footer,
body.space-leaving .lab-header,
body.space-leaving .lab-shell,
body.space-leaving .lab-ambient{
  filter:blur(5px);
  transform:scale(.992);
  transform-origin:center center;
  opacity:.82;
  transition:filter .5s ease,transform .55s cubic-bezier(.16,1,.3,1),opacity .5s ease;
}
@media(prefers-reduced-motion:reduce){
  body.space-leaving .site-shell,
  body.space-leaving .site-header,
  body.space-leaving main,
  body.space-leaving footer,
  body.space-leaving .hub-root,
  body.space-leaving .sr-header,
  body.space-leaving .sr-system-nav,
  body.space-leaving .sr-main,
  body.space-leaving .sr-footer,
  body.space-leaving .sf-header,
  body.space-leaving .sf-main,
  body.space-leaving .sf-footer,
  body.space-leaving .lab-header,
  body.space-leaving .lab-shell,
  body.space-leaving .lab-ambient{filter:none;transform:none;opacity:1;transition:none}
}
