    * { box-sizing: border-box; }
    body {
      margin: 0;
      padding: 0;
      font-family: 'Inter', sans-serif;
      background: linear-gradient(135deg, #e6f0ff, #99ccff); /* Azul claro degradado */
      color: #00264d;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      height: 100vh;
      text-align: center;
      user-select: none; /* Evita selección de texto */
    }
    #logo img {
      max-width: 350px; /* Logo más grande */
      margin-bottom: 60px;
      filter: drop-shadow(0 4px 6px rgba(0,0,0,0.3));
      pointer-events: none; /* No permite clic en el logo */
    }
    #entrada {
      display: flex;
      align-items: center;
      gap: 16px;
      width: 100%;
      max-width: 500px; /* Más ancho para el campo */
      justify-content: center;
    }
    label {
      font-size: 22px;
      font-weight: 600;
      color: #00264d;
      pointer-events: none; /* No permite clic en el label */
    }
    input {
      padding: 16px;
      font-size: 20px;
      border-radius: 10px;
      border: 2px solid #004080;
      width: 280px; /* Campo más largo */
      text-align: center;
      background: #ffffff;
      color: #000000;
      box-shadow: 0 2px 6px rgba(0,0,0,0.2);
      pointer-events: auto; /* El input sí acepta interacción (para la pistola) */
    }

    /* BANNER + ANIMACIONES */
    #banner {
      display: none;
      margin-top: 30px; /* posición base, se ajusta con .show */
      padding: 30px;
      font-size: 26px;
      font-weight: bold;
      border-radius: 12px;
      color: white;
      max-width: 90%;
      word-wrap: break-word;
      box-shadow: 0 4px 12px rgba(0,0,0,0.4);

      opacity: 0;
      margin-top: 20px;
      transition: opacity 0.25s ease, margin-top 0.25s ease;
    }
    #banner.show {
      opacity: 1;
      margin-top: 40px; /* efecto slide suave hacia abajo */
    }

    .entrada { background: #28a745; }
    .salida { background: #dc3545; }

    /* Shake solo para errores */
    @keyframes shake {
      0% { transform: translateX(0); }
      20% { transform: translateX(-6px); }
      40% { transform: translateX(6px); }
      60% { transform: translateX(-4px); }
      80% { transform: translateX(4px); }
      100% { transform: translateX(0); }
    }
    #banner.shake {
      animation: shake 0.4s;
    }

    @media (max-width: 480px) {
      #entrada { flex-direction: column; }
      input { width: 100%; font-size: 18px; padding: 14px; }
      #banner { font-size: 22px; padding: 20px; }
    }
    #welcome {
      font-size: 32px;
      font-weight: 700;
      margin-bottom: 45px;
      background: linear-gradient(90deg, #3f6ecf, #002f6c);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      animation: welcomeFade 1s ease forwards;
    }

    @keyframes welcomeFade {
      from { opacity: 0; transform: translateY(-10px); }
      to   { opacity: 1; transform: translateY(0); }
    }