public Tween AnimateAppearance(ChainSegment previousSegment)
        {
            Sequence seq = DOTween.Sequence();

            seq.Join(wideLinkTop.DOFade(1f, fadeInDuration));
            seq.Join(wideLinkBottom.DOFade(1f, fadeInDuration));

            var topRectTransform    = wideLinkTop.GetComponent <RectTransform>();
            var bottomRectTransform = wideLinkBottom.GetComponent <RectTransform>();

            seq.Join(topRectTransform.DOAnchorPosY(0, snapDuration).SetEase(Ease.InBack));
            seq.Join(bottomRectTransform.DOAnchorPosY(0, snapDuration).SetEase(Ease.InBack));
            seq.Join(flatLink.DOFade(1f, snapDuration).SetEase(Ease.InBack));
            if (previousSegment)
            {
                seq.Join(previousSegment.AddShadow());
            }

            seq.AppendCallback(() =>
            {
                wideLinkTop.DeactivateObject();
                wideLinkBottom.DeactivateObject();
                wideLink.ActivateObject();
            });

            return(seq);
        }