:root {
  --bg: #0a0a12;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--bg);
  background-image:
    radial-gradient(ellipse 80% 50% at 50% -10%, rgba(124,58,237,0.18), transparent 60%),
    radial-gradient(ellipse 60% 50% at 100% 100%, rgba(45,212,191,0.10), transparent 60%),
    linear-gradient(rgba(255,255,255,0.015) 1px, transparent 1px);
  background-size: auto, auto, 100% 2.2rem;
  color: #e2e8f0;
  min-height: 100vh;
  font-family: 'Space Grotesk', system-ui, sans-serif;
}

.font-mono { font-family: 'JetBrains Mono', ui-monospace, monospace; }
.font-grotesk { font-family: 'Space Grotesk', sans-serif; }

/* blinking cursor */
.blink { animation: blink 1.1s steps(1) infinite; color: #2dd4bf; }
@keyframes blink { 50% { opacity: 0; } }

/* staggered load reveal */
.fade-up {
  opacity: 0;
  transform: translateY(12px);
  animation: fadeUp .6s ease forwards;
}
@keyframes fadeUp {
  to { opacity: 1; transform: translateY(0); }
}

/* scrollbar */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(124,58,237,0.3); border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: rgba(45,212,191,0.4); }

/* nicer checkbox focus */
input[type="checkbox"]:focus-visible {
  outline: 2px solid #2dd4bf;
  outline-offset: 2px;
}

textarea { font-family: 'JetBrains Mono', monospace; }

@media (max-width: 640px) {
  h1 { letter-spacing: -0.04em; }
}