/* Movimento pontual, ativado pela interação; a rolagem no celular permanece nativa. */
.leitura-progresso {
  position: fixed; inset: 0 0 auto; height: 2px; z-index: 125;
  background: linear-gradient(90deg, #58218b, #c798ff, #f0dfff);
  transform: scaleX(var(--leitura, 0)); transform-origin: left; pointer-events: none;
}
.inicio-rede { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; opacity: .65; }
.projeto { perspective: 1200px; }
.projeto-link { position: relative; isolation: isolate; }
.projeto-previa { overflow: hidden; }
.projeto-previa img { transition: transform .6s cubic-bezier(.16,1,.3,1); }
.projeto-link::after {
  content: ''; position: absolute; inset: 0; z-index: 3; pointer-events: none;
  background: radial-gradient(380px circle at var(--luz-x, 50%) var(--luz-y, 50%), #c798ff24, transparent 72%);
  opacity: 0; transition: opacity .3s;
}
.servico-abrir {
  position: relative; display: block; width: 100%; flex: none; isolation: isolate;
  margin-bottom: .65rem; border-radius: .65rem; text-align: left;
}
.servico-abrir .servico-imagem { margin: 0; }
.servico-abrir::after {
  content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: radial-gradient(250px circle at var(--luz-x, 50%) var(--luz-y, 50%), #d7b6ff30, transparent 70%);
  opacity: 0; transition: opacity .3s;
}
.servico-explorar {
  position: absolute; right: .65rem; bottom: .65rem; z-index: 1;
  display: inline-flex; align-items: center; gap: .6rem; min-height: 36px;
  padding: .4rem .8rem; border: 1px solid #c798ff66; border-radius: 999px;
  background: #160d24ef; color: #f4ebff; font-size: .7rem; letter-spacing: .04em;
  transition: background .2s, transform .3s;
}
.servico-abrir:focus-visible .servico-explorar { background: #58218b; }
.servico-abrir:active .servico-explorar { transform: scale(.95); }
.servico { perspective: 1000px; }

/* Um único painel usa as imagens já otimizadas, sem iframes ou vídeos. */
.servico-dialogo {
  position: fixed; inset: 0; margin: auto; width: min(1120px, calc(100% - 3rem));
  max-height: calc(100vh - 3rem); max-height: calc(100dvh - 3rem);
  padding: 0; border: 1px solid #b885f077; border-radius: 1.2rem;
  color: #f2f2ef; background: #0d0913;
  box-shadow: 0 32px 120px #000b, 0 0 70px #9b56e523;
  overflow: auto; overscroll-behavior: contain; scrollbar-width: thin;
}
.servico-dialogo::backdrop { background: #030207e8; }
.servico-dialogo[open] { animation: dialogo-entrada .35s cubic-bezier(.16,1,.3,1); }
html.dialogo-aberto, body.dialogo-aberto { overflow: hidden; }
.servicos-convite { margin: -1rem 0 1.75rem; color: #b8a8c8; font-size: .85rem; }
.dialogo-barra {
  position: sticky; top: 0; z-index: 3; display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; padding: .8rem 1.4rem; border-bottom: 1px solid #b885f025; background: #0d0913;
}
.dialogo-barra > .rotulo { color: #b8a8c8; font-size: .65rem; letter-spacing: .13em; }
.dialogo-fechar { display: grid; place-items: center; width: 44px; height: 44px; flex: none; border: 1px solid #b885f044; border-radius: 50%; font-size: 1.6rem; }
.dialogo-fechar:hover { color: #d6b5ff; background: #a875ed18; }
.dialogo-corpo { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: 2rem; padding: clamp(1.2rem, 3vw, 2.5rem); }
.dialogo-visual { min-width: 0; border-radius: .8rem; overflow: hidden; background: #08060c; border: 1px solid #b885f022; }
.dialogo-visual img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: contain; }
.dialogo-conteudo { min-width: 0; }
.dialogo-selo { color: #c798ff; margin-bottom: 1rem; font-size: .62rem; letter-spacing: .12em; }
#dialogo-titulo { font-size: clamp(1.8rem, 3.2vw, 3rem); line-height: 1.04; margin-bottom: 1rem; }
#dialogo-descricao { color: #b0a8bb; font-size: .96rem; line-height: 1.6; }
.dialogo-entregas { display: grid; gap: .7rem; margin: 1.5rem 0; }
.dialogo-entregas li { display: flex; align-items: baseline; gap: .65rem; font-size: .85rem; color: #e6daef; }
.dialogo-entregas li::before { content: '↗'; color: #a875ed; }
.dialogo-contato { display: flex; justify-content: space-between; gap: 1rem; padding: .95rem 1.2rem; border: 1px solid #b885f066; border-radius: .65rem; background: #58218b; color: #fff; font-size: .9rem; font-weight: 600; transition: background .2s; }
.dialogo-contato:hover { background: #7134a7; }
.dialogo-nota { margin-top: .9rem; font-size: .65rem; line-height: 1.5; color: #95899f; }
.dialogo-navegacao { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .65rem 1.4rem; border-top: 1px solid #b885f025; }
.dialogo-navegacao > button { min-height: 44px; display: flex; align-items: center; gap: .6rem; font-size: .8rem; color: #c9b4dc; }
.dialogo-pontos { display: flex; align-items: center; }
.dialogo-pontos button { width: 28px; min-height: 44px; display: grid; place-items: center; }
.dialogo-pontos button::after { content: ''; width: 6px; height: 6px; border-radius: 50%; background: #685176; transition: background .2s, transform .2s; }
.dialogo-pontos button[aria-current=true]::after { background: #d2a5ff; transform: scale(1.5); }
@keyframes dialogo-entrada { from { opacity: 0; transform: translateY(18px) scale(.98); } to { opacity: 1; transform: none; } }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .projeto-link, .servico-abrir {
    transform: rotateX(var(--inclina-x, 0deg)) rotateY(var(--inclina-y, 0deg));
    transition: transform .22s ease-out, border-color .2s, box-shadow .3s;
  }
  .projeto-link:hover, .servico-abrir:hover { box-shadow: 0 18px 40px #0005; }
  .projeto-link:hover::after, .servico-abrir:hover::after { opacity: 1; }
  .projeto-link:hover .projeto-previa img { transform: scale(1.025); }
  .projeto-link:hover .projeto-acao > span { transform: translate(3px, -3px); }
  .projeto-acao > span { transition: transform .25s; }
  .servico-explorar { transform: translateY(5px); }
  .servico-abrir:hover .servico-explorar { transform: none; background: #58218b; }
  .cabeca-cta, .fogo { transform: translate(var(--ima-x, 0px), var(--ima-y, 0px)); transition: transform .25s ease-out; }
}
@media (max-width: 700px) {
  .servico-dialogo { width: calc(100% - 1.25rem); max-height: calc(100dvh - 1.5rem); border-radius: .8rem; }
  .dialogo-corpo { grid-template-columns: minmax(0, 1fr); gap: 1.4rem; padding: 1rem; }
  .dialogo-barra, .dialogo-navegacao { padding-inline: 1rem; }
  .dialogo-barra > .rotulo { font-size: .58rem; letter-spacing: .08em; }
  .dialogo-pontos button { width: 24px; }
  .dialogo-navegacao > button span { display: none; }
  .dialogo-navegacao > button { min-width: 44px; justify-content: center; font-size: 1.25rem; }
}
@media (hover: none), (pointer: coarse), (prefers-reduced-motion: reduce) {
  .inicio-rede { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .servico-dialogo[open] { animation: none; }
  .projeto-link, .servico-abrir, .projeto-previa img, .servico-explorar, .dialogo-pontos button::after { transition: none; transform: none; }
}
