@font-face {
  font-family: "DepartureMono Nerd Font";
  src: url("../assets/fonts/DepartureMono-1.500/DepartureMono-Regular.woff2")
    format("woff2");
  font-display: swap;
}

html,
body {
  margin: 0;
  height: 100%;
  width: 100%;
  color: #f5f5dc;
  font-family: "DepartureMono Nerd Font", monospace;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}
#bg {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}

/* Scanlines — tuned to scanlines: 0.2 */
#analog {
  position: fixed;
  inset: 0;
  z-index: 5;
  pointer-events: none;
  background: linear-gradient(
    to bottom,
    rgba(255, 255, 255, 0),
    rgba(255, 255, 255, 0) 50%,
    rgba(0, 0, 0, 0.2) 50%,
    rgba(0, 0, 0, 0.2)
  );
  background-size: 100% 4px;
  mix-blend-mode: overlay;
  opacity: 0.2;
}

/* Vignette — softened to vignette: 0.25 */
#vignette {
  position: fixed;
  inset: 0;
  z-index: 7;
  pointer-events: none;
  background: radial-gradient(
    circle at center,
    transparent 40%,
    rgba(0, 0, 0, 0.35) 100%
  );
  mix-blend-mode: multiply;
}

#particles {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
}

/* Grain — unchanged (grain: 0.07) */
#grain {
  position: fixed;
  inset: -50%;
  width: 200%;
  height: 200%;
  z-index: 6;
  pointer-events: none;
  mix-blend-mode: overlay;
  opacity: 0.07;
  background-image: url('data:image/svg+xml,%3Csvg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"%3E%3Cfilter id="noiseFilter"%3E%3CfeTurbulence type="fractalNoise" baseFrequency="0.65" numOctaves="3" stitchTiles="stitch"/%3E%3C/filter%3E%3Crect width="100%25" height="100%25" filter="url(%23noiseFilter)" opacity="1"/%3E%3C/svg%3E');
  animation: grainAnimation 0.5s steps(5) infinite;
  will-change: transform;
}
@keyframes grainAnimation {
  0% {
    transform: translate(0, 0);
  }
  20% {
    transform: translate(-5%, -5%);
  }
  40% {
    transform: translate(-10%, 5%);
  }
  60% {
    transform: translate(5%, -10%);
  }
  80% {
    transform: translate(-5%, 10%);
  }
  100% {
    transform: translate(0, 0);
  }
}
@media (prefers-reduced-motion: reduce) {
  #grain {
    animation: none;
  }
}

h1 {
  font-size: 3rem;
  margin-bottom: 1rem;
  position: relative;
  letter-spacing: 1px;
  color: #f5f5dc;
  text-shadow: 0 0 5px rgba(245, 245, 220, 0.3);
}
h1::before,
h1::after {
  content: attr(data-text);
  position: absolute;
  left: 0;
  top: 0;
  opacity: 0.7;
  mix-blend-mode: screen;
  pointer-events: none;
  transition: transform 0.1s;
}
h1::before {
  color: #ff004d;
  transform: translate(0, 0);
}
h1::after {
  color: #00f2ff;
  transform: translate(0, 0);
}
h1.glitching::before {
  transform: translate(-3px, 0);
}
h1.glitching::after {
  transform: translate(3px, 0);
}

.icons {
  display: flex;
  gap: 2rem;
  z-index: 10;
}
.icons a {
  display: block;
  line-height: 0;
}
.icons img {
  width: 48px;
  height: 48px;
  filter: invert(95%) sepia(10%) brightness(95%) contrast(90%);
  transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.icons img:hover {
  transform: scale(1.2);
  filter: invert(100%) drop-shadow(0 0 5px rgba(255, 255, 255, 0.5));
}
