* { margin: 0; padding: 0; box-sizing: border-box; }

html, body {
  height: 100%;
  overflow: hidden;
  overscroll-behavior: none;
  background: #05050d;
}

#root { height: 100%; }

/* Drift / bob animations for scattered elements */
@keyframes bob {
  0%, 100% { translate: 0 0; }
  50% { translate: 0 -12px; }
}

@keyframes wig {
  0%, 100% { translate: 0 0; }
  25% { translate: 6px 0; }
  75% { translate: -6px 0; }
}

@keyframes spin {
  0% { filter: hue-rotate(0deg); }
  100% { filter: hue-rotate(360deg); }
}

@keyframes flashout {
  from { opacity: 1; }
  to { opacity: 0; }
}

/* Custom scrollbar for control panel */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: rgba(255, 45, 120, 0.5);
  border-radius: 4px;
}

/* Range slider polish */
input[type="range"] {
  -webkit-appearance: none;
  height: 6px;
  border-radius: 3px;
  background: rgba(255, 45, 120, 0.25);
  outline: none;
}
input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #ff2d78;
  cursor: pointer;
  border: 2px solid #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
input[type="range"]::-moz-range-thumb {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #ff2d78;
  cursor: pointer;
  border: 2px solid #fff;
}

/* Prevent text selection weirdness during chaos */
body { -webkit-tap-highlight-color: transparent; }