/* Biblioteca de efectos de la Fábrica — cursor propio (cursor/cursor.js).
   Colores del proyecto en dos variables:
     --efx-claro  disco y halos (con mezcla por exclusión: claro sobre oscuro,
                  oscuro sobre claro);
     --efx-tinta  disco sobre las fotos ampliables (mezcla normal).
   Disco de 100 px escalado (15, 40 o 45 px); el aro de los enlaces va
   aparte, sin mezcla, del color del texto del enlace. */
.efx-cursor-punto, .efx-cursor-aro, .efx-cursor-halo { position: fixed; left: 0; top: 0; pointer-events: none; }
.efx-cursor-punto { z-index: 105; width: 0; height: 0; mix-blend-mode: exclusion; }
.efx-cursor-punto.is-tinta { mix-blend-mode: normal; }
.efx-cursor-disco {
  position: absolute;
  left: -50px;
  top: -50px;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: var(--efx-claro, #f7f7f4);
  opacity: 0;
  will-change: transform, opacity;
}
.efx-cursor-punto.is-tinta .efx-cursor-disco { background: var(--efx-tinta, #161616); }
/* Signo + de dos barras de 2 px (30 % de los 45 px del disco); la vertical
   se tumba y queda − con la foto ampliada (500 ms, C1). */
.efx-cursor-signo { position: absolute; left: -6.75px; top: -6.75px; width: 13.5px; height: 13.5px; opacity: 0; transition: opacity 400ms ease; }
.efx-cursor-signo::before,
.efx-cursor-signo::after { content: ""; position: absolute; left: 0; top: calc(50% - 1px); width: 100%; height: 2px; background: var(--efx-claro, #f7f7f4); }
.efx-cursor-signo::after { transform: rotate(90deg); transition: transform 500ms cubic-bezier(0.6, 0, 0.3, 1); }
.efx-cursor-punto.is-foto .efx-cursor-signo { opacity: 1; }
.efx-cursor-punto.is-menos .efx-cursor-signo::after { transform: rotate(0deg); }
.efx-cursor-aro {
  z-index: 104;
  width: 80px;
  height: 80px;
  margin: -40px 0 0 -40px;
  border: 1px solid currentColor;
  border-radius: 50%;
  opacity: 0;
  will-change: transform, opacity;
}
.efx-cursor-halo {
  z-index: 104;
  width: 100px;
  height: 100px;
  margin: -50px 0 0 -50px;
  border-radius: 50%;
  background: var(--efx-claro, #f7f7f4);
  mix-blend-mode: exclusion;
  opacity: 0;
}
@media (hover: none), (pointer: coarse) {
  .efx-cursor-punto, .efx-cursor-aro, .efx-cursor-halo { display: none; }
}
