/* West's Shiba paw cursors. Disabled on coarse pointers; motion stays static. */
:root {
  --cursor-default:
    -webkit-image-set(
      url("/cursors/paw-default.svg") 1x,
      url("/cursors/paw-default-2x.svg") 2x
    ) 5 6,
    image-set(
      url("/cursors/paw-default.svg") 1x,
      url("/cursors/paw-default-2x.svg") 2x
    ) 5 6,
    url("/cursors/paw-default.svg") 5 6,
    auto;
  --cursor-pointer:
    -webkit-image-set(
      url("/cursors/paw-pointer.svg") 1x,
      url("/cursors/paw-pointer-2x.svg") 2x
    ) 7 7,
    image-set(
      url("/cursors/paw-pointer.svg") 1x,
      url("/cursors/paw-pointer-2x.svg") 2x
    ) 7 7,
    url("/cursors/paw-pointer.svg") 7 7,
    pointer;
  --cursor-active:
    -webkit-image-set(
      url("/cursors/paw-active.svg") 1x,
      url("/cursors/paw-active-2x.svg") 2x
    ) 7 17,
    image-set(
      url("/cursors/paw-active.svg") 1x,
      url("/cursors/paw-active-2x.svg") 2x
    ) 7 17,
    url("/cursors/paw-active.svg") 7 17,
    pointer;
  --cursor-text:
    -webkit-image-set(
      url("/cursors/paw-text.svg") 1x,
      url("/cursors/paw-text-2x.svg") 2x
    ) 16 16,
    image-set(
      url("/cursors/paw-text.svg") 1x,
      url("/cursors/paw-text-2x.svg") 2x
    ) 16 16,
    url("/cursors/paw-text.svg") 16 16,
    text;
  --cursor-grab:
    -webkit-image-set(
      url("/cursors/paw-grab.svg") 1x,
      url("/cursors/paw-grab-2x.svg") 2x
    ) 16 16,
    image-set(
      url("/cursors/paw-grab.svg") 1x,
      url("/cursors/paw-grab-2x.svg") 2x
    ) 16 16,
    url("/cursors/paw-grab.svg") 16 16,
    grab;
  --cursor-grabbing:
    -webkit-image-set(
      url("/cursors/paw-grabbing.svg") 1x,
      url("/cursors/paw-grabbing-2x.svg") 2x
    ) 16 16,
    image-set(
      url("/cursors/paw-grabbing.svg") 1x,
      url("/cursors/paw-grabbing-2x.svg") 2x
    ) 16 16,
    url("/cursors/paw-grabbing.svg") 16 16,
    grabbing;
  --cursor-wait:
    -webkit-image-set(
      url("/cursors/paw-wait.svg") 1x,
      url("/cursors/paw-wait-2x.svg") 2x
    ) 5 6,
    image-set(
      url("/cursors/paw-wait.svg") 1x,
      url("/cursors/paw-wait-2x.svg") 2x
    ) 5 6,
    url("/cursors/paw-wait.svg") 5 6,
    wait;
  --cursor-not-allowed:
    -webkit-image-set(
      url("/cursors/paw-not-allowed.svg") 1x,
      url("/cursors/paw-not-allowed-2x.svg") 2x
    ) 5 6,
    image-set(
      url("/cursors/paw-not-allowed.svg") 1x,
      url("/cursors/paw-not-allowed-2x.svg") 2x
    ) 5 6,
    url("/cursors/paw-not-allowed.svg") 5 6,
    not-allowed;
}

html,
body,
.space-shell,
.scene-wrap,
.scene-wrap canvas {
  cursor: var(--cursor-default);
}

a,
button:not(:disabled),
summary,
label[for],
[role="button"]:not([aria-disabled="true"]),
[role="link"],
[role="tab"]:not([aria-disabled="true"]),
.interactive {
  cursor: var(--cursor-pointer);
}

input:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="range"]):not([type="file"]),
textarea,
select[multiple],
[contenteditable="true"],
.resume-pages pre {
  cursor: var(--cursor-text);
}

input[type="checkbox"],
input[type="radio"],
input[type="button"],
input[type="submit"],
input[type="reset"],
input[type="file"] {
  cursor: var(--cursor-pointer);
}

input[type="range"],
.soundtrack-wave,
.soundtrack-volume,
[draggable="true"] {
  cursor: var(--cursor-grab);
}

.soundtrack-wave:active,
.soundtrack-volume:active,
[draggable="true"]:active {
  cursor: var(--cursor-grabbing);
}

@media (pointer: fine) and (prefers-reduced-motion: no-preference) {
  a:active,
  button:not(:disabled):active,
  [role="button"]:not([aria-disabled="true"]):active,
  .interactive:active {
    cursor: var(--cursor-active);
  }
}

@media (pointer: coarse) {
  :root {
    --cursor-default: auto;
    --cursor-pointer: pointer;
    --cursor-active: pointer;
    --cursor-text: text;
    --cursor-grab: grab;
    --cursor-grabbing: grabbing;
    --cursor-wait: wait;
    --cursor-not-allowed: not-allowed;
  }
}

@media (pointer: fine) and (prefers-reduced-motion: reduce) {
  :root {
    --cursor-wait:
      -webkit-image-set(
        url("/cursors/paw-default.svg") 1x,
        url("/cursors/paw-default-2x.svg") 2x
      ) 5 6,
      image-set(
        url("/cursors/paw-default.svg") 1x,
        url("/cursors/paw-default-2x.svg") 2x
      ) 5 6,
      url("/cursors/paw-default.svg") 5 6,
      wait;
  }
}
