/* —— float desk + snap windows (y2k9) —— */
.float-desk{
  position:fixed;z-index:60;width:min(240px,78vw);
  background:rgba(8,8,8,.96);border:2px solid var(--acid);
  box-shadow:5px 5px 0 #000;color:var(--ink);
  font-family:var(--mono);user-select:none;
}
.float-desk.is-hidden{display:none}
.float-desk.is-live{border-color:var(--magenta);box-shadow:5px 5px 0 var(--magenta)}
.float-desk.is-dragging{opacity:.92;cursor:grabbing;z-index:70}
.float-chrome{display:flex;justify-content:space-between;align-items:center;gap:.4rem;
  padding:.28rem .4rem;background:linear-gradient(90deg,var(--acid),var(--acid-hot));color:#050505;
  cursor:grab;font-size:.55rem;letter-spacing:.12em;font-weight:800}
.float-desk.is-live .float-chrome{background:linear-gradient(90deg,var(--magenta),#ff7ad9);color:#fff}
.float-x{border:1px solid #050505;background:#050505;color:var(--acid);font-weight:800;cursor:pointer;line-height:1;padding:.05rem .35rem}
.float-title{padding:.45rem .55rem .1rem;font-size:.78rem;letter-spacing:.06em;color:var(--acid);font-weight:800}
.float-by{padding:0 .55rem .35rem;font-size:.5rem;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}
.float-controls{display:flex;gap:.35rem;padding:0 .55rem .5rem}
.float-controls button{flex:1;border:1px solid var(--acid);background:var(--acid);color:#050505;
  font-family:var(--mono);font-size:.7rem;font-weight:800;padding:.35rem 0;cursor:pointer}
.float-desk.is-live .float-controls button{border-color:var(--magenta);background:var(--magenta);color:#fff}
.float-progress{height:4px;margin:0 .55rem .55rem;background:#111;border:1px solid rgba(200,255,0,.25)}
.float-progress i{display:block;height:100%;width:0;background:var(--acid)}
.float-desk.is-live .float-progress i{background:var(--magenta)}

.panel.is-window{touch-action:none}
.panel.is-window .panel-chrome{cursor:grab}
.panel.is-window.is-dragging{opacity:.94;z-index:8;box-shadow:8px 8px 0 var(--magenta)}
.panel.is-window.is-dragging .panel-chrome{cursor:grabbing}
.snap-ghost{outline:1px dashed rgba(200,255,0,.45);outline-offset:2px}

.mini-meter .bar i.maxed,
.over-meter i.maxed{box-shadow:0 0 12px var(--acid)!important}
.rail-btn.is-fire{background:var(--magenta)!important;border-color:var(--magenta)!important;color:#fff!important}
.stage.is-shaking{animation:shake .28s linear}
@keyframes shake{
  0%,100%{transform:translate(0,0)}
  20%{transform:translate(-3px,1px)}
  40%{transform:translate(3px,-2px)}
  60%{transform:translate(-2px,2px)}
  80%{transform:translate(2px,-1px)}
}
.confetti{position:fixed;inset:0;z-index:80;pointer-events:none}
