.sound-row {
  position: relative;
  display: grid;
  grid-template-columns: 48px 46px 58px minmax(170px, 1fr) 210px;
  gap: 12px;
  align-items: center;
  min-height: 96px;
  padding: 12px 14px;
  border: 1px solid #292c2c;
  border-radius: 12px;
  background: linear-gradient(180deg, #111515, #090c0c);
  overflow: hidden;
}

.sound-row.playing {
  border-color: rgba(242, 183, 28, .78);
  box-shadow: inset 3px 0 #f2b71c, 0 0 24px rgba(242, 183, 28, .08);
}

.fx-badge {
  display: grid;
  place-items: center;
  min-height: 34px;
  border: 1px solid #00a9d8;
  border-radius: 6px;
  color: #71ddff;
  background: rgba(0, 126, 169, .13);
  font: 700 11px Oswald;
}

.rack-play {
  width: 42px;
  min-height: 42px;
  padding: 0;
  border-radius: 50%;
  border: 1px solid #8a650f;
  color: #ffd867;
  background: #070909;
  cursor: pointer;
}

.sound-row > img {
  width: 58px;
  height: 58px;
  border-radius: 7px;
  object-fit: cover;
}

.sound-copy h3 { margin: 0 0 7px; font: 600 17px Oswald; }
.sound-copy p { margin: 0; color: #8f9696; font-size: 11px; }
.sound-audio { display: none; }

.rack-controls {
  display: grid;
  grid-template-columns: 1.5fr .8fr .8fr;
  gap: 8px;
  align-items: center;
  color: #727979;
  font: 600 9px Oswald;
  text-align: center;
}

.rack-controls label { display: grid; gap: 5px; }
.rack-volume { width: 100%; accent-color: #f2b71c; }
.rack-controls span { display: grid; justify-items: center; gap: 4px; }
.rack-controls i {
  display: block;
  width: 27px;
  height: 27px;
  border: 2px solid #3a3f3f;
  border-top-color: #d1a833;
  border-radius: 50%;
  transform: rotate(-24deg);
}

.rack-steps {
  grid-column: 4 / 6;
  display: grid;
  grid-template-columns: repeat(16, minmax(7px, 1fr));
  gap: 5px;
}

.rack-steps i {
  height: 10px;
  border: 1px solid #333838;
  border-radius: 2px;
  background: #171b1b;
}

.rack-steps i.beat { border-color: #685217; background: #28230f; }
.sound-row.playing .rack-steps i:nth-child(4n + 1) { background: #b68812; box-shadow: 0 0 8px rgba(242, 183, 28, .45); }

@media (max-width: 860px) {
  .sound-row { grid-template-columns: 44px 42px 50px 1fr; }
  .sound-row > img { width: 50px; height: 50px; }
  .rack-controls { grid-column: 1 / -1; }
  .rack-steps { grid-column: 1 / -1; }
}

@media (max-width: 520px) {
  .sound-row { grid-template-columns: 42px 42px 1fr; }
  .sound-row > img { display: none; }
  .rack-steps { gap: 3px; }
}
