.signal-journey {
  position: absolute;
  top: 0;
  left: 20px;
  z-index: 4;
  width: 38px;
  pointer-events: none;
  color: var(--color-signal-red);
  opacity: 0;
  transition: opacity .35s ease;
}
html[data-boot-state="ready"] .signal-journey { opacity: 1; }
.signal-journey svg { display: block; width: 38px; height: 100%; overflow: visible; }
.signal-journey__base { stroke: currentColor; stroke-opacity: .12; stroke-width: 1; }
.signal-journey__trace { stroke: currentColor; stroke-opacity: .52; stroke-width: 1; stroke-dasharray: 1; stroke-dashoffset: 1; }
.signal-journey__link { fill: none; stroke: currentColor; stroke-opacity: .18; stroke-width: 1; }
.signal-journey__point { stroke: currentColor; stroke-opacity: .3; fill: var(--surface-section-paper, #090909); }
.signal-journey__number { fill: currentColor; fill-opacity: .3; font: 8px var(--font-mono, monospace); }
.signal-journey__node.is-reached .signal-journey__point { fill: currentColor; stroke-opacity: .7; }
.signal-journey__node.is-current .signal-journey__link { stroke-opacity: .8; }
.signal-journey__node.is-current .signal-journey__number { fill-opacity: .8; }
.has-signal-journey .scroll-trace { display: none; }
.hero-core.signal-origin-ready .hero-core__heading { position: relative; }
.hero-core.signal-origin-ready .hero-core__heading::after {
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 1px;
  background: var(--color-signal-red);
  content: "";
  transform-origin: left;
  opacity: 0;
  animation: signal-origin-arrive 850ms ease-out both;
}
@keyframes signal-origin-arrive {
  0% { transform: scaleX(0); opacity: 1; }
  70% { transform: scaleX(1); opacity: 1; }
  100% { transform: scaleX(1); opacity: 0; }
}
@media (max-width: 760px) {
  .signal-journey { left: 3px; width: 9px; overflow: hidden; }
  .signal-journey svg { width: 38px; transform: translateX(-4px); }
  .signal-journey__number, .signal-journey__link { display: none; }
  .signal-journey__base { stroke-opacity: .1; }
  .signal-journey__trace { stroke-opacity: .3; }
  .signal-journey__point { r: 2px; }
}
@media (prefers-reduced-motion: reduce) {
  .signal-journey { transition: none; }
  .hero-core.signal-origin-ready .hero-core__heading::after { animation: none; }
}
