.stage { max-width: 640px; }
.info { display: flex; justify-content: space-between; color: var(--muted); font-size: .9rem; margin: 0 6px 14px; }
.info b { font-family: var(--mono); font-weight: 400; color: var(--gold-l); }
.tubes { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 12px; padding: 30px 0 10px; min-height: 260px; }
.tube { --bs: clamp(30px, 8vw, 42px); width: calc(var(--bs) + 12px); height: calc(var(--bs) * 4 + 28px); border: 2px solid rgba(239,233,221,.28); border-top: 0; border-radius: 0 0 22px 22px; background: linear-gradient(90deg, rgba(255,255,255,.04), rgba(255,255,255,.09) 30%, rgba(255,255,255,.02)); display: flex; flex-direction: column-reverse; align-items: center; gap: 3px; padding: 6px 0; cursor: pointer; transition: transform .15s; }
.tube:hover { border-color: rgba(201,168,106,.6); }
.tube.sel { border-color: var(--gold); }
.tube.full { border-color: var(--green); box-shadow: 0 0 16px rgba(127,209,168,.25); }
.ball { width: var(--bs); height: var(--bs); border-radius: 50%; display: block; flex: none; box-shadow: inset 0 -3px 0 rgba(0,0,0,.25); transition: transform .18s; }
.ball.up { transform: translateY(calc(var(--bs) * -1.1)); }
.tools { display: flex; gap: 8px; justify-content: center; margin-top: 18px; flex-wrap: wrap; }
.tools button { background: var(--panel2); color: var(--text); border: 1px solid var(--line2); border-radius: 999px; padding: 8px 18px; cursor: pointer; font: inherit; font-size: .88rem; }
.tools button:hover { border-color: var(--gold); color: var(--gold-l); }
