/* ============================================================
   YAMADA_AI — кастомный курсор
   Стрелка-лапка и спрайт-компаньон рядом. Включается только для
   точного указателя: на тач-экранах курсора нет, а системный
   прятать нельзя — человек останется без указателя вовсе.
   ============================================================ */

.cur { display: none; }

@media (pointer: fine) {
  /* !important нужен: у отдельных элементов курсор задан точнее (grab на
     увеличенном арте, pointer на кнопках) и перебивал бы общее правило —
     рядом со спрайтом появлялся второй, системный указатель */
  html.has-cur, html.has-cur *, html.has-cur *::before, html.has-cur *::after {
    cursor: none !important;
  }

  .cur {
    display: block;
    position: fixed; left: 0; top: 0;
    z-index: 9999;
    pointer-events: none;
    will-change: transform;
  }

  /* Указатель: та же скруглённая геометрия и обводка, что у кнопок сайта */
  .cur__dot {
    position: absolute; left: 0; top: 0;
    width: 26px; height: 26px;
    transform: translate(-3px, -2px);
    transition: transform 0.16s cubic-bezier(0.16, 1, 0.3, 1);
  }
  .cur__dot svg { display: block; width: 100%; height: 100%; }

  /* Спрайт тянется за указателем с отставанием — он компаньон, не часть стрелки */
  .cur__pal {
    position: absolute; left: 0; top: 0;
    width: 52px; aspect-ratio: 371 / 420;
    transform: translate(14px, 10px);
    filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.45));
  }
  .cur__pal img {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: contain;
    opacity: 0;
    transition: opacity 0.18s ease;
  }
  .cur__pal img.is-on { opacity: 1; }

  /* Над ссылками и кнопками: спрайт машет, указатель подбирается */
  html.cur-hot .cur__dot { transform: translate(-3px, -2px) scale(0.82) rotate(-12deg); }
  html.cur-hot .cur__pal { animation: cur-pop 0.45s cubic-bezier(0.16, 1, 0.3, 1); }

  @keyframes cur-pop {
    0%   { transform: translate(14px, 10px) scale(1); }
    45%  { transform: translate(14px, 4px) scale(1.09); }
    100% { transform: translate(14px, 10px) scale(1); }
  }

  /* Нажатие */
  html.cur-down .cur__dot { transform: translate(-3px, -2px) scale(0.7); }

  @media (prefers-reduced-motion: reduce) {
    .cur__dot, .cur__pal img { transition: none; }
    html.cur-hot .cur__pal { animation: none; }
  }
}
