  /* ══════════════════════════════════════════
     TIMELINE WRAPPER
  ══════════════════════════════════════════ */
  .impact-timeline-wrap {
    position: relative;
    max-width: 900px;
    overflow: hidden; /* hides scrollbar while keeping scroll */
    margin: 0 auto;
    outline: 5px inset rgba(46,107,62,0.2);
    outline-offset: 0.5rem;;
  }

  .tl-scroll-btn {
    opacity: 0.4;
    transition: opacity 0.3s, transform 0.3s;
  }

  .tl-scroll-btn:hover {
    opacity: 1;
    transform: scale(1.2);
  }

  .fa-angles-left.tl-scroll-btn {
    position: absolute;
    left: 12px; top: 2%;
    /* transform: translateY(-50%); */
    font-size: 1.2rem;
    color: var(--amber);
    /* opacity: 0; */
    /* transition: opacity 0.3s; */
    z-index: 6;
    pointer-events: all;
    cursor: pointer;
  }

  .fa-angles-right.tl-scroll-btn {
    position: absolute;
    right: 12px; top: 2%;
    /* transform: translateY(-50%); */
    font-size: 1.2rem;
    color: var(--amber);
    /* opacity: 0; */
    /* transition: opacity 0.3s; */
    z-index: 6;
    pointer-events: auto;
    cursor: pointer;
  }

  /* Fade-out edges to hint at scrollable content */
  .impact-timeline-wrap::before,
  .impact-timeline-wrap::after {
    content: '';
    position: absolute;
    top: 0; bottom: 0;
    width: 80px;
    z-index: 4;
    pointer-events: none;
    transition: opacity 0.3s;
  }

  .impact-timeline-wrap::before {
    left: 0;
    background: linear-gradient(to right, #0e1e26 0%, transparent 100%);
  }

  .impact-timeline-wrap::after {
    right: 0;
    background: linear-gradient(to left, #0e1e26 0%, transparent 100%);
  }

  /* ── Hover zones — left and right triggers ── */
  .tl-hover-left,
  .tl-hover-right {
    position: absolute;
    top: 0; bottom: 0;
    width: 80px;
    z-index: 5;
    cursor: pointer;
  }

  .tl-hover-left  { left: 0; }
  .tl-hover-right { right: 0; }

  /* Arrow hints inside the hover zones */
  .tl-hover-left::after,
  .tl-hover-right::after {
    content: '';
    position: absolute;
    /* top: 50%; */
    bottom: 5%;
    transform: translateY(-50%);
    width: 10px; height: 10px;
    border-top: 2px solid var(--amber);
    opacity: 1;
    transition: opacity 0.3s;
  }

  .tl-hover-left::after  {
    left: 18px;
    border-left: 2px solid var(--amber);
    transform: translateY(-50%) rotate(-45deg);
  }

  .tl-hover-right::after {
    right: 18px;
    border-right: 2px solid var(--amber);
    transform: translateY(-50%) rotate(45deg);
  }

  .tl-hover-left:hover::after,
  .tl-hover-right:hover::after { opacity: 1; }

  /* ══════════════════════════════════════════
     SCROLLABLE TRACK
  ══════════════════════════════════════════ */
  .tl-track {
    display: flex;
    align-items: center;
    overflow-x: auto;
    overflow-y: visible;
    scroll-behavior: smooth;
    /* -webkit-overflow-scrolling: touch; */
    /* padding: 80px 80px 80px 80px; */
    padding: 20px 40px;
    /* Hide scrollbar across all browsers */
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

  .tl-track::-webkit-scrollbar { display: none; }

  /* ══════════════════════════════════════════
     THE SPINE — horizontal connecting line
  ══════════════════════════════════════════ */
  .tl-spine {
    position: relative;
    display: flex;
    align-items: center;
    flex-shrink: 0;
    /* transition: left 1s ease; */
  }

  /* The actual line drawn as a pseudo-element on the spine container */
  .tl-spine::before {
    content: '';
    position: absolute;
    left: 0; right: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 1px;
    background: linear-gradient(
      to right,
      transparent 0%,
      rgba(37,95,114,0.5) 4%,
      rgba(37,95,114,0.5) 90%,
      var(--amber) 100%
    );
    z-index: 0;
  }

  /* Future arrow at the right end */
  .tl-future-arrow {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding-left: 1.2rem;
    position: relative;
    z-index: 1;
  }

  .tl-future-arrow span {
    transform: translate(10px, -20px);
  }

  .tl-future-arrow span {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.6rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--amber);
    opacity: 0.7;
    white-space: nowrap;
  }

  .tl-future-arrow::before {
    content: '';
    width: 28px; height: 1px;
    background: var(--amber);
    opacity: 0.5;
  }

  .tl-future-arrow::after {
    content: '';
    width: 0; height: 0;
    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
    border-left: 8px solid var(--amber);
    opacity: 0.7;
  }

  /* ══════════════════════════════════════════
     INDIVIDUAL YEAR NODE
  ══════════════════════════════════════════ */
  .tl-node {
    position: relative;
    flex-shrink: 0;
    width: 160px;
    display: flex;
    flex-direction: column;
    align-items: center;
    cursor: pointer;
    z-index: 1;
  }

  /* Alternating: even nodes have text above, odd have text below */
  .tl-node:nth-child(even) { flex-direction: column-reverse; }

  /* ── Content block (label + text) ── */
  .tl-node-content {
    width: 140px;
    text-align: center;
    padding: 0.75rem 0;
    transition: transform 0.2s;
  }

  /* .tl-node:hover .tl-node-content { transform: translateY(-3px); }
  .tl-node:nth-child(even):hover .tl-node-content { transform: translateY(3px); } */

  .tl-year {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.5rem;
    color: var(--amber);
    line-height: 1;
    margin-bottom: 0.3rem;
    transition: color 0.2s;
  }

  .tl-node:hover .tl-year { color: var(--amber-light); }

  .tl-text {
    font-size: 0.85rem;
    line-height: 1.5;
    letter-spacing: 1px;
    /* color: var(--text-dim); */
    color: #bbb;
    font-weight: 300;
    transition: color 0.2s;
  }

  .tl-node:hover .tl-text { color: var(--text-body); }

  /* ── Vertical connector ── */
  .tl-connector {
    width: 1px;
    height: 28px;
    background: linear-gradient(to bottom, rgba(37,95,114,0.6), var(--amber));
    flex-shrink: 0;
    transition: height 0.2s;
  }

  .tl-node:nth-child(even) .tl-connector {
    background: linear-gradient(to top, rgba(37,95,114,0.6), var(--amber));
  }

  /* .tl-node:hover .tl-connector { height: 36px; } */

  /* ── Center dot on the spine ── */
  .tl-dot {
    width: 10px; height: 10px;
    border-radius: 50%;
    background: var(--deep);
    border: 2px solid rgba(37,95,114,0.6);
    flex-shrink: 0;
    transition: border-color 0.2s, transform 0.2s, background 0.2s;
    position: relative;
    z-index: 2;
  }

  .tl-node:hover .tl-dot {
    border-color: var(--amber);
    background: var(--amber);
    /* transform: scale(1.3); */
  }

  /* Click hint */
  .tl-click-hint {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.55rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--amber);
    opacity: 0;
    margin-top: 0.3rem;
    transition: opacity 0.2s;
  }

  .tl-node:hover .tl-click-hint { opacity: 0.7; }

  /* ══════════════════════════════════════════
     MODAL OVERLAY
  ══════════════════════════════════════════ */
  .tl-modal-overlay {
    position: fixed;
    max-width: 100%;
    max-height: 60vh;
    /* inset: 50px 50px 100px; */
    inset: 50px 5px 100px;
    background: rgba(7,16,21,0.88);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s ease;
  }

  .tl-modal-overlay.open {
    opacity: 1;
    pointer-events: auto;
  }

  .tl-modal {
    background: linear-gradient(158deg, #132d38 0%, #0e1e26 100%);
    border: 1px solid var(--border);
    border-top: 3px solid var(--amber);
    max-width: 620px;
    width: 100%;
    padding: 2.5rem;
    position: relative;
    transform: translateY(16px);
    transition: transform 0.4s ease;
    /* max-height: 90vh; */
    max-height: 100%;
    overflow-y: auto;
  }

  .tl-modal-overlay.open .tl-modal { transform: translateY(0); }

  .tl-modal-year {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 2rem;
    color: var(--amber);
    line-height: 1;
    margin-bottom: 0.5rem;
    opacity: 0.25;
    position: absolute;
    top: 0.5rem; left: 1rem;
    pointer-events: none;
  }

  .tl-modal-title {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-main);
    margin-bottom: 1.2rem;
    display: flex;
    align-items: center;
    gap: 0.6rem;
  }

  .tl-modal-title::before {
    content: '';
    width: 20px; height: 1px;
    background: var(--amber);
  }

  .tl-modal-body {
    font-size: 0.88rem;
    line-height: 1.8;
    color: var(--text-body);
    font-weight: 300;
  }

  .tl-modal-body p { margin-bottom: 0.75rem; }
  .tl-modal-body p:last-child { margin-bottom: 0; }

  .tl-modal-close {
    position: absolute;
    top: 1rem; right: 1rem;
    width: 32px; height: 32px;
    background: rgba(37,95,114,0.15);
    border: 1px solid var(--border);
    color: var(--text-dim);
    font-size: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
    clip-path: polygon(6px 0%, 100% 0%, calc(100% - 6px) 100%, 0% 100%);
  }

  .tl-modal-close:hover {
    background: rgba(212,145,26,0.15);
    color: var(--amber);
  }

  /* ══════════════════════════════════════════
     RESPONSIVE — vertical stack on mobile
  ══════════════════════════════════════════ */
  @media (max-width: 1280px) {
    .impact-timeline-wrap { max-width: 700px; }
  }

  @media (max-width: 1024px) {
    .impact-timeline-wrap { max-width: 800px; }
  }

  @media (max-width: 936px) {
    .impact-timeline-wrap { max-width: 800px; }
  }

  @media (max-width: 768px) {

    .impact-timeline-wrap {
      max-width: none;
      padding: 0 1rem;
      max-height: 300px;
      overflow-y: scroll;
    }

    .tl-track {
      flex-direction: column;
      align-items: flex-start;
      overflow-x: hidden;
      overflow-y: auto;
      padding: 2rem 1.5rem;
    }

    .tl-spine {
      flex-direction: column;
      align-items: flex-start;
    }

    .tl-spine::before {
      display: none; /* hide horizontal line on mobile */
      top: 0; bottom: 0; left: 16px; right: auto;
      width: 1px; height: auto;
      background: linear-gradient(
        to bottom,
        transparent 0%,
        rgba(37,95,114,0.5) 4%,
        rgba(37,95,114,0.5) 90%,
        var(--amber) 100%
      );
    }

    .tl-node {
      flex-direction: row !important;
      width: 100%;
      align-items: flex-start;
      gap: 0;
      margin-bottom: 1.5rem;
    }

    .tl-node:nth-child(even) { flex-direction: row !important; }

    .tl-node-content {
      text-align: left;
      padding: 0 0 0 0.75rem;
      width: auto;
    }

    .tl-connector {
      width: 24px; height: 1px;
      background: linear-gradient(to right, rgba(37,95,114,0.6), var(--amber)) !important;
      flex-shrink: 0;
      margin-top: 5px;
    }

    .tl-node:hover .tl-connector { height: 1px; width: 32px; }

    .tl-dot { flex-shrink: 0; margin-top: 3px; }

    .tl-future-arrow {
      flex-direction: column;
      padding-left: 0;
      padding-top: 1rem;
      align-items: flex-start;
      gap: 0.3rem;
    }

    .tl-future-arrow::before {
      width: 1px; height: 24px;
      background: linear-gradient(to bottom, rgba(37,95,114,0.6), var(--amber));
    }

    .tl-future-arrow::after {
      border-left: 5px solid transparent;
      border-right: 5px solid transparent;
      border-top: 8px solid var(--amber);
      border-bottom: none;
    }

    /* Disable hover-scroll zones on mobile */
    .tl-hover-left,
    .tl-hover-right { display: none; }
  }