:root{
  --rsg-navy:#09247c;
  --rsg-red:#e20613;
}

/* Solo se activa si hay puntero fino (mouse/trackpad) y sin reduced-motion */
.rsg-cursor-active{ cursor:none; }
.rsg-cursor-active a,
.rsg-cursor-active button,
.rsg-cursor-active [role="button"]{ cursor:none; }

.rsg-cursor-dot,
.rsg-cursor-ring{
  position:fixed; top:0; left:0; z-index:9999;
  pointer-events:none;
  transform:translate(-50%,-50%);
  will-change:transform;
}

.rsg-cursor-dot{
  width:7px; height:7px; border-radius:50%;
  background:var(--rsg-red);
  transition:width .2s ease, height .2s ease, background .2s ease, opacity .2s ease;
}

.rsg-cursor-ring{
  width:34px; height:34px; border-radius:50%;
  border:1.5px solid rgba(9,36,124,.35);
  transition:width .28s cubic-bezier(.22,1,.36,1), height .28s cubic-bezier(.22,1,.36,1),
             border-color .28s ease, background .28s ease, opacity .2s ease;
}

/* Estado al pasar sobre elementos interactivos: el anillo "abraza" el objetivo */
.rsg-cursor-ring.is-hover{
  width:54px; height:54px;
  border-color:var(--rsg-red);
  background:rgba(226,6,19,.06);
}
.rsg-cursor-dot.is-hover{
  width:0; height:0;
}

/* Se ocultan hasta el primer movimiento del mouse, y al salir de la ventana */
.rsg-cursor-dot,
.rsg-cursor-ring{ opacity:0; }
.rsg-cursor-ready .rsg-cursor-dot,
.rsg-cursor-ready .rsg-cursor-ring{ opacity:1; }

@media (max-width:900px), (hover:none), (pointer:coarse){
  .rsg-cursor-dot,
  .rsg-cursor-ring{ display:none; }
  .rsg-cursor-active{ cursor:auto; }
}

@media (prefers-reduced-motion:reduce){
  .rsg-cursor-dot,
  .rsg-cursor-ring{ display:none; }
  .rsg-cursor-active{ cursor:auto; }
}