/* === Seleção de texto — cor de marca === */
::selection { background:#0d00ff; color:#fff; }
::-moz-selection { background:#0d00ff; color:#fff; }

/* === Cursores com fallback SVG → PNG → nativo ===
   Ajusta hotspots (x y) se precisares.
*/
html, body {
  cursor: url("/files/cursor.svg") 8 2, url("/files/cursor.png") 8 2, auto;
}
*, *::before, *::after { cursor: inherit; }

/* Elementos clicáveis (inclui :hover/:active para evitar regressões) */
a, a:hover, a:active, a:focus-visible,
button, button:hover, button:active, button:focus-visible,
input[type="button"], input[type="button"]:hover,
input[type="submit"], input[type="submit"]:hover,
input[type="reset"],  input[type="reset"]:hover,
[role="button"], [role="button"]:hover,
.clickable, .clickable:hover,
label, summary {
  cursor: url("/files/cursor_selected.svg") 8 2,
          url("/files/cursor_selected.png") 8 2,
          pointer !important;
}

/* Campos de texto (inclui :hover) */
input[type="text"], input[type="email"], input[type="search"],
input[type="tel"], input[type="url"], input[type="password"],
textarea, [contenteditable="true"],
input[type="text"]:hover, input[type="email"]:hover,
input[type="search"]:hover, textarea:hover {
  cursor: url("/files/cursor.svg") 8 16,
          url("/files/cursor.png") 8 16,
          text !important;
}

/* Estados especiais */
:disabled, [aria-disabled="true"] { cursor: not-allowed !important; }
[draggable="true"]{ cursor: grab; } /* opcional */

/* Overlays / popups herdam (para não “perderem” o cursor) */
.popup-overlay, .popup-container { cursor: inherit; }

/* Vídeo — elemento e (best-effort) controlos nativos */
video, video:hover, video:active {
  cursor: url("/files/cursor_selected.svg") 8 2,
          url("/files/cursor_selected.png") 8 2,
          pointer !important;
}
video::-webkit-media-controls,
video::-webkit-media-controls-panel,
video::-webkit-media-controls-play-button,
video::-webkit-media-controls-volume-slider,
video::-webkit-media-controls-timeline,
video::-webkit-media-controls-enclosure {
  cursor: url("/files/cursor_selected.svg") 8 2,
          url("/files/cursor_selected.png") 8 2,
          pointer !important;
}

/* ====== OVERRIDES ESPECÍFICOS PARA work.html ======
   O teu works.css tem 'cursor: pointer' em vários seletores.
   Estes overrides forçam o cursor personalizado nesses casos. */
.card .media,
.card.clickable .media,
.media-link, .media-link:hover, .media-link:active, .media-link:focus-visible,
.see-projects, .see-projects:hover, .see-projects:active, .see-projects:focus-visible,
.back-to-top, .back-to-top:hover, .back-to-top:active, .back-to-top:focus-visible,
.hover-indicator,
.work-header a,
.info-link,
.top-cta a,
.projects .card h2,
.projects .card p {
  cursor: url("/files/cursor_selected.svg") 8 2,
          url("/files/cursor_selected.png") 8 2,
          pointer !important;
}

/* Se tiveres algum card marcado como 'no-hover' e quiseres seta normal: */
.card.no-hover .media {
  cursor: url("/files/cursor.svg") 8 2,
          url("/files/cursor.png") 8 2,
          auto !important;
}
