.tl__head{text-align:center;margin-bottom:var(--s-8)}.tl__head .lead{max-width:52ch;margin-inline:auto}.tl__wrap{position:relative;max-width:880px;margin:0 auto}.tl__line{position:absolute;left:50%;transform:translate(-50%);width:2px;top:0;bottom:0;background:rgba(var(--ink-rgb),.09);border-radius:2px}.tl__fill{position:absolute;left:0;top:0;width:100%;height:100%;background:var(--red);box-shadow:0 0 12px #c8102e59;border-radius:2px;transform:scaleY(0);transform-origin:top;transition:transform .08s linear;will-change:transform}.tl__item{display:grid;grid-template-columns:1fr 56px 1fr;gap:0 var(--s-3);align-items:center;margin-bottom:var(--s-6)}.tl__item:last-child{margin-bottom:0}.tl__card{background:linear-gradient(180deg,var(--surface) 0%,var(--surface-2) 100%);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-3) var(--s-4);box-shadow:var(--shadow-1);transition:box-shadow .3s ease,transform .3s var(--ease-out)}.tl__item.reached .tl__card{box-shadow:var(--shadow-2);transform:translateY(-2px)}.tl__center{display:flex;justify-content:center;align-items:center;position:relative;z-index:1}.tl__dot{width:20px;height:20px;border-radius:6px;background:var(--paper);border:2px solid rgba(var(--ink-rgb),.22);transition:background .3s ease,border-color .3s ease,box-shadow .3s ease}.tl__item.reached .tl__dot{background:var(--red);border-color:var(--red);box-shadow:0 0 0 5px #c8102e24,0 0 16px 2px #c8102e66;animation:tlDotPop .4s var(--ease-out)}@keyframes tlDotPop{40%{transform:scale(1.45)}70%{transform:scale(.94)}to{transform:scale(1)}}.tl__step{display:block;font-family:var(--f-mono);font-size:var(--t-tag);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:.4rem;transition:color .3s ease}.tl__item.reached .tl__step{color:var(--red-ink)}.tl__card h3{margin-bottom:.35rem}.tl__card p{color:var(--ink-mute);font-size:var(--t-small);margin:0;line-height:1.6}.tl__empty{background:none}.tl__cta{display:flex;justify-content:center;margin-top:var(--s-8)}@media(max-width:680px){.tl__item{grid-template-columns:34px 1fr;gap:0 var(--s-2);margin-bottom:var(--s-4)}.tl__line{left:16px;transform:none}.tl__item .tl__card{grid-column:2;grid-row:1}.tl__item .tl__center{grid-column:1;grid-row:1}.tl__empty{display:none}}@media(prefers-reduced-motion:reduce){.tl__fill,.tl__card,.tl__dot{transition:none}.tl__item.reached .tl__dot{animation:none}}
