.background-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 0;
  background: var(--bg-color);
  overflow: hidden;
}

.animated-bg {
  position: absolute;
  width: 100%;
  height: 100vh;
  opacity: 0.2;
  top: 50%;
  transform: translateY(-50%);
  transition: opacity 0.5s ease;
}
.animated-bg.hidden {
  opacity: 0;
  pointer-events: none;
}
.animated-bg path {
  fill: none;
  stroke: var(--accent-color);
  stroke-width: 0.4;
  stroke-dasharray: 1,3;
  animation: dash 80s linear infinite;
}

.image-bg {
  position: absolute;
  width: 120%;
  height: 120%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(1);
  opacity: 0.15;
  transition: opacity 0.5s ease;
  object-fit: cover;
  animation: slowZoom 5s cubic-bezier(0.4,0,0.2,1) forwards;
}
.image-bg.hidden {
  opacity: 0;
  pointer-events: none;
}

@keyframes slowZoom {
  0% {
    transform: translate(-50%, -50%) scale(1);
  }
  100% {
    transform: translate(-50%, -50%) scale(1.8);
  }
}

.three-bg {
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 1;
  transition: opacity 0.5s ease;
  cursor: default;
  background: transparent;
  touch-action: none;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
}
.three-bg:active {
  cursor: default;
}
.three-bg.hidden {
  opacity: 0;
  pointer-events: none;
}

.hidden {
  display: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.content-container {
  position: relative;
  z-index: 3;
}

.background-container > *:not(.background-overlay) {
  z-index: 2;
} 