/* ---- STORM DRAIN (under-Nuggetown descender, js/drain.js) ---- */
#drainWorld {
  position: fixed;
  inset: 0;
  z-index: 9990;
  display: none;
  background: #03050a;
}
body.drain-mode #drainWorld { display: block; }

#drainWorld canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

/* sublevel plates / THE PASSING / out-of-air banners */
.drain-banner {
  position: absolute;
  left: 50%;
  top: 28%;
  transform: translate(-50%, -50%) scale(0.6);
  font: 900 clamp(1.2rem, 4vw, 2.4rem)/1.2 Consolas, 'Courier New', monospace;
  letter-spacing: 0.1em;
  text-align: center;
  color: #39ff7a;
  text-shadow: 3px 3px 0 #04140a, 0 0 24px rgba(57, 255, 122, 0.5);
  opacity: 0;
  pointer-events: none;
  max-width: 90vw;
}
.drain-banner.show {
  animation: drain-banner-pop 0.35s ease-out forwards;
}
.drain-banner.go { color: #26e0ff; text-shadow: 3px 3px 0 #03141c, 0 0 24px rgba(38, 224, 255, 0.5); }
.drain-banner.over { color: #ff5252; text-shadow: 3px 3px 0 #3a0808, 0 0 24px rgba(255, 82, 82, 0.6); }
/* 🏷️ a salvage tag reads like a filed exhibit, not a firework — brass, and
   small enough that the whole found-object note actually fits on one screen */
.drain-banner.tag {
  color: #f0d9a0;
  font-size: clamp(0.75rem, 1.9vw, 1.1rem);
  letter-spacing: 0.06em;
  text-shadow: 2px 2px 0 #201603, 0 0 18px rgba(200, 160, 74, 0.65);
  max-width: min(46rem, 88vw);
}
.drain-banner.storm {
  color: #ffd23a;
  text-shadow: 3px 3px 0 #2a1a30, 0 0 18px rgba(255, 210, 58, 0.8), 0 0 44px rgba(57, 255, 122, 0.6);
  animation: drain-banner-pop 0.35s ease-out forwards, drain-storm-throb 0.9s ease-in-out 0.35s infinite;
}

@keyframes drain-banner-pop {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(0.5); }
  60% { opacity: 1; transform: translate(-50%, -50%) scale(1.12); }
  100% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
@keyframes drain-storm-throb {
  0%, 100% { transform: translate(-50%, -50%) scale(1); }
  50% { transform: translate(-50%, -50%) scale(1.05); }
}
