/* Ponteiro do mouse do Priston.

   As oito imagens saem dos .cur do cliente (game/mouse) por
   tools/build-cursors.mjs. O ponto quente e o canto da imagem (0 0), como no
   jogo: os arquivos sao ICO sem ponto quente gravado, entao o Windows usa o
   canto superior esquerdo — a ponta da seta.

   Quem troca de cursor no cliente e playmain.cpp (GetCharacterMouseOver):
   monstro vira seta de ataque, NPC vira balao de fala, item no chao vira mao
   aberta e, com o botao apertado, mao fechada. */

:root {
  --cur-default:  url("assets/cursors/default.png")  0 0;  /* seta, gema verde */
  --cur-attack:   url("assets/cursors/attack.png")   0 0;  /* seta, gema vermelha */
  --cur-talk:     url("assets/cursors/talk.png")     0 0;  /* seta com balao */
  --cur-dropsee:  url("assets/cursors/dropsee.png")  0 0;  /* mao aberta */
  --cur-droppick: url("assets/cursors/droppick.png") 0 0;  /* mao fechada */
  --cur-sell:     url("assets/cursors/sell.png")     0 0;  /* mao com moeda */
  --cur-buy:      url("assets/cursors/buy.png")      0 0;  /* mao com a bolsa */
  /* Conserto: o cliente usa em cima do ferreiro. Fica pronto para quando o
     jogo tiver durabilidade. */
  --cur-repair:   url("assets/cursors/repair.png")   0 0;
}

/* A seta vale para a tela inteira. Como `cursor` e herdado, o `*` so existe
   para os elementos que o navegador cursoriza por conta propria. */
html { cursor: var(--cur-default), default; }
*, ::before, ::after { cursor: inherit; }

/* Caixa de texto mantem a barra de digitacao: sem ela nao da para ver onde o
   texto vai entrar. */
input:is([type="text"], [type="password"], [type="search"], [type="email"], [type="number"]),
textarea { cursor: text; }

/* ------------------------------------------------------------- mundo 3D */
/* world3d.js marca o que esta debaixo do ponteiro em data-cursor. */
.world-viewport canvas[data-cursor="attack"] { cursor: var(--cur-attack), crosshair; }
.world-viewport canvas[data-cursor="talk"] { cursor: var(--cur-talk), help; }

/* --------------------------------------------------------------- itens */
/* Pegar item: mao aberta ao passar, mao fechada com o botao apertado
   (SIN_CURSOR_GETITEM1 e GETITEM2). */
#bag-items .cell:not(.livre),
.equip-col .slot.filled { cursor: var(--cur-dropsee), grab; }
#bag-items .cell:not(.livre):active,
.equip-col .slot.filled:active { cursor: var(--cur-droppick), grabbing; }

/* Icone das listas de recurso e de loja e so desenho, nao se clica nele. */
.mochila .stack-row .cell, .mochila .shop-row .cell { cursor: var(--cur-default), default; }

/* ---------------------------------------------------------------- loja */
.mochila [data-buy] { cursor: var(--cur-buy), pointer; }
.mochila [data-sell-stack],
.mochila #btn-sell-bulk { cursor: var(--cur-sell), pointer; }
