body {
  margin: 0;
  background: black;
  overflow: hidden;
  font-family: Arial;
}

/* VIDEO */
video {
  position: absolute;
  width: 260px;
  bottom: 160px;
  right: 20px;
  border: 2px solid white;
  border-radius: 10px;
}

/* MOBILE VIDEO */
@media (max-width: 768px) {
  video {
    width: 140px;
    bottom: 120px;
    right: 10px;
  }
}

/* CANVAS */
canvas {
  position: absolute;
  top: 0;
  left: 0;
}

/* OUTPUT */
#output {
  position: absolute;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  color: white;
  font-size: 28px;
  background: rgba(0,0,0,0.6);
  padding: 12px 20px;
  border-radius: 10px;
  min-width: 250px;
  text-align: center;
}

/* MOBILE OUTPUT */
@media (max-width: 768px) {
  #output {
    font-size: 20px;
    padding: 10px 15px;
    min-width: 200px;
  }
}

#output::after {
  content: "|";
  margin-left: 5px;
  animation: blink 1s infinite;
}

@keyframes blink {
  50% {opacity: 0;}
}

/* KEYBOARD */
#keyboard {
  position: absolute;
  bottom: 20px;
  width: 100%;
  text-align: center;
}

/* ROW */
.row {
  margin-bottom: 8px;
}

/* SHIFT EFFECT */
.row:nth-child(2) {
  margin-left: 3%;
}

.row:nth-child(3) {
  margin-left: 6%;
}

/* KEY */
.key {
  display: inline-block;
  padding: 12px 14px;
  margin: 4px;
  border: 2px solid cyan;
  color: cyan;
  font-size: 16px;
  border-radius: 10px;
  min-width: 32px;
  text-align: center;
  transition: 0.1s;
}

/* ACTIVE */
.active {
  background: cyan;
  color: black;
  transform: scale(1.1);
  box-shadow: 0 0 10px cyan;
}

/* SPACE */
.space {
  min-width: 200px;
}

/* DELETE */
.del {
  min-width: 80px;
  border-color: red;
  color: red;
}

/* 📱 MOBILE SIZE */
@media (max-width: 768px) {
  .key {
    padding: 8px 10px;
    margin: 3px;
    font-size: 12px;
    min-width: 24px;
  }

  .space {
    min-width: 120px;
  }

  .del {
    min-width: 60px;
  }

  .row:nth-child(2) {
    margin-left: 2%;
  }

  .row:nth-child(3) {
    margin-left: 4%;
  }
}