/* Nova Studio — #orbit scroll scene. Scoped: every class is prefixed .nv-orbit- (no global selectors). Tokens only. Animated properties limited to transform and opacity. */
.nv-orbit{position:relative;border-top:1px solid var(--line);padding-block:56px}
.nv-orbit-pin{position:relative;min-height:clamp(420px,66vh,620px);display:grid;place-items:center}
/* decorative depth layers: perspective + translateZ fakes depth without WebGL; overflow:hidden keeps drifting layers inside the stage */
.nv-orbit-stage{position:absolute;inset:0;overflow:hidden;perspective:900px;perspective-origin:50% 50%;pointer-events:none}
.nv-orbit-layer{position:absolute;left:50%;top:50%;will-change:transform,opacity}
.nv-orbit-shape{border:1px solid var(--line);border-radius:50%;opacity:.55}
.nv-orbit-shape-1{width:clamp(260px,46vw,520px);aspect-ratio:1;transform:translate3d(-50%,-50%,-220px);background:var(--surface)}
.nv-orbit-shape-2{width:clamp(170px,30vw,340px);aspect-ratio:1;transform:translate3d(-50%,-50%,-120px);background:var(--pine-soft);opacity:.45}
.nv-orbit-shape-3{width:clamp(90px,16vw,180px);aspect-ratio:1;transform:translate3d(-50%,-50%,-40px);background:var(--flame-soft);border-radius:4px;opacity:.5}
/* the mark (ring / star / core as separate animated groups) */
.nv-orbit-mark{position:absolute;left:50%;top:50%;width:clamp(190px,27vw,320px);height:auto;transform:translate3d(-50%,-50%,0);will-change:transform}
.nv-orbit-ring,.nv-orbit-star,.nv-orbit-core{transform-box:fill-box;transform-origin:50% 50%;will-change:transform,opacity}
/* service names (real text, in DOM order) */
.nv-orbit-names{position:relative;z-index:1;list-style:none;margin:0;padding:0;width:100%;max-width:820px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 40%;justify-items:center;text-align:center}
.nv-orbit-names li{font-weight:700;font-size:clamp(.95rem,1.5vw,1.1rem);line-height:1.3;color:var(--ink);will-change:transform,opacity}
.nv-orbit-names li:nth-child(odd){justify-self:start;text-align:start}
.nv-orbit-names li:nth-child(even){justify-self:end;text-align:end}
/* mobile: fewer layers, shorter scene */
@media (max-width:759px){
  .nv-orbit-pin{min-height:clamp(360px,58vh,480px)}
  .nv-orbit-shape-2,.nv-orbit-shape-3{display:none}
  .nv-orbit-mark{width:clamp(150px,42vw,220px)}
  .nv-orbit-names{grid-template-columns:1fr;gap:8px;justify-items:center}
  .nv-orbit-names li:nth-child(odd),.nv-orbit-names li:nth-child(even){justify-self:center;text-align:center}
}
/* reduced motion: composed, static, nothing hidden */
@media (prefers-reduced-motion:reduce){
  .nv-orbit-layer,.nv-orbit-mark,.nv-orbit-names li{will-change:auto}
  .nv-orbit-names li{opacity:1;transform:none}
}
