.lu-band-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0;color:#cbbb9e;font-size:12px}.lu-band-controls select,.lu-band-controls button,.band-study button,.band-study select{min-height:38px;border:1px solid #ede2cf44;border-radius:3px;background:#17171d;color:#ede2cf;padding:6px 10px;font:inherit}.lu-band-controls label{display:flex;gap:6px;align-items:center}.lu-band-controls button[aria-pressed=true],.band-study button[aria-pressed=true]{background:#a37455;color:#fff}.lu-band-control-extra[hidden]{display:none}.lu-band-members{display:flex;gap:5px;overflow-x:auto;max-width:100%;padding-bottom:3px}.lu-band-members button{flex-shrink:0}.lu-band-detail{flex-basis:100%;font-size:11px;line-height:1.5;margin:0;color:#cbbb9e}.lu-band-scene{position:absolute;inset:0;z-index:3;overflow:hidden}.lu-band-scene[hidden]{display:none}.lu-band-canvas{display:block;width:100%;height:100%}.lu-band-score{position:absolute;z-index:6;top:16px;right:16px;width:360px;height:112px;box-sizing:border-box;background:#111116ed;border:1px solid #ede2cf55;border-radius:3px;padding:9px 12px;color:#ede2cf;pointer-events:none}.lu-band-score[hidden]{display:none}.lu-band-score-heading{display:flex;justify-content:space-between;gap:8px;font-size:12px;line-height:18px}.lu-band-score-heading small{font-size:10px;color:#cbbb9e}.lu-band-score canvas{display:block;width:100%;height:72px}.lu-band-status{position:absolute;z-index:6;left:16px;top:16px;bottom:auto;max-width:calc(100% - 32px);font-size:11px;line-height:1.6;color:#ede2cf;background:#111116d9;padding:5px 9px;pointer-events:none}.lu-band-mode #luScorePanel,.lu-band-mode #cubeLyricsDeck,.lu-band-mode .kinetic-gravity-overlay{visibility:hidden}.lu-band-mode #stage>canvas{visibility:hidden}.recording-preview .lu-band-score,.recording-preview .lu-band-status{visibility:hidden}.lue-core-open .lu-band-score,.inspector-open .lu-band-score{display:none}.band-study{max-width:1280px;margin:auto;padding:24px;color:#ede2cf}.band-study h1{font-size:28px;margin:18px 0 8px}.band-study a{color:#cbbb9e}.band-study header p{color:#cbbb9e;font-size:12px}.band-study-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 12px}.band-study-stage{position:relative;height:590px;border:1px solid #ede2cf44;border-radius:3px;overflow:hidden}.band-study .lu-band-scene{position:absolute}.band-study-transport{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:14px 0}.band-study-transport input{flex:1;min-width:120px;accent-color:#c97c64}.band-study-note{font-size:12px;color:#cbbb9e;line-height:1.8}.band-study-links{display:flex;gap:15px;flex-wrap:wrap;font-size:12px}.band-study-controls{padding:10px 0}.band-study-fallback{padding:24px;color:#ede2cf}.band-study-score-note{position:absolute;right:16px;bottom:14px;z-index:6;color:#cbbb9e;font-size:10px}.lu-band-recording-disabled{opacity:.5}@media(max-width:600px){.lu-band-score{top:12px;left:12px;right:12px;width:auto}.lu-band-status{left:12px;top:62px;bottom:auto;font-size:10px}.band-study{padding:12px}.band-study-stage{height:610px}.band-study-toolbar>*{flex:1;min-width:100px}.band-study-score-note{display:none}.band-study h1{font-size:25px}.lu-band-controls{gap:6px}.lu-band-controls label{flex-wrap:wrap}.lu-band-members{flex-basis:100%}}
.lu-band-lyric{position:absolute;z-index:6;left:12px;right:12px;bottom:84px;color:#ede2cf;text-align:center;font-size:20px;line-height:1.4;text-shadow:0 2px 5px #111116;background:#11111655;padding:5px;pointer-events:none}.lu-band-lyric[hidden]{display:none}.recording-preview .lu-band-lyric{visibility:hidden}.lu-band-mode .lu-score-controls{display:none}
.lu-band-mode #kineticModeSwitcher,.lu-band-mode #workbenchDock,.lu-band-mode .lue-choreo-header,.lu-band-mode .lue-choreo-footer button:not(#immersiveToggle){display:none}
@media(max-width:600px){.band-study-toolbar{display:grid;grid-template-columns:1fr 1fr}.band-study-toolbar>*{min-width:0;width:100%;box-sizing:border-box}.band-study-toolbar #bandTrack{grid-column:1/-1}}
/* V2: the band is a peer of the existing performance modes. */
.lu-band-mode #kineticModeSwitcher,.lu-band-mode .lue-choreo-header{display:flex}
.lu-band-mode .preset-cam-group{display:none}
.lu-band-mode #workbenchDock{display:none!important}
.lu-band-mode #bandStageSelect[hidden]{display:none}
.band-v2-controls{min-width:0;color:#ede2cf}
.band-quick-controls{margin-top:8px;margin-bottom:9px}
.band-quick-controls a{margin-left:auto;color:#cbbb9e;font-size:11px}
.band-v2-controls .lu-band-members button{display:flex;gap:5px;align-items:center;position:relative;padding:5px 8px;min-height:38px}
.band-v2-controls .lu-band-members img{width:24px;height:24px;object-fit:contain}
.band-member-indicator{width:4px;height:4px;border-radius:50%;background:#ede2cf;opacity:calc(.12 + var(--activity,0) * .88);box-shadow:0 0 5px #e5b97988}
.band-v2-controls [data-playing=true]{border-color:#cbbb9e88}
.band-v2-controls .lu-band-detail{font-size:11px;margin:5px 0;line-height:1.7}
.band-adjustments{margin-top:9px;border-top:1px solid #ede2cf33;padding-top:8px}
.band-adjustments summary{cursor:pointer;font-size:12px;padding:4px 0;color:#ede2cf}
.band-adjustments summary span{float:right;color:#cbbb9e;font-size:11px}
.band-adjustments[open]{padding-bottom:8px}
.band-parameter-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px 18px;margin:10px 0}
.band-parameter{display:grid;grid-template-columns:70px minmax(50px,1fr) 44px;gap:5px;align-items:center;font-size:11px;color:#cbbb9e}
.band-parameter input{width:100%;min-width:0;accent-color:#c97c64}
.band-parameter output{text-align:right;color:#ede2cf;font-size:10px}
.band-adjustments select{max-width:190px}
.band-adjustments [data-source-controls][hidden]{display:none}
.band-study .band-v2-controls{margin:14px 0}
.band-study-stage{height:650px}
@media(max-width:600px){
 .band-parameter-grid{grid-template-columns:1fr}
 .band-adjustments .lu-band-controls{align-items:flex-start}
 .band-quick-controls{display:grid;grid-template-columns:1fr 1fr}
 .band-quick-controls label{display:grid;gap:5px}
 .band-quick-controls select{width:100%;min-width:0}
 .band-quick-controls a{grid-column:1/-1;margin-left:0}
 .band-study-stage{height:620px}
 .kinetic-mode-switcher{flex-wrap:wrap}
 .kinetic-mode-btn[data-mode=band]{min-width:58px}
 .band-adjustments select{max-width:175px}
}
/* Concert stage: a compact, expandable score leaves the mobile proscenium visible. */
.lu-band-score{padding:7px 12px;background:#111b27df;border-color:#b8d6e344;box-shadow:0 6px 22px #050e1a26;pointer-events:auto}
.lu-band-score-toggle{display:flex;align-items:center;gap:8px;width:100%;min-height:28px;margin:0;padding:0;border:0!important;background:none!important;color:inherit;font:inherit;text-align:left;cursor:pointer}
.lu-band-score-toggle:focus-visible{outline:2px solid #b7e3ee;outline-offset:4px}
.lu-band-score-heading{flex:1;min-width:0;align-items:center}
.lu-band-score-heading strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:500}
.lu-band-score-heading small{white-space:nowrap}
.band-score-arrow{font-size:14px;color:#cbbb9e;transition:transform .18s}
.lu-band-score-toggle[aria-expanded=true] .band-score-arrow{transform:rotate(180deg)}
.lu-band-score[data-compact=true]{height:44px}
.lu-band-score canvas[hidden]{display:none}
.lu-band-score canvas{pointer-events:none}
.band-v2-controls [data-listen-controls][hidden]{display:none}
.lu-band-status{background:#101a27a6;border:1px solid #b7d6e321;color:#d6e5ed;border-radius:3px;font-size:10px}
.lu-band-lyric{display:flex;flex-direction:column;align-items:center;gap:3px;bottom:84px;padding:6px 14px;background:linear-gradient(90deg,transparent,#0b152499 18%,#0b152499 82%,transparent);text-shadow:0 2px 8px #081222;--lyric-progress:0%}
.band-study .lu-band-lyric{bottom:42px}
.band-study .lu-band-status{top:auto;bottom:14px}
.lu-band-lyric[hidden]{display:none}
.lu-band-lyric-orig{display:inline-block;font-size:19px;font-weight:600;line-height:1.32;letter-spacing:.02em;color:#fff6e5;background:linear-gradient(90deg,#ffd98a 0%,#ffd98a var(--lyric-progress,0%),#f4ebd9 var(--lyric-progress,0%),#f4ebd9 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 6px #060d18)}
.lu-band-lyric-zh{display:inline-block;font-size:14.5px;font-weight:500;line-height:1.3;letter-spacing:.04em;color:#d2e7f6;text-shadow:0 1px 6px #060d18}
.lu-band-lyric-zh[hidden]{display:none}
@media(max-width:600px){.lu-band-lyric{bottom:76px;padding:4px 8px}.band-study .lu-band-lyric{bottom:36px}.lu-band-lyric-orig{font-size:15px}.lu-band-lyric-zh{font-size:12.5px}}
@media(prefers-reduced-motion:reduce){.band-score-arrow{transition:none}}
.band-review{max-width:1000px}.band-review audio{width:100%;margin:12px 0}.band-review-card{padding:16px;margin:14px 0;border:1px solid #ede2cf44;border-radius:3px;background:#111b2780}.band-review-card h2{font-size:18px;margin:0 0 8px}.band-review-card textarea{display:block;box-sizing:border-box;width:100%;margin:10px 0;padding:9px;background:#17171d;color:#ede2cf;border:1px solid #ede2cf44;font:inherit}.band-review-card summary{cursor:pointer;padding:8px 0}.band-review .lu-band-controls input{max-width:180px;min-height:32px;background:#17171d;color:#ede2cf;border:1px solid #ede2cf44;padding:3px 8px;font:inherit}.band-review-card label{font-size:13px;line-height:1.8}.band-review select{max-width:100%}.band-review button:disabled{opacity:.45}.band-review-card input[type=checkbox]{margin-right:6px}.band-review-card :focus-visible{outline:2px solid #b7e3ee;outline-offset:3px}

/* Conductor controls are an optional overlay; pet art and stage layout stay intact. */
.lu-conductor-dock{position:absolute;z-index:8;top:70px;right:16px;width:min(520px,calc(100% - 32px));color:#ede2cf;background:#111116e8;border:1px solid #cbbb9e55;border-radius:6px;font-size:12px;box-sizing:border-box}
.lu-conductor-dock[hidden]{display:none!important}
.lu-conductor-dock>summary{min-height:44px;padding:10px 12px;box-sizing:border-box;cursor:pointer;line-height:24px;user-select:none}
.lu-conductor-dock>summary:focus-visible{outline:2px solid #cbbb9e;outline-offset:2px}
.lu-conductor-dock>div{padding:0 6px 6px}
.lu-conductor-dock:not([open])>div{display:none}
.workbench-open .lu-conductor-dock,.inspector-open .lu-conductor-dock{display:none}
@media(max-width:600px){.lu-conductor-dock{top:94px;left:12px;right:12px;width:auto}.lu-conductor-dock>summary{font-size:11px}}
.lu-conductor-dock{position:fixed;z-index:24}
.lue-core-open .lu-conductor-dock{display:none}
@media(max-width:600px){.lu-conductor-dock{top:var(--conductor-top,calc(100dvh - 160px))}.lu-conductor-dock>summary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lu-conductor-dock>div{padding:0 4px 4px}}

/* Direct pet interaction: Stitch direction compiled by AGY. */
.lu-band-member-interactions {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: hidden;
  box-sizing: border-box;
  user-select: none;
  -webkit-user-select: none;
  z-index:5;
}

.lu-pet-hit {
  position: absolute;
  background: transparent;
  border: none;
  padding: 0;
  margin: 0;
  min-width: 44px;
  min-height: 44px;
  pointer-events: auto;
  touch-action: none;
  cursor: pointer;
  outline: none;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-tap-highlight-color: transparent;
  transition: transform 0.15s ease-out;
}

.lu-pet-hit:focus-visible {
  outline: 1px solid rgba(247, 231, 206, 0.6);
  outline-offset: 2px;
  border-radius: 8px;
}

.lu-pet-hit.lu-pet-clipped {
  display: none !important;
}

.lu-pet-hit.lu-pet-dragging {
  cursor: grabbing;
}

.lu-pet-hit.lu-pet-solo-active::before {
  content: "";
  position: absolute;
  inset: -12px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(247, 231, 206, 0.4) 0%, rgba(247, 231, 206, 0) 70%);
  pointer-events: none;
  animation: lu-pet-pulse 1.8s infinite ease-in-out;
}

.lu-pet-badge {
  position: absolute;
  left: var(--pet-badge-left, 50%);
  top: calc(100% + 3px);
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 76px;
  height: 18px;
  box-sizing: border-box;
  padding: 2px 5px;
  background: rgba(10, 14, 23, 0.38);
  border-radius: 4px;
  color: #e2daca;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-size: 10px;
  line-height: 14px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transition: opacity 140ms ease-out;
}

.lu-pet-hit:focus-visible .lu-pet-badge,
.lu-pet-hit.lu-pet-pressed .lu-pet-badge,
.lu-pet-hit.lu-pet-show-badge .lu-pet-badge {
  opacity: 0.78;
}

/* Dense formations keep the pet silhouettes clear; state remains in the button label. */
.lu-pet-hit.lu-pet-badge-blocked .lu-pet-badge {
  visibility: hidden;
}

.lu-pet-hit.lu-pet-show-badge .lu-pet-name {
  display: none;
}

.lu-pet-name {
  color: inherit;
}

.lu-pet-status {
  font-weight: 500;
  color: inherit;
  font-size: inherit;
}

.lu-pet-status.lu-pet-status-muted {
  color: #bbc7d0;
}

.lu-pet-status.lu-pet-status-solo {
  color: #f0d6ab;
}

.lu-pet-status.lu-pet-status-pending {
  color: #e4ceae;
}

.lu-pet-hint {
  position: absolute;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%);
  color: #f7e7ce;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-size: 12px;
  letter-spacing: 0.05em;
  padding: 6px 14px;
  background: rgba(10, 14, 23, 0.7);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(247, 231, 206, 0.2);
  border-radius: 9999px;
  pointer-events: none;
  white-space: nowrap;
  z-index: 10;
  opacity: 1;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
  transition: opacity 1.5s cubic-bezier(0.4, 0, 0.2, 1);
  max-width:calc(100% - 24px);
  box-sizing:border-box;
  text-align:center;
  font-size:11px;
}

.lu-pet-hint.lu-pet-hint-fade {
  opacity: 0.18;
}

@keyframes lu-pet-pulse {
  0%, 100% {
    transform: scale(0.95);
    opacity: 0.5;
  }
  50% {
    transform: scale(1.15);
    opacity: 0.85;
  }
}

@media (prefers-reduced-motion: reduce) {
  .lu-pet-hit,
  .lu-pet-badge,
  .lu-pet-hint {
    transition: none !important;
  }
  .lu-pet-hit.lu-pet-solo-active::before {
    animation: none !important;
  }
}
