/* ============================================
   Kit Visual: ferandrade-com-br
   Arquivo: effects.css
   Filtros, backdrop-filter, clip-path,
   pseudo-elementos decorativos
   ============================================ */

/* === Glow Line (separador luminoso) === */

.kit-glow-line {
  position: relative;
  width: 100%;
  max-width: 300px;
  height: 2px;
  margin: 0 auto;
  background: linear-gradient(
    90deg,
    transparent,
    var(--kit-color-primary) 30%,
    var(--kit-color-primary-glow) 50%,
    var(--kit-color-primary) 70%,
    transparent
  );
  border-radius: 999px;
  /* box-shadow estática (não animada) — evita repaint no keyframe */
  box-shadow:
    0 0 10px rgba(10, 116, 255, 0.65),
    0 0 24px rgba(10, 116, 255, 0.32),
    0 0 50px rgba(10, 116, 255, 0.2);
  animation: kit-line-glow 4s ease-in-out infinite;
  will-change: opacity;
}

.kit-glow-line::before {
  content: "";
  position: absolute;
  inset: -4px -8px;
  background: inherit;
  filter: blur(8px);
  opacity: 0.4;
  border-radius: 999px;
}

/* === Bokeh Particles Container === */

.kit-bokeh-container {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}

.kit-bokeh-particle {
  position: absolute;
  border-radius: 50%;
  background: rgba(10, 116, 255, 0.06);
  will-change: transform;
  animation: kit-drift 20s linear infinite;
}

.kit-bokeh-particle:nth-child(odd) {
  background: rgba(10, 116, 255, 0.04);
}

.kit-bokeh-particle--flash {
  /* box-shadow estática (não animada) — animar box-shadow causa repaint */
  box-shadow: 0 0 3vw 1.5vw #BCCFFF;
  will-change: opacity;
  animation: kit-flash 8s ease-in-out infinite;
}

/* =====================================================
   background-gradient-bars (GBG)
   Barras verticais com gradiente (cor → transparente)
   que pulsam (scaleY) de forma escalonada.
   ===================================================== */

.gbg {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background-color: var(--kit-bg-primary);
}

@keyframes gbg-pulse {
  0%   { transform: scaleY(var(--gbg-scale)); }
  100% { transform: scaleY(calc(var(--gbg-scale) * 0.7)); }
}

.gbg__bars {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}

.gbg__bars-inner {
  display: flex;
  height: 100%;
  width: 100%;
  transform: translateZ(0);
  backface-visibility: hidden;
  -webkit-font-smoothing: antialiased;
}

.gbg__bar {
  flex: 1 0 0%;
  height: 100%;
  background: linear-gradient(
    to top,
    var(--gbg-from, rgba(10, 116, 255, 0.55)),
    transparent
  );
  transform-origin: bottom center;
  transform: scaleY(var(--gbg-scale, 1));
  animation: gbg-pulse var(--gbg-duration, 2s) ease-in-out infinite alternate;
  outline: 1px solid rgba(0, 0, 0, 0);
  box-sizing: border-box;
}

/* === Responsive === */

@media (max-width: 767px) {
  .kit-glow-line {
    max-width: 200px;
  }
}
