/* From space to construction. Only the manifesto/services handoff is enhanced.
   Native scroll drives both directions, without additional pinned distance.
   Without JS, on short screens or reduced motion, the readable flow remains. */
.experience-ready .subzero-home .journey-stage.is-service-crossing{overflow:visible}
.experience-ready .subzero-home .space-world.is-service-crossing{position:fixed;inset:0}
.experience-ready .subzero-home .manifesto-copy{transform:var(--manifesto-exit-transform,none);transform-origin:50% 40%}

/* The original sky remains behind this gradually opaque surface. */
.experience-ready .subzero-home .services.has-space-entry{background:transparent;border-top-color:transparent;isolation:isolate}
.experience-ready .subzero-home .services.has-space-entry::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgba(8,12,18,var(--services-surface-edge,1)),#080c12 24%,#0e131b 75%);opacity:var(--services-surface,1)}
.experience-ready .has-space-entry>.section-meta{opacity:var(--service-marker-opacity,1);transform:var(--service-marker-shift,none)}
.experience-ready .has-space-entry .service-panel{opacity:var(--service-panel-opacity,1);transform:var(--service-panel-shift,none)}

/* Only ink moves: link hit areas remain stable, with no text transform at rest. */
.experience-ready .has-space-entry .service-list{position:relative;border-top-color:transparent}
.experience-ready .has-space-entry .service-list::before,
.experience-ready .has-space-entry .service-list a::before{content:'';position:absolute;left:0;right:0;height:1px;background:var(--line);transform-origin:left center;pointer-events:none}
.experience-ready .has-space-entry .service-list::before{top:-1px;transform:scaleX(var(--service-rule,1))}
.experience-ready .has-space-entry .service-list a{position:relative;border-bottom-color:transparent}
.experience-ready .has-space-entry .service-list a::before{bottom:-1px;transform:scaleX(var(--service-row-reveal,1))}
.experience-ready .has-space-entry .service-list a.is-preview::before{background:#eaff0066}
.experience-ready .has-space-entry .service-list a>strong,
.experience-ready .has-space-entry .service-list a>span{opacity:var(--service-row-reveal,1);transform:var(--service-row-shift,none)}
.experience-ready .has-space-entry .service-list a>i{opacity:calc(var(--service-row-reveal,1)*.28);transform:var(--service-row-shift,none)}
.experience-ready .has-space-entry .service-list a.is-preview>i{opacity:var(--service-row-reveal,1)}
.experience-ready .has-space-entry .service-list a:first-child::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;pointer-events:none;background:linear-gradient(90deg,transparent,#eaff00,transparent) no-repeat;background-size:40% 100%;background-position:var(--service-signal-position,-66%) center;opacity:0}
.experience-ready .has-space-entry .service-list a.is-preview:first-child::after{opacity:var(--service-signal-opacity,0)}

/* Keyboard users never wait for entrance animation to read a service. */
.experience-ready .has-space-entry:focus-within>.section-meta,
.experience-ready .has-space-entry:focus-within .service-panel,
.experience-ready .has-space-entry:focus-within .service-list a>strong,
.experience-ready .has-space-entry:focus-within .service-list a>span,
.experience-ready .has-space-entry:focus-within .service-list a>i{opacity:1;transform:none}
.experience-ready .has-space-entry:focus-within .service-list::before,
.experience-ready .has-space-entry:focus-within .service-list a::before{transform:none}
@media(prefers-reduced-motion:reduce),(max-height:550px){
  .experience-ready .subzero-home .space-world.is-service-crossing{position:absolute}
  .experience-ready .subzero-home .manifesto-copy{transform:none}
  .experience-ready .subzero-home .services.has-space-entry::before{--services-surface-edge:1;opacity:1}
  .experience-ready .has-space-entry>.section-meta,
  .experience-ready .has-space-entry .service-panel,
  .experience-ready .has-space-entry .service-list a>strong,
  .experience-ready .has-space-entry .service-list a>span,
  .experience-ready .has-space-entry .service-list a>i{opacity:1;transform:none}
  .experience-ready .has-space-entry .service-list::before,
  .experience-ready .has-space-entry .service-list a::before{transform:none}
  .experience-ready .has-space-entry .service-list a:first-child::after{display:none}
}
