/* Curseur hexagonal TechTalk — actif uniquement sur pointeur précis (pas tactile) */

html:has(#tt-cursor-el) {
    cursor: none;
}
html:has(#tt-cursor-el) *:not(input):not(textarea):not(select) {
    cursor: none !important;
}

#tt-cursor-el {
    position: fixed;
    top: 0;
    left: 0;
    width: 32px;
    height: 32px;
    pointer-events: none;
    z-index: 99999;
    will-change: transform;
    transform: translate(-50%, -50%);
    transition: opacity 0.2s ease;
}

#tt-cursor-el polygon {
    fill: none;
    stroke: var(--color-energy);
    stroke-width: 1.8;
    filter: drop-shadow(0 0 4px var(--color-energy));
    transition:
        stroke 0.25s ease,
        stroke-width 0.2s ease,
        filter 0.25s ease,
        transform 0.18s ease;
    transform-origin: center;
    transform-box: fill-box;
}

/* État : survol d'un lien */
#tt-cursor-el[data-state="link"] polygon {
    stroke-width: 2.5;
    filter: drop-shadow(0 0 9px var(--color-energy));
    transform: scale(1.35);
}

/* État : survol d'un champ texte */
#tt-cursor-el[data-state="input"] polygon {
    stroke: var(--color-accent);
    stroke-width: 1.4;
    filter: drop-shadow(0 0 4px var(--color-accent));
    transform: scaleY(1.5) scaleX(0.7);
}

/* État : zone de navigation / header */
#tt-cursor-el[data-state="nav"] polygon {
    stroke-width: 2.2;
    filter: drop-shadow(0 0 7px var(--color-energy));
    transform: scale(1.18);
}

/* Curseur masqué hors de la fenêtre */
#tt-cursor-el[data-state="hidden"] {
    opacity: 0;
}

/* Sécurité : motion réduite */
@media (prefers-reduced-motion: reduce) {
    #tt-cursor-el polygon {
        transition: none;
        filter: none;
    }
}
