/* About page */

/* About links: tighter, cleaner */
.about-link {
  transition: opacity 0.15s ease, transform 0.15s ease;
}
.about-link:hover {
  opacity: 0.75;
  transform: translateY(-1px);
}

/* Profile image: subtle depth */
.about-image {
  border-radius: 6px;
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.12);
  transition: box-shadow 0.2s ease;
}
.about-image:hover {
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.18);
}

/* Section headings: subtle underline accent */
#experience h2,
#education h2,
#honors-awards h2,
#publications h2 {
  font-size: 1.4rem;
  font-weight: 600;
  margin-top: 2.2em;
  padding-bottom: 0.3em;
  border-bottom: 1px solid var(--bs-border-color, #dee2e6);
}

/* Timeline */
#experience,
#education {
  position: relative;
}

/* Vertical rail — start below the section h2 */
#experience::before,
#education::before {
  content: '';
  position: absolute;
  left: 0.35em;
  top: 6em;
  bottom: 0.5em;
  width: 2px;
  background: var(--bs-border-color, #dee2e6);
}

/* Extra clearance so first org content doesn't crowd the h2 */
#experience > .org:first-of-type,
#education > .org:first-of-type {
  padding-top: 0.5em;
}

/* Org group */
.org {
  margin-bottom: 2em;
}
.org:last-child {
  margin-bottom: 0;
}

/* Org name */
.org > p:first-child {
  padding-left: 1.5em;
  font-weight: 700;
  margin-bottom: 0.25em;
}

/* Entry: content gets full width, dot is absolute */
.entry {
  position: relative;
  padding-left: 1.5em;
  margin-bottom: 1.5em;
}
.entry:last-child {
  margin-bottom: 0;
}

/* Dot on the rail — centred on the line at 0.35em */
.entry::before {
  content: '';
  position: absolute;
  left: 0.35em;
  transform: translateX(-50%);
  top: 0.45em;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  border: 2px solid var(--bs-border-color, #dee2e6);
  background: var(--bs-body-bg, #fff);
  transition: background 0.3s, border-color 0.3s, transform 0.3s;
}

/* Active dot fills in with accent colour */
.entry.active::before {
  background: var(--bs-primary, #0d6efd);
  border-color: var(--bs-primary, #0d6efd);
  transform: translateX(-50%) scale(1.25);
}

.entry p:first-of-type {
  margin-bottom: 0.2em;
}

/* Date range on its own line, muted */
.range {
  display: block;
  font-size: 0.85em;
  color: var(--bs-secondary-color, #6c757d);
  margin: 0.1em 0 0.4em 0;
}

/* Lists: compact */
section.level2 ul {
  padding-left: 1.2em;
}
section.level2 ul li {
  margin-bottom: 0.3em;
}
