public IEnumerator MoveToPlaceHolder()
        {
            while (PlaceHolder != null && Vector3.Distance(transform.position, PlaceHolder.position) > 1)
            {
                float step = MovementSpeed * Time.deltaTime;
                transform.position = Vector3.MoveTowards(transform.position, PlaceHolder.position, step);
                yield return(null);
            }

            if (PlaceHolder == null)
            {
                Discard();
                yield break;
            }

            CardStack prevParentStack = ParentCardStack;

            transform.SetParent(PlaceHolder.parent);
            transform.SetSiblingIndex(PlaceHolder.GetSiblingIndex());
            transform.localScale = Vector3.one;
            if (prevParentStack != null)
            {
                prevParentStack.OnRemove(this);
            }
            if (ParentCardStack != null)
            {
                ParentCardStack.OnAdd(this);
            }
            PlaceHolder = null;
            canvasGroup.blocksRaycasts = true;
        }