
  @keyframes zeroFadeInUp {
    from { opacity: 0; transform: translateY(30px); }
    to   { opacity: 1; transform: translateY(0); }
  }

  /* Минимальный сдвиг + жёсткая фиксация начального состояния */
  .zero-anim-block .tn-atom {
    opacity: 0 !important;
    transform: translateY(30px) !important;
    transition: none !important;
    will-change: opacity, transform;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
  }

  /* Плавная анимация */
  .zero-anim-block.zero-anim-start .tn-atom {
    opacity: 1 !important;
    transform: translateY(0) !important;
    transition: opacity 1.2s cubic-bezier(0.23, 1, 0.32, 1) !important,
                transform 1.2s cubic-bezier(0.23, 1, 0.32, 1) !important;
  }

  /* Защита: если JS не сработал — показываем через 3 секунды */
  .zero-anim-block:not(.zero-anim-start) .tn-atom {
    animation: zeroFadeInUp 1s forwards 3s !important;
  }
</style>