.photo-timeline { list-style: none; padding: 0 0 0 34px; margin: 36px 0 0 8px; border-left: 2px solid var(--wine); }
.photo-timeline > li { position: relative; padding-bottom: 56px; }
.photo-timeline > li::before { content: ''; position: absolute; left: -42px; top: 5px; width: 14px; height: 14px; border-radius: 50%; background: var(--wine); border: 3px solid var(--paper); box-sizing: content-box; }
.photo-timeline time { display: block; color: var(--wine); font-size: .9rem; margin-bottom: 12px; }
.photo-timeline h3 { margin-bottom: 16px; }
.album-photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 24px; }
.album-photos figure { margin: 0; min-width: 0; padding: 10px; background: white; box-shadow: 0 4px 14px #35142112; }
.album-photos img { width: 100%; height: auto; }
.album-photos figcaption { padding: 12px 4px 4px; color: var(--muted); }
.album-empty { padding: 28px; background: var(--rose); border-radius: 4px; }
@media (max-width: 600px) {
  .photo-timeline { padding-left: 22px; }
  .photo-timeline > li::before { left: -30px; }
  .album-photos { grid-template-columns: 1fr; gap: 16px; }
}
