/* ============================================================
   SCROLL.CSS — scroll progress, reveal animations, counters
   ============================================================ */

/* Progress bar */
.scroll-progress {
  position: fixed;
  top: 0; left: 0;
  height: 2px;
  width: 0%;
  background: var(--accent);
  box-shadow: 0 0 8px var(--accent-glow);
  z-index: 9999;
  transition: width 0.05s linear;
  pointer-events: none;
}

/* Reveal on scroll */
[data-reveal] {
  opacity: 0;
  transform: translateY(32px);
  transition:
    opacity 0.9s ease,
    transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
[data-reveal].revealed {
  opacity: 1;
  transform: translate(0) scale(1);
}
[data-reveal="left"]  { transform: translateX(-40px); }
[data-reveal="right"] { transform: translateX(40px); }
[data-reveal="scale"] { transform: scale(0.92); }

[data-reveal-delay="100"] { transition-delay: 0.10s; }
[data-reveal-delay="200"] { transition-delay: 0.20s; }
[data-reveal-delay="300"] { transition-delay: 0.30s; }
[data-reveal-delay="400"] { transition-delay: 0.40s; }

/* Topbar scroll state */
.topbar.scrolled {
  background: rgba(10, 10, 15, 0.94) !important;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06);
}

/* Stats section */
.stats-section {
  position: relative;
  z-index: 2;
  background: var(--bg);
  padding: 80px 24px;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.stats-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
}
.stat { text-align: center; }
.stat-value {
  font-size: clamp(36px, 5vw, 68px);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--accent);
  line-height: 1;
  margin-bottom: 14px;
  font-variant-numeric: tabular-nums;
}
.stat-suffix {
  font-size: 0.55em;
  color: var(--text-dim);
  margin-left: 4px;
  font-weight: 600;
}
.stat-label {
  font-size: 11px;
  color: var(--text-mute);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 500;
}

@media (max-width: 700px) {
  .stats-section { padding: 60px 20px; }
  .stats-inner   { grid-template-columns: repeat(2, 1fr); gap: 28px; }
}