/* Trace only the family connections already drawn by family-art.js. */
.scene-family svg > g:nth-of-type(3) path:first-child {
  stroke-dasharray: 650;
  stroke-dashoffset: 650;
  animation: ozFamilyTwins 1.8s ease-out .15s both;
}
.scene-family svg > g:nth-of-type(3) path:last-child {
  stroke-dasharray: 170;
  stroke-dashoffset: 170;
  animation: ozFamilySingles 1.35s ease-out .45s both;
}
@keyframes ozFamilyTwins { to { stroke-dashoffset: 0; } }
@keyframes ozFamilySingles { to { stroke-dashoffset: 0; } }
/* The shared controller removes oz-motion-on when this banner is offscreen,
   the document is hidden, or the live reduced-motion preference is enabled.
   Family diagrams outside scene-stage retain their original behavior. */
.band.has-rendered-art .foldscene .scene-stage:not(.oz-motion-on) .scene-family svg > g:nth-of-type(3) path {
  animation-play-state: paused !important;
}
.band.has-rendered-art .foldscene .scene-stage.oz-motion-on .scene-family svg > g:nth-of-type(3) path {
  animation-play-state: running !important;
}
@media (prefers-reduced-motion: reduce) {
  .scene-family svg > g:nth-of-type(3) path {
    animation: none !important;
    stroke-dashoffset: 0 !important;
  }
  .band.has-rendered-art .foldscene .scene-stage:not(.oz-motion-on) .scene-family svg > g:nth-of-type(3) path,
  .band.has-rendered-art .foldscene .scene-stage.oz-motion-on .scene-family svg > g:nth-of-type(3) path {
    animation: none !important;
    animation-play-state: paused !important;
    stroke-dashoffset: 0 !important;
  }
}
