.journey{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  padding:var(--s5);box-shadow:var(--sh-sm);position:relative;overflow:hidden;
}
.journey::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(500px 200px at 100% 0%, var(--teal-glow), transparent 70%);
}
.journey-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s5);position:relative;}
.journey-label{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);}
.journey-pct{font-family:var(--f-display);font-weight:700;font-size:38px;line-height:1;margin-top:4px;font-variant-numeric:tabular-nums;}
.journey-count{font-family:var(--f-mono);font-size:13px;color:var(--text);text-align:right;padding-top:14px;}
.journey-count span{color:var(--dim);font-size:11.5px;}

.journey-track{
  position:relative;height:6px;background:var(--line);border-radius:var(--r-full);
  margin:0 14px var(--s5);
}
.journey-track::before{
  content:'';position:absolute;inset:0;border-radius:var(--r-full);
  background:repeating-linear-gradient(90deg,transparent 0 7px,var(--surface) 7px 12px);
  opacity:.5;
}
.journey-fill{
  position:absolute;left:0;top:0;bottom:0;border-radius:var(--r-full);
  background:linear-gradient(90deg,var(--accent),var(--teal));
  transition:width 1.2s var(--ease-out);
}
.journey-marker{
  position:absolute;top:50%;width:28px;height:28px;margin-left:-14px;
  transform:translateY(-50%);transition:left 1.2s var(--ease-out);
  display:grid;place-items:center;color:var(--accent);
  background:var(--surface);border:1px solid var(--accent);border-radius:50%;
  box-shadow:0 2px 10px var(--accent-glow);
}
.journey-marker svg{width:14px;height:14px;transform:rotate(90deg);}
.journey-ends{display:flex;justify-content:space-between;position:relative;}
.journey-end b{
  display:block;font-family:var(--f-display);font-weight:700;font-size:17px;letter-spacing:.06em;
}
.journey-end span{font-family:var(--f-mono);font-size:10px;color:var(--faint);}
.journey-end.right{text-align:right;}
