/* Camada de partículas (particulas.js). Sem a classe com-particulas, nada daqui vale. */
.particulas { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }
.com-particulas .casca { position: relative; z-index: 2; }
.com-particulas .simbolo.sol { visibility: hidden; }

/* palcos: caixas vazias onde as cenas se montam */
.palco { pointer-events: none; }
html:not(.com-particulas) .palco { display: none; }

/* abertura: o anel de costura gira enquanto a poeira vira o símbolo */
.anel { display: none; }
.com-particulas .anel { display: block; position: fixed; z-index: 50; left: 50%; top: 50%; width: min(86vmin, 820px); height: min(86vmin, 820px);
  transform: translate(-50%, -50%); pointer-events: none; fill: none; stroke: var(--brasa); stroke-width: 0.9; stroke-dasharray: 3.2 2.2;
  opacity: 0; transition: opacity 500ms var(--suave); }
.com-particulas .anel.gira { opacity: 1; animation: anel-gira 2.4s linear infinite; }
.com-particulas.aberto .anel { opacity: 0; }
@keyframes anel-gira { to { transform: translate(-50%, -50%) rotate(360deg); } }

.com-particulas:not(.aberto) .hero .casca > *,
.com-particulas:not(.aberto) .topo-site { opacity: 0; filter: blur(14px); transform: translateY(14px); }
.com-particulas .hero .casca > * { transition: opacity 900ms var(--suave), filter 900ms var(--suave), transform 900ms var(--suave); }
.com-particulas .hero .casca > *:nth-child(2) { transition-delay: 120ms; }
.com-particulas .hero .casca > *:nth-child(3) { transition-delay: 260ms; }
.com-particulas:not(.aberto) .topo-site { transform: translate(-50%, 14px); }

.com-particulas:not(.aberto) .pilula { visibility: hidden; }

/* proposta: a capa entra depois que o símbolo se monta */
.com-particulas:not(.aberto) .capa-centro > :not(.sol),
.com-particulas:not(.aberto) .capa .barra { opacity: 0; filter: blur(14px); transform: translateY(14px); }
.com-particulas .capa-centro > *, .com-particulas .capa .barra { transition: opacity 900ms var(--suave), filter 900ms var(--suave), transform 900ms var(--suave); }
.com-particulas .capa-centro > h1 { transition-delay: 120ms; }
.com-particulas .capa-centro > .resumo { transition-delay: 260ms; }
.com-particulas:not(.aberto) .cartao > :not(.sol) { opacity: 0; filter: blur(14px); transform: translateY(14px); }
.com-particulas .cartao > * { transition: opacity 900ms var(--suave), filter 900ms var(--suave), transform 900ms var(--suave); }
.com-particulas .cartao { position: relative; z-index: 2; }
