.bus-marker {
  filter: drop-shadow(0 5px 12px rgba(var(--accent-rgb), .45));
}

.journey-scene--active .bus-marker,
.hero-scene .bus-marker {
  will-change: transform;
}

.bus-marker-badge {
  fill: var(--accent);
  stroke: #fff;
  stroke-width: 2;
}

/* Scroll-coupled contexts (continuous rAF updates): near-instant tracking. */
.journey-scene.journey-scene--active .bus-marker {
  transition: transform .05s linear;
}

/* Ambient/discrete contexts (hero): slow, deliberate movement between states. */
.hero-scene .bus-marker {
  transition: transform 2.4s cubic-bezier(.4, 0, .2, 1);
}
.hero-scene--reset .bus-marker {
  transition: none !important;
}

/* Stepped/reduced-motion fallback: positioned once, never animated. */
.journey-scene--static .bus-marker {
  transition: none;
}

@media (prefers-reduced-motion: reduce) {
  .bus-marker { transition: none !important; }
}
