/* Native SVG cursors keep the pointer responsive, including inside the 3D iframe. */
@media (hover: hover) and (pointer: fine) {
  :root {
    --rbxx-cursor: url('/cursors/block-arrow.svg') 3 2, default;
    --rbxx-pointer: url('/cursors/block-hand.svg') 14 3, pointer;
    --rbxx-text: url('/cursors/block-text.svg') 12 16, text;
    cursor: var(--rbxx-cursor);
  }

  :root body,
  :root body :is(.experience, .terminal-workspace, three-d-stage) {
    cursor: var(--rbxx-cursor);
  }

  :root body :is(a[href], button, summary, select, label[for],
    [role='button'], [role='link'], [role='tab'],
    input[type='checkbox'], input[type='radio'], input[type='range'],
    input[type='button'], input[type='submit'], [data-cursor='pointer']) {
    cursor: var(--rbxx-pointer);
  }

  :root body :is(input:not([type]), input[type='text'], input[type='number'],
    input[type='email'], input[type='password'], input[type='search'],
    input[type='tel'], input[type='url'], textarea, [contenteditable='true']) {
    cursor: var(--rbxx-text);
  }

  :root body :is(button:disabled, input:disabled, select:disabled,
    textarea:disabled, [aria-disabled='true'], [data-cursor='default']) {
    cursor: var(--rbxx-cursor);
  }
}
