@import url("https://fonts.googleapis.com/css?family=Raleway:400,400i,700");

html, body {
  background: linear-gradient(to left, #8279e2 , #ff9068);
  height: 100%;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-family: Raleway, sans-serif;
  text-align: center;
  padding: 10px;
}

h1 {
  color: black;
  font-size: clamp(24px, 5vw, 50px);
  letter-spacing: 4px;
  margin-bottom: 20px;
}

.pad {
  width: 90%;
  max-width: 450px;
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 3 colonnes fixes */
  gap: 10px;
  padding: 20px;
  background-color: white;
  border: 4px solid black;
  box-shadow: 4px 4px 0 0 black;
}

.key {
  aspect-ratio: 1/1; 
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-size: clamp(14px, 2vw, 20px);
  font-weight: 500;
  color: black;
  background-color: white;
  border: 4px solid black;
  box-shadow: 4px 4px 0 0 black;
  user-select: none;
  transform: translate(0, 0);
  transition: all 0.2s;
  overflow: hidden; 
  text-align: center;
  padding: 5px;
}

kbd {
  font-size: clamp(14px, 1.8vw, 22px);
  font-weight: bold;
  text-transform: uppercase;
}

.sound {
  font-size: clamp(10px, 1.5vw, 18px);
  text-transform: uppercase;
  color: #ff9068;
  margin-top: 5px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.key.playing {
  background-color: #ddd;
  box-shadow: 0 0 0 0 black;
  transform: translate(4px, 4px);
  border-color: #fd746c;
}

.key.playing .sound {
  color: #fd746c;
  transform: scale(1.2);
}

#play {
  background-color: green;
  grid-column: 3 / 4; 
  grid-row: 4; 
}

#record {
  background-color: red;
  grid-column: 1 / 2; 
  grid-row: 4; 
}

/* Responsive pour petits écrans */
@media (max-width: 600px) {
  .pad {
    grid-template-columns: repeat(3, minmax(60px, 1fr));
  }

  .key {
    font-size: 3vw;
    padding: 5px;
  }

  .sound {
    font-size: 2.5vw
  }
}