/* Шейдерный орб в голосовом оверлее (voice_orb.js).
   Канвас крупнее круга (110px) — свечение не должно обрезаться. Старый
   круг прячем ТОЛЬКО когда WebGL реально поднялся (класс вешает скрипт),
   иначе на машинах без WebGL на его месте была бы пустота. */

.voice-mode-orb.has-webgl-orb .voice-mode-orb-core,
.voice-mode-orb.has-webgl-orb .voice-mode-orb-pulse {
  display: none;
}

/* Тёмную «сцену» под орбом пробовал (в оригинале он живёт на почти чёрном) —
   на светлой панели получалось затмение: чёрный диск с тонким ободком.
   На белом орб читается лучше как есть, поэтому подложки нет. */
.voice-orb-canvas {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 170px;
  height: 170px;
  transform: translate(-50%, -50%);
  pointer-events: none;
  display: block;
  z-index: 1;
}

/* Пока тьютор говорит — орб чуть крупнее. Скорость вращения и шума
   поднимает сам шейдер (см. speedSpeaking), это только «вес» на экране. */
.voice-mode-orb.is-speaking .voice-orb-canvas {
  transform: translate(-50%, -50%) scale(1.08);
  transition: transform 0.25s ease;
}

/* Злой режим: центральный элемент — пламя, орб уступает место. */
body.evil-mode-on .voice-orb-canvas { display: none; }
