/* CTTCRS — orange 3D mouse arrow cursor (desktop / fine pointer only) */

@media (hover: hover) and (pointer: fine) {
    /* Hide system cursor; keep selector light (no body *) */
    html.has-orange-cursor,
    html.has-orange-cursor body {
        cursor: none !important;
    }
    html.has-orange-cursor a,
    html.has-orange-cursor button,
    html.has-orange-cursor label,
    html.has-orange-cursor input,
    html.has-orange-cursor select,
    html.has-orange-cursor textarea,
    html.has-orange-cursor summary,
    html.has-orange-cursor [role="button"],
    html.has-orange-cursor .btn,
    html.has-orange-cursor .slick-arrow,
    html.has-orange-cursor .slick-dots button {
        cursor: none !important;
    }
}

.ctt-cursor {
    position: fixed;
    top: 0;
    left: 0;
    width: 0;
    height: 0;
    z-index: 2147483000;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.15s ease;
    will-change: transform;
    contain: layout style;
}

.ctt-cursor.is-on {
    opacity: 1;
}

.ctt-cursor-arrow {
    position: absolute;
    top: 0;
    left: 0;
    width: 28px;
    height: 28px;
}

.ctt-cursor-arrow-inner {
    width: 100%;
    height: 100%;
    transform-origin: 3px 2px;
    filter:
        drop-shadow(1px 2px 2px rgba(120, 40, 0, 0.45))
        drop-shadow(0 0 6px rgba(255, 107, 53, 0.35));
    transition:
        transform 0.12s cubic-bezier(0.22, 1, 0.36, 1),
        filter 0.18s ease;
}

.ctt-cursor-arrow svg {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
}

.ctt-cursor.is-hover .ctt-cursor-arrow {
    width: 32px;
    height: 32px;
}

.ctt-cursor.is-hover .ctt-cursor-arrow-inner {
    filter:
        drop-shadow(1px 3px 3px rgba(120, 40, 0, 0.5))
        drop-shadow(0 0 10px rgba(255, 107, 53, 0.5));
}

.ctt-cursor.is-click .ctt-cursor-arrow-inner {
    transform: scale(0.84);
    filter:
        drop-shadow(0 1px 1px rgba(80, 25, 0, 0.55))
        drop-shadow(0 0 4px rgba(198, 61, 18, 0.45))
        brightness(0.9);
}

.ctt-cursor-text {
    position: absolute;
    top: 0;
    left: 0;
    width: 2px;
    height: 22px;
    margin-top: -11px;
    background: #ff6b35;
    border-radius: 1px;
    opacity: 0;
    box-shadow: 0 0 8px rgba(255, 107, 53, 0.55);
    transition: opacity 0.12s ease;
}

.ctt-cursor.is-text .ctt-cursor-arrow {
    opacity: 0;
}

.ctt-cursor.is-text .ctt-cursor-text {
    opacity: 1;
}
