.lime-banner {
  margin-top: -60px;
  padding: 100px clamp(32px, 5vw, 64px) 36px;
  background: var(--lime);
  color: var(--ink);
  border-radius: 0 0 var(--r-lg) var(--r-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  min-height: 160px;
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.lime-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle at center, rgba(10,10,10,0.22) 1.6px, transparent 2.2px);
  background-size: 32px 32px;
  opacity: 0.55;
  mask: linear-gradient(180deg, black 30%, black 70%, transparent);
  -webkit-mask: linear-gradient(180deg, black 30%, black 70%, transparent);
  animation: banner-heartbeat 2.6s ease-in-out infinite;
}
.lime-banner > * { position: relative; z-index: 1; }
.lime-banner .placeholder {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(10,10,10,0.4);
}
@keyframes banner-heartbeat {
  0%, 100% { opacity: 0.45; }
  14%      { opacity: 0.85; }
  28%      { opacity: 0.55; }
  42%      { opacity: 0.8; }
  70%      { opacity: 0.5; }
}
@media (prefers-reduced-motion: reduce) {
  .lime-banner::before { animation: none; opacity: 0.6; }
}
