/* ============================================
   FORNAUGHT ENHANCER - CUSTOM CURSOR
   DOM-based cursor with rotation, hotspot,
   and a scale-up on interactive elements.
   ============================================ */

body.fne-cursor-active,
body.fne-cursor-active * {
    cursor: none !important;
}

/* Inputs and textareas keep the native I-beam for accessibility */
body.fne-cursor-active input,
body.fne-cursor-active textarea,
body.fne-cursor-active select,
body.fne-cursor-active [contenteditable="true"] {
    cursor: auto !important;
}

.fne-cursor {
    position: fixed;
    top: 0;
    left: 0;
    width: var(--fne-cursor-size, 32px);
    height: var(--fne-cursor-size, 32px);
    background-image: var(--fne-cursor-image);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    transform-origin: var(--fne-cursor-hot-x, 16px) var(--fne-cursor-hot-y, 16px);
    transform: translate3d(-100px, -100px, 0) rotate(0deg);
    pointer-events: none;
    z-index: 999999;
    will-change: transform;
    transition: transform 0.05s linear, width 0.2s ease, height 0.2s ease;
    user-select: none;
    -webkit-user-select: none;
    display: none;
}

.fne-cursor.is-active {
    display: block;
}

.fne-cursor.is-hover {
    width: calc(var(--fne-cursor-size, 32px) * 1.25);
    height: calc(var(--fne-cursor-size, 32px) * 1.25);
}

.fne-cursor.is-down {
    width: calc(var(--fne-cursor-size, 32px) * 0.85);
    height: calc(var(--fne-cursor-size, 32px) * 0.85);
}

@media (pointer: coarse) {
    .fne-cursor {
        display: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fne-cursor {
        transition: none;
    }
}
