/* Presentation only. Motion never changes a mission, route or scene pose. */
html.sd-v3.mode-immersive .section-overlay.visible:not(#overlay-1) .so-card,
html.sd-v3.mode-immersive #overlay-1.visible .so-card,
html.sd-v3.mode-immersive .so-wing,
html.sd-v3 .nav-rail { animation: none; translate: none; rotate: none; }
html.sd-v3.mode-immersive .so-inner,
html.sd-v3.mode-immersive .so-wing { transform: none; }
html.sd-v3 .scan-sweep,
html.sd-v3 .crt-flicker { display: none; }
.sd-v3 .hp-choice {
  transition: border-color var(--sd-duration), background var(--sd-duration),
    box-shadow var(--sd-duration), transform var(--sd-duration) var(--sd-ease);
}
@media (hover: hover) and (pointer: fine) {
  .sd-v3 .hp-choice:hover {
    transform: translateY(-1px);
    box-shadow: 0 5px 18px rgba(0, 209, 255, .06);
  }
}
.sd-v3 .hp-brand { position: relative; }
.sd-v3 .hp-signal {
  display: block;
  position: absolute;
  top: -9px;
  left: 0;
  width: 38px;
  height: 1px;
  background: var(--sd-cyan);
  opacity: .3;
  pointer-events: none;
  transform-origin: left;
}
.sd-v3 [data-motion-active] .hp-signal {
  animation: sd-line-arrive 650ms var(--sd-ease) both,
    sd-ambient 24s ease-in-out 1s infinite alternate,
    sd-shimmer 18s ease-in-out 2s infinite;
}
.sd-v3 [data-motion-active] .hp-signal.is-signal { animation: sd-signal 120ms steps(2) both; }
/* Pulse a separate dot only on the existing genuinely current route stop. */
.sd-v3 .mc-stop.is-current .mc-chip::after {
  content: "";
  display: inline-block;
  width: 4px;
  height: 4px;
  margin-left: 8px;
  border-radius: 50%;
  background: var(--sd-cyan);
}
.sd-v3 [data-motion-active] .mc-stop.is-current .mc-chip::after { animation: sd-current 3s ease-in-out infinite; }
@keyframes sd-line-arrive { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes sd-ambient { from { translate: 0 0; } to { translate: 3px 0; } }
@keyframes sd-shimmer { 0%, 90%, 100% { opacity: .3; } 94% { opacity: .65; } }
@keyframes sd-current { 0%, 100% { opacity: .55; } 50% { opacity: 1; } }
@keyframes sd-signal { 0%, 100% { transform: none; opacity: .3; } 40% { transform: translateX(2px); opacity: .6; } 75% { transform: translateX(-1px); opacity: .2; } }
@media (prefers-reduced-motion: reduce) {
  html.sd-v3 { scroll-behavior: auto; }
  html.sd-v3 .hp-choice,
  html.sd-v3 .hp-choice:hover { transition: none; transform: none; }
  html.sd-v3 .hp-signal,
  html.sd-v3 .mc-stop.is-current .mc-chip::after { animation: none; }
}
