Estantería inteligente con shield ethernet y arduino

Hola a todos:
Tengo una estantería que me dice si tiene o no tiene material.. Desde un ordenador en red yo veo si tiene o no tiene producto y así relleno la estantería. Ahora me gustaría que cuando refresque y no tenga material me de al ojo, parpadeando el comentario de "vacía" o poniéndolo en rojo. He buscado como hacerlo en html pero no encuentro nada que me funcione, seguramente por que no entiendo bien todavía la estructura del código. Dejo la parte del código que creo que en este caso interesa pero si alguien quiere todo lo pongo
Un saludo y gracias

if (digitalRead(2)==1) // Dependiendo de el valor escribimos si tiene o no tiene producto       {     
     client.print("Ref ");
           client.print("29592");
           client.print(" esta a ");
           client.print(digitalRead(2)); // Lectura del pin 2 (digital)
           client.print(" Cargada ");  // nos dice que esta "cargada"
           client.println("
");// cambio de linea
           client.println("
");
      }

       if (digitalRead(2)==0 )
      {     
     client.print("Ref ");
           client.print("29592");
           client.print(" esta a ");
           client.print(digitalRead(2)); // Lectura del pin 2 (digital)
           client.print(" Vacia ");  /nos dice que esta "vacia"
           client.println("
");// cambio de linea
           client.println("
");
      }/code]"

En html no se puede, en css si prueba:

<span class="parpadea text"><strong>Este texto parpadea</strong>

Y en el header creas todo esto:

.text {
  font-size:28px;
  font-family:helvetica;
  font-weight:bold;
  color:#71d90b;
  text-transform:uppercase;
}
.parpadea {
  
  animation-name: parpadeo;
  animation-duration: 1s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;

  -webkit-animation-name:parpadeo;
  -webkit-animation-duration: 1s;
  -webkit-animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
}

@-moz-keyframes parpadeo{  
  0% { opacity: 1.0; }
  50% { opacity: 0.0; }
  100% { opacity: 1.0; }
}

@-webkit-keyframes parpadeo {  
  0% { opacity: 1.0; }
  50% { opacity: 0.0; }
   100% { opacity: 1.0; }
}

@keyframes parpadeo {  
  0% { opacity: 1.0; }
   50% { opacity: 0.0; }
  100% { opacity: 1.0; }
}

Gracias GO_zalo por contestar:
He puesto el código y al verificarlo me da errores, esto ya me ha pasado con otros códigos que había visto en foros sobre esto mismo, por eso pongo en la explicación que he dado al principio que todavía no entiendo muy bien la estructura de las frases. Te pido un favor, te pongo mi código completo y me insertas tu código y así veré que es lo que estoy haciendo mal. Me fastidia tener que pedirte que me lo hagas tu, pero estoy en un punto que no comprendo el por que no funciona, si a la gente le funciona. Gracias de nuevo.

#include <Ethernet.h>   // Incluye la librería Ethernet
 
 

// Identificador Ethernet unico
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
 
// Dirección IP asignanda al Arduino Ethernet Shield
byte ip[] = { 192, 168, 1, 50 };
 
// Es el puerto HTML para conexión a Interne
byte gateway[] = { 192, 168, 1, 1 };                   // Puerta de enlace
byte subnet[] = { 255, 255, 255, 0 };                  //Mascara de Sub Red
EthernetServer server(100);                             //Se usa el puerto 100 del servidor     
String readString;
 

 
//------------------------------------
//Funcion principal
//------------------------------------
void setup()
{
 
   //Incializa libreria y configuraciones de red
  Ethernet.begin(mac, ip);  
 
  //Incia comunicación a trevés del puerto
  server.begin();
}
 
 

//------------------------------------
//Funcion ciclicla
//------------------------------------ 
void loop()
{
 
  EthernetClient client = server.available();
 
  if (client) {
 
   //Una petición http termina con una línea en blanco
    boolean current_line_is_blank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
 
        // Si hemos llegado al final de la línea (recibió una nueva línea
        // Carácter) y la línea está en blanco, 
        // la petición http ha terminado,
        // Para que podamos enviarle una respuesta
        if (c == '\n' && current_line_is_blank) 
        {
 
          // Envió de un encabezado estándar de respuesta HTTP 
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
 
            //Empezamos a leer las entradas digitales
            if (digitalRead(2)==1) // Dependiendo de el valor escribimos si tiene o no tiene produccto.
       {     
      client.print("Ref ");
            client.print("193029592");
            client.print(" esta a ");
            client.print(digitalRead(2)); // Lectura del pin 2 (digital)
            client.print(" Cargada ");
            client.println("
");// cambio de linea
            client.println("
");
       }


        if (digitalRead(2)==0 )
       {     
      client.print("Ref ");
            client.print("193029592");
            client.print(" esta a ");
            client.print(digitalRead(2)); // Lectura del pin 2 (digital)
            client.print(" Vacia ");
            

            client.println("
");// cambio de linea
            client.println("
");
       }
 if (digitalRead(3)==1) 
       {     
      client.print("Ref ");
            client.print("193029592");
            client.print(" esta a ");
            client.print(digitalRead(2)); // Lectura del pin 2 (digital)
            client.print(" Cargada ");
            client.println("
");// cambio de linea
            client.println("
");
       }

        if (digitalRead(3)==0 )
       {     
      client.print("Ref ");
            client.print("193029592");
            client.print(" esta a ");
            client.print(digitalRead(2)); // Lectura del pin 2 (digital)
            client.print(" Vacia ");
            client.println("
");// cambio de linea
            client.println("
");
       }
       
            //Imprimir valor entrada análoga
            client.print("Entrada analoga");
            client.print("0");
            client.print(" es ");
              client.print(analogRead(0));  // Lectura del pin 0 (analogo)
            client.println("
");
            client.println("
");
 
          break;
        }
 
        if (c == '\n') 
        {
          // Comenzaremos una nueva línea
          current_line_is_blank = true;
        } 
        else if (c != '\r') 
        {
          // Obtenemos un caracter en la línea actual
          current_line_is_blank = false;
        }
      }
    }
    // Damos un tiempo al servidor web para recibir los datos
    delay(1); //Retardo de un 1 ms(milisegundo)
 
    client.stop();
  }
}

Una página web tiene un head y un body, busca información sobre esto por que el css va en el head

Ok Gracias