/* Shine + selo — config Claude (explicacao-shine-para-cursor.md) */

.fx-shine-wrap {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: inherit;
  pointer-events: none;
  z-index: 2;
}

/* Camada 1 — glow largo (sigma ~7,5%) */
.fx-shine-wrap::after {
  content: '';
  position: absolute;
  top: -60%;
  left: -60%;
  width: 45%;
  height: 220%;
  background: linear-gradient(
    90deg,
    transparent 0%,
    transparent 32%,
    rgba(255, 255, 255, 0.18) 40%,
    rgba(255, 255, 255, 0.35) 50%,
    rgba(255, 255, 255, 0.18) 60%,
    transparent 68%,
    transparent 100%
  );
  transform: translateX(-160%) rotate(22deg);
  mix-blend-mode: screen;
  animation: fx-sweep 2.24s infinite;
}

/* Camada 2 — core nítido (sigma ~2%) */
.fx-shine-wrap::before {
  content: '';
  position: absolute;
  top: -60%;
  left: -60%;
  width: 45%;
  height: 220%;
  background: linear-gradient(
    90deg,
    transparent 0%,
    transparent 44%,
    rgba(255, 255, 255, 0.85) 50%,
    transparent 56%,
    transparent 100%
  );
  transform: translateX(-160%) rotate(22deg);
  mix-blend-mode: screen;
  animation: fx-sweep 2.24s infinite;
}

/*
 * Varredura 0–37,5% (~0,84s) com ease-in-out.
 * Pausa 37,5–100% (~1,4s) parado fora da tela — step-end evita jitter na pausa.
 */
@keyframes fx-sweep {
  0% {
    transform: translateX(-160%) rotate(22deg);
    animation-timing-function: cubic-bezier(.45, 0, .55, 1);
  }
  37.5% {
    transform: translateX(220%) rotate(22deg);
    animation-timing-function: step-end;
  }
  100% {
    transform: translateX(220%) rotate(22deg);
  }
}

.fx-dot {
  position: absolute;
  left: 97.2%;
  top: 8.8%;
  width: 3.9%;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  background: #fd0402;
  transform: translate(-50%, -50%) scale(0.79);
  pointer-events: none;
  z-index: 3;
  animation: fx-pulse 0.9s ease-in-out infinite;
}

@keyframes fx-pulse {
  0% { transform: translate(-50%, -50%) scale(0.79); }
  50% { transform: translate(-50%, -50%) scale(1); }
  65% { transform: translate(-50%, -50%) scale(0.93); }
  100% { transform: translate(-50%, -50%) scale(0.79); }
}

.fx-applied {
  overflow: visible !important;
}
