.fx-bw #bg-video,
.fx-bw #canvas-container canvas {
  filter: grayscale(1) contrast(1.15) brightness(0.95);
}

.fx-shake #bg-video,
.fx-shake #canvas-container canvas {
  animation: shake 0.12s infinite;
}

@keyframes shake {
  0%,
  100% {
    transform: translate(0, 0);
  }
  25% {
    transform: translate(4px, -3px);
  }
  50% {
    transform: translate(-3px, 2px);
  }
  75% {
    transform: translate(3px, 3px);
  }
}

.fx-chromatic #bg-video,
.fx-chromatic #canvas-container canvas,
.fx-chromatic .dom-layer {
  text-shadow: 3px 0 var(--danger), -3px 0 #00d4ff;
}

.fx-scanlines #effects-overlay {
  opacity: 0.55;
}

body {
  transition: background-color 0.05s;
}
