/* Faint PCB grid behind the whole page */
body {
  background-color: #07100d;
  background-image:
    linear-gradient(rgba(74, 222, 128, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(74, 222, 128, 0.045) 1px, transparent 1px);
  background-size: 32px 32px;
}

/* Blinking status LED */
.led { animation: blink 2.4s ease-in-out infinite; }
@keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }

/* Scroll reveal — only hidden when JS is running */
.js .reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
.js .reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .led { animation: none; }
  .js .reveal { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
}
