/* ── Custom cursor (desktop only) ── */
@media (hover: hover) and (pointer: fine) {
    /* Cover html + body explicitly; * alone can miss edge-cases */
    html, body, * { cursor: none !important; }
    /* Iframe shields need to be invisible but capture mouse events */
    .nt-iframe-shield { cursor: none !important; }
}
.nt-cursor {
    position: fixed;
    left: 0; top: 0;
    pointer-events: none;
    z-index: 99999;
    will-change: transform;
    /* Only transition filter (hover glow), never transform (position) */
    transition: filter 0.15s;
    /* Force GPU layer so translate3d composites on its own layer */
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    contain: layout style size;
}
.nt-cursor svg {
    width: 28px; height: 34px;
    filter: drop-shadow(0 1px 3px rgba(0,0,0,0.4));
    /* Smooth size transition on hover */
    transition: width 0.12s ease, height 0.12s ease, filter 0.15s;
}
.nt-cursor.hovering svg {
    width: 32px; height: 38px;
    filter: drop-shadow(0 2px 6px rgba(0,0,0,0.5));
}
.nt-cursor.pressing svg {
    width: 24px; height: 29px;
    transition: width 0.06s ease, height 0.06s ease;
}
.nt-mouse-glow {
    position: fixed;
    left: 0; top: 0;
    width: 350px; height: 350px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(220, 140, 180, 0.07) 0%, transparent 70%);
    pointer-events: none;
    z-index: 0;
    will-change: transform;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    contain: layout style size;
}
@media (hover: none) {
    * { cursor: auto !important; }
    .nt-cursor, .nt-mouse-glow { display: none !important; }
}
