/************* clamping **************/
/* Box */
.clamp-box {
    overflow: hidden;
    transition: max-height 0.3s cubic-bezier(0, 1, 0, 1);
}

.clamp-box.clamp-open {
    transition: max-height 0.3s cubic-bezier(0.9, 0, 0.8, 0.2);
}

/* Text */
@keyframes clamp-open {
    from {
        line-clamp: 4;
        -webkit-line-clamp: 4;
    }
    to {
        line-clamp: initial;
        -webkit-line-clamp: initial;
    }
}

@keyframes clamp-close {
    from {
        line-clamp: initial;
        -webkit-line-clamp: initial;
    }
    to {
        line-clamp: 4;
        -webkit-line-clamp: 4;
    }
}

.clamp-text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
    overflow: hidden;
    animation: clamp-close 0.1s linear 0.1s forwards;
}

.clamp-open .clamp-text {
    animation: clamp-open 0.1s linear 0s forwards;
}