/* ===== Glitch Grow — Custom Styles ===== */

/* Smooth scroll offset for fixed nav */
html {
  scroll-padding-top: 5rem;
}

/* Reveal animation */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Terminal typing effect */
.terminal-line {
  opacity: 0;
  transform: translateX(-8px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.terminal-line.typed {
  opacity: 1;
  transform: translateX(0);
}

/* Scrollbar */
::-webkit-scrollbar {
  width: 6px;
}

::-webkit-scrollbar-track {
  background: #0a0a0f;
}

::-webkit-scrollbar-thumb {
  background: #1e1e2e;
  border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
  background: #2e2e3e;
}

/* Focus ring */
*:focus-visible {
  outline: 2px solid #00ff88;
  outline-offset: 2px;
  border-radius: 4px;
}

/* Counter number style */
.counter {
  font-variant-numeric: tabular-nums;
}

/* Gradient text fallback */
@supports not (background-clip: text) {
  .text-transparent {
    color: #00ff88;
  }
}

/* Card hover glow */
.group:hover {
  box-shadow: 0 0 40px rgba(0, 255, 136, 0.04);
}

/* Nav blur on scroll */
.nav-scrolled {
  background-color: rgba(10, 10, 15, 0.95) !important;
  border-color: rgba(30, 30, 46, 0.8) !important;
}

/* Pulse for the live indicator */
@keyframes gentle-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}

/* Form success state */
.form-success {
  animation: success-flash 0.5s ease;
}

@keyframes success-flash {
  0% { box-shadow: 0 0 0 0 rgba(0, 255, 136, 0.4); }
  100% { box-shadow: 0 0 0 20px rgba(0, 255, 136, 0); }
}

/* Mobile menu transition */
#mobile-menu {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

#mobile-menu.open {
  max-height: 300px;
}

/* Selection color */
::selection {
  background: rgba(0, 255, 136, 0.2);
  color: #fff;
}
