/* ============================================================
   COMPONENT · TERMINAL
   CRT panel — VT323, phosphor glow, scanlines, vignette.
   The voice of the machine.
   ============================================================ */

.c-terminal {
  --term-color: var(--color-phosphor);

  position: relative;
  padding: var(--space-5);
  font-family: var(--font-terminal);
  font-size: var(--fs-lg);
  line-height: var(--lh-snug);
  color: var(--term-color);
  background:
    var(--gradient-phosphor),
    var(--color-surface-sunken);
  border: 1px solid var(--color-bezel-dark);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-inset-deep);
  overflow: hidden;
  text-shadow:
    0 0 2px var(--term-color),
    0 0 8px color-mix(in srgb, var(--term-color) 50%, transparent);
}

.c-terminal::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--pattern-scanlines);
  pointer-events: none;
  z-index: 1;
}

.c-terminal::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--gradient-vignette);
  pointer-events: none;
  z-index: 2;
}

.c-terminal > * { position: relative; z-index: 3; }

.c-terminal--amber { --term-color: var(--color-phosphor-amber); }
.c-terminal--cyan  { --term-color: var(--color-phosphor-cyan); }

.c-terminal__prompt::before { content: "> "; opacity: 0.6; }

.c-terminal__cursor {
  display: inline-block;
  width: 0.6em;
  height: 1em;
  background: currentColor;
  vertical-align: text-bottom;
  margin-left: 2px;
  animation: blink 1.1s steps(2, end) infinite;
  box-shadow: 0 0 6px currentColor;
}

.c-terminal--flicker { animation: flicker 4s var(--ease-pulse) infinite; }
