.clamp {
    position: relative;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.clamp-3 { -webkit-line-clamp: 3; }
.clamp-4 { -webkit-line-clamp: 4; }
.clamp-5 { -webkit-line-clamp: 5; }
.clamp-6 { -webkit-line-clamp: 6; }

.clamp .clamp-fade {
    pointer-events: none;
    position: absolute;
    inset: auto 0 0 0;
    height: 3.25rem;
    background: linear-gradient(to bottom, rgba(0,0,0,0), var(--clamp-fade-bg, var(--clamp-bg, #fff)));
}

.clamp[data-expanded="true"] {
    -webkit-line-clamp: unset;
    display: block;
}
.clamp[data-expanded="true"] .clamp-fade {
    display: none;
}

@media print {
    .clamp { -webkit-line-clamp: unset; display: block; }
    .clamp .clamp-fade { display: none; }
}
