.nv-mascot-container {
    position: fixed !important;
    bottom: 50px !important;
    right: 25px !important;
    width: 110px !important;
    z-index: 2147483647 !important;
    cursor: pointer !important;
    user-select: none !important;
    -webkit-tap-highlight-color: transparent !important;
    touch-action: none !important;
    pointer-events: auto !important;
    /* Opacità iniziale ridotta (es. 50%) e transizione fluida */
    opacity: 0.5 !important;
    transition: opacity 0.4s ease, transform 0.4s ease !important;
}

/* Quando è attiva/cliccata o ci passi sopra, sale al 100% */
.nv-mascot-container.nv-active-state,
.nv-mascot-container:hover {
    opacity: 1 !important;
}

@media (max-width: 768px) {
    .nv-mascot-container {
        width: 85px !important;
        bottom: 40px !important;
        right: 15px !important;
    }
}

/* Corpo 3D con prospettiva netta */
.nv-mascot-body {
    position: relative !important;
    width: 100% !important;
    transform-style: preserve-3d !important;
    transform: perspective(800px) rotateX(0deg) rotateY(0deg) !important;
    transition: transform 0.1s ease-out !important;
    will-change: transform !important;
}

.nv-img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    filter: drop-shadow(3px 3px 0px #00ff00) !important;
    transition: filter 0.2s ease !important;
}

.nv-mascot-container:hover .nv-img {
    filter: drop-shadow(5px 5px 0px #00ff00) !important;
}

/* Fumetto di dialogo high-contrast */
.nv-speech-bubble {
    position: absolute !important;
    bottom: calc(100% + 12px) !important;
    right: 0 !important;
    background: #000000 !important;
    color: #00ff00 !important;
    border: 2px solid #00ff00 !important;
    padding: 10px 14px !important;
    border-radius: 0px !important;
    font-family: monospace, system-ui, sans-serif !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
    opacity: 0 !important;
    transform: translateY(10px) scale(0.95) !important;
    transform-origin: bottom right !important;
    transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important;
    pointer-events: none !important;
    z-index: 2147483647 !important;
    box-shadow: 4px 4px 0px rgba(0, 255, 0, 0.2) !important;
}

/* Freccina del fumetto geometrica */
.nv-speech-bubble::after {
    content: '' !important;
    position: absolute !important;
    bottom: -7px !important;
    right: 20px !important;
    width: 0 !important;
    height: 0 !important;
    border-left: 5px solid transparent !important;
    border-right: 5px solid transparent !important;
    border-top: 6px solid #00ff00 !important;
}

.nv-counter {
    font-size: 9px !important;
    color: #00ff00 !important;
    margin-top: 3px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
}

.nv-speech-visible {
    opacity: 1 !important;
    transform: translateY(0) scale(1) !important;
}

/* Particelle geometriche pure */
.nv-particles-container {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 0 !important;
    height: 0 !important;
    pointer-events: none !important;
    overflow: visible !important;
    z-index: 2147483647 !important;
}

.nv-particle {
    position: absolute !important;
    font-family: monospace !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    color: #00ff00 !important;
    background: #000000 !important;
    border: 2px solid #00ff00 !important;
    padding: 2px 5px !important;
    pointer-events: none !important;
    animation: particleFly 0.6s ease-out forwards !important;
}

@keyframes particleFly {
    0% {
        transform: translate(0, 0) scale(0.5);
        opacity: 1;
    }
    100% {
        transform: translate(var(--rand-x), var(--rand-y)) scale(1.1);
        opacity: 0;
    }
}

/* Animazione al click secca e reattiva */
@keyframes clickAnim {
    0% { transform: scale(1) rotate(0deg); }
    30% { transform: scale(0.85) rotate(-6deg); }
    60% { transform: scale(1.15) rotate(4deg); }
    100% { transform: scale(1) rotate(0deg); }
}

.nv-bounce-active {
    animation: clickAnim 0.4s ease !important;
}