/* Общие стили матрицы — подключается на index / admin / tv.
   Все настройки фраз (тайминг, %, glow): /MATRIX/matrix-config.js → phrases */

#matrix-bg,
#ban-matrix-bg,
#srch-matrix-bg,
#nc-matrix-bg,
[id$="-matrix-bg"] {
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
  opacity: var(--mx-rain-opacity, 0.038);
}

#matrix-phrases,
#ban-matrix-phrases,
#srch-matrix-phrases,
#nc-matrix-phrases,
[id$="-matrix-phrases"] {
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
  overflow: hidden;
  font-family: "Hair 2", "Courier New", monospace;
  font-weight: var(--mx-phrase-font-weight, 600);
  letter-spacing: 1px;
}

#matrix-phrases .ph,
#ban-matrix-phrases .ph,
#srch-matrix-phrases .ph,
#nc-matrix-phrases .ph,
[id$="-matrix-phrases"] .ph {
  position: absolute;
  display: flex;
  flex-direction: column;
  white-space: nowrap;
  line-height: 1;
  background: transparent;
  opacity: 0;
  will-change: opacity, filter, text-shadow;
  animation: mxPhShow var(--mx-ph-dur, 5.4s) var(--mx-ph-easing, cubic-bezier(.45, .05, .55, .95)) forwards;
}

#matrix-phrases .ph span,
#ban-matrix-phrases .ph span,
#srch-matrix-phrases .ph span,
#nc-matrix-phrases .ph span,
[id$="-matrix-phrases"] .ph span {
  display: block;
  text-align: center;
}

/* @keyframes mxPhShow — генерируется из matrix-config.js → #mx-phrase-keyframes */
