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

html {
  scroll-behavior: smooth;
}

body {
  background: var(--black);
  color: var(--text);
  font-family: var(--font-body);
  overflow-x: hidden;
  cursor: none;
}

/* Scanlines overlay */
body::after {
  content: '';
  position: fixed;
  inset: 0;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(0, 0, 0, 0.04) 2px,
    rgba(0, 0, 0, 0.04) 4px
  );
  pointer-events: none;
  z-index: 9990;
}

/* Scrollbar */
::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: #000; }
::-webkit-scrollbar-thumb {
  background: linear-gradient(var(--deep-red), var(--crimson));
  border-radius: 2px;
}

/* Typography helpers */
.glow-text {
  color: var(--crimson);
  text-shadow: 0 0 30px rgba(220, 20, 60, 0.8);
}

.section-tag {
  font-family: var(--font-mono);
  font-size: 0.6rem;
  letter-spacing: 0.6em;
  color: var(--red);
  text-transform: uppercase;
  margin-bottom: 12px;
  display: block;
}

.section-title {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 4vw, 3rem);
  font-weight: 700;
  color: #fff;
  line-height: 1.1;
  margin-bottom: 60px;
  position: relative;
}

.section-title::after {
  content: '';
  position: absolute;
  bottom: -16px;
  left: 0;
  width: 60px;
  height: 2px;
  background: linear-gradient(90deg, var(--crimson), transparent);
  box-shadow: 0 0 10px var(--glow);
}

.tools-title {
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.4em;
  color: var(--muted);
  text-transform: uppercase;
  margin-bottom: 30px;
}

/* Energy divider */
.energy-divider {
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--red) 20%,
    var(--crimson) 50%,
    var(--red) 80%,
    transparent
  );
  box-shadow: 0 0 20px rgba(177, 18, 38, 0.5);
}

/* Scroll reveal */
.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Reveal delay variants */
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
