/* Подлинный курсор HO; горячая точка — кончик пальца (0, 0).
   Рисунки и происхождение: cursors/README.md. До запуска скрипта курсор
   исходные 32×32; src/ui/cursor.ts затем подставляет в переменные ту же
   картинку в величину по окну (как в HO — 4,2 % высоты кадра).

   Второй в каждом списке — тот же рисунок в исходные 32 px. Chrome не
   показывает курсор больше 32 px, если тот не влезает в окно целиком, и
   берёт следующий в списке: без него у нижнего и правого края вставал
   системный курсор. 32 px под это правило не попадают. */
html,
body,
body * {
  /* Pixi пишет cursor прямо в style холста, окна — в своих таблицах стилей.
     Общее правило сохраняет перчатку при переходах между ними. */
  cursor: var(--ho-cursor-default, url('/ui/cursors/default.png') 0 0), url('/ui/cursors/default.png') 0 0, default !important;
}

/* Формы, которые меняет то, что под указателем на карте и в бою.
   Холст получает атрибут от src/ui/cursor.ts (режимы Pixi ho-blocked, ho-shot). */
body canvas[data-ho-cursor='blocked'] {
  cursor: var(--ho-cursor-blocked, url('/ui/cursors/blocked.png') 0 0), url('/ui/cursors/blocked.png') 0 0, not-allowed !important;
}

body canvas[data-ho-cursor='shot'] {
  cursor: var(--ho-cursor-shot, url('/ui/cursors/shot.png') 1 1), url('/ui/cursors/shot.png') 1 1, crosshair !important;
}

/* Перчатка с бирюзовым свечением над врагом в досягаемости удара (HO 2020). */
body canvas[data-ho-cursor='strike'] {
  cursor: var(--ho-cursor-strike, url('/ui/cursors/default.png') 0 0), url('/ui/cursors/default.png') 0 0, pointer !important;
}

/* Текстовые поля сохраняют привычную точность выбора позиции ввода. */
body input:not([type]),
body input:is([type='text'], [type='search'], [type='email'], [type='url'], [type='tel'], [type='password'], [type='number']),
body textarea,
body [contenteditable='true'],
body [contenteditable='true'] * {
  cursor: text !important;
}
