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

body {
  font-family: 'JetBrains Mono', monospace;
  background-color: #0a0a0f;
  color: white;
  overflow-x: hidden;
}

.font-orbitron {
  font-family: 'Orbitron', sans-serif;
}

/* Matrix rain effect */
.matrix-rain {
  background: linear-gradient(180deg, 
    transparent 0%,
    rgba(0, 255, 136, 0.03) 50%,
    transparent 100%
  );
  animation: matrixRain 20s linear infinite;
}

@keyframes matrixRain {
  0% { background-position: 0 0; }
  100% { background-position: 0 1000px; }
}

/* Scanlines */
.scanlines {
  background: repeating-linear-gradient(
    0deg,
    rgba(0, 0, 0, 0.1) 0px,
    rgba(0, 0, 0, 0.1) 1px,
    transparent 1px,
    transparent 2px
  );
  pointer-events: none;
}

/* Grid background */
.grid-bg {
  background-image: 
    linear-gradient(rgba(0, 255, 255, 0.1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 255, 255, 0.1) 1px, transparent 1px);
  background-size: 50px 50px;
}

/* Glass panel */
.glass-panel {
  background: rgba(10, 10, 15, 0.8);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(0, 255, 255, 0.2);
}

.glass-panel:hover {
  border-color: rgba(0, 255, 255, 0.4);
}

/* Glow effects */
.shadow-glow {
  box-shadow: 
    0 0 20px rgba(0, 255, 255, 0.3),
    0 0 40px rgba(0, 255, 255, 0.1),
    inset 0 0 20px rgba(0, 255, 255, 0.05);
}

/* Digital display */
.digit-display {
  text-shadow: 
    0 0 10px rgba(0, 255, 255, 0.5),
    0 0 20px rgba(0, 255, 255, 0.3),
    0 0 40px rgba(0, 255, 255, 0.2);
  background: linear-gradient(180deg, #ffffff 0%, #00ffff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Clock pulse */
.clock-pulse {
  animation: clockPulse 1s ease-in-out;
}

@keyframes clockPulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.8; }
}

/* Progress ring animation */
.progress-ring {
  filter: drop-shadow(0 0 10px rgba(0, 255, 255, 0.5));
  transition: stroke-dasharray 0.5s ease;
}

/* Glitch text effect */
.glitch-text {
  position: relative;
  animation: glitch 0.3s infinite;
}

.glitch-text::before,
.glitch-text::after {
  content: attr(data-text);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.glitch-text::before {
  left: 2px;
  text-shadow: -2px 0 #ff0066;
  clip: rect(24px, 550px, 90px, 0);
  animation: glitch-anim 2s infinite linear alternate-reverse;
}

.glitch-text::after {
  left: -2px;
  text-shadow: -2px 0 #00ff88;
  clip: rect(85px, 550px, 140px, 0);
  animation: glitch-anim2 2s infinite linear alternate-reverse;
}

@keyframes glitch {
  0%, 100% { transform: translate(0); }
  20% { transform: translate(-2px, 2px); }
  40% { transform: translate(-2px, -2px); }
  60% { transform: translate(2px, 2px); }
  80% { transform: translate(2px, -2px); }
}

@keyframes glitch-anim {
  0% { clip: rect(42px, 9999px, 44px, 0); }
  25% { clip: rect(12px, 9999px, 59px, 0); }
  50% { clip: rect(48px, 9999px, 29px, 0); }
  75% { clip: rect(35px, 9999px, 17px, 0); }
  100% { clip: rect(62px, 9999px, 52px, 0); }
}

@keyframes glitch-anim2 {
  0% { clip: rect(65px, 9999px, 100px, 0); }
  25% { clip: rect(19px, 9999px, 75px, 0); }
  50% { clip: rect(95px, 9999px, 61px, 0); }
  75% { clip: rect(45px, 9999px, 88px, 0); }
  100% { clip: rect(72px, 9999px, 35px, 0); }
}

/* Singularity achieved animation */
.singularity-achieved {
  animation: singularityFlash 0.5s ease-in-out infinite alternate;
}

@keyframes singularityFlash {
  0% { background: rgba(0, 0, 0, 0.9); }
  100% { background: rgba(0, 255, 255, 0.1); }
}

/* Sparkline placeholder */
.sparkline {
  height: 30px;
  background: linear-gradient(90deg, 
    transparent 0%,
    rgba(0, 255, 136, 0.3) 20%,
    rgba(0, 255, 136, 0.5) 40%,
    rgba(0, 255, 136, 0.4) 60%,
    rgba(0, 255, 136, 0.6) 80%,
    rgba(0, 255, 136, 0.5) 100%
  );
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 30'%3E%3Cpath d='M0,25 Q10,20 20,22 T40,18 T60,15 T80,10 T100,5' fill='none' stroke='white' stroke-width='2'/%3E%3C/svg%3E");
  mask-size: 100% 100%;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 30'%3E%3Cpath d='M0,25 Q10,20 20,22 T40,18 T60,15 T80,10 T100,5' fill='none' stroke='white' stroke-width='2'/%3E%3C/svg%3E");
  -webkit-mask-size: 100% 100%;
}

/* Ticker animation */
.ticker-content {
  animation: ticker 60s linear infinite;
}

@keyframes ticker {
  0% { transform: translateX(0); }
  100% { transform: translateX(-33.33%); }
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .digit-display {
    font-size: 1.5rem !important;
  }
  
  .glass-panel {
    padding: 12px;
  }
}

/* Pulse animation for status */
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.5; }
}

.animate-pulse {
  animation: pulse 2s infinite;
}

/* CRT flicker (subtle) */
@keyframes crtFlicker {
  0%, 100% { opacity: 1; }
  92% { opacity: 0.97; }
  94% { opacity: 0.95; }
  96% { opacity: 0.97; }
  98% { opacity: 0.99; }
}

body {
  animation: crtFlicker 4s infinite;
}

/* Focus states */
button:focus,
a:focus {
  outline: 2px solid rgba(0, 255, 255, 0.5);
  outline-offset: 2px;
}