/* PV11-GL funnel — animações e utilitários */
*, *::before, *::after { box-sizing: border-box; }

.funnel-body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  background: #0a1628;
  color: #fff;
  margin: 0;
}

.funnel-shell {
  min-height: 100vh;
  min-height: 100dvh;
  max-width: 28rem;
  margin: 0 auto;
  position: relative;
  width: 100%;
}

/* Grid de fundo — scroll infinito */
@keyframes pv11-grid-col-up {
  0% { transform: translateY(0); }
  100% { transform: translateY(-50%); }
}
@keyframes pv11-grid-col-down {
  0% { transform: translateY(-50%); }
  100% { transform: translateY(0); }
}
.pv11-grid-col-up { animation: pv11-grid-col-up linear infinite; }
.pv11-grid-col-down { animation: pv11-grid-col-down linear infinite; }

/* Check animado */
@keyframes pv11-check-pulse {
  0%, 100% { transform: scale(1); opacity: 0.35; }
  50% { transform: scale(1.12); opacity: 0.55; }
}
.pv11-check-glow { animation: pv11-check-pulse 2s ease-in-out infinite; }
@keyframes pv11-check-pop {
  0% { transform: scale(0.6); opacity: 0; }
  60% { transform: scale(1.08); }
  100% { transform: scale(1); opacity: 1; }
}
.pv11-check-shell { animation: pv11-check-pop 0.55s ease-out forwards; }

/* CTA pulse */
@keyframes pv11-cta-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.03); }
}
.animate-pv11-cta-pulse { animation: pv11-cta-pulse 2s ease-in-out infinite; }

/* Spinner */
@keyframes pv8-spin { to { transform: rotate(360deg); } }
.pv8-spin { animation: pv8-spin 0.9s linear infinite; }

/* Shine nos tiles */
@keyframes pv9-shine {
  0% { transform: translate3d(-120%, 0, 0); }
  100% { transform: translate3d(220%, 0, 0); }
}
.pv9-shine {
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.2) 42%, rgba(255,255,255,0.2) 58%, transparent 100%);
  animation: pv9-shine 0.48s ease-out;
  will-change: transform;
  pointer-events: none;
}

/* Trinity */
@keyframes trinity-pulse {
  0%, 100% { transform: scale(1); filter: brightness(1); }
  50% { transform: scale(1.08); filter: brightness(1.18); }
}
.trinity-pulse { animation: trinity-pulse 1.6s ease-in-out infinite; }
@keyframes trinity-wire-flow {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
.trinity-wire-flow {
  background-image: linear-gradient(90deg, transparent 0%, rgba(56,189,248,0.7) 40%, rgba(167,139,250,0.85) 50%, rgba(56,189,248,0.7) 60%, transparent 100%);
  background-size: 200% 100%;
  animation: trinity-wire-flow 2.2s linear infinite;
}
@keyframes trinity-core-pulse {
  0%, 100% { transform: translate(-50%, -50%) scale(1); }
  50% { transform: translate(-50%, -50%) scale(1.06); }
}
.trinity-core-pulse { animation: trinity-core-pulse 1.8s ease-in-out infinite; }
@keyframes trinity-arc-flow {
  0% { stroke-dashoffset: 0; opacity: 0.4; }
  50% { opacity: 1; }
  100% { stroke-dashoffset: -32; opacity: 0.4; }
}
.trinity-arc-flow { animation: trinity-arc-flow 1.6s linear infinite; }

/* CPU pulse */
@keyframes pv11-gl-cpu-pulse {
  0%, 100% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.18); opacity: 1; }
}
.pv11-gl-cpu-pulse { animation: pv11-gl-cpu-pulse 0.9s ease-in-out infinite; }

/* Slider */
.pv11-gl-slider-v2 {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 56px;
  background: transparent;
  touch-action: pan-y;
}
.pv11-gl-slider-v2::-webkit-slider-runnable-track {
  height: 20px;
  background: transparent;
  border-radius: 9999px;
}
.pv11-gl-slider-v2::-moz-range-track {
  height: 20px;
  background: transparent;
  border-radius: 9999px;
}
.pv11-gl-slider-v2::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 36px;
  height: 36px;
  margin-top: -8px;
  border-radius: 9999px;
  background: #fff;
  border: 4px solid var(--thumb-color, #3b82f6);
  box-shadow: 0 8px 24px var(--thumb-glow, rgba(59, 130, 246, 0.55));
  cursor: grab;
}
.pv11-gl-slider-v2::-moz-range-thumb {
  width: 36px;
  height: 36px;
  border-radius: 9999px;
  background: #fff;
  border: 4px solid var(--thumb-color, #3b82f6);
  box-shadow: 0 8px 24px var(--thumb-glow, rgba(59, 130, 246, 0.55));
  cursor: grab;
}
.pv11-gl-slider-v2:focus { outline: none; }
@keyframes pv11-gl-thumb-wiggle {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-6px); }
  75% { transform: translateX(6px); }
}
.pv11-gl-slider-hint::-webkit-slider-thumb { animation: pv11-gl-thumb-wiggle 1.8s ease-in-out infinite; }
.pv11-gl-slider-hint::-moz-range-thumb { animation: pv11-gl-thumb-wiggle 1.8s ease-in-out infinite; }
@keyframes pv11-gl-hand-wiggle {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
}
.pv11-gl-hand-wiggle { animation: pv11-gl-hand-wiggle 1.8s ease-in-out infinite; }

/* Overlays */
.funnel-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.funnel-overlay-backdrop { background: rgba(0,0,0,0.85); backdrop-filter: blur(4px); }

/* Fade in */
@keyframes funnel-fade-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
.funnel-fade-in { animation: funnel-fade-in 0.35s ease-out forwards; }

/* Op card enter */
@keyframes op-enter {
  from { opacity: 0; transform: translateY(8px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.op-enter { animation: op-enter 0.28s ease-out forwards; }

.tile-logo svg {
  display: block;
  width: 1.5rem;
  height: 1.5rem;
  flex-shrink: 0;
}

  0% { width: 12%; }
  50% { width: 92%; }
  100% { width: 30%; }
}
.trinity-activity-bar {
  animation: trinity-activity-bar 1.6s ease-in-out infinite alternate;
}

.hidden { display: none !important; }


@media (min-width: 768px) {
  .funnel-shell-vsl { max-width: 48rem; }
}
