Используйте переход и рассмотрите большое значение для времени, чтобы подделка это
.box {
font-family: Frijole;
opacity: .1;
font-size: 36px;
transition:999s opacity;
}
.box:hover {
transition:1s opacity;
opacity:1;
}
<div class="box">text here</div>
Еще одна идея, если вы хотите сохранить использование анимации
.box {
font-family: Frijole;
opacity: .1;
font-size: 36px;
animation: fade 1s forwards;
animation-play-state: paused;
}
.box:hover {
animation-play-state: running;
}
@keyframes fade {
from {opacity: .1;}
to {opacity: 1;}
}
<div class="box">text here</div>