/* Progressive enhancement: content remains visible without JavaScript or motion. */
.reg-timeline { --reg-axis: 146px; --reg-progress: 0; padding-block: var(--space-5) var(--space-7); }
.reg-timeline-toolbar { display: flex; justify-content: space-between; gap: var(--space-5); align-items: baseline; border-bottom: 1px solid #b8ccbf; padding-bottom: var(--space-4); margin-bottom: var(--space-5); }
.reg-timeline-toolbar p { margin: 0; }
.reg-timeline-toolbar > p:last-child { font-size: .85rem; color: #587262; }
.reg-timeline-layout { display: grid; grid-template-columns: 180px minmax(0,1fr); gap: var(--space-7); }
.reg-timeline-sidebar { position: sticky; top: calc(var(--header-height) + var(--space-5)); align-self: start; }
.reg-timeline-sidebar nav { display: grid; }
.reg-timeline-sidebar nav a { display: flex; align-items: center; justify-content: space-between; min-height: 44px; gap: var(--space-2); border-bottom: 1px solid #d5e1d7; color: #4d6a58; text-decoration: none; font-size: .86rem; padding-inline: var(--space-2); transition: color 200ms,background 200ms; }
.reg-timeline-sidebar nav a[aria-current="step"] { color: #174f39; background: #e3f0e6; box-shadow: inset 3px 0 #347b5b; font-weight: 700; }
.reg-timeline a:focus-visible { outline: 2px solid #347b5b; outline-offset: 3px; }
.reg-timeline-sidebar .editorial-note { font-size: .76rem; color: #5c7363; }
.reg-timeline-main { min-width: 0; }
.reg-timeline-main > h2 { margin: 0 0 var(--space-5); max-width: 32ch; color: #173e30; font: 400 clamp(1.7rem,2.2vw,2.3rem)/1.15 var(--serif); letter-spacing: -.025em; }
.reg-timeline-events { position: relative; }
.reg-timeline-track { position: absolute; width: 2px; top: 32px; bottom: 32px; left: var(--reg-axis); background: #c9d9ce; pointer-events: none; }
.reg-timeline-fill { display: block; width: 100%; height: 100%; transform: scaleY(var(--reg-progress)); transform-origin: top; background: linear-gradient(#80b39a,#205c49); }
.reg-timeline-list { margin: 0; padding: 0; list-style: none; }
.reg-event { position: relative; padding: 0 0 var(--space-5) calc(var(--reg-axis) + 30px); scroll-margin-top: calc(var(--header-height) + var(--space-5)); }
.reg-event:last-child { padding-bottom: 0; }
.reg-event::before { content: attr(data-period); position: absolute; left: 0; top: 24px; width: calc(var(--reg-axis) - 20px); color: #527662; font: 400 clamp(1.65rem,2.2vw,2.2rem)/1.06 var(--serif); letter-spacing: -.04em; overflow-wrap: anywhere; transition: color 300ms; }
.reg-event::after { content: ''; position: absolute; width: 13px; height: 13px; border-radius: 50%; border: 2px solid #76a58b; background: #f7faf6; left: calc(var(--reg-axis) - 5.5px); top: 27px; transition: background 350ms,box-shadow 350ms,border-color 350ms; }
.reg-event-card { padding: var(--space-5); background: #eff5ef; border: 1px solid #c7d9cc; border-top: 2px solid #afcbb9; border-radius: 2px 14px 14px 14px; box-shadow: 0 4px 14px #14392c06; transition: opacity 600ms ease,transform 600ms cubic-bezier(.2,.65,.2,1),border-color 300ms,box-shadow 300ms; }
.reg-event-card h3 { margin: 0 0 var(--space-3); color: #173e30; font: 400 clamp(1.35rem,1.8vw,1.75rem)/1.18 var(--serif); letter-spacing: -.02em; }
.reg-event-card p { margin: 0 0 var(--space-3); color: #405d4a; font-size: 1rem; line-height: 1.6; }
.reg-event-card > :last-child { margin-bottom: 0; }
.reg-event.is-current::before { color: #154f35; }
.reg-event.is-current::after { background: #2b7554; border-color: #2b7554; box-shadow: 0 0 0 6px #347b5b1a; }
.reg-event.is-current .reg-event-card, .reg-event:target .reg-event-card { border-top-color: #347b5b; box-shadow: 0 6px 22px #14392c0c; }
.reg-timeline.is-animated .reg-event:not(.is-revealed) .reg-event-card { opacity: .25; transform: translateY(18px); }
.reg-timeline.is-animated .reg-event:target .reg-event-card, .reg-timeline.is-animated .reg-event:focus-within .reg-event-card { opacity: 1; transform: none; }
.reg-source-date { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (max-width:1000px) {
  .reg-timeline-layout { grid-template-columns: 150px minmax(0,1fr); gap: var(--space-5); }
  .reg-timeline { --reg-axis: 116px; }
  .reg-event-card { padding: var(--space-4); }
}
@media (max-width:760px) {
  .reg-timeline { --reg-axis: 6px; }
  .reg-timeline-toolbar { align-items: start; flex-direction: column; gap: var(--space-2); }
  .reg-timeline-layout { grid-template-columns: minmax(0,1fr); gap: var(--space-5); }
  .reg-timeline-sidebar { position: static; }
  .reg-timeline-sidebar nav { grid-template-columns: 1fr 1fr; gap: 0 var(--space-4); }
  .reg-timeline-sidebar .editorial-note { margin-top: var(--space-3); }
  .reg-event { padding-left: 30px; padding-top: 34px; }
  .reg-event::before { top: 0; left: 30px; width: auto; font-size: 1.55rem; }
  .reg-event::after { top: 8px; }
  .reg-timeline-track { top: 14px; bottom: 24px; }
  .reg-event-card { border-radius: 2px 10px 10px 10px; }
  .reg-event-card p { font-size: .94rem; line-height: 1.55; }
}
@media (prefers-reduced-motion:reduce) {
  html:has([data-reg-timeline]) { scroll-behavior: auto; }
  .reg-timeline *, .reg-timeline *::before, .reg-timeline *::after { transition: none !important; animation: none !important; }
  .reg-timeline.is-animated .reg-event:not(.is-revealed) .reg-event-card { opacity: 1; transform: none; }
}
@media print {
  .reg-timeline-sidebar, .reg-timeline-toolbar { display: none; }
  .reg-timeline-layout { display: block; }
  .reg-event-card { opacity: 1 !important; transform: none !important; break-inside: avoid; box-shadow: none; }
}
