/* Bylaw Ledger timeline: T1 dated rail (< 960px) and T2 to scale (≥ 960px).
   One <ol class="bl-timeline"> of <li>s. Works without JS (T1 everywhere); bl-timeline.js upgrades it to T2 on desktop. */
.bl-timeline{--tl-ink:var(--ink,#1F1E23);--tl-muted:var(--slate,#4a5566);--tl-rail:var(--sky,#A7BDD3);--tl-line:var(--line,#D5DEE8);--tl-signal:var(--signal,#FFCF24);--tl-tint:#FFF3C4;
  list-style:none;margin:0;padding:0;position:relative}
.bl-timeline__item{display:grid;grid-template-columns:20px minmax(0,1fr);column-gap:14px}
.bl-timeline__dot{grid-row:1 / span 4;display:flex;flex-direction:column;align-items:center}
.bl-timeline__dot::before{content:"";display:block;width:16px;height:16px;margin-top:3px;border-radius:50%;box-sizing:border-box;background:#fff;border:3px solid var(--tl-ink);flex:none}
.bl-timeline__dot::after{content:"";flex:1;width:2px;min-height:20px;background:var(--tl-rail)}
.bl-timeline__item:last-child .bl-timeline__dot::after{display:none}
.bl-timeline__item.is-current .bl-timeline__dot::before{background:var(--tl-signal);box-shadow:0 0 0 5px rgba(255,207,36,.35)}
.bl-timeline__date{grid-column:2;margin:0;font-size:.75rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--tl-ink)}
.bl-timeline__title{grid-column:2;margin:6px 0 0;font-size:1rem;font-weight:700;line-height:1.25}
.bl-timeline__body{grid-column:2;margin:6px 0 0;font-size:.8125rem;line-height:1.5;color:var(--tl-muted);max-width:62ch}
.bl-timeline__sources{grid-column:2;display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0 0 28px;list-style:none}
.bl-timeline__item:last-child .bl-timeline__sources{padding-bottom:0}
.bl-timeline__gap{display:none}
.bl-timeline__summary{display:none}
/* Source chip (shared) */
.bl-timeline .bl-source-chip{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 10px;border-radius:999px;background:#fff;border:1px solid var(--tl-line);color:var(--tl-ink);font-size:.75rem;font-weight:700;text-decoration:none;white-space:nowrap}
.bl-timeline .bl-source-chip:hover{border-color:var(--tl-ink)}
.bl-timeline .bl-source-chip:focus-visible{outline:3px solid var(--blue,#50709A);outline-offset:2px}
.bl-timeline .bl-source-chip svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.bl-timeline .bl-source-chip::after{content:"↗"}
/* Mobile only: months since previous item, shown when JS adds data-gap */
@media (max-width:959px){
  .bl-timeline__date[data-gap]::after{content:"  ·  +" attr(data-gap) " mo";font-family:ui-monospace,monospace;font-weight:600;color:var(--tl-muted);letter-spacing:0;text-transform:none}
}

/* ---------- T2 to scale (desktop, JS adds .is-scaled) ---------- */
@media (min-width:960px){
  .bl-timeline.is-scaled{height:var(--tl-h,380px);margin:0 24px 8px}
  .bl-timeline.is-scaled::before{content:"";position:absolute;left:0;right:0;top:var(--tl-axis,190px);height:4px;margin-top:-2px;border-radius:2px;background:var(--tl-rail)}
  .bl-timeline.is-scaled .bl-timeline__span{position:absolute;top:var(--tl-axis,190px);height:4px;margin-top:-2px;background:var(--tl-ink);left:var(--from);width:calc(var(--to) - var(--from))}
  .bl-timeline.is-scaled .bl-timeline__tick{position:absolute;top:calc(var(--tl-axis,190px) + 2px);left:var(--x);transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;font:600 .75rem ui-monospace,"SF Mono",monospace;color:var(--tl-muted)}
  .bl-timeline.is-scaled .bl-timeline__tick::before{content:"";width:2px;height:12px;background:var(--tl-ink)}
  .bl-timeline.is-scaled .bl-timeline__item{position:absolute;left:var(--x);top:0;bottom:0;width:0;display:block}
  .bl-timeline.is-scaled .bl-timeline__dot{position:absolute;left:-7px;top:calc(var(--tl-axis,190px) - 7px);display:block}
  .bl-timeline.is-scaled .bl-timeline__dot::before{width:14px;height:14px;margin:0}
  .bl-timeline.is-scaled .bl-timeline__dot::after{content:"";position:absolute;left:6px;width:2px;height:30px;min-height:0;background:var(--tl-ink);display:block}
  .bl-timeline.is-scaled .bl-timeline__item.is-up .bl-timeline__dot::after{bottom:14px}
  .bl-timeline.is-scaled .bl-timeline__item.is-down .bl-timeline__dot::after{top:14px}
  .bl-timeline.is-scaled .bl-timeline__card{position:absolute;left:var(--card-shift,-115px);width:230px;box-sizing:border-box;padding:10px 12px;border-radius:12px;background:#fff;border:1.5px solid var(--tl-line);display:flex;flex-direction:column;gap:4px}
  .bl-timeline.is-scaled .is-up .bl-timeline__card{bottom:calc(var(--tl-h,380px) - var(--tl-axis,190px) + 37px)}
  .bl-timeline.is-scaled .is-down .bl-timeline__card{top:calc(var(--tl-axis,190px) + 37px)}
  .bl-timeline.is-scaled .is-current .bl-timeline__card{background:var(--tl-tint);border-color:var(--tl-ink)}
  .bl-timeline.is-scaled .bl-timeline__date{font:600 .6875rem ui-monospace,"SF Mono",monospace;letter-spacing:0;color:var(--tl-muted)}
  .bl-timeline.is-scaled .bl-timeline__title{margin:0;font-size:.875rem;line-height:1.3}
  .bl-timeline.is-scaled .bl-timeline__body{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:0} /* hidden visually, still read by screen readers */
  .bl-timeline.is-scaled .bl-timeline__sources{margin:2px 0 0;padding:0}
  .bl-timeline.is-scaled + .bl-timeline__summary,.bl-timeline-summary{display:flex;align-items:center;gap:10px;margin:0 24px;font-size:.8125rem;color:var(--slate,#4a5566)}
  .bl-timeline-summary::before{content:"";flex:none;width:28px;height:4px;border-radius:2px;background:var(--ink,#1F1E23)}
}
@media (max-width:959px){.bl-timeline-summary{display:none}}
.bl-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
