/* ── Иллюстрация героя (SVG вместо PNG) ──
   Без JS и при prefers-reduced-motion — статичная финальная картинка. Анимация один раз при загрузке
   (классы is-anim/is-play ставит инлайн-скрипт за SVG) и повтор по наведению (afoxhero-art.js). */
.afh-hero__art .afxh-art { width: 100%; height: 100%; display: block; }
.afxh-art * { transform-box: fill-box; }

@media (prefers-reduced-motion: no-preference) {
  .afxh-art.is-anim .afxh-rise,
  .afxh-art.is-anim .afxh-hub,
  .afxh-art.is-anim .afxh-badge,
  .afxh-art.is-anim .afxh-arrive { opacity: 0; }
  .afxh-art.is-anim .afxh-draw { stroke-dasharray: 100; stroke-dashoffset: 100; }
  .afxh-art.is-anim .afxh-check { transform: scale(0); }

  .afxh-art.is-play .afxh-ground { animation: afxhFade .5s ease-out both; }
  .afxh-art.is-play .afxh-rise { transform-origin: 50% 100%; animation: afxhRise .7s cubic-bezier(.2, .9, .3, 1.2) var(--d, 0s) both; }
  .afxh-art.is-play .afxh-door { transform-origin: 50% 0; animation: afxhDoor .6s ease-in-out 1.15s both; }
  .afxh-art.is-play .afxh-hub { transform-origin: 50% 50%; animation: afxhPop .55s cubic-bezier(.2, .9, .3, 1.4) .75s both; }
  .afxh-art.is-play .afxh-ring { transform-origin: 50% 50%; animation: afxhRing 1.1s ease-out 1.1s both; }
  .afxh-art.is-play .afxh-draw { animation: afxhDraw .8s ease-in-out 1.35s both; }
  .afxh-art.is-play .afxh-draw--2 { animation-delay: 1.6s; }
  .afxh-art.is-play .afxh-draw--3 { animation-duration: .4s; animation-delay: 1.05s; }
  .afxh-art.is-play .afxh-arrive { transform-origin: 50% 100%; animation: afxhDrop .45s cubic-bezier(.2, .9, .3, 1.3) var(--d) both; }
  .afxh-art.is-play .afxh-badge { transform-origin: 50% 100%; animation: afxhRise .5s cubic-bezier(.2, .9, .3, 1.3) var(--d) both; }
  .afxh-art.is-play .afxh-check { transform-origin: 50% 50%; animation: afxhPop .4s cubic-bezier(.2, .9, .3, 1.6) calc(var(--d) + .35s) both; }
}
.afxh-art .afxh-ring { opacity: 0; }

@keyframes afxhFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes afxhRise { from { opacity: 0; transform: translateY(18px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes afxhPop { from { opacity: 0; transform: scale(.4); } to { opacity: 1; transform: none; } }
@keyframes afxhRing { 0% { opacity: .7; transform: scale(1); } 100% { opacity: 0; transform: scale(1.7); } }
@keyframes afxhDraw { to { stroke-dashoffset: 0; } }
@keyframes afxhDoor { from { transform: none; } to { transform: scaleY(.35); } }
@keyframes afxhDrop { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: none; } }
