/* 05 processo (agente FLUXO). Fluxo de agentes: 4 nós ligados por curvas, pacotes de luz e terminal rodando.
   Prefixo pr- nesta seção. fx-icv repetido aqui para a seção funcionar sozinha. */

/* ---------- ícone de vidro líquido (máscara Phosphor duotone) ----------
   brilho: cópia borrada e parada (rasteriza uma vez); corpo: translúcido respirando (opacidade);
   borda: gradiente neon com reflexo que corre por transform (sem repintar a cada quadro). */
.fx-icv{position:relative;display:inline-block;flex:none;width:var(--tam,64px);height:var(--tam,64px)}
.fx-icv::before{content:"";position:absolute;inset:-38%;border-radius:50%;pointer-events:none;background:radial-gradient(closest-side,rgba(255,77,36,.22),rgba(255,77,36,.07) 55%,transparent);transition:opacity .45s var(--ease),transform .45s var(--ease)}
.fx-icv-m{position:absolute;inset:0;display:block}
.fx-icv-brilho,.fx-icv-corpo,.fx-icv-borda{position:absolute;inset:0;display:block;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.fx-icv-brilho{-webkit-mask-image:var(--icv-borda);mask-image:var(--icv-borda);background:var(--tang);filter:blur(5px);opacity:.75;will-change:transform;transition:opacity .45s var(--ease)}
.fx-icv-corpo{-webkit-mask-image:var(--icv-corpo);mask-image:var(--icv-corpo);background:linear-gradient(160deg,rgba(255,196,174,.62),rgba(255,77,36,.42) 48%,rgba(168,42,14,.3));will-change:opacity;animation:fx-respira 4.2s var(--ease-io) infinite var(--atraso,0s)}
.fx-icv-borda{-webkit-mask-image:var(--icv-borda);mask-image:var(--icv-borda);overflow:hidden;background:linear-gradient(180deg,#FFD2C2 0%,#FF8D63 24%,#FF4D24 54%,#E23A12 76%,#A82A0E 100%)}
.fx-icv-borda::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:60%;background:linear-gradient(105deg,transparent 0,rgba(255,244,238,.95) 45%,rgba(255,200,180,.4) 55%,transparent 100%);will-change:transform;animation:fx-reflexo 6.5s var(--ease-io) infinite var(--atraso,0s)}
.fx-icv-simples{color:var(--tang)}
.fx-icv-simples svg{width:100%;height:100%}
@keyframes fx-reflexo{0%,58%{transform:translateX(0)}100%{transform:translateX(370%)}}
@keyframes fx-respira{0%,100%{opacity:.72}50%{opacity:1}}

/* ---------- palco ---------- */
.pr-palco{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,3vw,40px);align-items:stretch}
.pr-fluxo{position:relative;min-width:0;padding:6px 0}
.pr-fluxo::before{content:"";position:absolute;inset:-36px -24px;pointer-events:none;background-image:radial-gradient(rgba(236,234,228,.11) 1px,transparent 1.5px);background-size:24px 24px;-webkit-mask-image:radial-gradient(ellipse 70% 70% at 50% 50%,#000 20%,transparent 80%);mask-image:radial-gradient(ellipse 70% 70% at 50% 50%,#000 20%,transparent 80%)}
.pr-fios{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0}
.pr-nos{position:relative;z-index:1;display:grid;align-items:start;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(56px,6.5vw,100px);row-gap:clamp(84px,8vw,112px)}
.pr-no:nth-child(2),.pr-no:nth-child(4){margin-top:46px}

/* fios (SVG montado no JS) */
.pr-trilho{fill:none;stroke:rgba(236,234,228,.16);stroke-width:1.3;stroke-dasharray:2 6;stroke-linecap:round}
.pr-luz-h{fill:none;stroke:rgba(255,77,36,.2);stroke-width:7;stroke-linecap:round}
.pr-luz{fill:none;stroke:var(--tang);stroke-width:1.8;stroke-linecap:round}
.pr-pac-h{fill:none;stroke:rgba(255,77,36,.3);stroke-width:10;stroke-linecap:round;stroke-dasharray:.1 26;opacity:0;transition:opacity .5s}
.pr-pac{fill:none;stroke:var(--tang-brilho);stroke-width:3.4;stroke-linecap:round;stroke-dasharray:.1 26;opacity:0;transition:opacity .5s}
.pr-pac.on,.pr-pac-h.on{opacity:1}
.pr-cab{fill:var(--tang-brilho);opacity:0}
.pr-cab-h{fill:rgba(255,77,36,.3);opacity:0}
.pr-porta{fill:var(--preto);stroke:rgba(236,234,228,.22);stroke-width:1.3;transition:stroke .4s,fill .4s}
.pr-porta.on{fill:var(--tang);stroke:var(--tang-brilho)}

/* ---------- nó ---------- */
.pr-no{--tam:40px;position:relative;min-width:0;display:grid;gap:8px;padding:20px 20px 22px;-webkit-backdrop-filter:none;backdrop-filter:none;background-color:#0B0B0D;transition:border-color .5s var(--ease),box-shadow .5s var(--ease),background-color .5s}
.pr-no-topo{display:flex;align-items:center;gap:12px;margin-bottom:6px;min-width:0}
.pr-ic{transition:filter .5s var(--ease),opacity .5s}
.pr-no-n{font-size:12px;letter-spacing:.08em;color:var(--osso-3)}
.pr-estado{margin-left:auto;display:inline-flex;align-items:center;gap:7px;height:26px;padding:0 10px;border-radius:var(--raio-p);border:1px solid var(--linha);font-size:11px;letter-spacing:.04em;color:var(--osso-3);white-space:nowrap;transition:color .4s,border-color .4s,background-color .4s}
.pr-estado b{font-weight:500;display:none}
.pr-estado .e-fila{display:inline}
.pr-gira{width:7px;height:7px;border-radius:50%;background:rgba(236,234,228,.25);flex:none}
.pr-tit{font:500 clamp(19px,1.6vw,23px)/1.15 var(--sans);letter-spacing:-.026em;color:var(--osso)}
.pr-linha{font:400 15px/1.45 var(--sans);color:var(--osso-2);text-wrap:pretty}
.pr-barra{position:absolute;left:20px;right:20px;bottom:10px;height:2px;border-radius:var(--pill);background:rgba(236,234,228,.06);overflow:hidden}
.pr-barra i{position:absolute;inset:0;transform-origin:left;transform:scaleX(0);background:linear-gradient(90deg,var(--tang-escuro),var(--tang),var(--tang-brilho));box-shadow:0 0 8px rgba(255,77,36,.8);transition:transform .6s var(--ease)}

/* na fila: ícone apagado, texto continua legível */
.pr-no:not(.ativo):not(.feito) .pr-ic{filter:saturate(0);opacity:.4}
.pr-no:not(.ativo):not(.feito) .pr-ic *,.pr-no:not(.ativo):not(.feito) .pr-ic *::after{animation-play-state:paused}
.pr-no:not(.ativo):not(.feito) .pr-ic .fx-icv-brilho,.pr-no:not(.ativo):not(.feito) .pr-ic::before{opacity:0}
/* rodando */
.pr-no.ativo{border-color:var(--tang-borda);box-shadow:inset 0 1px 0 rgba(255,200,180,.18),0 0 0 1px rgba(255,77,36,.1),0 0 46px -8px rgba(255,77,36,.45),0 40px 90px -40px rgba(0,0,0,.9)}
.pr-no.ativo .pr-estado{color:var(--tang-brilho);border-color:var(--tang-borda);background:var(--tang-fundo)}
.pr-no.ativo .pr-estado .e-fila,.pr-no.feito .pr-estado .e-fila{display:none}
.pr-no.ativo .pr-estado .e-roda{display:inline}
.pr-no.ativo .pr-gira{width:11px;height:11px;background:none;border:1.5px solid rgba(255,122,77,.3);border-top-color:var(--tang-brilho);animation:pr-roda .8s linear infinite}
.pr-no.ativo .pr-barra i{animation:pr-carrega 1.8s var(--ease-io) infinite}
.pr-no.ativo .pr-no-n{color:var(--tang-claro)}
@keyframes pr-roda{to{transform:rotate(360deg)}}
@keyframes pr-carrega{0%{transform:scaleX(0);transform-origin:left}48%{transform:scaleX(1);transform-origin:left}52%{transform:scaleX(1);transform-origin:right}100%{transform:scaleX(0);transform-origin:right}}
/* feito */
.pr-no.feito{border-color:rgba(255,77,36,.22)}
.pr-no.feito .pr-estado{color:var(--tang-claro);border-color:rgba(255,77,36,.25)}
.pr-no.feito .pr-estado .e-ok{display:inline}
.pr-no.feito .pr-gira{background:var(--tang);box-shadow:0 0 8px rgba(255,77,36,.8)}
.pr-no.feito .pr-barra i{transform:scaleX(1);opacity:.55}
/* o último nó fica no ar: ponto pulsando em vez de girar */
.pr-no.ativo[data-k="3"] .pr-gira{width:7px;height:7px;border:0;background:var(--tang);box-shadow:0 0 0 0 rgba(255,77,36,.7);animation:pr-noar 1.6s var(--ease) infinite}
.pr-no.ativo[data-k="3"] .pr-barra i{animation:none;transform:scaleX(1)}
@keyframes pr-noar{0%{box-shadow:0 0 0 0 rgba(255,77,36,.75)}100%{box-shadow:0 0 0 9px rgba(255,77,36,0)}}

/* borda de luz correndo em volta do nó ativo (gira por transform, sem repintar) */
.pr-contorno{position:absolute;inset:-1px;border-radius:inherit;padding:1.5px;pointer-events:none;overflow:hidden;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);opacity:0;transition:opacity .5s var(--ease)}
.pr-contorno::before{content:"";position:absolute;left:50%;top:50%;width:160%;aspect-ratio:1;background:conic-gradient(from 0deg,transparent 0 60%,rgba(255,77,36,.5) 75%,var(--tang-brilho) 85%,transparent 91%);transform:translate(-50%,-50%);will-change:transform}
.pr-no.ativo .pr-contorno{opacity:1}
.pr-no.ativo .pr-contorno::before{animation:pr-volta 2.8s linear infinite}
@keyframes pr-volta{from{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}

/* ---------- terminal ---------- */
.pr-term{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;contain:size;-webkit-backdrop-filter:none;backdrop-filter:none;background:#0A0A0C}
.pr-term-barra{display:flex;align-items:center;gap:14px;height:46px;padding:0 16px;border-bottom:1px solid var(--linha);flex:none;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02))}
/* fundo do terminal liso: o degradê no painel inteiro quebrava em faixas ao rolar as linhas */
.pr-term-pts{display:flex;gap:6px}
.pr-term-pts i{width:9px;height:9px;border-radius:50%;background:rgba(236,234,228,.16)}
.pr-term-nome{font-size:12px;color:var(--osso-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.pr-term-etapa{margin-left:auto;display:inline-flex;align-items:center;gap:7px;height:26px;padding:0 10px;border-radius:var(--raio-p);border:1px solid var(--tang-borda);background:var(--tang-fundo);font-size:11px;letter-spacing:.04em;color:var(--tang-brilho);white-space:nowrap}
.pr-term-etapa i{width:6px;height:6px;border-radius:50%;background:var(--tang);box-shadow:var(--brilho);animation:pr-pisca 1.4s var(--ease-io) infinite}
@keyframes pr-pisca{50%{opacity:.3}}
.pr-term-corpo{position:relative;flex:1;min-height:0;overflow:hidden;padding:16px 20px 18px}
.pr-term-corpo::before{content:"";position:absolute;left:0;right:0;top:0;height:56px;z-index:1;pointer-events:none;background:linear-gradient(180deg,#0F0F11 10%,rgba(15,15,17,0));opacity:0;transition:opacity .4s}
.pr-term-corpo.rolou::before{opacity:1}
.pr-term-linhas{font-size:13px;line-height:1.78;color:var(--osso-2);transition:transform .35s var(--ease)}
.pr-l{display:block;white-space:pre;overflow:hidden;text-overflow:ellipsis;min-width:0}
.pr-l[hidden]{display:none}
.pr-lcab{color:var(--osso-3);margin-top:10px}
.pr-lcab:first-child{margin-top:0}
.pr-p{color:var(--tang);margin-right:9px}
.pr-c{color:var(--osso)}
.pr-a{color:var(--tang-claro)}
.pr-lout{display:flex;align-items:baseline;white-space:nowrap;padding-left:18px}
.pr-o{color:var(--osso-2);overflow:hidden;text-overflow:ellipsis;flex:0 1 auto;min-width:0}
.pr-ld{flex:1 1 0;min-width:14px;height:1px;margin:0 10px;align-self:center;transform:translateY(3px) scaleX(0);transform-origin:left;background-image:linear-gradient(90deg,rgba(236,234,228,.28) 50%,transparent 0);background-size:6px 1px}
.pr-r{flex:none;color:var(--osso-3);min-width:2ch}
.pr-r.ok{color:var(--tang-claro);text-shadow:0 0 10px rgba(255,77,36,.55)}
.pr-cur{display:inline-block;width:8px;height:15px;margin-left:2px;vertical-align:-3px;background:var(--tang);box-shadow:0 0 8px rgba(255,77,36,.8);animation:pr-cursor 1s steps(1) infinite}
@keyframes pr-cursor{50%{opacity:0}}

.pr-assina{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 10px;margin-top:clamp(40px,5vw,64px);font-size:12.5px;letter-spacing:.06em;color:var(--osso-3);text-align:center}
.pr-assina .ic{font-size:16px;color:var(--tang)}
.pr-assina span{white-space:nowrap}

/* animação só com a seção na tela */
.pr:not(.pr-ativo) .pr-palco *,.pr:not(.pr-ativo) .pr-palco *::before,.pr:not(.pr-ativo) .pr-palco *::after{animation-play-state:paused!important}

/* ---------- responsivo ---------- */
@media (max-width:1180px){
  .pr-palco{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
  .pr-nos{column-gap:56px}
  .pr-no{padding:18px 16px 20px}
  .pr-barra{left:16px;right:16px}
}
@media (max-width:900px){
  .pr-palco{grid-template-columns:minmax(0,1fr);gap:28px}
  .pr-fluxo{padding:0}
  .pr-fluxo::before{inset:-20px -16px}
  .pr-nos{grid-template-columns:minmax(0,1fr);row-gap:16px;padding-left:34px}
  .pr-no:nth-child(2),.pr-no:nth-child(4){margin-top:0}
  .pr-term{height:340px}
}
@media (max-width:420px){
  .pr-term-linhas{font-size:12px}
  .pr-term-corpo{padding:14px 14px 16px}
  .pr-lout{padding-left:12px}
  .pr-ld{margin:0 6px}
  .pr-assina{font-size:11.5px;letter-spacing:.03em}
}
