/* journey */
.tl{position:relative;display:grid;gap:0;padding-left:34px}
.tl::before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:linear-gradient(var(--line),var(--accent));transform-origin:top}
.tl article{position:relative;display:grid;grid-template-columns:minmax(0,170px) minmax(0,1fr);gap:8px 32px;padding-block:22px;border-bottom:1px dashed var(--line)}
.tl article:last-child{border-bottom:0}
.tl article::before{content:"";position:absolute;left:-34px;top:28px;width:16px;height:16px;border-radius:50%;background:var(--bg);border:2px solid var(--accent)}
.tl .now::before{background:var(--accent);box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 25%,transparent);animation:pulseA 2.4s infinite}
.tl time{font:600 .86rem/1.5 var(--mono);color:var(--accent);padding-top:5px}
.tl h3 small{display:block;font:500 1rem/1.4 var(--body);color:var(--muted);letter-spacing:0;margin-top:4px}
.tl .now h3{font-size:clamp(1.6rem,3.4vw,2.3rem);font-weight:800}
.badge{display:inline-flex;gap:8px;align-items:center;margin-top:28px;margin-left:34px;font:400 .82rem/1.3 var(--mono);border:1px solid var(--accent);color:var(--ink);padding:10px 14px;border-radius:16px;background:var(--paper)}
.badge{padding:10px 18px 10px 12px;gap:14px} .badge b{font-weight:600}
.tag .cert{display:inline-flex;align-items:center;gap:8px;padding-block:5px}

.badge .aws{width:54px;height:60px}
@keyframes pulseA{50%{box-shadow:0 0 0 12px color-mix(in srgb,var(--accent) 0%,transparent)}}

@keyframes grow{from{transform:scaleY(0)}}

@media (prefers-reduced-motion:no-preference){ @supports (animation-timeline:view()){
  .tl::before{animation:grow linear both;animation-timeline:view();animation-range:entry 10% cover 60%}
}}
@media (max-width:720px){ .tl article{grid-template-columns:minmax(0,1fr);gap:2px} }
