* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; min-height: 100%; }
body {
  background: #0a0f0a;
  transition: background 0.3s;
}

::selection { background: rgba(127,255,160,0.3); }

/* thin retro scrollbars */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: rgba(0,0,0,0.3); }
::-webkit-scrollbar-thumb { background: rgba(127,255,160,0.25); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: rgba(127,255,160,0.5); }

/* CRT scanlines overlay */
.scanlines {
  pointer-events: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: repeating-linear-gradient(
    to bottom,
    rgba(0,0,0,0) 0px,
    rgba(0,0,0,0) 2px,
    rgba(0,0,0,0.22) 3px,
    rgba(0,0,0,0.22) 3px
  );
  animation: flicker 5s infinite;
}
@keyframes flicker {
  0%, 95%, 100% { opacity: 0.85; }
  96% { opacity: 0.7; }
  97% { opacity: 0.9; }
  98% { opacity: 0.6; }
}

/* subtle text glow for terminal vibe */
main, header h1, footer { text-shadow: 0 0 3px currentColor; }

/* blinking cursor */
.cursor-blink { animation: blink 1s steps(2, start) infinite; }
@keyframes blink { 0%, 50% { opacity: 1; } 51%, 100% { opacity: 0; } }

textarea, input { text-shadow: 0 0 2px currentColor; }

/* mobile: keep panes usable */
@media (max-width: 1023px) {
  textarea { min-height: 200px; }
}
</parameter>
</invoke>