.narrow{max-width:860px}
.timeline{list-style:none;position:relative;padding-left:2rem}
.timeline::before{content:'';position:absolute;left:.55rem;top:.5rem;bottom:.5rem;width:2px;background:var(--line)}
.timeline .month{font-family:var(--f-h);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--b2);font-size:.8rem;margin:1.8rem 0 .8rem;position:relative}
.timeline .month:first-child{margin-top:0}
.timeline .ev{position:relative;background:color-mix(in srgb,var(--card) 88%,transparent);border:1px solid var(--line);border-radius:14px;padding:1rem 1.2rem;margin-bottom:.8rem;transition:transform .3s var(--ease),box-shadow .3s}
.timeline .ev:hover{transform:translateX(4px);box-shadow:var(--shadow)}
.timeline .ev::before{content:'';position:absolute;left:-1.85rem;top:1.25rem;width:12px;height:12px;border-radius:50%;background:var(--b2);box-shadow:0 0 0 3px var(--bg)}
.timeline .ev[data-phase=direct]::before{background:var(--cy)}
.timeline .ev[data-phase=qualifier]::before{background:var(--b1)}
.timeline .ev[data-phase=wildcard]::before{background:var(--b3)}
.timeline .ev.now{border-color:var(--cy);box-shadow:0 0 0 3px rgba(31,195,243,.18)}
.timeline .ev.past{opacity:.6}
.ev .date{font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.ev .title{font-family:var(--f-h);font-weight:700;font-size:1.1rem;color:var(--ink2);margin:.2rem 0}
.ev .desc{font-size:.9rem;color:var(--muted)}
.ev .meta{display:flex;flex-wrap:wrap;gap:.4rem 1rem;font-size:.85rem;font-weight:600;color:var(--b2);margin:.15rem 0 .3rem}
