/* Retro/CRT Effects for Startup Tycoon */

/* Optional CRT Effect - can be toggled on/off */
.crt-effect {
  position: relative;
  overflow: hidden;
}

/* Add scanlines */
.crt-effect::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%);
  background-size: 100% 4px;
  pointer-events: none;
  z-index: 100;
}

/* Add CRT flicker */
.crt-effect::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(18, 16, 16, 0.1);
  opacity: 0;
  z-index: 101;
  pointer-events: none;
  animation: flicker 0.15s infinite;
}

/* CRT glow effect */
.crt-glow {
  text-shadow: 0 0 5px rgba(51, 255, 51, 0.8), 0 0 10px rgba(51, 255, 51, 0.4);
}

/* Pixel Text effect */
.pixel-text {
  font-family: "Press Start 2P", "Courier New", monospace;
  image-rendering: pixelated;
  letter-spacing: 1px;
}

/* Retro Borders */
.retro-border {
  border-style: double;
  border-width: 4px;
  border-color: #33ff33;
  border-radius: 0;
  box-shadow: inset 0 0 8px rgba(51, 255, 51, 0.5);
}

/* Blinking cursor effect */
.blink-cursor::after {
  content: "█";
  animation: blink 1s infinite;
}

/* Subtle typing effect */
.typing-effect {
  overflow: hidden;
  white-space: nowrap;
  animation: typing 3.5s steps(40, end);
}

/* Retro menu highlight */
.retro-highlight {
  background-color: #33ff33;
  color: #000000;
}

/* Animation Keyframes */
@keyframes flicker {
  0% {
    opacity: 0.27861;
  }
  5% {
    opacity: 0.34769;
  }
  10% {
    opacity: 0.23604;
  }
  15% {
    opacity: 0.90626;
  }
  20% {
    opacity: 0.18128;
  }
  25% {
    opacity: 0.83891;
  }
  30% {
    opacity: 0.65583;
  }
  35% {
    opacity: 0.67807;
  }
  40% {
    opacity: 0.26559;
  }
  45% {
    opacity: 0.84693;
  }
  50% {
    opacity: 0.96019;
  }
  55% {
    opacity: 0.08594;
  }
  60% {
    opacity: 0.20313;
  }
  65% {
    opacity: 0.71988;
  }
  70% {
    opacity: 0.53455;
  }
  75% {
    opacity: 0.37288;
  }
  80% {
    opacity: 0.71428;
  }
  85% {
    opacity: 0.70419;
  }
  90% {
    opacity: 0.7003;
  }
  95% {
    opacity: 0.36108;
  }
  100% {
    opacity: 0.24387;
  }
}

@keyframes blink {
  0% {
    opacity: 0;
  }
  49% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 1;
  }
}

@keyframes typing {
  from {
    width: 0;
  }
  to {
    width: 100%;
  }
}

/* CRT screen turn off/on animation */
.crt-turnoff {
  animation: shutdown 0.6s cubic-bezier(0.23, 1, 0.32, 1);
}

.crt-turnon {
  animation: startup 0.8s cubic-bezier(0.23, 1, 0.32, 1);
}

@keyframes shutdown {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  20% {
    transform: scale(1, 0.01);
    opacity: 0.7;
  }
  100% {
    transform: scale(0, 0.01);
    opacity: 0;
  }
}

@keyframes startup {
  0% {
    transform: scale(0, 0.01);
    opacity: 0;
  }
  80% {
    transform: scale(1, 0.01);
    opacity: 0.7;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

/* Pixel art special styles */
.pixel-art {
  image-rendering: pixelated;
  image-rendering: -moz-crisp-edges;
  image-rendering: crisp-edges;
}

/* Link styles */
a {
  color: #00ff00;
  text-decoration: none;
  padding: 2px 4px;
  position: relative;
}

a:hover {
  background-color: #33ff33;
  color: #000000;
}

a:active {
  background-color: #00ff00;
}

/* Retro progress bar */
.retro-progress {
  width: 100%;
  height: 20px;
  background-color: #111;
  border: 1px solid #33ff33;
  margin: 10px 0;
  position: relative;
}

.retro-progress-bar {
  height: 100%;
  background-color: #33ff33;
  transition: width 0.3s;
}

.retro-progress-value {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #ffffff;
  text-shadow: 1px 1px 1px #000000;
  font-size: 12px;
}

/* Retro toggle switch */
.retro-toggle {
  display: inline-block;
  width: 50px;
  height: 24px;
  position: relative;
}

.retro-toggle input {
  opacity: 0;
  width: 0;
  height: 0;
}

.retro-toggle-slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #111;
  border: 1px solid #33ff33;
  transition: 0.4s;
}

.retro-toggle-slider:before {
  position: absolute;
  content: "";
  height: 16px;
  width: 16px;
  left: 4px;
  bottom: 3px;
  background-color: #33ff33;
  transition: 0.4s;
}

input:checked + .retro-toggle-slider:before {
  transform: translateX(26px);
}

/* Retro terminal text effect */
.terminal-text {
  overflow: hidden;
  border-right: 0.15em solid #33ff33;
  white-space: nowrap;
  margin: 0 auto;
  letter-spacing: 0.15em;
  animation: typing 3.5s steps(40, end), blink-caret 0.75s step-end infinite;
}

@keyframes blink-caret {
  from,
  to {
    border-color: transparent;
  }
  50% {
    border-color: #33ff33;
  }
}
