:root {
  --background: 222 47% 11%;
  --foreground: 0 0% 100%;
  --primary: 184 100% 41%;
  --secondary: 187 83% 53%;
  --muted: 215 25% 20%;
  --muted-foreground: 217 19% 65%;
  --destructive: 0 72% 55%;
  --border: 217 33% 24%;
  --card: 215 28% 18%;
  --highlight: 48 96% 55%;

  --shadow-sm: 0 10px 24px hsl(222 70% 4% / 0.18);
  --shadow-md: 0 18px 50px hsl(222 70% 4% / 0.28);
  --shadow-lg: 0 28px 90px hsl(222 70% 4% / 0.38);

  --transition-fast: 150ms ease;
  --transition-smooth: 280ms cubic-bezier(0.22, 1, 0.36, 1);

  --radius-sm: 0.75rem;
  --radius-md: 1rem;
  --radius-lg: 1.5rem;
}

.dark {
  --background: 222 47% 11%;
  --foreground: 0 0% 100%;
  --primary: 184 100% 41%;
  --secondary: 187 83% 53%;
  --muted: 215 25% 20%;
  --muted-foreground: 217 19% 65%;
  --destructive: 0 72% 55%;
  --border: 217 33% 24%;
  --card: 215 28% 18%;
  --highlight: 48 96% 55%;
}

* {
  box-sizing: border-box;
}

html,
body,
#root {
  min-height: 100%;
}

body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

button,
a,
textarea {
  transition: all var(--transition-fast);
}

textarea::-webkit-scrollbar {
  width: 6px;
}

textarea::-webkit-scrollbar-thumb {
  background: hsl(var(--primary) / 0.3);
  border-radius: 9999px;
}

@keyframes floaty {
  0%,
  100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-9px);
  }
}

@keyframes pulseGlow {
  0%,
  100% {
    box-shadow: 0 0 0 1px hsl(var(--primary) / 0.18), 0 0 16px hsl(var(--primary) / 0.1);
  }
  50% {
    box-shadow: 0 0 0 1px hsl(var(--primary) / 0.36), 0 0 28px hsl(var(--primary) / 0.2);
  }
}

@keyframes dotBlink {
  0%,
  80%,
  100% {
    opacity: 0.25;
    transform: translateY(0);
  }
  40% {
    opacity: 1;
    transform: translateY(-2px);
  }
}

.glass-panel {
  background: linear-gradient(180deg, hsl(var(--card) / 0.72), hsl(var(--card) / 0.42));
  backdrop-filter: blur(18px);
}

.cyber-grid::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: linear-gradient(hsl(var(--foreground) / 0.03) 1px, transparent 1px), linear-gradient(90deg, hsl(var(--foreground) / 0.03) 1px, transparent 1px);
  background-size: 28px 28px;
  mask-image: radial-gradient(circle at center, black, transparent 70%);
  pointer-events: none;
}
