/* White arrow: user's Sweezy Cursors set (https://sweezy-cursors.com/).
   Blue arrow and text: approved illustrations at fixed native sizes.
   Native cursors need no tracking canvas or animation loop. */
@media (any-pointer: fine) {
  :root {
    --site-cursor-default: url("/assets/cursors/cinnamoroll-arrow.png") 2 1, default;
    --site-cursor-pointer: url("/assets/cursors/cinnamoroll-pointer-blue.svg") 5 2, pointer;
    --site-cursor-text: url("/assets/cursors/cinnamoroll-text.svg") 10 30, text;
  }
}

html, body { cursor: var(--site-cursor-default, default); }

/* Zero specificity lets each component keep its disabled, busy, resize or
   drag cursor. Options mounted directly on body share the same cursor set. */
:where(button:not(:disabled), a[href], summary, select:not(:disabled),
  [role="button"]:not([aria-disabled="true"]),
  [role="option"]:not([aria-disabled="true"]),
  input[type="button"]:not(:disabled), input[type="submit"]:not(:disabled),
  input[type="reset"]:not(:disabled), input[type="checkbox"]:not(:disabled),
  input[type="radio"]:not(:disabled), input[type="color"]:not(:disabled),
  input[type="file"]:not(:disabled)) {
  cursor: var(--site-cursor-pointer, pointer);
}

:where(textarea:not(:disabled),
  input:not([type]):not(:disabled):not([data-date-picker]),
  input[type="text"]:not(:disabled):not([data-date-picker]),
  input[type="search"]:not(:disabled), input[type="password"]:not(:disabled),
  input[type="email"]:not(:disabled), input[type="tel"]:not(:disabled),
  input[type="url"]:not(:disabled), input[type="number"]:not(:disabled),
  [contenteditable=""], [contenteditable="true"], [contenteditable="plaintext-only"],
  [role="textbox"]:not([aria-disabled="true"]):not([data-date-picker])) {
  cursor: var(--site-cursor-text, text);
}

/* Display-count controls are counters, including their surrounding label.
   Keep keyboard editing intact without switching to the text-selection cursor. */
:where(.display-count-control, .display-count-control input:not(:disabled)) {
  cursor: var(--site-cursor-default, default);
}

/* Number inputs have a separate browser-owned increment/decrement hit target.
   Its cursor does not consistently inherit the input's themed text cursor. */
:where(input[type="number"]:not(:disabled))::-webkit-inner-spin-button,
:where(input[type="number"]:not(:disabled))::-webkit-outer-spin-button {
  cursor: var(--site-cursor-default, default);
}
