.progress-section .split-head { align-items: end; }
.progress-section .split-head .lede { font-size: var(--step-1); line-height: 1.55; }
.progress-section .kicker i { background: var(--iri-line); width: 36px; }
.progress-section .timeline { --live-span: calc((100% - 32px) * 1.5 / 3.5 + 16px); }
.progress-section .camp { min-width: 0; gap: 12px; }
.progress-section .camp--built { background: var(--brushed), var(--metal); border-color: transparent; border-image: conic-gradient(from 210deg, var(--iri-list)) 1; }
.progress-section .camp__node { color: var(--teal); }
.progress-section .camp--pending .camp__node { color: var(--gold); }
.progress-section .camp--later .camp__node { color: var(--muted); }
.progress-section .camp--built .camp__state { color: var(--state-open); }
.progress-section .camp--pending .camp__state { color: var(--state-draft); }
.progress-section .camp--later .camp__state { color: var(--muted); }
.progress-section .camp__share { margin-top: 6px; }
.progress-section .camp__share span { max-width: 28em; }
.progress-section .camp__foot { margin-top: auto; line-height: 1.4; }
.progress-section .camp--later .camp__foot { border-top-style: dashed; }
.progress-section .camp--later .camp__idx { font-size: var(--step--1); }
.progress-section .camp--later .camp__state { font-size: var(--step--2); }
.progress-section .phases { --live-span: calc((100% - 48px) / 2 + 32px); row-gap: 72px; align-items: stretch; }
.progress-section .phase { min-width: 0; padding: 24px 20px 22px; gap: 16px; }
.progress-section .phase--built,
.progress-section .phase--pending { background: var(--brushed), var(--metal); border-color: transparent; border-image: conic-gradient(from 210deg, var(--iri-list)) 1; }
.progress-section .phase__head { min-height: 24px; gap: 8px; }
.progress-section .phase__index { font-size: 10px; }
.progress-section .phase__name { overflow-wrap: normal; }
.progress-section .phase__items { gap: 10px; }
.progress-section .phase--built .phase__items li::before { border-color: var(--teal); background: var(--teal); }
.progress-section .phase--pending .phase__items li::before { border-color: var(--gold); }
.progress-section .phase__detail { border-top: 1px solid var(--seam); padding-top: 14px; margin-top: auto; color: var(--muted); font-size: var(--step--1); line-height: 1.5; }
.progress-section .phase--planned .phase__detail { border-top-style: dashed; }
.progress-section .phase__node { color: var(--teal); }
.progress-section .phase--pending .phase__node { color: var(--gold); }
.progress-section .phase--planned .phase__node { color: var(--muted); }
.progress-section .status-tag { font-size: 10px; padding: 5px 6px; letter-spacing: .05em; gap: 5px; }
.progress-section .status-tag__dot { height: 6px; width: 6px; background: currentColor; box-shadow: 0 0 0 3px #2ee6c829; border-radius: 50%; flex: none; }
.progress-section .status-tag--built { color: var(--state-open); background: var(--state-open-bg); box-shadow: inset 0 0 0 1px var(--state-open-edge); }
.progress-section .status-tag--pending { color: var(--state-draft); background: var(--state-draft-bg); box-shadow: inset 0 0 0 1px var(--state-draft-edge); }
@media (min-width: 1101px) {
  .progress-section .phases { padding-top: 56px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .progress-section .phases::before,
  .progress-section .phases::after { display: block; }
  .progress-section .phase__node { position: absolute; top: -57px; left: -1px; background: var(--graphite); padding-right: 8px; }
}
@media (min-width: 921px) {
  .progress-section .timeline { grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(0, 1fr)); padding-top: 56px; }
  .progress-section .timeline::before,
  .progress-section .timeline::after { display: block; }
  .progress-section .camp__node { position: absolute; top: -57px; left: -1px; background: var(--graphite); padding-right: 8px; }
}
@media (max-width: 1100px) {
  .progress-section .phases { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-top: 0; gap: 16px; }
  .progress-section .phases::before,
  .progress-section .phases::after { display: none; }
  .progress-section .phase__node { position: static; padding: 0; background: none; }
}
@media (max-width: 920px) {
  .progress-section .timeline { grid-template-columns: minmax(0, 1fr); padding-top: 0; gap: 16px; }
  .progress-section .timeline::before,
  .progress-section .timeline::after { display: none; }
  .progress-section .camp { display: grid; grid-template-columns: 30px minmax(0, 1fr); column-gap: 16px; padding: 24px; }
  .progress-section .camp__node { position: static; grid-column: 1; grid-row: 1 / span 3; padding: 0; background: none; }
  .progress-section .camp > :not(.camp__node) { grid-column: 2; }
  .progress-section .camp__idx { align-self: center; }
  .progress-section .camp__share { margin-top: 0; }
  .progress-section .camp__foot { margin-top: 4px; }
}
@media (max-width: 640px) {
  .progress-section .phases { grid-template-columns: minmax(0, 1fr); }
  .progress-section .phase { padding: 22px; }
  .progress-section .phase__name { font-size: var(--step-2); }
  .progress-section .phase__head { justify-content: flex-start; gap: 12px; }
  .progress-section .phase__node { position: absolute; top: 18px; right: 20px; left: auto; width: 26px; height: 29px; }
  .progress-section .phase__node svg { width: 26px; height: 29px; }
  .progress-section .phase__head { padding-right: 34px; }
  .progress-section .camp { padding: 22px 18px; column-gap: 12px; }
  .progress-section .split-head .lede { font-size: var(--step-0); }
}
