div.wrappi{
 width: 100%;
}
body {
  background-color: black;
  min-height: 100vh;
  margin: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 2rem;
  color: #00FF00;
  font: 1.6rem 'Inconsolata', monospace;
  text-shadow: 0 0 8px #D0F8D0;
  animation:opac 2.0s}@keyframes opac{from{opacity:0} to{opacity:1}
}
body::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: repeating-linear-gradient(
    0deg, 
    rgba(0, 0, 0, 0.8), 
    rgba(0, 0, 0, 0.8) 1px, 
    transparent 1px, 
    transparent 3px
  );
  pointer-events: none;
  animation: crt-flicker 0.1s infinite linear alternate;
  z-index: 1000;
}

/* CRT Screen curvature effect */
body::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: radial-gradient(ellipse at center, transparent 40%, rgba(0, 0, 0, 0.3) 70%, rgba(0, 0, 0, 0.8) 100%);
  pointer-events: none;
  z-index: 1001;
}

/* CRT Glitch effects */
.terminal-container::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: 
    linear-gradient(90deg, transparent 98%, rgba(0, 255, 0, 0.03) 100%),
    linear-gradient(0deg, transparent 98%, rgba(0, 255, 0, 0.03) 100%);
  animation: crt-interference 3s infinite;
  pointer-events: none;
}

/* Random screen glitches */
@keyframes crt-flicker {
  0% { opacity: 1; }
  95% { opacity: 1; }
  97% { opacity: 0.95; }
  98% { opacity: 0.92; }
  99% { opacity: 0.94; }
  100% { opacity: 0.90; }
}

@keyframes crt-interference {
  0% { 
    transform: translateX(0);
    filter: hue-rotate(0deg);
  }
  8% { 
    transform: translateX(0);
  }
  9% { 
    transform: translateX(-4px);
    filter: hue-rotate(8deg);
  }
  10% { 
    transform: translateX(2px);
    filter: hue-rotate(-5deg);
  }
  11% { 
    transform: translateX(0);
    filter: hue-rotate(0deg);
  }
  45% { 
    transform: translateX(0);
  }
  46% { 
    transform: translateX(3px);
    filter: hue-rotate(-6deg);
  }
  47% { 
    transform: translateX(-1px);
    filter: hue-rotate(4deg);
  }
  48% { 
    transform: translateX(0);
    filter: hue-rotate(0deg);
  }
  80% { 
    transform: translateX(0);
  }
  81% { 
    transform: translateX(-2px);
    filter: hue-rotate(3deg);
  }
  82% { 
    transform: translateX(0);
    filter: hue-rotate(0deg);
  }
  100% { 
    transform: translateX(0);
    filter: hue-rotate(0deg);
  }
}
.output {
  text-align: left;
  font-family: "ComputerFont", monospace;
  color: #00FF00;
  margin-top: 0;
  line-height: 1.4;
}
.output h1 {
  font-size: 18pt;
  line-height: 1.4;
  margin: 0;
  padding: 0;
}

.cursor::after {
  content: "";
  display: inline-block;
  margin-left: 0px;
  vertical-align: baseline;
  margin-top: 4px;
  background-color: #00FF00;
  animation-name: blink;
  animation-duration: 0.8s;
  animation-iteration-count: infinite;
}

h1.cursor::after {
  height: 20px;
  width: 14px;
}

@keyframes blink {
  0% {
    opacity: 1;
  }
  22% {
    opacity: 1;
  }
  60% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}

/* CRT turn off effect */
.crt-off {
  animation: turn-off 0.55s cubic-bezier(0.230, 1.000, 0.320, 1.000);
  animation-fill-mode: forwards;
}

.crt-off::after {
  content: " ";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background: black;
  opacity: 0;
  z-index: 2;
  pointer-events: none;
}

@keyframes turn-off {
  0% {
    transform: scale(1, 1.3) translate3d(0, 0, 0);
    filter: brightness(1);
    opacity: 1;
  }
  60% {
    transform: scale(1.3, 0.001) translate3d(0, 0, 0);
    filter: brightness(10);
  }
  100% {
    transform: scale(0, 0.0001) translate3d(0, 0, 0);
    filter: brightness(50);
    opacity: 0;
  }
}

.crt-scanline {
  width: 100%;
  height: 2px;
  background: rgba(0, 255, 0, 0.9);
  position: absolute;
  top: 50%;
  left: 0;
  z-index: 10;
  animation: scanline 0.55s linear;
  animation-fill-mode: forwards;
}

@keyframes scanline {
  0% {
    width: 100%;
    left: 0;
    opacity: 1;
  }
  50% {
    width: 100%;
    left: 0;
    opacity: 0.7;
  }
  100% {
    width: 0;
    left: 50%;
    opacity: 0;
  }
}

/* Additional CRT authenticity effects */
@keyframes phosphor-glow {
  0% { text-shadow: 0 0 8px #D0F8D0; }
  50% { text-shadow: 0 0 12px #D0F8D0, 0 0 20px rgba(0, 255, 0, 0.4); }
  100% { text-shadow: 0 0 8px #D0F8D0; }
}

/* Subtle screen curvature - older monitors weren't perfectly flat */
.terminal-container {
  border-radius: 2px;
}

.terminal-container .terminal-content {
  transform: perspective(800px) rotateX(0.5deg);
}

/* Random horizontal scan line that occasionally sweeps across */
@keyframes rolling-scanline {
  0% { 
    top: -5%; 
    opacity: 0; 
  }
  10% { 
    opacity: 1; 
  }
  90% { 
    opacity: 1; 
  }
  100% { 
    top: 105%; 
    opacity: 0; 
  }
}

/* Occasionally add a rolling scanline */
body.add-rolling-scanline::before {
  content: "";
  position: fixed;
  width: 100vw;
  height: 3px;
  background: linear-gradient(to bottom, transparent, rgba(0, 255, 0, 0.3), transparent);
  left: 0;
  top: 50%;
  z-index: 1002;
  animation: rolling-scanline 2s ease-in-out;
  pointer-events: none;
}

/* Font declaration */
@font-face {
  font-family: 'ComputerFont';
  src: url('dos.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}


