/* Reset */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* Body and terminal basics */
body {
  background-color: black;
  color: #00ff9c;
  font-family: 'Courier New', Courier, monospace;
  overflow: hidden;
  height: 100vh;
  width: 100vw;
}

/* Matrix rain canvas */
#matrixCanvas {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
}

/* Terminal container */
.terminal-container {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}

/* Terminal box */
.terminal {
  width: 90%;
  max-width: 900px;
  padding: 20px;
  background: rgba(0, 0, 0, 0.75);
  border: 2px solid #00ff9c;
  box-shadow: 0 0 30px #00ff9c;
  border-radius: 10px;
  min-height: 400px;
  overflow-y: auto;
}

#output {
  white-space: pre-wrap;
  font-size: 1rem;
  line-height: 1.6;
}

/* Typing cursor */
.cursor {
  display: inline-block;
  width: 10px;
  background-color: #00ff9c;
  animation: blink 1s step-end infinite;
}

@keyframes blink {
  0%, 100% { opacity: 0; }
  50% { opacity: 1; }
}

.blackout #matrixCanvas,
.blackout .terminal-container {
  display: none !important;
}

.blackout {
  background-color: black !important;
}