/* Black Rat cursor set — CSS fallback + JS overlay (blackrat-cursor.js) */

html {
    --rat-norm: url("blackrat_norm.cur") 0 0, url("blackrat_norm.png") 0 0, auto;
    --rat-link: url("blackrat_link.cur") 0 0, url("blackrat_link.png") 0 0, pointer;
    --rat-alt: url("blackrat_alt.cur") 0 0, url("blackrat_alt.png") 0 0, pointer;
    --rat-text: url("blackrat_text.cur") 0 0, url("blackrat_text.png") 0 0, text;
    --rat-write: url("blackrat_write.cur") 0 0, url("blackrat_write.png") 0 0, cell;
    --rat-move: url("blackrat_move.cur") 0 0, url("blackrat_move.png") 0 0, move;
    --rat-no: url("blackrat_no.cur") 0 0, url("blackrat_no.png") 0 0, not-allowed;
    --rat-help: url("blackrat_help.cur") 0 0, url("blackrat_help.png") 0 0, help;
    --rat-precise: url("blackrat_precise.cur") 0 0, url("blackrat_precise.png") 0 0, crosshair;
    --rat-horz: url("blackrat_horz.cur") 0 0, url("blackrat_horz.png") 0 0, ew-resize;
    --rat-vert: url("blackrat_vert.cur") 0 0, url("blackrat_vert.png") 0 0, ns-resize;
    --rat-diag1: url("blackrat_diag1.cur") 0 0, url("blackrat_diag1.png") 0 0, nwse-resize;
    --rat-diag2: url("blackrat_diag2.cur") 0 0, url("blackrat_diag2.png") 0 0, nesw-resize;
    --rat-busy: url("blackrat_busy.gif") 0 0, url("blackrat_busy.png") 0 0, wait;
    --rat-working: url("blackrat_working.gif") 0 0, url("blackrat_working.png") 0 0, progress;
}

html,
body {
    cursor: var(--rat-norm);
}

a[href],
button:not(:disabled),
summary,
.interest-link,
#logo-audio-toggle,
.logo,
[role="button"]:not([aria-disabled="true"]),
input[type="submit"]:not(:disabled),
input[type="button"]:not(:disabled),
input[type="reset"]:not(:disabled),
select:not(:disabled),
label[for] {
    cursor: var(--rat-link);
}

a[href]:active,
button:not(:disabled):active,
.interest-link:active,
#logo-audio-toggle:active,
.logo:active,
[role="button"]:not([aria-disabled="true"]):active {
    cursor: var(--rat-alt);
}

input:not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="hidden"]):not([type="file"]):not(:disabled),
textarea:not(:disabled),
[contenteditable="true"] {
    cursor: var(--rat-text);
}

[contenteditable="true"] {
    cursor: var(--rat-write);
}

:disabled,
[disabled],
[aria-disabled="true"] {
    cursor: var(--rat-no);
}

[title]:not(#blackrat-cursor),
abbr[title],
dfn[title] {
    cursor: var(--rat-help);
}

html.is-busy,
html.is-busy * {
    cursor: var(--rat-busy);
}

html.is-progress,
html.is-progress * {
    cursor: var(--rat-working);
}

/* Sleeping rat only after idle — applied via JS overlay, not on load */

@media (pointer: fine) {
    html.blackrat-cursor-active,
    html.blackrat-cursor-active * {
        cursor: none !important;
    }
}

#blackrat-cursor {
    position: fixed !important;
    left: 0;
    top: 0;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0;
    overflow: visible;
    pointer-events: none !important;
    z-index: 2147483647;
    opacity: 0;
    visibility: hidden;
}

#blackrat-cursor img {
    position: absolute;
    left: 0;
    top: 0;
    width: 32px;
    height: 32px;
    max-width: none;
    max-height: none;
    display: block;
    pointer-events: none;
    user-select: none;
    image-rendering: pixelated;
    transform: translate(-10px, -8px);
}
