/* fzt-terminal.css — Shared CRT terminal styles for fzt WASM consumers.
   Override --fzt-* custom properties in your own stylesheet. */

:root {
  --fzt-bg: #0a0a0a;
  --fzt-fg: #c0caf5;
  --fzt-font: monospace;
  --fzt-font-size: 16px;
  --fzt-border-radius: 12px / 14px;
  --fzt-outer-shadow: 0 0 30px rgba(0, 0, 0, 0.6);
  --fzt-inset-shadow: inset 0 0 60px rgba(0, 0, 0, 0.15);
  --fzt-scanline-opacity: 0.15;
  --fzt-vignette-opacity: 0.35;
}

/* ── Terminal window wrapper ── */

.fzt-terminal-window {
  position: relative;
  border-radius: var(--fzt-border-radius);
  overflow: hidden;
  box-shadow: var(--fzt-outer-shadow), var(--fzt-inset-shadow);
}

/* CRT scanline overlay + vignette */
.fzt-terminal-window::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(
      0deg,
      transparent,
      transparent 2px,
      rgba(0, 0, 0, var(--fzt-scanline-opacity)) 2px,
      rgba(0, 0, 0, var(--fzt-scanline-opacity)) 4px
    ),
    radial-gradient(ellipse at center, transparent 60%, rgba(0, 0, 0, var(--fzt-vignette-opacity)) 100%);
  pointer-events: none;
  z-index: 10;
  border-radius: inherit;
}

/* ── Terminal content ── */

.fzt-terminal-window pre {
  background: var(--fzt-bg);
  color: var(--fzt-fg);
  font-family: var(--fzt-font);
  font-size: var(--fzt-font-size);
  line-height: 1.2;
  padding: 0;
  margin: 0;
  overflow: hidden;
  white-space: pre;
  outline: none;
  cursor: text;
  -webkit-font-smoothing: none;
  -moz-osx-font-smoothing: unset;
  font-smooth: never;
}

.fzt-terminal-window pre div {
  white-space: pre;
}

.fzt-terminal-window pre span {
  white-space: pre;
}

/* ── Cursor blink ── */

@keyframes fzt-blink {
  0%, 49% { box-shadow: 0 2px 0 var(--fzt-fg); }
  50%, 100% { box-shadow: none; }
}

.fzt-cursor {
  animation: fzt-blink 1s step-end infinite;
}
