/* ===== MATRIX FALLING ELEMENTS ===== */

/* Matrix rain container - positioned behind footer content */
.matrix-rain {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
  overflow: hidden;
}

/* Footer needs relative positioning for matrix container */
footer {
  position: relative;
  overflow: hidden;
}

/* Matrix columns - distributed across footer width */
.matrix-column {
  position: absolute;
  top: 0;
  width: calc(100% / 12);
  height: 100%;
  display: flex;
  flex-direction: column;
  animation: matrix-fall linear infinite;
  animation-delay: var(--delay);
  animation-duration: 8s;
}

.matrix-column:nth-child(1) { left: 0%; }
.matrix-column:nth-child(2) { left: 8.33%; }
.matrix-column:nth-child(3) { left: 16.66%; }
.matrix-column:nth-child(4) { left: 25%; }
.matrix-column:nth-child(5) { left: 33.33%; }
.matrix-column:nth-child(6) { left: 41.66%; }
.matrix-column:nth-child(7) { left: 50%; }
.matrix-column:nth-child(8) { left: 58.33%; }
.matrix-column:nth-child(9) { left: 66.66%; }
.matrix-column:nth-child(10) { left: 75%; }
.matrix-column:nth-child(11) { left: 83.33%; }
.matrix-column:nth-child(12) { left: 91.66%; }

/* Matrix characters */
.matrix-column::before {
  content: "<>";
  font-family: 'Courier New', monospace;
  font-size: 14px;
  font-weight: bold;
  color: var(--matrix-color, #00ff00);
  text-shadow: 0 0 5px var(--matrix-glow, #00ff00);
  opacity: 0;
  animation: matrix-character 3s linear infinite;
  animation-delay: calc(var(--delay) * -1);
  white-space: nowrap;
  line-height: 1;
  margin-bottom: 15px;
}

.matrix-column::after {
  content: "{}";
  font-family: 'Courier New', monospace;
  font-size: 12px;
  font-weight: bold;
  color: var(--matrix-color, #00ff00);
  text-shadow: 0 0 3px var(--matrix-glow, #00ff00);
  opacity: 0;
  animation: matrix-character 2.5s linear infinite;
  animation-delay: calc(var(--delay) * -0.5);
  white-space: nowrap;
  line-height: 1;
  margin-bottom: 15px;
}

/* Light theme matrix colors */
:root {
  --matrix-color: #00aa00;
  --matrix-glow: #00ff00;
}

/* Dark theme matrix colors - brighter for better visibility */
body.dark-mode {
  --matrix-color: #00ff88;
  --matrix-glow: #00ff88;
}

/* Falling animation keyframes */
@keyframes matrix-fall {
  0% {
    transform: translateY(-100%);
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  90% {
    opacity: 1;
  }
  100% {
    transform: translateY(100%);
    opacity: 0;
  }
}

/* Character cycling animation */
@keyframes matrix-character {
  0%, 100% { content: "<>"; opacity: 0.3; }
  10% { content: "{}"; opacity: 0.7; }
  20% { content: "[]"; opacity: 0.5; }
  30% { content: "01"; opacity: 0.8; }
  40% { content: "</>"; opacity: 0.6; }
  50% { content: "<3"; opacity: 0.9; }
  60% { content: "10"; opacity: 0.4; }
  70% { content: "{}"; opacity: 0.7; }
  80% { content: "[]"; opacity: 0.5; }
  90% { content: "01"; opacity: 0.6; }
}

/* Responsive adjustments */
@media only screen and (max-width: 768px) {
  .matrix-column {
    width: calc(100% / 8);
  }
  .matrix-column:nth-child(n+9) { display: none; }
  /* Redistribute 8 columns across full width */
  .matrix-column:nth-child(1) { left: 0%; }
  .matrix-column:nth-child(2) { left: 12.5%; }
  .matrix-column:nth-child(3) { left: 25%; }
  .matrix-column:nth-child(4) { left: 37.5%; }
  .matrix-column:nth-child(5) { left: 50%; }
  .matrix-column:nth-child(6) { left: 62.5%; }
  .matrix-column:nth-child(7) { left: 75%; }
  .matrix-column:nth-child(8) { left: 87.5%; }
  .matrix-column::before { font-size: 12px; }
  .matrix-column::after { font-size: 10px; }
}

@media only screen and (max-width: 480px) {
  .matrix-column {
    width: calc(100% / 6);
  }
  .matrix-column:nth-child(n+7) { display: none; }
  /* Redistribute 6 columns across full width */
  .matrix-column:nth-child(1) { left: 0%; }
  .matrix-column:nth-child(2) { left: 16.67%; }
  .matrix-column:nth-child(3) { left: 33.33%; }
  .matrix-column:nth-child(4) { left: 50%; }
  .matrix-column:nth-child(5) { left: 66.67%; }
  .matrix-column:nth-child(6) { left: 83.33%; }
  .matrix-column::before { font-size: 10px; }
  .matrix-column::after { font-size: 8px; }
}
