[data-cursor-settings] {
    position: fixed !important;
    pointer-events: none !important;
    top: 0 !important;
    left: 0 !important;
    margin: 0 !important;
    transform: translate(-50%, -50%);
    z-index: 99999999 !important;
    width: var(--width, var(--container-widget-width, max-content)) !important;
    min-width: var(--width, var(--container-widget-width, 0)) !important;
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.2s ease !important;
    overflow: visible !important;
    contain: none !important;
    clip-path: none !important;
}

[data-cursor-settings] * {
    pointer-events: none !important;
}

.cursorcraft-cursor-wrapper {
    z-index: 99999999 !important;
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.2s ease !important;
    transform: translate(-100vw, -100vh);
    margin: 0 !important;
    overflow: visible !important;
    contain: none !important;
    clip-path: none !important;
    --container-widget-width: max-content;
    width: max-content;
}

.cursorcraft-cursor-builder-for-elementor-container,
.cursorcraft-cursor-builder-for-elementor-container * {
    overflow: visible !important;
    contain: none !important;
    clip-path: none !important;
}

/* Allow Elementor Image Carousel widget to clip properly */
.cursorcraft-cursor-builder-for-elementor-container .elementor-widget-image-carousel,
.cursorcraft-cursor-builder-for-elementor-container.elementor-widget-image-carousel {
    overflow: hidden !important;
}

.cursorcraft-cursor-builder-for-elementor-container .elementor-image-carousel figure,
.cursorcraft-cursor-builder-for-elementor-container .elementor-image-carousel figure img,
.cursorcraft-cursor-builder-for-elementor-container .swiper-slide img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

.cursorcraft-cursor-builder-for-elementor-container.is-active {
    visibility: visible;
    opacity: 1;
}

html.cursorcraft-cursor-builder-for-elementor-hide-default,
html.cursorcraft-cursor-builder-for-elementor-hide-default *,
.cursorcraft-cursor-builder-for-elementor-hide-default,
.cursorcraft-cursor-builder-for-elementor-hide-default * {
    cursor: none !important;
}

/* Automatically restore native system cursor in HTML5 Fullscreen mode (e.g. Fullscreen Video) */
:fullscreen,
:fullscreen *,
:-webkit-full-screen,
:-webkit-full-screen *,
:-moz-full-screen,
:-moz-full-screen *,
:-ms-fullscreen,
:-ms-fullscreen * {
    cursor: auto !important;
}

.cursorcraft-instant-child {
    transform: translate(var(--cursorcraft-offset-x, 0px), var(--cursorcraft-offset-y, 0px)) !important;
}

.cursorcraft-cursor-builder-for-elementor-hovering-specific,
.cursorcraft-cursor-builder-for-elementor-hovering-specific * {
    cursor: none !important;
}

.cursorcraft-cursor-builder-for-elementor-editor-mode {
    position: relative;
    border: 1px dashed rgba(100, 100, 100, 0.3);
}

.cursorcraft-cursor-builder-for-elementor-editor-mode::before {
    content: "Custom Cursor Region";
    position: absolute;
    top: 0;
    left: 0;
    background: rgba(0, 0, 0, 0.1);
    color: #333;
    font-size: 10px;
    padding: 2px 5px;
    pointer-events: none;
    z-index: 10;
}

/* Hover State Container Feature */
.cursorcraft-cursor-builder-for-elementor-container.is-active.cursorcraft-hover-state:not(.is-hovering-interactive) {
    opacity: 0;
    visibility: hidden;
}

.cursorcraft-cursor-builder-for-elementor-container.is-active.cursorcraft-default-state {
    opacity: 1;
    visibility: visible;
}

.cursorcraft-hover-state, .cursorcraft-default-state {
    transition: opacity var(--cursorcraft-transition-duration, 0.2s) ease, visibility 0s ease var(--cursorcraft-transition-duration, 0.2s) !important;
}

body.cursorcraft-has-hover-container .cursorcraft-cursor-builder-for-elementor-container.is-active.is-hovering-interactive.cursorcraft-default-state {
    opacity: 0;
    visibility: hidden;
}

.cursorcraft-cursor-builder-for-elementor-container.is-active.is-hovering-interactive.cursorcraft-hover-state {
    opacity: 1;
    visibility: visible;
    transition: opacity var(--cursorcraft-transition-duration, 0.2s) ease, visibility 0s ease 0s !important;
}

/* Fix Elementor Widget Container Height for Background Widgets */
.elementor-widget-cursorcraft_interactive_dot_grid,
.elementor-widget-cursorcraft_interactive_dot_grid .elementor-widget-container,
.elementor-widget-cursorcraft_reveal_mask,
.elementor-widget-cursorcraft_reveal_mask .elementor-widget-container,
.elementor-widget-cursorcraft_smoke_background,
.elementor-widget-cursorcraft_smoke_background .elementor-widget-container {
    width: 100%;
    height: 100%;
}

/* Scratch-off Reveal Mask */
.cursorcraft-reveal-base img,
.cursorcraft-reveal-mask-layer img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cursorcraft-reveal-mask-layer {
    mask-image: radial-gradient(circle var(--mask-size, 150px) at var(--mask-x, -1000px) var(--mask-y, -1000px), black var(--mask-solid, 50%), transparent 100%);
    -webkit-mask-image: radial-gradient(circle var(--mask-size, 150px) at var(--mask-x, -1000px) var(--mask-y, -1000px), black var(--mask-solid, 50%), transparent 100%);
}

@media (max-width: 767px) {
    .cursorcraft-reveal-disable-mobile .cursorcraft-reveal-base {
        display: none !important;
    }
    .cursorcraft-reveal-disable-mobile .cursorcraft-reveal-mask-layer {
        mask-image: none !important;
        -webkit-mask-image: none !important;
    }
    
    .cursorcraft-smoke-disable-mobile {
        display: none !important;
    }
}

/* Portfolio List Widget */
.cursorcraft-portfolio-images-container {
    position: fixed;
    top: 0;
    left: 0;
    pointer-events: none;
    z-index: 99999999;
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.8);
    transition: opacity 0.3s ease;
    overflow: hidden;
    border-radius: 12px;
    box-shadow: 0 20px 40px rgba(0,0,0,0.3);
    will-change: transform, opacity;
    background-color: transparent;
}

.cursorcraft-portfolio-images-container.is-active {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

.cursorcraft-portfolio-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.cursorcraft-portfolio-image.is-active {
    opacity: 1;
}

/* CursorCraft Utility Classes */
.cc-default,
.cursorcraft-default,
.cc-default *,
.cursorcraft-default *,
.cc-with-default,
.cursorcraft-with-default,
.cc-with-default *,
.cursorcraft-with-default * {
    cursor: auto !important;
}

/* Utility Class: Luminous Glow */
.cursorcraft-cursor-builder-for-elementor-container.cc-glowing {
    filter: drop-shadow(0 0 16px rgba(124, 58, 237, 0.75)) drop-shadow(0 0 32px rgba(168, 85, 247, 0.5)) !important;
    transition: filter 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

/* Utility Class: Frosted Glass Backdrop Blur */
.cursorcraft-cursor-builder-for-elementor-container.cc-blurred {
    backdrop-filter: blur(12px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(12px) saturate(180%) !important;
    border-color: rgba(255, 255, 255, 0.45) !important;
    transition: backdrop-filter 0.25s ease, -webkit-backdrop-filter 0.25s ease !important;
}

/* Utility Class: Continuous Spin Animation */
@keyframes cc-spin-anim {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
.cursorcraft-cursor-builder-for-elementor-container.cc-spinning > * {
    animation: cc-spin-anim 4s linear infinite !important;
}



