/* ── Education timeline ── */
.timeline { position: relative; padding-left: 2.5rem; }
.timeline::before {
  content: '';
  position: absolute;
  left: 0; top: 6px; bottom: 6px;
  width: 2px;
  background: linear-gradient(180deg, var(--accent), var(--accent2), rgba(191,0,255,.18), transparent);
}
.timeline-item {
  position: relative;
  padding: 1.7rem 1.87rem;
  margin-bottom: 1.8rem;
}
.timeline-item::before {
  content: '';
  position: absolute;
  left: -2.95rem; top: 2.5rem;
  width: 14px; height: 14px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 5px rgba(0,240,255,.14), 0 0 18px var(--accent);
}
.tl-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: .6rem;
  padding-right: 144px;
}
.tl-header-text { flex: 1; min-width: 0; }
.tl-school {
  font-size: .7rem; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--accent); margin-bottom: .3rem;
}
.tl-period { font-size: .78rem; color: var(--muted); margin-top: .18rem; }
.tl-badge {
  position: absolute; top: 1.7rem; right: 1.87rem;
  width: 120px; height: 120px;
  border-radius: 40px;
  object-fit: contain;
  background: #ffffff;
  padding: 10px;
  filter: drop-shadow(0 5px 16px rgba(0,0,0,.5));
  transition: transform .3s, filter .3s;
}
.tl-badge:hover {
  transform: scale(1.1) rotate(-3deg);
  filter: drop-shadow(0 10px 28px rgba(0,0,0,.65));
}
.tl-degree {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.32rem; font-weight: 600; margin-bottom: .35rem;
}
.tl-meta { font-size: .943rem; color: #ff6b6b; font-weight: 700; margin-bottom: .9rem; }
.tl-detail { font-size: .88rem; color: var(--text); }
.tl-label { font-weight: 700; font-size: .925rem; }
.tl-badges-row { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .8rem; }
.tl-gpa {
  display: inline-block;
  background: rgba(255,215,0,.1);
  border: 1px solid rgba(255,215,0,.3);
  color: var(--gold);
  font-size: .7rem; font-weight: 700;
  padding: .22rem .85rem; border-radius: 20px;
  letter-spacing: .06em;
}
