.method__journey {
  --method-progress: 0;
  min-width: 0;
  position: relative;
}
.method .method__steps {
  display: block;
  padding-left: 64px;
}
.method .method__steps li,
.method .method__steps li:last-child {
  border: 0;
  gap: 1.5rem;
  grid-template-columns: 28px minmax(0, 1fr);
  min-height: 210px;
  padding: 1.5rem 0 2.5rem;
}
.method__track {
  background: #cbd1cb;
  border-radius: 2px;
  bottom: 40px;
  left: 12px;
  position: absolute;
  top: 32px;
  width: 3px;
}
.method__track-fill {
  background: #176b38;
  border-radius: inherit;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  transform: scaleY(var(--method-progress));
  transform-origin: top;
  width: 100%;
}
.method__ball {
  height: 18px;
  left: 50%;
  position: absolute;
  top: calc(var(--method-progress) * 100%);
  transform: translate(-50%, -50%);
  width: 18px;
}
.method__ball::before,
.method__ball::after {
  border-radius: 50%;
  content: "";
  position: absolute;
}
.method__ball::before {
  animation: method-ball-light 2.8s ease-in-out infinite;
  background: radial-gradient(circle, #e4ffd9 0%, #9cff78 18%, #35f332b3 40%, #35f33200 72%);
  filter: blur(.8px);
  inset: 0;
  z-index: 1;
}
.method__ball::after {
  animation: method-ball-glow 2.8s ease-in-out infinite;
  background: radial-gradient(circle, #43f83e80 0%, #43f83e40 30%, #43f83e00 72%);
  filter: blur(3px);
  inset: -10px;
}
@keyframes method-ball-light {
  0%, 100% { opacity: .7; transform: scale(.72); }
  50% { opacity: 1; transform: scale(1.12); }
}
@keyframes method-ball-glow {
  0%, 100% { opacity: .45; transform: scale(.8); }
  50% { opacity: 1; transform: scale(1.3); }
}
@media (max-width: 1000px) {
  .method .method__steps { padding-left: 48px; }
  .method .method__steps li,
  .method .method__steps li:last-child { min-height: 180px; padding: 1.2rem 0 2.5rem; }
  .method__track { bottom: 36px; top: 26px; }
}
@media (max-width: 480px) {
  .method .method__steps { padding-left: 36px; }
  .method .method__steps li,
  .method .method__steps li:last-child {
    gap: .75rem;
    grid-template-columns: 22px minmax(0, 1fr);
    min-height: 165px;
  }
  .method__track { left: 7px; }
  .method__ball { height: 14px; width: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .method__ball::before,
  .method__ball::after { animation: none; }
}
