Общая концепция будет примерно такая:
@keyframes custom-fade-in {
0% {
stroke-dasharray: 0 300;
fill: transparent;
animation-timing-function: ease-in;
}
50% {
stroke-dasharray: 150 150;
fill: transparent;
animation-timing-function: ease-out;
}
100% {
stroke-dasharray: 300 0;
fill: #000;
}
}
path {
stroke: #000;
fill: none;
stroke-dasharray: 0 300;
animation: custom-fade-in 2s ease-in-out infinite;
animation-fill-mode: forwards;
}
Но если взять контуры как есть, то они будут заливаться не там, где нужно по дизайну. Нужно открыть эту SVG в векторном графическом редакторе и слегка порезать эти контуры. Нужно чтобы каждая буква была обрисована линией по кругу один раз, а не два, как сейчас. Тогда заливка будет по всей букве. А то сейчас заливается пространство между двумя почти продублированными контурами букв, т.к. технически именно оно является внутренной частью path. А еще будет удобно каждую букву делать отдельным контуром - проще будет подобрать значения для stroke-dasharray.