/* A single engineering scene, separate from the unchanged clinical copy. */
#scrub-section { display: block; height: auto; padding: 40px 0 0; scroll-margin-top: 80px; }
#scrub-sticky { display: block; position: static; height: auto; overflow: visible; }
.assembly-track { --assembly-travel: min(75vh, 640px); position: relative; padding: 0 24px; }
.assembly-view { width: min(100%, 920px, 86.6667svh); margin: 0 auto; }
.assembly-media { position: relative; width: 100%; aspect-ratio: 4 / 3; background: var(--studio-surface); border-radius: var(--studio-radius); overflow: hidden; }
.assembly-media img, .assembly-media video {
  position: absolute; inset: 0; display: block; width: 100%; height: 100%;
  object-fit: contain; object-position: center; filter: none;
}
.assembly-media video { opacity: 0; pointer-events: none; }
.assembly-track.is-ready .assembly-media video { opacity: 1; }
.assembly-view figcaption { padding: 12px 0 0; font: 11px/1.5 var(--mono); letter-spacing: 0.05em; color: var(--studio-caption); }
/* Added only after a decodable frame: no-JS/error/save-data never leaves a tall gap. */
.assembly-track.is-ready::after { content: ''; display: block; height: var(--assembly-travel); }
.assembly-track.is-ready .assembly-view { position: sticky; top: 88px; }
#scrub-content {
  max-width: 1280px; margin: 0 auto; padding: 72px 32px;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px;
}
#scrub-content .step-h2 { font-size: clamp(32px, 3vw, 44px); }
#scrub-content .spec-row { flex-wrap: wrap; gap: 6px 12px; }
#scrub-content .spec-value { text-align: left; }
.mobile-scrub-step { opacity: 1; transform: none; transition: none; }
@media (max-width: 1100px) {
  /* Use the approved Circuit Activates / Life Sustained specs on phones too. */
  #scrub-content { display: grid; grid-template-columns: minmax(0, 1fr); padding: 48px 24px; gap: 48px; }
  .mobile-scrub { display: none; }
  .assembly-track { --assembly-travel: min(40vh, 280px); }
  .assembly-view { width: min(100%, 680px, 73.3333svh); }
  .assembly-track.is-ready .assembly-view { top: 80px; }
}
@media (prefers-reduced-motion: reduce) {
  .assembly-track.is-ready::after { display: none; }
  .assembly-track.is-ready .assembly-view { position: static; }
  .assembly-track.is-ready .assembly-media video { display: none; }
}
