/* =========================================================
   Dynos AI — camada cinematográfica e tecnológica
   Carregada depois de dynosai.css em todas as páginas.
   Mantém a identidade (dourado, roxo, verde) e só acrescenta efeitos.
   ========================================================= */
:root {
  --cin-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --cin-grad: linear-gradient(100deg, var(--dy-dourado-claro), var(--dy-dourado) 40%, var(--dy-roxo) 75%, var(--dy-verde));
}

html { overflow-x: clip; }
body { overflow-x: clip; }

/* ---------- Camadas de fundo ---------- */
#dy-neural { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
.dy-grain {
  position: fixed; inset: -50%; z-index: 150; pointer-events: none; opacity: .05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: dy-grain 1s steps(6) infinite;
}
@keyframes dy-grain {
  0%, 100% { transform: translate(0, 0); }
  20% { transform: translate(-5%, 3%); }
  40% { transform: translate(4%, -6%); }
  60% { transform: translate(-3%, 5%); }
  80% { transform: translate(6%, 2%); }
}
.dy-vignette {
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background: radial-gradient(ellipse at center, transparent 50%, rgba(0,0,0,.7) 100%);
}
.dy-spotlight {
  position: fixed; left: 0; top: 0; z-index: 0; width: 560px; height: 560px; border-radius: 50%;
  pointer-events: none; opacity: 0; transform: translate(-50%, -50%); transition: opacity .5s;
  background: radial-gradient(circle, rgba(212,175,55,.10), rgba(110,58,255,.06) 40%, transparent 68%);
}

/* Barra de progresso da leitura */
.dy-progress {
  position: fixed; top: 0; left: 0; height: 2px; width: 100%; z-index: 200; pointer-events: none;
  background: var(--cin-grad); transform-origin: left; transform: scaleX(0);
  box-shadow: 0 0 12px rgba(212,175,55,.7);
}

/* ---------- Abertura com faixas de cinema (só na página inicial, 1x por visita) ---------- */
.dy-intro {
  position: fixed; inset: 0; z-index: 300; display: grid; place-items: center; background: #000;
  transition: background .6s ease .5s, visibility 0s linear 1.4s;
}
.dy-intro-bar { position: absolute; left: 0; right: 0; height: 50.5vh; background: #000; transition: transform 1.1s cubic-bezier(.77,0,.18,1); }
.dy-intro-bar.top { top: 0; }
.dy-intro-bar.bottom { bottom: 0; }
.dy-intro-core { position: relative; z-index: 2; text-align: center; transition: opacity .35s, transform .6s; }
.dy-intro-core img { width: 84px; height: 84px; filter: drop-shadow(0 0 30px rgba(212,175,55,.6)); animation: dy-breathe 1.6s ease-in-out infinite; }
.dy-intro-code { display: block; margin-top: 18px; font-family: var(--cin-mono); font-size: 11px; letter-spacing: .32em; color: var(--dy-dourado-claro); }
.dy-intro-track { width: 220px; height: 1px; margin: 14px auto 0; background: rgba(255,255,255,.12); }
.dy-intro-track span { display: block; height: 100%; width: 0; background: var(--cin-grad); box-shadow: 0 0 10px var(--dy-dourado); }
@keyframes dy-breathe { 50% { transform: scale(1.06); filter: drop-shadow(0 0 46px rgba(212,175,55,.85)); } }
.dy-intro.done { background: transparent; visibility: hidden; }
.dy-intro.done .dy-intro-core { opacity: 0; transform: scale(.9); }
.dy-intro.done .dy-intro-bar.top { transform: translateY(-100%); }
.dy-intro.done .dy-intro-bar.bottom { transform: translateY(100%); }
body.dy-locked { overflow: hidden; }
/* segurança: se o script não rodar, a abertura some sozinha */
.dy-intro { animation: dy-intro-failsafe 0s linear 4s forwards; }
@keyframes dy-intro-failsafe { to { visibility: hidden; opacity: 0; } }
.dy-seen .dy-intro { display: none; }

/* ---------- Hero da página inicial ---------- */
.dy-hero { min-height: calc(100vh - 72px); min-height: calc(100svh - 72px); display: flex; align-items: center; justify-content: center; }
.dy-hud {
  position: absolute; z-index: 2; font-family: var(--cin-mono); font-size: 10.5px; letter-spacing: .2em;
  line-height: 1.9; color: rgba(240,231,216,.38); text-transform: uppercase; pointer-events: none;
}
.dy-hud.tl { top: 28px; left: 28px; }
.dy-hud.tr { top: 28px; right: 28px; text-align: right; }
.dy-hud.bl { bottom: 28px; left: 28px; }
.dy-hud.br { bottom: 28px; right: 28px; display: flex; align-items: center; gap: 8px; }
.dy-hud .rec { width: 7px; height: 7px; border-radius: 50%; background: #ff4d4d; box-shadow: 0 0 10px #ff4d4d; animation: pulse 1.4s infinite; }
.dy-hud-frame { position: absolute; inset: 16px; pointer-events: none; z-index: 1; }
.dy-hud-frame i { position: absolute; width: 22px; height: 22px; border-color: rgba(212,175,55,.35); border-style: solid; }
.dy-hud-frame i:nth-child(1) { top: 0; left: 0; border-width: 1px 0 0 1px; }
.dy-hud-frame i:nth-child(2) { top: 0; right: 0; border-width: 1px 1px 0 0; }
.dy-hud-frame i:nth-child(3) { bottom: 0; left: 0; border-width: 0 0 1px 1px; }
.dy-hud-frame i:nth-child(4) { bottom: 0; right: 0; border-width: 0 1px 1px 0; }

/* Título que surge palavra por palavra */
.dy-word { display: inline-block; opacity: 0; transform: translateY(.45em); filter: blur(10px); transition: opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1), filter .9s; }
.dy-words-in .dy-word { opacity: 1; transform: none; filter: none; }
.dy-hero .gradient-text { background-size: 200% auto; animation: dy-shine 6s linear infinite; }
.dy-hero .dy-word.gradient-text { background-image: linear-gradient(110deg, var(--dy-dourado-claro) 0%, var(--dy-dourado) 30%, #fff3c4 50%, var(--dy-dourado) 70%, var(--dy-dourado-claro) 100%); }
@keyframes dy-shine { to { background-position: -200% center; } }

/* Faixa rolante de produtos */
.dy-marquee {
  position: relative; z-index: 1; overflow: hidden; padding: 20px 0;
  border-top: 1px solid var(--dy-border); border-bottom: 1px solid var(--dy-border);
  background: rgba(16,10,26,.65); backdrop-filter: blur(8px);
  transform: rotate(-1.2deg) scale(1.02);
}
.dy-marquee-track { display: flex; align-items: center; gap: 44px; width: max-content; animation: dy-marquee 36s linear infinite; }
.dy-marquee span { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: clamp(20px, 3vw, 32px); white-space: nowrap; color: var(--dy-text); }
.dy-marquee span.muted { color: var(--dy-text-subtle); }
.dy-marquee b { color: var(--dy-dourado); font-size: 18px; }
@keyframes dy-marquee { to { transform: translateX(-50%); } }

/* Manifesto acende ao rolar */
.manifesto .dy-lit { color: rgba(240,231,216,.16); transition: color .45s; }
.manifesto .dy-lit.on { color: var(--dy-text); }
.manifesto .gradient-text .dy-lit, .manifesto .dy-lit.gradient-text { color: transparent; opacity: .2; transition: opacity .45s; }
.manifesto .gradient-text .dy-lit.on, .manifesto .dy-lit.gradient-text.on { opacity: 1; }

/* ---------- Aparecer ao rolar (todas as páginas) ---------- */
.dy-reveal { opacity: 0; transform: translateY(36px); filter: blur(6px); transition: opacity 1s cubic-bezier(.2,.7,.2,1), transform 1s cubic-bezier(.2,.7,.2,1), filter 1s; }
.dy-reveal.in { opacity: 1; transform: none; filter: none; }

/* Rótulos "// Seção" em estilo terminal */
.dy-secao-titulo .label, .label { font-family: var(--cin-mono); }
.dy-typed::after { content: "▍"; margin-left: 2px; color: var(--dy-dourado); animation: pulse 1s steps(1) infinite; }

/* ---------- Cartões: inclinação 3D + luz que segue o mouse ---------- */
.vertical-card, .dy-card, .dy-produto-card { transform-style: preserve-3d; will-change: transform; }
.dy-tilting { transition: transform .12s ease-out, border-color .3s, background .3s !important; }
.dy-glow-layer {
  position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .4s; border-radius: inherit; mix-blend-mode: screen;
  background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), rgba(212,175,55,.16), transparent 45%);
}
.vertical-card:hover .dy-glow-layer, .dy-card:hover .dy-glow-layer, .dy-produto-card:hover .dy-glow-layer { opacity: 1; }
.vertical-card:hover, .dy-card:hover { box-shadow: 0 30px 80px -30px rgba(212,175,55,.35); }

/* Varredura de luz no vídeo/imagem de destaque */
.dy-feature-row .visual::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit;
  background: linear-gradient(115deg, transparent 35%, rgba(255,255,255,.08) 50%, transparent 65%);
  transform: translateX(-120%); animation: dy-sweep 6s ease-in-out infinite 2s;
}
@keyframes dy-sweep { 0%, 60% { transform: translateX(-120%); } 100% { transform: translateX(120%); } }

/* Cabeçalho mais "vidro" ao rolar */
.dy-header { transition: background .4s, padding .4s, box-shadow .4s; }
.dy-header.dy-scrolled { padding: 10px 0; background: rgba(10,6,18,.82); box-shadow: 0 10px 40px -20px rgba(0,0,0,.9); }

/* Logo com moldura e brilho */
.dy-logo-wrap img { border-radius: 9px; }
.dy-hero .logo-grande { border-radius: 28px; box-shadow: 0 0 0 1px rgba(212,175,55,.45), 0 0 0 8px rgba(212,175,55,.06), 0 0 90px rgba(212,175,55,.35); }
.dy-logo-wrap .marca { white-space: nowrap; }

/* ---------- Celular ---------- */
@media (max-width: 768px) {
  .dy-hud.tr, .dy-hud.bl { display: none; }
  .dy-hud.tl { top: 18px; left: 18px; }
  .dy-hud.br { bottom: 18px; right: 18px; }
  .dy-hud-frame { inset: 8px; }
  .dy-spotlight { display: none; }
  .dy-header .dy-container { gap: 10px; }
  .dy-nav { gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
  .dy-nav a.dy-btn { padding: 8px 12px !important; font-size: 12px !important; }
  .dy-logo-wrap .marca { font-size: 17px; }
}
@media (max-width: 480px) {
  .dy-logo-wrap .marca { display: none; }
}

/* Quem prefere menos movimento: sem animações */
@media (prefers-reduced-motion: reduce) {
  .dy-grain, .dy-marquee-track, .dy-feature-row .visual::after, .dy-hero .gradient-text { animation: none !important; }
  .dy-reveal, .dy-word { opacity: 1 !important; transform: none !important; filter: none !important; transition: none !important; }
  .dy-intro { display: none; }
}

/* =========================================================
   VÍDEOS
   ========================================================= */
/* Vídeo de fundo nos topos das páginas */
.dy-has-video { position: relative; overflow: hidden; isolation: isolate; }
.dy-has-video > .dy-container { position: relative; z-index: 1; }
.dy-bgvideo { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.dy-bgvideo video { width: 100%; height: 100%; object-fit: cover; opacity: .62; }
.dy-bgvideo::after {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 60% 55% at 50% 52%, rgba(10,6,18,.62), rgba(10,6,18,.15) 70%, transparent),
    linear-gradient(180deg, rgba(10,6,18,.55) 0%, transparent 22%, transparent 70%, var(--dy-bg) 100%);
}
.dy-bgvideo.suave video { opacity: .32; }

/* Sala de máquinas: tela de cinema com abas */
.dy-reel-screen {
  position: relative; border-radius: 22px; overflow: hidden; aspect-ratio: 16 / 9;
  border: 1px solid rgba(212,175,55,.28); background: #07040d;
  box-shadow: 0 40px 140px -40px rgba(212,175,55,.35), 0 0 0 1px rgba(255,255,255,.03) inset;
}
.dy-reel-screen video {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  opacity: 0; transform: scale(1.04); transition: opacity .9s ease, transform 1.4s ease;
}
.dy-reel-screen video.ativo { opacity: 1; transform: none; }
/* faixas de cinema em cima e embaixo */
.dy-reel-screen::before, .dy-reel-screen::after {
  content: ""; position: absolute; left: 0; right: 0; height: 7%; background: #000; z-index: 2; pointer-events: none;
}
.dy-reel-screen::before { top: 0; }
.dy-reel-screen::after { bottom: 0; }
.dy-reel-hud {
  position: absolute; z-index: 3; left: 22px; right: 22px; top: calc(7% + 14px);
  display: flex; justify-content: space-between; font-family: var(--cin-mono); font-size: 11px;
  letter-spacing: .2em; color: rgba(240,231,216,.6); pointer-events: none; text-transform: uppercase;
}
.dy-reel-hud .rec { display: inline-block; width: 7px; height: 7px; margin-right: 8px; border-radius: 50%; background: #ff4d4d; box-shadow: 0 0 10px #ff4d4d; animation: pulse 1.4s infinite; }
.dy-reel-nota { position: absolute; z-index: 3; right: 22px; bottom: calc(7% + 12px); font-family: var(--cin-mono); font-size: 10px; letter-spacing: .15em; color: rgba(240,231,216,.4); }

.dy-reel-abas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 18px; }
.dy-reel-aba {
  position: relative; text-align: left; cursor: pointer; font: inherit; color: var(--dy-text);
  background: var(--dy-bg-card); border: 1px solid var(--dy-border); border-radius: 16px; padding: 18px 20px 20px;
  overflow: hidden; transition: border-color .3s, background .3s, transform .3s;
}
.dy-reel-aba:hover { border-color: var(--dy-border-strong); transform: translateY(-2px); }
.dy-reel-aba.ativo { border-color: rgba(212,175,55,.5); background: rgba(212,175,55,.06); }
.dy-reel-aba .num { font-family: var(--cin-mono); font-size: 11px; letter-spacing: .2em; color: var(--dy-dourado-claro); }
.dy-reel-aba strong { display: block; font-family: 'Space Grotesk', sans-serif; font-size: 20px; margin: 6px 0 4px; }
.dy-reel-aba span.desc { display: block; font-size: 14px; color: var(--dy-text-muted); line-height: 1.5; }
.dy-reel-aba a { display: inline-block; margin-top: 10px; font-size: 13px; font-weight: 600; }
.dy-reel-aba .barra { position: absolute; left: 0; bottom: 0; height: 2px; width: 0; background: var(--cin-grad); }
.dy-reel-aba.ativo .barra { animation: dy-reel-barra var(--dur, 10s) linear forwards; }
@keyframes dy-reel-barra { to { width: 100%; } }

@media (max-width: 768px) {
  .dy-reel-abas { grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 10px; }
  .dy-reel-aba { padding: 12px 10px 14px; border-radius: 12px; text-align: center; }
  .dy-reel-aba .num { font-size: 9px; letter-spacing: .1em; }
  .dy-reel-aba strong { font-size: 15px; margin: 4px 0 0; }
  .dy-reel-aba span.desc, .dy-reel-aba a { display: none; }
  .dy-reel-screen { border-radius: 14px; }
  .dy-reel-hud { font-size: 9px; left: 12px; right: 12px; }
  .dy-reel-nota { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .dy-reel-aba.ativo .barra { animation: none; width: 100%; }
}

/* =========================================================
   CONFIANÇA: garantias, como funciona, segurança, integrações
   ========================================================= */
.dy-garantias {
  position: relative; z-index: 1; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 28px;
  padding: 26px 24px 0; font-size: 14px; color: var(--dy-text-muted);
}
.dy-garantias span { display: inline-flex; align-items: center; gap: 9px; white-space: nowrap; }
.dy-garantias i { width: 16px; height: 16px; border-radius: 50%; position: relative; background: rgba(57,217,170,.14); border: 1px solid rgba(57,217,170,.45); }
.dy-garantias i::after { content: ""; position: absolute; left: 5px; top: 2px; width: 4px; height: 8px; border: solid var(--dy-verde); border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); }

/* Como funciona */
.dy-fluxo { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; position: relative; counter-reset: none; }
.dy-fluxo::before {
  content: ""; position: absolute; top: 34px; left: 12%; right: 12%; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(212,175,55,.5), transparent);
}
.dy-fluxo::after {
  content: ""; position: absolute; top: 30px; left: 12%; width: 9px; height: 9px; border-radius: 50%;
  background: var(--dy-dourado-glow); box-shadow: 0 0 16px 4px rgba(255,197,107,.7);
  animation: dy-pulso-fluxo 4s cubic-bezier(.6,0,.4,1) infinite;
}
@keyframes dy-pulso-fluxo { 0% { left: 12%; opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { left: 88%; opacity: 0; } }
.dy-fluxo li {
  position: relative; text-align: center; padding: 0 18px 30px;
  background: linear-gradient(180deg, rgba(255,255,255,.035), transparent 70%); border-radius: 20px;
}
.dy-fluxo-no {
  display: grid; place-items: center; width: 68px; height: 68px; margin: 0 auto 18px; border-radius: 50%;
  font-family: var(--cin-mono); font-size: 18px; color: var(--dy-dourado-claro); position: relative; z-index: 1;
  background: radial-gradient(circle at 50% 35%, rgba(212,175,55,.25), rgba(10,6,18,1) 70%);
  border: 1px solid rgba(212,175,55,.55); box-shadow: 0 0 30px rgba(212,175,55,.25);
}
.dy-fluxo-tag { display: block; font-family: var(--cin-mono); font-size: 10.5px; letter-spacing: .2em; color: var(--dy-verde); margin-bottom: 10px; }
.dy-fluxo h3 { margin-bottom: 10px; }
.dy-fluxo p { color: var(--dy-text-muted); font-size: 15px; margin: 0; }

/* Segurança */
.dy-seguranca { background: linear-gradient(180deg, transparent, rgba(57,217,170,.035), transparent); }
.dy-seg-grid { display: grid; grid-template-columns: 1fr 1.25fr; gap: 72px; align-items: center; }
.dy-seg-visual { position: relative; text-align: center; }
.dy-escudo { width: 100%; max-width: 380px; overflow: visible; filter: drop-shadow(0 0 40px rgba(212,175,55,.25)); }
.dy-escudo .anel { fill: none; stroke: rgba(212,175,55,.35); stroke-width: 1; transform-origin: 160px 160px; }
.dy-escudo .a1 { stroke-dasharray: 2 10; animation: dy-gira 40s linear infinite; }
.dy-escudo .a2 { stroke: rgba(57,217,170,.4); stroke-dasharray: 60 20 6 20; animation: dy-gira 24s linear infinite reverse; }
.dy-escudo .a3 { stroke: rgba(110,58,255,.45); stroke-dasharray: 3 6; animation: dy-gira 16s linear infinite; }
.dy-escudo .escudo { fill: rgba(212,175,55,.07); stroke: url(#dyg); stroke-width: 2.5; stroke-dasharray: 520; stroke-dashoffset: 520; animation: dy-desenha 2.4s ease forwards .3s; }
.dy-escudo .cadeado { fill: none; stroke: #f5d97e; stroke-width: 2.5; stroke-linecap: round; }
@keyframes dy-gira { to { transform: rotate(360deg); } }
@keyframes dy-desenha { to { stroke-dashoffset: 0; } }
.dy-seg-status { display: inline-block; margin-top: 14px; font-family: var(--cin-mono); font-size: 11px; letter-spacing: .2em; color: var(--dy-verde); animation: pulse 2.4s infinite; }
.dy-seg-lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.dy-seg-lista li {
  display: flex; gap: 14px; align-items: flex-start; padding: 18px; border-radius: 14px;
  background: var(--dy-bg-card); border: 1px solid var(--dy-border); transition: border-color .3s, transform .3s;
}
.dy-seg-lista li:hover { border-color: rgba(57,217,170,.4); transform: translateY(-2px); }
.dy-seg-lista b {
  flex: none; min-width: 64px; padding: 5px 0; text-align: center; border-radius: 7px; font-family: var(--cin-mono); font-size: 10px;
  letter-spacing: .12em; color: var(--dy-verde); background: rgba(57,217,170,.08); border: 1px solid rgba(57,217,170,.3);
}
.dy-seg-lista span { font-size: 14px; color: var(--dy-text-muted); line-height: 1.5; }
.dy-seg-lista strong { display: block; color: var(--dy-text); font-size: 15px; margin-bottom: 2px; }

/* Integrações em órbita */
.dy-orbita { position: relative; width: min(620px, 100%); aspect-ratio: 1; margin: 0 auto; }
.dy-orbita::before, .dy-orbita::after { content: ""; position: absolute; border-radius: 50%; border: 1px dashed rgba(212,175,55,.22); }
.dy-orbita::before { inset: 4%; }
.dy-orbita::after { inset: 24%; border-color: rgba(110,58,255,.3); }
.dy-orbita-centro {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 30%; aspect-ratio: 1; border-radius: 50%;
  display: grid; place-items: center; align-content: center; gap: 8px;
  background: radial-gradient(circle, rgba(212,175,55,.22), rgba(10,6,18,.95) 70%);
  border: 1px solid rgba(212,175,55,.5); box-shadow: 0 0 80px rgba(212,175,55,.3), inset 0 0 40px rgba(212,175,55,.12);
}
.dy-orbita-centro img { width: 38%; border-radius: 12px; }
.dy-orbita-centro span { font-family: var(--cin-mono); font-size: 10px; letter-spacing: .25em; color: var(--dy-dourado-claro); }
.dy-orbita-anel { position: absolute; inset: 4%; animation: dy-gira 60s linear infinite; }
.dy-orbita-anel.r2 { inset: 24%; animation-duration: 45s; animation-direction: reverse; }
.dy-orbita-anel span {
  --ang: calc(var(--i) * 72deg);
  position: absolute; left: 50%; top: 50%; white-space: nowrap;
  transform: translate(-50%, -50%) rotate(var(--ang)) translateY(var(--r)) rotate(calc(var(--ang) * -1));
  padding: 8px 14px; border-radius: 999px; font-size: 14px; font-weight: 600; color: var(--dy-text);
  background: rgba(16,10,26,.92); border: 1px solid var(--dy-border-strong); box-shadow: 0 6px 24px rgba(0,0,0,.5);
}
.dy-orbita-anel.r2 span { border-color: rgba(110,58,255,.45); }
/* mantém os nomes em pé enquanto o anel gira */
.dy-orbita-anel span { animation: dy-contra 60s linear infinite; }
.dy-orbita-anel.r2 span { animation-duration: 45s; animation-direction: reverse; }
@keyframes dy-contra {
  from { transform: translate(-50%, -50%) rotate(var(--ang)) translateY(var(--r)) rotate(calc(var(--ang) * -1)); }
  to   { transform: translate(-50%, -50%) rotate(var(--ang)) translateY(var(--r)) rotate(calc(var(--ang) * -1 - 360deg)); }
}
.dy-orbita-anel.r1 span { --r: calc(min(620px, 100vw - 48px) * -.46); }
.dy-orbita-anel.r2 span { --r: calc(min(620px, 100vw - 48px) * -.26); }

@media (max-width: 900px) {
  .dy-seg-grid { grid-template-columns: 1fr; gap: 40px; }
  .dy-seg-visual { max-width: 280px; margin: 0 auto; }
}
@media (max-width: 768px) {
  .dy-fluxo { grid-template-columns: 1fr; gap: 16px; }
  .dy-fluxo::before, .dy-fluxo::after { display: none; }
  .dy-seg-lista { grid-template-columns: 1fr; }
  .dy-orbita-anel span { font-size: 11px; padding: 6px 10px; }
  .dy-garantias { font-size: 13px; gap: 8px 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .dy-fluxo::after, .dy-escudo .anel, .dy-orbita-anel, .dy-orbita-anel span, .dy-seg-status { animation: none !important; }
  .dy-escudo .escudo { animation: none; stroke-dashoffset: 0; }
  .dy-orbita-anel span { transform: translate(-50%, -50%) rotate(var(--ang)) translateY(var(--r)) rotate(calc(var(--ang) * -1)); }
}

/* =========================================================
   VÍDEOS GERADOS (Higgsfield)
   ========================================================= */
/* Topo: o vídeo real precisa aparecer mais que a animação antiga */
.dy-hero .dy-bgvideo video { opacity: .78; }
.dy-hero .dy-bgvideo::after {
  background:
    radial-gradient(ellipse 55% 60% at 50% 55%, rgba(10,6,18,.55), rgba(10,6,18,.12) 70%, transparent),
    linear-gradient(180deg, rgba(10,6,18,.5) 0%, transparent 25%, transparent 65%, var(--dy-bg) 100%);
}
/* Segurança: vídeo atrás do escudo, dentro da moldura redonda */
.dy-seg-visual { border-radius: 28px; overflow: hidden; padding: 24px 0 18px; isolation: isolate; }
.dy-seg-visual .dy-bgvideo { border-radius: 28px; }
.dy-seg-visual .dy-bgvideo video { opacity: .55; }
.dy-seg-visual .dy-bgvideo::after { background: radial-gradient(circle at 50% 45%, rgba(10,6,18,.15), rgba(10,6,18,.75) 85%); }
.dy-seg-visual .dy-escudo, .dy-seg-visual .dy-seg-status { position: relative; z-index: 1; }
/* Sobre nós: vídeo com moldura dourada */
.dy-video-moldura {
  display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover;
  border-radius: var(--dy-radius-lg); border: 1px solid var(--dy-border-strong);
  box-shadow: 0 30px 80px rgba(212,175,55,.2);
}
/* Cartões de vertical: vídeo curto no topo do cartão */
.vertical-card { display: flex; flex-direction: column; }
.dy-card-video {
  display: block; width: calc(100% + 72px); margin: -36px -36px 22px; aspect-ratio: 21 / 9; object-fit: cover;
  border-bottom: 1px solid var(--dy-border); opacity: .9;
}

/* =========================================================
   NOTALINK: cores do produto (verde-água → azul)
   ========================================================= */
:root {
  --nl-verde: #1cc8a8; --nl-verde-claro: #2ddbb5; --nl-azul: #2d5cf2;
  --nl-grad: linear-gradient(120deg, var(--nl-verde-claro), var(--nl-verde) 45%, var(--nl-azul));
}
/* botão do Notalink */
.btn-nl { background: linear-gradient(135deg, var(--nl-verde), var(--nl-verde-claro)); color: #052020 !important; font-weight: 700; box-shadow: 0 4px 20px rgba(28,200,168,.35); }
.btn-nl:hover { box-shadow: 0 8px 30px rgba(28,200,168,.55); color: #052020; }
.nl-ghost:hover { border-color: var(--nl-verde); background: rgba(28,200,168,.08); }

/* seções da página inicial que falam do Notalink */
.nl-tema .label, .nl-tema .dy-secao-titulo .label { color: var(--nl-verde-claro); }
.nl-tema .gradient-text { background-image: var(--nl-grad); }
.nl-tema .dy-fluxo-no { color: var(--nl-verde-claro); border-color: rgba(28,200,168,.6); box-shadow: 0 0 30px rgba(28,200,168,.25); background: radial-gradient(circle at 50% 35%, rgba(28,200,168,.25), rgba(10,6,18,1) 70%); }
.nl-tema .dy-fluxo::before { background: linear-gradient(90deg, transparent, rgba(28,200,168,.55), transparent); }
.nl-tema .dy-fluxo::after { background: var(--nl-verde-claro); box-shadow: 0 0 16px 4px rgba(45,219,181,.7); }
.nl-tema .dy-fluxo-tag { color: var(--nl-azul); filter: brightness(1.5); }
.nl-tema .dy-orbita::before { border-color: rgba(28,200,168,.3); }
.nl-tema .dy-orbita::after { border-color: rgba(45,92,242,.45); }
.nl-tema .dy-orbita-centro {
  background: radial-gradient(circle, rgba(28,200,168,.22), rgba(10,6,18,.95) 70%);
  border-color: rgba(28,200,168,.55); box-shadow: 0 0 80px rgba(28,200,168,.3), inset 0 0 40px rgba(28,200,168,.12);
}
.nl-tema .dy-orbita-centro img { width: 52%; border-radius: 16px; box-shadow: 0 0 30px rgba(28,200,168,.45); }
.nl-tema .dy-orbita-centro span { color: var(--nl-verde-claro); }
.nl-tema .dy-orbita-anel.r1 span { border-color: rgba(28,200,168,.5); }
.nl-tema .dy-orbita-anel.r2 span { border-color: rgba(45,92,242,.6); }
.nl-tema .dy-feature-row .visual { background: linear-gradient(135deg, rgba(28,200,168,.12), rgba(45,92,242,.10)); }
.nl-tema .dy-feature-row .visual::before { background: radial-gradient(circle at 50% 0%, rgba(28,200,168,.22), transparent 60%); }
/* aba do Notalink na Sala de máquinas */
.dy-reel-aba.nl .num { color: var(--nl-verde-claro); }
.dy-reel-aba.nl.ativo { border-color: rgba(28,200,168,.55); background: rgba(28,200,168,.07); }
.dy-reel-aba.nl .barra { background: var(--nl-grad); }
.dy-reel-aba.nl a { color: var(--nl-verde-claro); }

/* ---------- Página do Notalink ---------- */
.nl-page .gradient-text { background-image: var(--nl-grad); }
.nl-page .label, .nl-page .dy-secao-titulo .label { color: var(--nl-verde-claro); }
.nl-page a { color: var(--nl-verde-claro); }
.nl-page a:hover { color: #7ff0d8; }
.nl-page .dy-nav a:not(.dy-btn) { color: var(--dy-text-muted); }
.nl-page .dy-nav a:not(.dy-btn):hover { color: var(--nl-verde-claro); }
.nl-page .dy-progress { background: var(--nl-grad); box-shadow: 0 0 12px rgba(28,200,168,.7); }
.nl-page .dy-logo-wrap img { filter: drop-shadow(0 0 12px rgba(28,200,168,.4)); }
.nl-page .dy-typed::after { color: var(--nl-verde); }
.nl-page .dy-spotlight { background: radial-gradient(circle, rgba(28,200,168,.10), rgba(45,92,242,.06) 40%, transparent 68%); }
.nl-page .nl-hero { min-height: calc(100vh - 72px); min-height: calc(100svh - 72px); display: flex; align-items: center; justify-content: center; }
.nl-page .nl-hero .dy-bgvideo video { opacity: .72; }
.nl-page .nl-hero .dy-bgvideo::after {
  background:
    radial-gradient(ellipse 55% 60% at 50% 55%, rgba(10,6,18,.55), rgba(10,6,18,.12) 70%, transparent),
    linear-gradient(180deg, rgba(10,6,18,.5) 0%, transparent 25%, transparent 65%, var(--dy-bg) 100%);
}
.nl-page .nl-logo-tile { box-shadow: 0 0 0 1px rgba(28,200,168,.5), 0 0 0 8px rgba(28,200,168,.06), 0 0 90px rgba(28,200,168,.35); }
.nl-garantias { padding-top: 32px; }
.nl-garantias i { background: rgba(28,200,168,.14); border-color: rgba(28,200,168,.5); }
.nl-garantias i::after { border-color: var(--nl-verde-claro); }
/* tela de cinema para o vídeo institucional */
.nl-tela {
  position: relative; max-width: 920px; margin: 0 auto; border-radius: 22px; overflow: hidden; background: #050a10;
  border: 1px solid rgba(28,200,168,.3); box-shadow: 0 40px 140px -40px rgba(28,200,168,.4);
}
.nl-tela video { display: block; width: 100%; aspect-ratio: 16 / 9; }
/* cartões da plataforma */
.nl-feats { grid-template-columns: repeat(auto-fit, minmax(258px, 1fr)); gap: 18px; margin-top: 36px; }
.nl-feat { padding: 24px; border-radius: 16px; }
.nl-feat::before { background: linear-gradient(135deg, rgba(28,200,168,.12) 0%, transparent 60%); }
.nl-feat:hover { border-color: rgba(28,200,168,.45); box-shadow: 0 30px 80px -30px rgba(28,200,168,.35); }
.nl-feat-icone {
  width: 48px; height: 48px; border-radius: 12px; display: grid; place-items: center; font-size: 24px; margin-bottom: 14px;
  background: linear-gradient(135deg, rgba(28,200,168,.2), rgba(45,92,242,.12)); border: 1px solid rgba(28,200,168,.3);
}
.nl-feat h3 { margin: 0 0 8px; font-size: 18px; }
.nl-feat p { margin: 0; color: var(--dy-text-muted); font-size: 14px; line-height: 1.6; }
.nl-page .dy-glow-layer { background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), rgba(28,200,168,.16), transparent 45%); }
/* antes/depois, FAQ e chamada final */
.nl-page .vs-bom { border: 1px solid rgba(28,200,168,.35); background: linear-gradient(160deg, rgba(28,200,168,.08), rgba(45,92,242,.04)); box-shadow: 0 30px 80px -40px rgba(28,200,168,.35); }
.nl-page .vs-bom ul li::before { color: var(--nl-verde-claro); }
.nl-page .nl-faq details[open] { border-color: rgba(28,200,168,.35); box-shadow: 0 10px 40px rgba(28,200,168,.1); }
.nl-page .nl-faq summary::after { color: var(--nl-verde-claro); }
.nl-page .cta-final { background: radial-gradient(ellipse at center, rgba(28,200,168,.12), transparent 60%); }
.nl-page .dy-footer a:hover { color: var(--nl-verde-claro); }
@media (prefers-reduced-motion: reduce) { .nl-page .dy-word { opacity: 1; transform: none; filter: none; } }

/* =========================================================
   LEXLINK: vinho e dourado
   ========================================================= */
:root {
  --lex-vinho: #7a1f2e; --lex-vinho-claro: #a83a4d; --lex-ouro: #e6c97a; --lex-ouro-esc: #c8a85a;
  --lex-grad: linear-gradient(120deg, var(--lex-ouro), var(--lex-ouro-esc) 45%, var(--lex-vinho-claro));
}
.btn-lex { background: linear-gradient(135deg, var(--lex-ouro), var(--lex-ouro-esc)); color: #1a0e02 !important; font-weight: 700; box-shadow: 0 4px 20px rgba(200,168,90,.4); }
.btn-lex:hover { box-shadow: 0 8px 30px rgba(200,168,90,.6); }
.lex-ghost:hover { border-color: var(--lex-ouro); background: rgba(122,31,46,.14); }
.dy-reel-aba.lex .num { color: var(--lex-ouro); }
.dy-reel-aba.lex.ativo { border-color: rgba(200,168,90,.55); background: rgba(122,31,46,.12); }
.dy-reel-aba.lex .barra { background: var(--lex-grad); }
.dy-reel-aba.lex a { color: var(--lex-ouro); }

.lex-page .label, .lex-page .dy-secao-titulo .label { color: var(--lex-ouro); }
.lex-page .gradient-text { background-image: var(--lex-grad); }
.lex-page a { color: var(--lex-ouro); }
.lex-page a:hover { color: #f3dfa2; }
.lex-page .dy-nav a:not(.dy-btn) { color: var(--dy-text-muted); }
.lex-page .dy-nav a:not(.dy-btn):hover { color: var(--lex-ouro); }
.lex-page .dy-progress { background: var(--lex-grad); box-shadow: 0 0 12px rgba(200,168,90,.7); }
.lex-page .dy-typed::after { color: var(--lex-ouro); }
.lex-page .dy-spotlight { background: radial-gradient(circle, rgba(200,168,90,.10), rgba(122,31,46,.10) 40%, transparent 68%); }
.lex-page .lex-hero { min-height: calc(100vh - 72px); min-height: calc(100svh - 72px); display: flex; align-items: center; justify-content: center; }
.lex-page .lex-hero .dy-bgvideo video { opacity: .6; }
.lex-page .lex-hero .dy-bgvideo::after {
  background:
    radial-gradient(ellipse 55% 60% at 50% 55%, rgba(10,6,18,.6), rgba(10,6,18,.15) 70%, transparent),
    linear-gradient(180deg, rgba(10,6,18,.5) 0%, transparent 25%, transparent 65%, var(--dy-bg) 100%);
}
.lex-garantias { padding-top: 32px; }
.lex-garantias i { background: rgba(200,168,90,.14); border-color: rgba(200,168,90,.5); }
.lex-garantias i::after { border-color: var(--lex-ouro); }
.lex-etapa::before { background: linear-gradient(135deg, rgba(122,31,46,.18) 0%, transparent 60%); }
.lex-etapa:hover { border-color: rgba(200,168,90,.45); box-shadow: 0 30px 80px -30px rgba(122,31,46,.6); }
.lex-ico {
  width: 64px; height: 64px; border-radius: 16px; display: grid; place-items: center; font-size: 30px; margin-bottom: 16px;
  background: linear-gradient(135deg, rgba(122,31,46,.35), rgba(200,168,90,.12)); border: 1px solid rgba(200,168,90,.35);
}
.lex-page .dy-glow-layer { background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), rgba(200,168,90,.16), transparent 45%); }
.lex-page .plano-card { transition: border-color .3s, transform .2s ease-out; }
.lex-page .plano-card:hover { border-color: rgba(200,168,90,.5); }
.lex-final { background: radial-gradient(ellipse at center, rgba(122,31,46,.22), transparent 60%); }
.lex-page .dy-footer a:hover { color: var(--lex-ouro); }

/* =========================================================
   AUDITOR SPED: azul
   ========================================================= */
.as-ghost:hover { border-color: #5b9ae8; background: rgba(91,154,232,.08); }
.as-page .dy-progress { background: linear-gradient(90deg, #a9c0e4, #5b9ae8, #2f5a9e); box-shadow: 0 0 12px rgba(91,154,232,.7); }
.as-page .dy-typed::after { color: #5b9ae8; }
.as-page .dy-spotlight { background: radial-gradient(circle, rgba(91,154,232,.10), rgba(47,90,158,.08) 40%, transparent 68%); }
.as-page .dy-logo-wrap img { filter: drop-shadow(0 0 12px rgba(91,154,232,.4)); }
.as-page .as-hero { min-height: calc(100vh - 72px); min-height: calc(100svh - 72px); display: flex; align-items: center; justify-content: center; }
.as-page .as-hero .dy-bgvideo video { opacity: .62; }
.as-page .as-hero .dy-bgvideo::after {
  background:
    radial-gradient(ellipse 55% 60% at 50% 55%, rgba(10,6,18,.6), rgba(10,6,18,.15) 70%, transparent),
    linear-gradient(180deg, rgba(10,6,18,.5) 0%, transparent 25%, transparent 65%, var(--dy-bg) 100%);
}
.as-garantias { padding-top: 32px; }
.as-garantias i { background: rgba(91,154,232,.14); border-color: rgba(91,154,232,.5); }
.as-garantias i::after { border-color: #a9c0e4; }
.as-page .dy-glow-layer { background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), rgba(91,154,232,.16), transparent 45%); }
.as-page .as-confere .cartao, .as-page .plano-card { transition: border-color .3s, transform .2s ease-out, box-shadow .3s; }
.as-page .as-confere .cartao:hover, .as-page .plano-card:hover { border-color: rgba(91,154,232,.5); box-shadow: 0 30px 80px -30px rgba(47,90,158,.6); }
.as-page .dy-footer a:hover { color: #a9c0e4; }

/* ---------- Auditor SPED: como funciona, janela animada, blocos ---------- */
.as-page .label { color: #a9c0e4; }
.as-page .dy-fluxo-no { color: #a9c0e4; border-color: rgba(91,154,232,.6); box-shadow: 0 0 30px rgba(91,154,232,.25); background: radial-gradient(circle at 50% 35%, rgba(91,154,232,.25), rgba(10,6,18,1) 70%); }
.as-page .dy-fluxo::before { background: linear-gradient(90deg, transparent, rgba(91,154,232,.55), transparent); }
.as-page .dy-fluxo::after { background: #a9c0e4; box-shadow: 0 0 16px 4px rgba(91,154,232,.7); }
.as-page .dy-fluxo-tag { color: var(--dy-verde); }
.as-page .dy-feature-row .visual { background: linear-gradient(135deg, rgba(91,154,232,.12), rgba(47,90,158,.10)); }
.as-page .dy-feature-row .visual::before { background: radial-gradient(circle at 50% 0%, rgba(91,154,232,.22), transparent 60%); }
.as-page .dy-feature-row .visual .icone-grande { filter: drop-shadow(0 0 20px rgba(91,154,232,.45)); }

.as-page .as-janela { position: relative; overflow: hidden; }
.as-page .as-janela .linha, .as-page .as-janela .rodape { transition: opacity .45s ease, transform .45s ease; }
.as-page .as-janela .as-esconde { opacity: 0; transform: translateX(-10px); }
.as-page .as-janela .as-mostra { opacity: 1; transform: none; }
.as-page .as-janela .rodape.as-mostra { animation: as-pisca .6s ease 2; }
@keyframes as-pisca { 50% { background: rgba(255,92,122,.12); } }
.as-scan {
  position: absolute; left: 0; right: 0; top: 0; height: 2px; opacity: 0; pointer-events: none;
  background: linear-gradient(90deg, transparent, #5b9ae8, transparent); box-shadow: 0 0 14px 3px rgba(91,154,232,.6);
}
.as-janela.as-rodando .as-scan { opacity: 1; animation: as-varre 1.6s linear infinite; }
@keyframes as-varre { from { top: 0; } to { top: 100%; } }
.as-janela.as-rodando .titulo::after { content: "  · conferindo…"; color: #a9c0e4; }
.as-janela.as-pronto { box-shadow: 0 0 0 1px rgba(91,154,232,.35), 0 30px 80px -30px rgba(91,154,232,.5); transition: box-shadow .6s; }
@media (prefers-reduced-motion: reduce) { .as-scan { display: none; } }
