* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html,
body {
  height: 100%;
  background: #0a0a0a;
  overflow: hidden;
}

body {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Courier New', monospace;
}

.terminal {
  width: min(92vw, 620px);
  background: #0b0f0d;
  border: 1px solid #1f2b25;
  border-radius: 10px;
  box-shadow: 0 0 50px #00ff8822, 0 20px 60px #000;
  overflow: hidden;
}

.titlebar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px;
  background: #131a16;
  border-bottom: 1px solid #1f2b25;
  font-size: 12px;
  color: #7d9c8b;
  user-select: none;
}

.dots {
  display: flex;
  gap: 6px;
}

.dots i {
  width: 11px;
  height: 11px;
  border-radius: 50%;
}

.dots i:nth-child(1) {
  background: #ff5f56;
}

.dots i:nth-child(2) {
  background: #ffbd2e;
}

.dots i:nth-child(3) {
  background: #27c93f;
}

.screen {
  position: relative;
  height: 260px;
  overflow: hidden;
}

pre {
  font-size: clamp(6px, 1.2vw, 14px);
  line-height: 1.1;
  color: #00ff88;
  text-shadow: 0 0 8px #00ff88, 0 0 20px #00ff8866;
  white-space: pre;
  letter-spacing: 0;
  padding-left: 14px;
  position: absolute;
  top: auto;
  bottom: 0;
  left: 0;
  transform: none;
}

.cursor {
  display: inline-block;
  animation: blink 500ms step-end infinite;
}

@keyframes blink {
  50% {
    opacity: 0;
  }
}

.scanlines {
  position: fixed;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(0deg,
      transparent,
      transparent 2px,
      rgba(0, 0, 0, 0.15) 2px,
      rgba(0, 0, 0, 0.15) 4px);
  z-index: 10;
}

.fade-in {
  animation: fadeIn 0.1s ease-out forwards;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}
