.coming-soon {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  align-items: center;
  gap: 56px;
  padding-block: 62px 78px;
  border-top: 1px solid #dbe5e9;
}
.coming-status {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  font-size: 14px;
  color: #49727d;
}
.coming-status > i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #59938f;
  box-shadow: 0 0 0 5px #59938f12;
}
.coming-soon h2 {
  font-size: clamp(28px, 2.5vw, 36px);
  line-height: 1.45;
  letter-spacing: -.8px;
  font-weight: 500;
}
.future-lane {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-around;
  height: 164px;
  isolation: isolate;
}
.future-connection {
  position: absolute;
  inset: calc(50% - 1px) 0 auto;
  height: 1px;
  background: #d4e1e5;
  z-index: -1;
  overflow: hidden;
}
.future-connection::after {
  content: "";
  display: block;
  height: 100%;
  width: 42%;
  background: linear-gradient(90deg, transparent, #2a8580, transparent);
  animation: future-signal 6s ease-in-out infinite;
}
.future-card {
  width: 90px;
  height: 100px;
  display: grid;
  place-items: center;
  border: 1px solid #e0eaed;
  border-radius: 17px;
  background: linear-gradient(135deg, #ffffff, #eff5f6);
  box-shadow: 0 16px 34px #3e68790a, inset 0 0 0 4px #ffffff55;
  color: #91afb7;
}
.future-card:nth-of-type(3) { transform: translateY(-9px); }
.future-next { border-style: dashed; background: #f8fbfc; box-shadow: none; }
.future-grid { width: 26px; height: 26px; display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
.future-grid > i { border: 1px solid #91afb7; border-radius: 3px; }
.future-plus { font-size: 34px; line-height: 1; font-weight: 300; }
.future-dots { display: flex; gap: 5px; }
.future-dots > i { height: 4px; width: 4px; border-radius: 50%; background: #91afb7; }
@keyframes future-signal {
  0%, 12% { transform: translateX(-110%); opacity: 0; }
  25%, 65% { opacity: .65; }
  88%, 100% { transform: translateX(360%); opacity: 0; }
}
@media (max-width: 760px) {
  .coming-soon { grid-template-columns: 1fr; gap: 20px; padding-block: 42px 46px; }
  .coming-soon h2 { font-size: 28px; }
  .coming-status { margin-bottom: 13px; }
  .future-lane { height: 130px; max-width: 420px; width: 100%; }
  .future-card { width: 76px; height: 84px; border-radius: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .future-connection::after { animation: none; opacity: .4; transform: translateX(90%); }
}
