/* No hidden default or JS-dependent visibility. Keyframes are attached only while running. */
.knt-description .knt-content-running {
  animation: var(--knt-animation, knt-fade) var(--knt-duration, 400ms) var(--knt-easing, ease) var(--knt-delay, 0ms) both;
}
@keyframes knt-fade { from { opacity: .15; } to { opacity: 1; } }
@keyframes knt-slide-up { from { opacity: .2; transform: translateY(var(--knt-distance)); } to { opacity: 1; transform: none; } }
@keyframes knt-slide-down { from { opacity: .2; transform: translateY(calc(-1 * var(--knt-distance))); } to { opacity: 1; transform: none; } }
@keyframes knt-slide-left { from { opacity: .2; transform: translateX(var(--knt-distance)); } to { opacity: 1; transform: none; } }
@keyframes knt-slide-right { from { opacity: .2; transform: translateX(calc(-1 * var(--knt-distance))); } to { opacity: 1; transform: none; } }
@keyframes knt-zoom-in { from { opacity: .2; transform: scale(var(--knt-zoom-in, .94)); } to { opacity: 1; transform: none; } }
@keyframes knt-zoom-out { from { opacity: .2; transform: scale(var(--knt-zoom-out, 1.06)); } to { opacity: 1; transform: none; } }
@keyframes knt-reveal { from { clip-path: inset(0 100% 0 0); opacity: .3; } to { clip-path: inset(0); opacity: 1; } }
@keyframes knt-typewriter { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0); } }
@keyframes knt-highlight { from { background-color: #f672194d; } to { background-color: transparent; } }
@media (prefers-reduced-motion: reduce) {
  .knt-description .knt-content-running { animation: none; }
}
