

.reasons--rail {
  
  --rail-col: 2.25rem;
  --rail-dot: 0.75rem;

  position: relative;
  display: grid;
  grid-template-columns: var(--rail-col) minmax(0, 1fr);
  row-gap: var(--space-7);
  column-gap: 0;
  margin-block-start: var(--space-7);
  text-align: start;
}

@media (min-width: 62rem) {
  
  .reasons--rail { grid-template-columns: var(--rail-col) minmax(0, 1fr); }
}

.reasons--rail > .reason {
  grid-column: 2;
  position: relative;
}

.reasons--rail::before,
.reasons--rail::after {
  content: '';
  position: absolute;
  inset-block: 1.75rem;
  inset-inline-start: calc(var(--rail-col) / 2 - 1px);
  inline-size: 2px;
  border-radius: 2px;
  pointer-events: none;
}

.reasons--rail::before { background-color: var(--color-border); }

.reasons--rail::after {
  background-color: var(--color-accent);
  transform-origin: top;
  transform: scaleY(1);
}

.reasons--rail.is-live::after {
  transform: scaleY(var(--rail-progress, 0));
  transition: transform 600ms cubic-bezier(0.16, 1, 0.3, 1);
}

.reasons--rail > .reason::before {
  content: '';
  position: absolute;
  inset-block-start: var(--space-6);
  inset-inline-start: calc(-1 * (var(--rail-col) / 2 + var(--rail-dot) / 2));
  inline-size: var(--rail-dot);
  block-size: var(--rail-dot);
  border-radius: 50%;
  border: 2px solid var(--color-border);
  background-color: var(--color-bg, #0b1412);
  transition: border-color 350ms ease, background-color 350ms ease, box-shadow 350ms ease;
}

.reasons--rail > .reason.is-current::before {
  border-color: var(--color-accent);
  background-color: var(--color-accent);
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--color-accent) 20%, transparent);
}

.reasons--rail.is-live > .reason {
  transition: border-color 350ms ease, box-shadow 350ms ease, opacity 350ms ease;
  opacity: 0.66;
}

.reasons--rail.is-live > .reason.is-current {
  opacity: 1;
  border-color: color-mix(in srgb, var(--color-accent) 55%, var(--color-border));
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--color-accent) 35%, transparent),
    var(--shadow-lg);
}

.reason__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-5);
}

@media (min-width: 62rem) {
  .reason__body {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--space-7);
    align-items: center;
  }
}

.reason__media {
  margin: 0;
  inline-size: 100%;
  max-inline-size: 30rem;
  justify-self: center;
}

.reasons--rail .reason__shot { margin: 0; }

.reason__media .frame--phone {
  margin-inline: auto;
  max-inline-size: 13.5rem;
}

.reason__media .frame-note { margin-block-start: var(--space-4); }

@media (max-width: 47.9375rem) {
  .reasons--rail { --rail-col: 1.75rem; }
}

@media (prefers-reduced-motion: reduce) {
  .reasons--rail.is-live::after,
  .reasons--rail > .reason::before,
  .reasons--rail.is-live > .reason { transition: none; }
  .reasons--rail.is-live > .reason { opacity: 1; }
}
