.tubes {
  width: min(460px, 100%);
  min-height: 220px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-end;
  gap: 12px 14px;
  padding: 18px 8px 8px;
}

.tube {
  appearance: none;
  width: 58px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  color: inherit;
}

.tube.on { transform: translateY(-12px); }
.tube { transition: transform .16s ease; }

.glass {
  height: 168px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  border-radius: 6px 6px 22px 22px;
  border: 3px solid rgba(255, 255, 255, .72);
  border-top-width: 7px;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, .22), transparent 28%, transparent 70%, rgba(255, 255, 255, .12)),
    linear-gradient(180deg, rgba(255, 255, 255, .1), rgba(255, 255, 255, .02));
  box-shadow: inset 0 -8px 0 rgba(255, 255, 255, .08), 0 10px 16px rgba(0, 0, 0, .28);
  overflow: hidden;
}

.tube.on .glass { box-shadow: 0 0 0 3px #ffe08a, 0 12px 16px rgba(0, 0, 0, .28); }
.tube.done .glass { box-shadow: 0 0 0 3px #7dffb2, 0 10px 16px rgba(0, 0, 0, .28); }

.layer { flex: 1; width: 100%; position: relative; }
.layer.empty { background: transparent; }
.layer:not(.empty)::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 4px;
  bottom: 4px;
  width: 7px;
  border-radius: 8px;
  background: rgba(255, 255, 255, .38);
}

.layer.c0 { background: linear-gradient(180deg, #ff5a6e, #e1062c); }
.layer.c1 { background: linear-gradient(180deg, #ffe566, #f0b000); }
.layer.c2 { background: linear-gradient(180deg, #5eef78, #12a33a); }
.layer.c3 { background: linear-gradient(180deg, #6aa6ff, #1d5fe0); }
.layer.c4 { background: linear-gradient(180deg, #ffb15a, #ef6a00); }
.layer.c5 { background: linear-gradient(180deg, #c992ff, #7a28d6); }
.layer.c6 { background: linear-gradient(180deg, #3eefe4, #0e9a96); }
