/* Timeline — a centred hero and a career spine with alternating entries. */
:root { --t-font-display: "Source Serif 4", Georgia, serif; --t-font-body: "Inter", system-ui, sans-serif; --t-max: 960px; }

.t-hero--centred .t-hero__inner { grid-template-columns: 1fr; justify-items: center; text-align: center; padding-block: clamp(40px, 7vw, 80px) clamp(16px, 3vw, 32px); }
.t-hero--centred .t-photo { width: clamp(120px, 18vw, 160px); border-radius: 50%; box-shadow: 0 0 0 6px var(--t-surface2); }
.t-hero--centred .t-headline, .t-hero--centred .t-tagline { margin-inline: auto; }
.t-hero--centred .t-meta, .t-hero--centred .t-actions, .t-hero--centred .t-links { justify-content: center; }
.t-hero--centred .t-stats { justify-content: center; gap: 32px 48px; text-align: center; }
.t-name { font-weight: 600; font-size: clamp(2.4rem, 5.5vw, 3.4rem); }
.t-section__title { text-align: center; font-weight: 600; }
.t-section--summary .t-section__title { display: none; }
.t-summary { text-align: center; max-width: 60ch; margin-inline: auto; font-size: var(--t-size-2); }

/* the spine */
.t-section--experience .t-timeline, .t-section--education .t-timeline { position: relative; gap: 28px; padding-block: 8px; }
.t-section--experience .t-timeline::before, .t-section--education .t-timeline::before { content: ""; position: absolute; inset-block: 0; inset-inline-start: 10px; width: 2px; background: var(--t-line); }
.t-section--experience .t-timeline__item, .t-section--education .t-timeline__item { grid-template-columns: 1fr; padding-inline-start: 36px; position: relative; }
.t-section--experience .t-timeline__item::before, .t-section--education .t-timeline__item::before { content: ""; position: absolute; inset-inline-start: 4px; top: 4px; width: 14px; height: 14px; border-radius: 50%; background: var(--t-accent); border: 3px solid var(--t-bg); box-shadow: 0 0 0 2px var(--t-accent); }
.t-timeline__body { background: var(--t-surface); border: 1px solid var(--t-line); border-radius: var(--t-radius); padding: 16px 18px; box-shadow: var(--t-shadow); }
.t-timeline__when { font-weight: 600; color: var(--t-accent-text); margin-block-end: 6px; }
@media (min-width: 860px) {
  .t-section--experience .t-timeline::before, .t-section--education .t-timeline::before { inset-inline-start: 50%; margin-inline-start: -1px; }
  .t-section--experience .t-timeline__item, .t-section--education .t-timeline__item { width: calc(50% - 32px); padding-inline-start: 0; }
  .t-section--experience .t-timeline__item:nth-child(even), .t-section--education .t-timeline__item:nth-child(even) { margin-inline-start: auto; }
  .t-section--experience .t-timeline__item::before, .t-section--education .t-timeline__item::before { inset-inline-start: auto; inset-inline-end: -40px; }
  .t-section--experience .t-timeline__item:nth-child(even)::before, .t-section--education .t-timeline__item:nth-child(even)::before { inset-inline-end: auto; inset-inline-start: -40px; }
  .t-section--experience .t-timeline__item:nth-child(odd) .t-timeline__when, .t-section--education .t-timeline__item:nth-child(odd) .t-timeline__when { text-align: end; }
}
.t-chips { justify-content: center; }
.t-section--links .t-links { justify-content: center; }

/* the year ribbon (the Timeline signature) */
.t-ribbon { width: 100%; margin-block-start: 8px; }
.t-ribbon ol { list-style: none; margin: 0; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); position: relative; border-block-start: 3px solid var(--t-line); padding-block-start: 14px; }
.t-ribbon li { position: relative; text-align: center; font-size: var(--t-size-0); color: var(--t-muted); font-variant-numeric: tabular-nums; }
.t-ribbon li::before { content: ""; position: absolute; top: -9px; inset-inline-start: 50%; width: 1px; height: 6px; background: var(--t-line); }
.t-ribbon li span { display: inline-block; transform: rotate(-60deg); transform-origin: top left; margin-inline-start: 50%; white-space: nowrap; }
@media (min-width: 900px) { .t-ribbon li span { transform: none; margin: 0; } }
.t-ribbon__role::before { background: var(--t-accent); width: 14px; height: 14px; border-radius: 50%; top: -22px; margin-inline-start: -7px; box-shadow: 0 0 0 3px var(--t-bg); }
.t-ribbon__edu::before { background: var(--t-accent2); width: 10px; height: 10px; border-radius: 50%; top: -20px; margin-inline-start: -5px; box-shadow: 0 0 0 3px var(--t-bg); }
.t-ribbon__now { color: var(--t-accent-text); font-weight: 700; }
.t-ribbon__now::after { content: ""; position: absolute; top: -3px; inset-inline-start: 50%; width: 3px; height: 20px; background: var(--t-accent); margin-inline-start: -1px; }
.t-ribbon__legend { display: flex; justify-content: center; gap: 18px; margin: 12px 0 0; font-size: var(--t-size-0); color: var(--t-muted); }
.t-ribbon__k { display: inline-flex; align-items: center; gap: 6px; }
.t-ribbon__k::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--t-line); }
.t-ribbon__k--role::before { background: var(--t-accent); } .t-ribbon__k--edu::before { background: var(--t-accent2); } .t-ribbon__k--now::before { border-radius: 0; width: 3px; background: var(--t-accent); }
