.timeline.block {
  /* Motion */
  --corp-transition-base: 250ms;
  --corp-transition-slow: 450ms;
  --corp-transition-slower: 600ms;
  --corp-transition-extra-slow: 800ms;
  --margin-top: 36px;
  --margin-bottom: 36px;
  --gap-7: 7px;
  --gap-3: 3px;

  background: var(--corp-color-white);
  overflow: hidden;
  overscroll-behavior: auto;

  &.is-grabbing {
    cursor: grabbing;
  }

  .timeline__inner {
    display: grid;
    grid-template-columns: 1fr;
    /* No dedicated column for timeline__left */
    grid-template-rows: auto;
    gap: 0;
    position: relative;
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);

    &.g-container {
      width: 100%;
      min-width: var(--corp-breakpoint-mobile);
      margin-inline: auto;
    }
  }

  /* Tabs (Mobile First) */
  .timeline__tabs-wrapper {
    display: block;
    width: fit-content;
    max-width: 96%;
    margin-inline: auto;
    height: 46px;
    padding: var(--corp-space-xs);
    gap: var(--corp-space-xs);
    border-radius: 100px;
    background: var(--corp-table-bg);
    margin-block-end: 60px;
    overflow-x: auto;
    scrollbar-width: none;
    z-index: 5;

    &::-webkit-scrollbar {
      display: none;
    }
  }

  .timeline__tabs {
    display: flex;
    gap: var(--gap-3);

    li {
      display: flex;
      align-items: center;
    }
  }

  .timeline__tab {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 36px;
    padding: var(--corp-type-cta-font-size) var(--corp-type-cta-line-height);
    border: none;
    border-radius: 100px;
    background: transparent;
    color: var(--corp-color-overlay-black-50);
    font-size: var(--corp-type-mobile-body-sm-font-size);
    font-weight: var(--fw-400);
    line-height: var(--corp-type-desktop-body-2xs-line-height);
    white-space: nowrap;
    cursor: pointer;
    transition: background-color var(--corp-transition-base) ease, color var(--corp-transition-base) ease;

    &[aria-selected='true'] {
      background: var(--corp-color-primary);
      color: var(--corp-color-white);
      letter-spacing: -0.24px;
      padding: var(--corp-type-cta-font-size) var(--corp-type-cta-line-height);
    }
    .yr {
      width: 27px;
    }
  }

  /* Slider Area */
  .timeline__slider-area {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    box-sizing: border-box;
    grid-row: 2;
    overflow: hidden;
    transition: height var(--corp-transition-slower) cubic-bezier(0.4, 0, 0.2, 1);
  }

  .timeline__track-wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
    padding-left: 10px;
  }

  .timeline__track {
    display: flex;
    flex-direction: column;
    transition: transform var(--corp-transition-slow) ease;
    will-change: transform;
    margin-left: 20px;
  }

  .timeline__slide {
    flex: 0 0 auto;
    width: 100%;
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--corp-transition-extra-slow) ease-out, visibility var(--corp-transition-extra-slow) ease;

    &.is-visible {
      opacity: 1;
      visibility: visible;
      transition: opacity var(--corp-transition-extra-slow) ease-out, visibility 0s;

      .timeline__right {
        opacity: 1;
        transform: translateY(0);
      }
    }

    .timeline__right {
      opacity: 0;
      transform: translateY(30px);
      transition: transform var(--corp-transition-extra-slow) cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity var(--corp-transition-extra-slow) ease-out;
    }
  }

  .timeline__year {
    display: none;
  }

  .timeline__line {
    position: absolute;
    left: 10px;
    width: 1px;
    height: 100%;
    background: linear-gradient(180deg, var(--corp-color-primary) 0%, var(--corp-color-white) 100%);

    &::before {
      content: '';
      position: absolute;
      top: 0;
      left: 50%;
      width: var(--corp-space-md);
      height: var(--corp-space-md);
      border-radius: 50%;
      background: var(--corp-color-primary);
      transform: translateX(-50%);
    }
  }

  /* Content Layout */
  .timeline__title-wrap {
    margin-block-end: 27px;
    display: inline-flex;
    gap: 80px;
  }

  .timeline__title {
    display: flex;
    flex-direction: column;

    &::before {
      content: attr(data-year);
      display: block;
      margin-block-end: 27px;
      color: var(--corp-color-primary);
      font-size: var(--corp-type-mobile-display-3-font-size);
      font-weight: var(--fw-400);
      line-height: var(--corp-type-mobile-display-5-line-height);
    }

    :is(p, h1, h2, h3, h4, h5, h6) {
      width: 100%;
      margin: 0;
      color: var(--corp-color-primary);
      font-size: var(--corp-type-mobile-display-xl-font-size);
      line-height: var(--corp-type-mobile-display-xl-line-height);
      letter-spacing: -0.84px;
      word-break: break-word;
    }
  }

  .timeline__content {
    display: flex;
    flex-direction: column;
    gap: var(--corp-space-sm);
  }

  .timeline__subtitle,
    .timeline__description {
      width: 205px;
    }

  .timeline__subtitle :is(p, h1, h2, h3, h4, h5, h6) {
    color: var(--corp-color-primary);
    font-size: var(--corp-type-mobile-body-1-font-size);
    letter-spacing: -0.14px;
    font-weight: var(--fw-400);
    line-height: var(--corp-type-mobile-heading-base-line-height);
  }

  .timeline__description :is(p, h1, h2, h3, h4, h5, h6) {
    color: var(--corp-color-neutral-charcoal-gray);
    font-size: var(--corp-type-mobile-body-1-font-size);
    letter-spacing: -0.14px;
    font-weight: var(--fw-400);
    line-height: var(--corp-type-mobile-heading-base-line-height);
  }
  .timeline__images {
    display: inline-flex;
    align-items: center;
    gap: var(--gap-7);
    margin-top: var(--corp-space-xl);

    picture,
    img {
      border-radius: var(--corp-radius-sm);
      object-fit: cover;
    }

    picture:first-child,
    picture:first-child img {
      width: 100%;
      height: 113px;
      aspect-ratio: 177/113
    }

    picture:last-child,
    picture:last-child img {
      width: 100%;
      height: 153px;
      aspect-ratio: 132 / 153;
    }
  }

  /* Controls */
  .timeline__fixed-controls {
    display: none;
  }

  .timeline__mobile-controls {
    display: flex;
    justify-content: center;
    flex-shrink: 0;
    margin-block-start: 14px;
  }

  .tab-carousel__arrows {
    display: flex;
    gap: var(--corp-space-2xl);

    .corp-arrow-btn {
      width: var(--corp-space-2xl);
      height: var(--corp-space-2xl);
      border-radius: 100px;
      fill: var(--corp-color-overlay-black-50);
      filter: drop-shadow(0 6px 36px rgb(0 0 0 / 2%));
      backdrop-filter: blur(var(--corp-space-3xl));
      background: var(--corp-color-overlay-black-50);
      position: relative;
      padding: 0;

      &::before {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        width: 20px;
        height: 20px;
        background: url(/corporate/icons/corp-slider-arrow.svg) no-repeat center / contain;
        transform: translate(-50%, -50%);
      }

      &.tab-carousel__nav-btn--prev::before {
        transform: translate(-50%, -50%) rotate(-180deg);
      }

      svg {
        display: none;
      }
    }

    .tab-carousel__nav-btn:disabled {
      opacity: 0.4;
    }
  }

  .timeline__title .tab-carousel__arrows {
    display: none;
  }

  /* Desktop Overrides */
  @media (width >=768px) {

    .timeline__inner {
      justify-content: center;
      justify-items: stretch;
      margin-top: 36px;
      margin-bottom: 20px;
    }

    .timeline__tabs-wrapper {
      position: absolute;
      grid-column: 1 / -1;
      left: 50%;
      transform: translateX(-50%);
      padding: 6px;
      margin: 0;
    }

    .timeline__tabs {
      gap: var(--corp-space-xs);
    }

    .timeline__tab {
      color: var(--corp-color-neutral-medium-gray);
      font-size: var(--corp-type-mobile-body-1-font-size);
      font-weight: var(--fw-500);
      line-height: var(--corp-type-desktop-body-lg-line-height);
      /* 19.6px */
      gap: var(--corp-space-sm);
      border-radius: 100px;
      width: auto;
      letter-spacing: normal;
      padding: 18px var(--corp-space-xl);
      justify-content: center;
      align-items: center;

      &[aria-selected='true'] {
        padding: 18px var(--corp-space-xl);
      }
    }

    .timeline__slider-area {
      grid-column: 1 / -1;
      /* Span full width of inner grid */
      display: block;
      padding-left: 0;
    }

    .timeline__track {
      margin-block-start: 66px;
      margin-left: 0px;
    }

    .timeline__year {
      display: block;
      writing-mode: vertical-lr;
      transform: rotate(180deg);
      color: var(--corp-color-primary);
      text-align: end;
      font-size: var(--corp-type-mobile-display-lg-font-size);
      font-weight: var(--fw-600);
      line-height: 1;
    }

    .timeline__line {
      left: 86px;
      top: 20px;

      @media (width >= 1200px) {
        left: 110px;
      }
    }

    .timeline__right {
      display: grid;
      grid-template-columns: 1fr;
    }


    .timeline__title {
      display: flex;
      flex-direction: column;
      gap: var(--corp-space-2xl);

      &::before {
        display: none;
      }

      :is(p, h1, h2, h3, h4, h5, h6) {
        max-width: 719px;
        font-size: var(--corp-type-desktop-display-4xl-font-size);
        letter-spacing: -2.88px;
        color: var(--corp-color-primary);
        line-height: 100%;
        font-weight: var(--fw-400);
      }

      .tab-carousel__arrows {
        margin-block-start: var(--corp-space-2xl);
        display: flex;
      }
    }

    .timeline__content {
      display: flex;
      flex-direction: column;
      justify-self: end;
      margin-block-start: 0;
      gap: 0;

      @media (width > 1024px) {
        margin-block-start: -60px;
      }
    }

    .timeline__subtitle,
    .timeline__description {
      width: 270px;
    }

    .timeline__subtitle :is(p, h1, h2, h3, h4, h5, h6) {
      font-size: var(--corp-type-mobile-display-4-font-size);
      line-height: 32px;
      font-weight: var(--fw-400);
      margin-bottom: 20px;
    }

    .timeline__description :is(p, h1, h2, h3, h4, h5, h6) {
      color: var(--corp-color-neutral-charcoal-gray-2);
      font-size: var(--corp-type-mobile-body-1-font-size);
      letter-spacing: -0.14px;
      font-weight: var(--fw-500);
      line-height: var(--corp-type-desktop-body-lg-line-height);
    }

    .timeline__images {
      gap: var(--grid-gutter-width);
      margin-top: -20px;
      
      .first,
      .second {
        overflow: hidden;
        border-radius: 8px;
      }

      @media (width >= 768px) {

        .first {
          height: 165px;
          border-radius: 11px;
        }
  
        picture:first-child img {
          width: 100%;
          height: 165px;
          object-fit: cover;
        }

        .second {
          height: 207px;
          border-radius: 11px;
        }
  
        picture:last-child img {
          width: 100%;
          height: 207px;
          object-fit: cover;
        }
        
      }

      @media (width >= 1200px) {

        .first {
          height: 280px;
          border-radius: 20px;
        }
  
        picture:first-child img {
          width: 100%;
          height: 280px;
          object-fit: cover;
        }

        .second {
          height: 368px;
          border-radius: 20px;
        }
  
        picture:last-child img {
          width: 100%;
          height: 368px;
          object-fit: cover;
        }

      } 
    }

    .timeline__fixed-controls {
      display: flex;
      gap: 18px;

      .corp-arrow-btn {
        height: 32px;
        width: 32px;
        padding: 0;
        svg {
          width: auto;
          height: auto;
          display: block;
        }
      }
    }

    .timeline__mobile-controls {
      display: none;
    }
  }

  /* Initial Load */
  &.is-initial-load {

    .timeline__slide.is-visible,
    .timeline__slide.is-visible .timeline__right {
      transition: none;
    }
  }
}
