/* Laser do logo do Talles (cor #ff1919, a mesma da landing), sem estilo nem script inline (a CSP não tem unsafe-inline).
   (1) preloader rápido com o traço do logo ao abrir a página; (2) laser de fundo que se desenha ao entrar na viewport,
   atrás do cabeçalho do formulário e na tela de agradecimento. prefers-reduced-motion: o traço aparece pronto, sem animar.
   O JS (public/js/laser.mjs) só liga/desliga classes; todo o estilo está aqui. */

/* ── o traço que se desenha ── */
.laser-path{
  stroke-dasharray:100;
  stroke-dashoffset:100;
  transition:stroke-dashoffset 1.6s cubic-bezier(.65,0,.35,1);
}
.drawn .laser-path{stroke-dashoffset:0}

/* ── laser de fundo (hero e agradecimento) ── */
.laser-bg{
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:min(680px,86vmin);
  aspect-ratio:1/1;
  z-index:0;
  pointer-events:none;
}
.laser-bg .laser-bg-svg{
  width:100%;height:100%;
  opacity:.42;
  filter:drop-shadow(0 0 20px rgba(255,25,25,.65)) drop-shadow(0 0 44px rgba(255,25,25,.4));
}
.laser-bg--fim{width:min(520px,70vmin);}
.laser-bg--fim .laser-bg-svg{opacity:.3}
/* o conteúdo fica na frente do laser */
.hero .wrap{position:relative;z-index:1}
.fim{position:relative;isolation:isolate}
.fim > .laser-bg{z-index:0}
.fim .texto,.fim .eyebrow,.fim h2{position:relative;z-index:1}

/* ── preloader ── */
.preloader{
  position:fixed;inset:0;z-index:9999;
  display:none;align-items:center;justify-content:center;
  background:#0b0c11;
  transition:opacity .6s cubic-bezier(.625,.05,0,1);
}
.preloader.on{display:flex}
.preloader.off{opacity:0}
.preloader-glow{
  position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle at center,rgba(255,25,25,.18) 0%,rgba(255,25,25,.05) 35%,transparent 65%);
}
.preloader-logo{
  position:relative;
  width:min(60vmin,420px);height:min(60vmin,420px);
  filter:drop-shadow(0 0 12px #ff1919) drop-shadow(0 0 24px rgba(255,25,25,.6));
}
.preloader-particles circle{
  fill:#ff5f5f;opacity:0;
  transform-box:fill-box;transform-origin:center;
  animation:laser-twinkle 2.6s ease-out infinite alternate;
}
.preloader-particles circle:nth-child(3n){animation-duration:3.1s;animation-delay:.2s}
.preloader-particles circle:nth-child(3n+1){animation-duration:2.3s;animation-delay:.5s}
.preloader-particles circle:nth-child(4n){animation-duration:2.9s;animation-delay:.8s}
@keyframes laser-twinkle{
  0%{opacity:0;transform:scale(.5)}
  50%{opacity:.85;transform:scale(1)}
  100%{opacity:.2;transform:scale(.7)}
}

/* ── menos movimento: traço pronto, sem animação (o site.css já zera transition/animation com !important) ── */
@media (prefers-reduced-motion:reduce){
  .laser-path{stroke-dashoffset:0}
  .preloader-particles circle{opacity:0}
}
