.adg-project-timeline {
  --tl-line: rgba(6,74,194,.22);
  --tl-card: #fff;
  width: min(calc(100vw - 2rem), 1480px);
  margin: clamp(2.7rem, 7vw, 5.5rem) 50%;
  transform: translateX(-50%);
  color: var(--ink);
}
.adg-project-timeline--empty { transform: none; margin-inline:auto; width:min(100% - 2.3rem,760px); }
.adg-project-timeline__years {
  width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(6,74,194,.3) transparent;
  padding: .25rem .1rem .75rem;
  margin-bottom: clamp(2.2rem, 5vw, 4rem);
  scroll-behavior: smooth;
}
.adg-project-timeline__years:focus-visible { outline: 3px solid rgba(24,168,239,.35); outline-offset: 4px; border-radius: 14px; }
.adg-project-timeline__years-track {
  display:flex;
  width:max-content;
  min-width:100%;
  gap:.55rem;
  align-items:center;
  justify-content:center;
}
.adg-project-timeline__years a {
  min-width: 86px;
  min-height: 48px;
  display:grid;
  place-items:center;
  padding:.7rem 1rem;
  border:1px solid rgba(6,74,194,.18);
  border-radius:999px;
  background:#fff;
  color:var(--blue-dark);
  font-size:1rem;
  font-weight:850;
  text-decoration:none;
  font-variant-numeric:tabular-nums;
  transition:box-shadow .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}
.adg-project-timeline__years a:hover,
.adg-project-timeline__years a:focus-visible,
.adg-project-timeline__years a.is-active,
.entry-content .adg-project-timeline__years a:hover,
.entry-content .adg-project-timeline__years a:focus-visible,
.entry-content .adg-project-timeline__years a.is-active {
  background:var(--blue);
  color:#fff !important;
  border-color:var(--blue);
  box-shadow:0 8px 24px rgba(6,74,194,.18);
}

.adg-project-timeline__layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 88px;
  gap:clamp(1rem,2.5vw,2.25rem);
  align-items:start;
}
.adg-project-timeline__years-content { min-width:0; }
.adg-project-timeline__side-nav-shell {
  align-self:stretch;
  min-width:0;
}
.adg-project-timeline__side-nav {
  position:sticky;
  top:clamp(88px,12vh,138px);
  display:grid;
  gap:.38rem;
  padding:.7rem;
  border:1px solid rgba(6,74,194,.13);
  border-radius:18px;
  background:rgba(255,255,255,.92);
  box-shadow:0 12px 34px rgba(22,26,32,.08);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateX(34px);
  transition:
    opacity .24s ease,
    transform .28s cubic-bezier(.22,.8,.35,1),
    visibility 0s linear .28s;
  z-index:6;
}
.adg-project-timeline__side-nav-shell.is-visible .adg-project-timeline__side-nav {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateX(0);
  transition-delay:0s;
}
.adg-project-timeline__side-nav-label {
  display:block;
  padding:.1rem .25rem .35rem;
  color:#66758a;
  font-size:.67rem;
  font-weight:900;
  letter-spacing:.14em;
  text-align:center;
  text-transform:uppercase;
}
.adg-project-timeline__side-nav a {
  min-width:60px;
  min-height:42px;
  display:grid;
  place-items:center;
  padding:.45rem .55rem;
  border:1px solid transparent;
  border-radius:999px;
  background:transparent;
  color:var(--blue-dark);
  font-size:.88rem;
  font-weight:850;
  line-height:1;
  text-decoration:none;
  font-variant-numeric:tabular-nums;
  transition:background .18s ease,color .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.adg-project-timeline__side-nav a:hover,
.adg-project-timeline__side-nav a:focus-visible,
.adg-project-timeline__side-nav a.is-active,
.entry-content .adg-project-timeline__side-nav a:hover,
.entry-content .adg-project-timeline__side-nav a:focus-visible,
.entry-content .adg-project-timeline__side-nav a.is-active {
  background:var(--blue);
  color:#fff !important;
  border-color:var(--blue);
  box-shadow:0 7px 20px rgba(6,74,194,.18);
}
.adg-project-timeline__side-nav a:focus-visible {
  outline:3px solid rgba(24,168,239,.35);
  outline-offset:2px;
}

.adg-project-timeline__year { scroll-margin-top: 1.5rem; margin:0 0 clamp(4.5rem,9vw,8rem); }
.adg-project-timeline__year-head { margin:0 auto clamp(2rem,4vw,3.5rem); text-align:center; }
.adg-project-timeline__year-head p { margin:0 0 .25rem; color:var(--blue); font-size:.72rem; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
.adg-project-timeline__year-head h2 { margin:0; color:var(--ink); font-size:clamp(3rem,7vw,6.4rem); line-height:.9; letter-spacing:-.055em; font-variant-numeric:tabular-nums; }
.adg-project-timeline__items { position:relative; display:grid; gap:clamp(1rem,2.2vw,2rem); }
.adg-project-timeline__items::before { content:""; position:absolute; top:0; bottom:0; left:50%; width:2px; transform:translateX(-50%); background:linear-gradient(to bottom,transparent,var(--tl-line) 4%,var(--tl-line) 96%,transparent); }
.adg-project-timeline__item { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 74px minmax(0,1fr); align-items:start; min-width:0; }
.adg-project-timeline__marker { grid-column:2; width:16px; height:16px; margin:2rem auto 0; border:4px solid #fff; border-radius:50%; background:var(--blue); box-shadow:0 0 0 2px var(--blue),0 6px 16px rgba(6,74,194,.18); z-index:2; }
.adg-project-timeline__card { min-width:0; overflow:hidden; border:1px solid rgba(6,74,194,.12); border-radius:22px; background:var(--tl-card); box-shadow:0 14px 40px rgba(22,26,32,.065); }
.adg-project-timeline__item--left .adg-project-timeline__card { grid-column:1; grid-row:1; }
.adg-project-timeline__item--right .adg-project-timeline__card { grid-column:3; grid-row:1; }
.adg-project-timeline__media { aspect-ratio:16/9; overflow:hidden; background:var(--pale); }
.adg-project-timeline__media a { display:block; height:100%; }
.adg-project-timeline__media img { width:100%; height:100%; display:block; object-fit:cover; }
.adg-project-timeline__card-body { padding:clamp(1.15rem,2.4vw,1.75rem); }
.adg-project-timeline__meta { display:flex; flex-wrap:wrap; align-items:center; gap:.55rem .8rem; margin-bottom:.7rem; color:var(--blue-dark); font-size:.78rem; font-weight:850; letter-spacing:.035em; text-transform:uppercase; }
.adg-project-timeline__status { display:inline-flex; align-items:center; min-height:26px; padding:.2rem .55rem; border-radius:999px; background:var(--pale); color:var(--blue-dark); }
.adg-project-timeline__item--planned .adg-project-timeline__status { background:rgba(244,122,85,.13); color:#8b351f; }
.adg-project-timeline__card h3 { margin:0; color:var(--ink); font-size:clamp(1.35rem,2.4vw,2rem); line-height:1.08; letter-spacing:-.025em; overflow-wrap:anywhere; hyphens:auto; }
.adg-project-timeline__text { margin-top:.85rem; color:#435066; line-height:1.68; }
.adg-project-timeline__text > :first-child { margin-top:0; }
.adg-project-timeline__text > :last-child { margin-bottom:0; }
.adg-project-timeline__link { margin:1rem 0 0; }
.adg-project-timeline__link a { color:var(--blue); font-weight:800; text-decoration:none; }
.adg-project-timeline__link a:hover { text-decoration:underline; text-underline-offset:4px; }

/* Milestones deliberately break the alternating rhythm. */
.adg-project-timeline__item--milestone { margin:clamp(.75rem,2vw,1.5rem) 0; }
.adg-project-timeline__item--milestone .adg-project-timeline__marker { display:none; }
.adg-project-timeline__item--milestone .adg-project-timeline__card { grid-column:1 / -1; width:min(100%,1040px); margin-inline:auto; border-color:rgba(6,74,194,.22); box-shadow:0 22px 62px rgba(6,74,194,.11); }
.adg-project-timeline__item--milestone .adg-project-timeline__media { aspect-ratio:21/9; }
.adg-project-timeline__item--milestone .adg-project-timeline__card-body { padding:clamp(1.4rem,3vw,2.35rem); }
.adg-project-timeline__item--milestone .adg-project-timeline__card h3 { max-width:24ch; font-size:clamp(1.9rem,4vw,3.4rem); }
.adg-project-timeline__item--milestone .adg-project-timeline__card::before { content:""; display:block; width:64px; height:4px; margin:0 0 -4px 0; background:var(--blue); position:relative; z-index:2; }

/* Compact notes document the process without competing with milestones. */
.adg-project-timeline__item--note .adg-project-timeline__card { box-shadow:none; background:var(--warm); }
.adg-project-timeline__item--note .adg-project-timeline__card-body { padding:1rem 1.15rem; }
.adg-project-timeline__item--note .adg-project-timeline__card h3 { font-size:1.05rem; letter-spacing:-.01em; }
.adg-project-timeline__item--note .adg-project-timeline__marker { width:12px; height:12px; margin-top:1.4rem; background:#fff; border-width:3px; }

.adg-project-timeline__item--planned .adg-project-timeline__card { border-style:dashed; background:linear-gradient(135deg,#fff,rgba(244,122,85,.035)); }
.adg-project-timeline__item--progress .adg-project-timeline__marker { box-shadow:0 0 0 2px var(--blue),0 0 0 9px rgba(24,168,239,.13); }


/* A deliberately open-ended finish: the project timeline continues. */
.adg-project-timeline__closing {
  position:relative;
  display:grid;
  justify-items:center;
  margin:clamp(-1rem, -1vw, 0rem) 0 clamp(1rem,3vw,2.5rem);
  padding-top:clamp(2.5rem,6vw,4.5rem);
  text-align:center;
}
.adg-project-timeline__closing-line {
  position:absolute;
  top:0;
  left:50%;
  width:2px;
  height:clamp(3rem,7vw,5rem);
  transform:translateX(-50%);
  background:linear-gradient(to bottom,var(--tl-line),rgba(6,74,194,.05));
}
.adg-project-timeline__closing-line span {
  position:absolute;
  left:50%;
  bottom:-7px;
  width:14px;
  height:14px;
  transform:translateX(-50%);
  border:3px solid #fff;
  border-radius:50%;
  background:var(--blue);
  box-shadow:0 0 0 2px var(--blue),0 8px 20px rgba(6,74,194,.16);
}
.adg-project-timeline__closing-card {
  position:relative;
  width:min(100%,760px);
  padding:clamp(1.6rem,4vw,2.6rem) clamp(1.25rem,4vw,3rem);
  border:1px solid rgba(6,74,194,.13);
  border-radius:26px;
  background:
    radial-gradient(circle at 92% 0,rgba(24,168,239,.10),transparent 27%),
    linear-gradient(135deg,#fff,var(--pale));
  box-shadow:0 18px 48px rgba(22,26,32,.07);
}
.adg-project-timeline__closing-kicker {
  display:block;
  margin-bottom:.6rem;
  color:var(--blue);
  font-size:.7rem;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.adg-project-timeline__closing p {
  max-width:18ch;
  margin:0 auto;
  color:var(--ink);
  font-size:clamp(2rem,5vw,4.2rem);
  font-weight:850;
  line-height:1.02;
  letter-spacing:-.045em;
  text-wrap:balance;
}
.adg-project-timeline__closing-dots {
  display:flex;
  justify-content:center;
  gap:.42rem;
  margin-top:1.2rem;
}
.adg-project-timeline__closing-dots i {
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--blue);
  opacity:.28;
}
.adg-project-timeline__closing-dots i:nth-child(2) { opacity:.5; }
.adg-project-timeline__closing-dots i:nth-child(3) { opacity:.82; }


@media (max-width: 1080px) {
  .adg-project-timeline__layout { grid-template-columns:minmax(0,1fr); }
  .adg-project-timeline__side-nav-shell { display:none; }
}

@media (max-width: 760px) {
  .adg-project-timeline { width:min(100% - 1.4rem,680px); margin-top:2.4rem; }
  .adg-project-timeline__years-track { justify-content:flex-start; }
  .adg-project-timeline__years { margin-bottom:2.2rem; }
  .adg-project-timeline__year-head { text-align:left; padding-left:44px; }
  .adg-project-timeline__year-head h2 { font-size:clamp(3rem,17vw,4.9rem); }
  .adg-project-timeline__items::before { left:14px; transform:none; }
  .adg-project-timeline__item { grid-template-columns:30px minmax(0,1fr); gap:0; }
  .adg-project-timeline__marker,
  .adg-project-timeline__item--left .adg-project-timeline__marker,
  .adg-project-timeline__item--right .adg-project-timeline__marker { grid-column:1; grid-row:1; margin:1.55rem 0 0 7px; }
  .adg-project-timeline__item--left .adg-project-timeline__card,
  .adg-project-timeline__item--right .adg-project-timeline__card,
  .adg-project-timeline__item--milestone .adg-project-timeline__card { grid-column:2; grid-row:1; width:100%; margin:0; }
  .adg-project-timeline__item--milestone .adg-project-timeline__marker { display:block; width:17px; height:17px; margin-left:5.5px; }
  .adg-project-timeline__item--milestone .adg-project-timeline__media { aspect-ratio:4/3; }
  .adg-project-timeline__media { aspect-ratio:4/3; }
  .adg-project-timeline__closing {
    justify-items:start;
    padding-left:30px;
    text-align:left;
  }
  .adg-project-timeline__closing-line {
    left:14px;
    transform:none;
  }
  .adg-project-timeline__closing-line span {
    left:50%;
  }
  .adg-project-timeline__closing-card {
    width:100%;
    border-radius:22px;
  }
  .adg-project-timeline__closing p {
    max-width:12ch;
    margin-inline:0;
    font-size:clamp(2rem,11vw,3.6rem);
  }
  .adg-project-timeline__closing-dots {
    justify-content:flex-start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .adg-project-timeline__years { scroll-behavior:auto; }
  .adg-project-timeline__years a,
  .adg-project-timeline__side-nav { transition:none; }
}

@media (forced-colors: active) {
  .adg-project-timeline__years a,
  .adg-project-timeline__side-nav a,
  .adg-project-timeline__side-nav,
  .adg-project-timeline__card,
  .adg-project-timeline__closing-card,
  .adg-project-timeline__marker,
  .adg-project-timeline__closing-line span { border:1px solid CanvasText; }
  .adg-project-timeline__items::before { background:CanvasText; }
}
