@keyframes flicker { 
  0% { opacity: 0.27; } 5% { opacity: 0.34; } 10% { opacity: 0.23; } 15% { opacity: 0.90; } 
  20% { opacity: 0.18; } 25% { opacity: 0.83; } 30% { opacity: 0.65; } 35% { opacity: 0.67; } 
  40% { opacity: 0.26; } 45% { opacity: 0.84; } 50% { opacity: 0.96; } 55% { opacity: 0.08; } 
  60% { opacity: 0.20; } 65% { opacity: 0.71; } 70% { opacity: 0.53; } 75% { opacity: 0.37; } 
  80% { opacity: 0.71; } 85% { opacity: 0.70; } 90% { opacity: 0.70; } 95% { opacity: 0.36; } 100% { opacity: 0.24; } 
}

@keyframes textShadow { 
  0% { text-shadow: 0.43px 0 1px rgba(0,30,255,0.5), -0.43px 0 1px rgba(255,0,80,0.3), 0 0 3px; } 
  10% { text-shadow: 0.02px 0 1px rgba(0,30,255,0.5), -0.02px 0 1px rgba(255,0,80,0.3), 0 0 3px; } 
  50% { text-shadow: 0.08px 0 1px rgba(0,30,255,0.5), -0.08px 0 1px rgba(255,0,80,0.3), 0 0 3px; } 
  100% { text-shadow: 2.62px 0 1px rgba(0,30,255,0.5), -2.62px 0 1px rgba(255,0,80,0.3), 0 0 3px; } 
}

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: .5; }
}

.crt-effect::after { 
  content: " "; display: block; position: absolute; top: 0; left: 0; bottom: 0; right: 0; 
  background: rgba(18, 16, 16, 0.1); opacity: 0; z-index: 2; pointer-events: none; 
  animation: flicker 0.15s infinite; 
}

.crt-effect::before { 
  content: " "; display: block; position: absolute; top: 0; left: 0; bottom: 0; right: 0; 
  background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%), 
  linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06)); 
  z-index: 2; background-size: 100% 2px, 3px 100%; pointer-events: none; 
}

.crt-effect { 
  animation: textShadow 1.6s infinite; 
}

html, body {
    height: 100%;
}

.terminal-container {
  width: 100%;
  height: 100%;
  background-color: #222;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}

.terminal-content {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #00FF00;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  text-transform: uppercase;
  letter-spacing: 2px;
}

.communique-1 {
  opacity: 0.4;
  margin-bottom: 0.5rem;
  font-size: 1.5rem;
}

.communique-2 {
  opacity: 0.5;
  margin-bottom: 0.5rem;
  font-size: 1.5rem;
}

.status-pulse {
  padding-right: 2rem;
  padding-left: 2rem;
  font-size: 2.5rem;
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

.coordinates {
  font-size: 1rem;
  margin-top: 1rem;
  opacity: 0.4;
  text-align: center;
  letter-spacing: normal;
}

#timer {
  font-size: 2rem;
  margin-top: 1rem;
  opacity: 0.5;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

@media (max-width: 600px) {
  .terminal-content {
    white-space: nowrap;
    padding: 0 20px;
  }

  .communique-1, 
  .communique-2 {
    font-size: 3.5vw; 
    letter-spacing: 1px;
  }

  .status-pulse {
    font-size: 6vw;
  }

  .coordinates {
    font-size: 2.5vw;
  }

  #timer {
    font-size: 5vw;
  }
}