/* ============================================================
   Timeline page — vertical chronological scroll.
   Inherits the cream/Fraunces editorial palette from today.css.
   ============================================================ */

.timeline {
  position: relative;
  padding-left: 22px;
  border-left: 1px solid var(--rule);
}

.day {
  position: relative;
  padding: 18px 0 24px 6px;
}

/* node on the rail */
.day::before {
  content: '';
  position: absolute;
  left: -27px;
  top: 26px;
  width: 9px; height: 9px;
  border-radius: 50%;
  background: var(--paper);
  border: 1px solid var(--ink);
}

.day.past::before { background: var(--paper); border-color: var(--mute); }
.day.today::before { background: var(--rust); border-color: var(--rust); width: 12px; height: 12px; left: -29px; top: 24px; box-shadow: 0 0 0 4px rgba(160, 74, 37, 0.18); }
.day.future::before { background: var(--paper); border-color: var(--ink); }

.day-label {
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--mute);
  margin-bottom: 4px;
}
.day.today .day-label { color: var(--rust); }

.day-date {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 22px;
  letter-spacing: -0.02em;
  margin-bottom: 10px;
}
.day.today .day-date { font-weight: 600; }

.day-empty {
  font-family: 'Fraunces', Georgia, serif;
  font-style: italic;
  color: var(--mute);
  font-size: 14px;
}

/* entries */
.entry {
  display: block;
  padding: 8px 0;
  border-bottom: 1px solid var(--rule);
  text-decoration: none;
  color: inherit;
}
.entry:last-child { border-bottom: 0; }

.entry-row {
  display: flex; align-items: baseline; gap: 10px;
}
.entry-kind {
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rust);
  flex: 0 0 auto;
  padding-top: 1px;
  min-width: 64px;
}
.entry-name {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 16px;
  line-height: 1.35;
  flex: 1;
}
.entry.task.done .entry-name { color: var(--mute); text-decoration: line-through; }

.entry-meta {
  font-family: 'Fraunces', Georgia, serif;
  font-style: italic;
  color: var(--mute);
  font-size: 12px;
  margin-top: 2px;
  margin-left: 74px;
}

/* milestone is more prominent */
.entry.milestone {
  padding: 10px 0;
}
.entry.milestone .entry-kind { color: var(--plum); }
.entry.milestone .entry-name {
  font-size: 18px;
  font-weight: 500;
}

/* dim past entries slightly */
.day.past .entry {
  opacity: 0.78;
}

/* scroll anchor */
:target { scroll-margin-top: 24px; }

/* anchor pill at top to jump to today */
.jump-today {
  position: sticky;
  top: 12px;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--ink);
  color: var(--paper);
  padding: 8px 14px;
  border-radius: 999px;
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.06em;
  text-decoration: none;
  margin-left: -22px; /* counter the timeline padding */
  margin-bottom: 16px;
  cursor: pointer;
  border: 0;
}
.jump-today:active { transform: scale(0.96); }
