/* ==========================================================================
   Vellion Group Studio — Universal Hardware-Accelerated Vector Pointer
   Zero-lag, hardware-native cursor styling with zero child-flicker
   ========================================================================== */

@media (hover: hover) and (pointer: fine) {
    /* 1. Base default studio cursor for whole document */
    html,
    body {
        cursor: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMyIDMyIiBmaWxsPSJub25lIj48cGF0aCBkPSJNMyAzLjVMMTIuNSAyNkwxNi4yIDE3LjdMMjQuNSAxNEwzIDMuNVoiIGZpbGw9InJnYmEoMCwwLDAsMC4yNSkiLz48cGF0aCBkPSJNMyAyTDEyLjUgMjQuNUwxNi4yIDE2LjJMMjQuNSAxMi41TDMgMloiIGZpbGw9IiMwOTA5MEIiIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48Y2lyY2xlIGN4PSIxMS41IiBjeT0iMTEuNSIgcj0iMiIgZmlsbD0iIzBEOTQ4OCIvPjwvc3ZnPg==') 3 2, auto;
    }

    /* 2. Interactive elements get the vector pointer variant */
    a,
    button,
    [role="button"],
    input[type="submit"],
    input[type="button"],
    input[type="reset"],
    select,
    summary,
    label[for],
    [tabindex]:not([tabindex="-1"]),
    [onclick],
    .btn,
    [class*="btn"],
    .service-card,
    .project-card,
    .flagship-card,
    .card,
    [class*="card"],
    .clause-q,
    .clause-header,
    .theme-toggle,
    .theme-toggle-btn,
    .mobile-menu-btn,
    .mobile-toggle,
    .social-icon,
    .social-link,
    .nav-link,
    .dropdown-item,
    .dropdown-toggle,
    .tab-btn,
    .about-nav-btn,
    .faq-item,
    .faq-question,
    .service-pill,
    .trust-item,
    .who-chip,
    .skill-item,
    .spec-list li,
    .rel-service-card,
    .related-work-card,
    .post-card,
    .cat-tab,
    .toc-toggle-btn,
    .toc-nav a,
    .copy-code-btn,
    .btn-copy-code,
    .floating-whatsapp,
    .as-founder-link,
    .footer-link,
    .step-card,
    .action-btn,
    .clickable,
    [style*="cursor: pointer"],
    [style*="cursor:pointer"] {
        cursor: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMyIDMyIiBmaWxsPSJub25lIj48cGF0aCBkPSJNMyAzLjVMMTIuNSAyNkwxNi4yIDE3LjdMMjQuNSAxNEwzIDMuNVoiIGZpbGw9InJnYmEoMCwwLDAsMC4yNSkiLz48cGF0aCBkPSJNMyAyTDEyLjUgMjQuNUwxNi4yIDE2LjJMMjQuNSAxMi41TDMgMloiIGZpbGw9IiMwRDk0ODgiIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48cGF0aCBkPSJNMTggMThMMjcgMjdNMjcgMTlWMjdIMTkiIHN0cm9rZT0iIzBEOTQ4OCIgc3Ryb2tlLXdpZHRoPSIyLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPg==') 3 2, pointer !important;
    }

    /* 3. Children inside interactive elements MUST inherit pointer to prevent any cursor flickering */
    a *,
    button *,
    [role="button"] *,
    [class*="btn"] *,
    .service-card *,
    .project-card *,
    .flagship-card *,
    .card *,
    [class*="card"] *,
    .clause-q *,
    .clause-header *,
    .theme-toggle *,
    .theme-toggle-btn *,
    .mobile-menu-btn *,
    .mobile-toggle *,
    .social-icon *,
    .social-link *,
    .nav-link *,
    .tab-btn *,
    .about-nav-btn *,
    .dropdown-item *,
    .faq-item *,
    .faq-question *,
    .service-pill *,
    .trust-item *,
    .who-chip *,
    .skill-item *,
    .post-card *,
    .cat-tab *,
    .toc-toggle-btn *,
    .copy-code-btn *,
    .btn-copy-code *,
    .step-card *,
    .action-btn *,
    .clickable * {
        cursor: inherit !important;
    }

    /* 4. Text fields always use native I-beam cursor */
    input:not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]),
    textarea,
    [contenteditable="true"] {
        cursor: text !important;
    }

    /* 5. Disabled elements */
    [disabled],
    [disabled] *,
    .disabled,
    [aria-disabled="true"] {
        cursor: not-allowed !important;
    }

    /* ================= DARK MODE OVERRIDES ================= */
    body.dark-mode,
    html.dark-mode,
    .dark-mode {
        cursor: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMyIDMyIiBmaWxsPSJub25lIj48cGF0aCBkPSJNMyAzLjVMMTIuNSAyNkwxNi4yIDE3LjdMMjQuNSAxNEwzIDMuNVoiIGZpbGw9InJnYmEoMCwwLDAsMC42KSIvPjxwYXRoIGQ9Ik0zIDJMMTIuNSAyNC41TDE2LjIgMTYuMkwyNC41IDEyLjVMMyAyWiIgZmlsbD0iI0ZGRkZGRiIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjxjaXJjbGUgY3g9IjExLjUiIGN5PSIxMS41IiByPSIyIiBmaWxsPSIjMTRCOEE2Ii8+PC9zdmc+') 3 2, auto;
    }

    body.dark-mode a,
    body.dark-mode button,
    body.dark-mode [role="button"],
    body.dark-mode input[type="submit"],
    body.dark-mode input[type="button"],
    body.dark-mode input[type="reset"],
    body.dark-mode select,
    body.dark-mode summary,
    body.dark-mode label[for],
    body.dark-mode [tabindex]:not([tabindex="-1"]),
    body.dark-mode [onclick],
    body.dark-mode .btn,
    body.dark-mode [class*="btn"],
    body.dark-mode .service-card,
    body.dark-mode .project-card,
    body.dark-mode .flagship-card,
    body.dark-mode .card,
    body.dark-mode [class*="card"],
    body.dark-mode .clause-q,
    body.dark-mode .clause-header,
    body.dark-mode .theme-toggle,
    body.dark-mode .theme-toggle-btn,
    body.dark-mode .mobile-menu-btn,
    body.dark-mode .mobile-toggle,
    body.dark-mode .social-icon,
    body.dark-mode .social-link,
    body.dark-mode .nav-link,
    body.dark-mode .dropdown-item,
    body.dark-mode .dropdown-toggle,
    body.dark-mode .tab-btn,
    body.dark-mode .about-nav-btn,
    body.dark-mode .faq-item,
    body.dark-mode .faq-question,
    body.dark-mode .service-pill,
    body.dark-mode .trust-item,
    body.dark-mode .who-chip,
    body.dark-mode .skill-item,
    body.dark-mode .spec-list li,
    body.dark-mode .rel-service-card,
    body.dark-mode .related-work-card,
    body.dark-mode .post-card,
    body.dark-mode .cat-tab,
    body.dark-mode .toc-toggle-btn,
    body.dark-mode .toc-nav a,
    body.dark-mode .copy-code-btn,
    body.dark-mode .btn-copy-code,
    body.dark-mode .floating-whatsapp,
    body.dark-mode .as-founder-link,
    body.dark-mode .footer-link,
    body.dark-mode .step-card,
    body.dark-mode .action-btn,
    body.dark-mode .clickable,
    body.dark-mode [style*="cursor: pointer"],
    body.dark-mode [style*="cursor:pointer"],
    html.dark-mode a,
    html.dark-mode button,
    html.dark-mode [role="button"],
    html.dark-mode .btn,
    html.dark-mode [class*="btn"],
    .dark-mode a,
    .dark-mode button,
    .dark-mode [role="button"] {
        cursor: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMyIDMyIiBmaWxsPSJub25lIj48cGF0aCBkPSJNMyAzLjVMMTIuNSAyNkwxNi4yIDE3LjdMMjQuNSAxNEwzIDMuNVoiIGZpbGw9InJnYmEoMCwwLDAsMC42KSIvPjxwYXRoIGQ9Ik0zIDJMMTIuNSAyNC41TDE2LjIgMTYuMkwyNC41IDEyLjVMMyAyWiIgZmlsbD0iIzE0QjhBNiIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjxwYXRoIGQ9Ik0xOCAxOEwyNyAyN00yNyAxOVYyN0gxOSIgc3Ryb2tlPSIjMTRCOEE2IiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+') 3 2, pointer !important;
    }

    body.dark-mode a *,
    body.dark-mode button *,
    body.dark-mode [role="button"] *,
    body.dark-mode [class*="btn"] *,
    body.dark-mode .service-card *,
    body.dark-mode .project-card *,
    body.dark-mode .flagship-card *,
    body.dark-mode .card *,
    body.dark-mode [class*="card"] *,
    body.dark-mode .clause-q *,
    body.dark-mode .clause-header *,
    body.dark-mode .theme-toggle *,
    body.dark-mode .theme-toggle-btn *,
    body.dark-mode .mobile-menu-btn *,
    body.dark-mode .mobile-toggle *,
    body.dark-mode .social-icon *,
    body.dark-mode .social-link *,
    body.dark-mode .nav-link *,
    body.dark-mode .tab-btn *,
    body.dark-mode .about-nav-btn *,
    body.dark-mode .dropdown-item *,
    body.dark-mode .faq-item *,
    body.dark-mode .faq-question *,
    body.dark-mode .service-pill *,
    body.dark-mode .trust-item *,
    body.dark-mode .who-chip *,
    body.dark-mode .skill-item *,
    body.dark-mode .post-card *,
    body.dark-mode .cat-tab *,
    body.dark-mode .toc-toggle-btn *,
    body.dark-mode .copy-code-btn *,
    body.dark-mode .btn-copy-code *,
    body.dark-mode .step-card *,
    body.dark-mode .action-btn *,
    body.dark-mode .clickable *,
    html.dark-mode a *,
    html.dark-mode button *,
    .dark-mode a *,
    .dark-mode button * {
        cursor: inherit !important;
    }

    body.dark-mode input:not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]),
    body.dark-mode textarea,
    body.dark-mode [contenteditable="true"],
    html.dark-mode input:not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]),
    html.dark-mode textarea {
        cursor: text !important;
    }

    body.dark-mode [disabled],
    body.dark-mode [disabled] *,
    body.dark-mode .disabled,
    html.dark-mode [disabled] {
        cursor: not-allowed !important;
    }
}

/* ==========================================================================
   Tactile Click Pulse Effect (Desktop Fine Pointer Only)
   ========================================================================== */
.studio-click-pulse {
    position: fixed;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: transparent;
    border: 2px solid #0D9488;
    pointer-events: none !important;
    user-select: none !important;
    transform: translate(-50%, -50%) scale(1);
    animation: studioPulse 0.45s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    z-index: 2147483647;
}

body.dark-mode .studio-click-pulse,
html.dark-mode .studio-click-pulse,
.dark-mode .studio-click-pulse {
    border-color: #14B8A6;
    box-shadow: 0 0 12px rgba(20, 184, 166, 0.55);
}

@keyframes studioPulse {
    0% {
        transform: translate(-50%, -50%) scale(0.8);
        opacity: 1;
    }
    100% {
        transform: translate(-50%, -50%) scale(4.5);
        opacity: 0;
    }
}
