/* Digital Makerss · apresentação
   Palco lógico de 1120×630 (16:9), ampliado até a tela com CSS zoom.
   Depende de tokens.css e nexo.css (componentes nx-*). */

html, body { height: 100%; }
body { margin: 0; overflow: hidden; background: var(--bg); }
button { font: inherit; }
[hidden] { display: none !important; }

/* ---------- Progresso ---------- */
.progress { position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 50; pointer-events: none; }
.progress i { display: block; height: 100%; width: 0; background: var(--neon); box-shadow: var(--glow-sm); transition: width var(--dur-base) var(--ease-out); }

/* ---------- Palco ---------- */
.viewport { position: fixed; inset: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.stage { position: relative; flex: none; width: 1120px; height: 630px; }

.slide { position: absolute; inset: 0; width: 1120px; height: 630px; box-sizing: border-box; padding: 40px 72px 32px; display: flex; flex-direction: column; overflow: hidden; background: var(--bg); isolation: isolate; text-align: left; }
.stage > .slide { display: none; }
.stage > .slide.is-active { display: flex; z-index: 2; animation: dm-in 460ms var(--ease-out) both; }
.stage > .slide.is-leaving { display: flex; z-index: 1; animation: dm-out 460ms var(--ease-out) both; pointer-events: none; }
.stage > .slide.is-hidden { display: none !important; }
.notes { display: none; }

.slide-top { position: relative; z-index: 3; flex: none; height: 28px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.slide-for { font: 500 11px/16px var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-subtle); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.slide-body { position: relative; z-index: 2; flex: 1; min-height: 0; display: flex; flex-direction: column; justify-content: center; padding: 8px 0; }
.slide-body.is-center { align-items: center; text-align: center; }
.slide-foot { position: relative; z-index: 3; flex: none; display: flex; justify-content: space-between; gap: 24px; font: 500 11px/16px var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-subtle); }
.slide-foot .foot-num { flex: none; }

.dm-logo { display: inline-flex; align-items: center; gap: 10px; font: 700 16px/1 var(--font-display); letter-spacing: -.01em; color: var(--ink); white-space: nowrap; }
.dm-logo svg { width: 24px; height: 24px; flex: none; }

/* ---------- Tipografia ---------- */
.nx-headline { margin: 18px 0 0; }
.h-cover { font-size: 54px; line-height: 1.02; }
.h-xl { font-size: 60px; line-height: 1.02; }
.h-lg { font-size: 44px; line-height: 1.06; letter-spacing: -.03em; }
.h-md { font-size: 38px; line-height: 1.08; letter-spacing: -.028em; }
/* títulos que crescem com o nome do cliente */
.h-cover.is-long { font-size: 44px; }
.h-lg.is-long { font-size: 38px; }
.h-xl.is-long { font-size: 54px; }
.nx-sub { margin-top: 20px; font-size: 19px; }
.is-center .nx-sub { margin-left: auto; margin-right: auto; }
.lead { margin: 14px 0 0; max-width: 620px; font: 400 18px/1.5 var(--font-sans); color: var(--ink-muted); }
.note { margin: 18px 0 0; font-size: 14px; line-height: 1.5; color: var(--ink-subtle); }
.eyebrow-row { display: flex; align-items: center; gap: 14px; }

/* Modo rascunho: campo vazio aparece destacado */
.is-missing { color: var(--neon) !important; background: var(--neon-soft); outline: 1px dashed var(--neon-line); outline-offset: 2px; border-radius: 4px; }
.is-missing-block { outline: 1px dashed var(--neon-line); outline-offset: 4px; border-radius: 10px; }

/* ---------- Grades e cards ---------- */
.g { display: grid; gap: 20px; }
.g-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.g-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.g-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cards-row { margin-top: 36px; }
.nx-card .nx-card-text { font-size: 14.5px; }
.nx-card.c-sm { padding: 24px; }
.nx-card.c-sm .nx-card-title { margin-top: 20px; font-size: 19px; }

/* Entrada escalonada dos cards (translate não briga com o hover do card) */
.cards-row > *, .offers > * { animation: dm-up 640ms var(--ease-out) both; }
.cards-row > .nx-card-glow, .offers > .nx-card-glow { animation: dm-up 640ms var(--ease-out) both, nx-spin 5s linear infinite; }
.cards-row > :nth-child(1), .offers > :nth-child(1) { animation-delay: 320ms; }
.cards-row > :nth-child(2), .offers > :nth-child(2) { animation-delay: 410ms; }
.cards-row > :nth-child(3), .offers > :nth-child(3) { animation-delay: 500ms; }
.cards-row > :nth-child(4), .offers > :nth-child(4) { animation-delay: 590ms; }

/* ---------- Celular ---------- */
.phone-col { position: relative; display: grid; place-items: center; }
.phone-wrap { zoom: .92; position: relative; z-index: 1; }
.nx-avatar { display: grid; place-items: center; overflow: hidden; background: var(--neon); font: 700 13px/1 var(--font-display); color: var(--on-neon); }
.nx-avatar img { width: 100%; height: 100%; object-fit: cover; }
.nx-app-item > div, .nx-app-head > div { min-width: 0; }
.nx-toast > span:last-child { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.lead, .nx-sub, .nx-card-text, .viz-text, .nx-step p, .faq-item p, .callout { text-wrap: pretty; }
.nx-app-item b, .nx-app-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nx-app-hero b { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nx-screen.is-img { padding: 0; }
.nx-screen.is-img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.print-ph { display: none; }
.nx-screen.is-empty { display: grid; place-items: center; background: var(--surface); outline: 1px dashed var(--neon-line); outline-offset: -10px; }
.nx-screen.is-empty .print-ph { display: block; padding: 24px; font: 500 12px/1.5 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--neon); text-align: center; }

.has-app-color .nx-avatar { background: var(--app); color: var(--app-ink); box-shadow: 0 0 0 2px var(--surface), 0 0 0 3px var(--app); }
.has-app-color .nx-app-hero { background: var(--app); color: var(--app-ink); }
.has-app-color .nx-app-progress { background: rgba(0, 0, 0, .18); }
.has-app-color .nx-app-progress i { background: currentColor; }
.has-app-color .nx-app-nav i:first-child { background: var(--app); box-shadow: none; }

.dm-splash { align-items: center; text-align: center; gap: 0; padding: 44px 20px 24px; background: radial-gradient(120% 70% at 50% 34%, rgba(43, 255, 136, .13), transparent 62%), var(--surface); }
.dm-splash-mid { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.dm-app-icon { width: 84px; height: 84px; border-radius: 22px; display: grid; place-items: center; background: linear-gradient(135deg, var(--neon), var(--neon-deep)); color: var(--on-neon); font: 700 32px/1 var(--font-display); letter-spacing: -.03em; box-shadow: 0 0 44px rgba(43, 255, 136, .32), 0 12px 32px rgba(0, 0, 0, .5); animation: dm-icon-in 900ms var(--ease-out) both 350ms; }
.has-app-color .dm-app-icon { background: var(--app); color: var(--app-ink); box-shadow: 0 12px 32px rgba(0, 0, 0, .5); }
.dm-app-title { margin-top: 18px; max-width: 100%; font: 700 19px/1.15 var(--font-display); letter-spacing: -.02em; color: var(--ink); }
.dm-app-by { margin-top: 6px; font-size: 11px; color: var(--ink-muted); }
.dm-splash-foot { width: 100%; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.dm-loader { width: 64%; height: 3px; border-radius: 3px; background: var(--line); overflow: hidden; }
.dm-loader i { display: block; height: 100%; background: var(--neon); transform-origin: left; animation: nx-grow 2.4s var(--ease-out) both .6s; }
.has-app-color .dm-loader i { background: var(--app); }
.dm-splash-foot small { font: 500 9px/1 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-subtle); }

/* ---------- 01 · Capa ---------- */
.s01-cols { display: grid; grid-template-columns: 1.42fr .58fr; align-items: center; gap: 16px; }
.s-01 .nx-headline { margin-top: 22px; }
.s-01 .nx-orb { width: 620px; height: 620px; }

/* ---------- 02 · Agenda ---------- */
.s02-steps { margin-top: 60px; }
.nx-step h4 { font-size: 21px; }
.nx-step p { font-size: 15px; max-width: 290px; }

/* ---------- 03 · Ficha do diagnóstico ---------- */
.ficha { margin-top: 28px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); overflow: hidden; }
.ficha-head, .ficha-row { display: grid; grid-template-columns: 290px 1fr; gap: 24px; align-items: center; padding: 0 24px; }
.ficha-head { height: 40px; font: 500 11px/1 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-subtle); border-bottom: 1px solid var(--line); }
.ficha-row { min-height: 58px; box-sizing: border-box; padding-top: 12px; padding-bottom: 12px; animation: dm-up 560ms var(--ease-out) both; animation-delay: calc(360ms + var(--i, 0) * 90ms); }
.ficha-row:not([hidden]) ~ .ficha-row:not([hidden]) { border-top: 1px solid var(--line); }
.ficha-k { display: flex; align-items: center; gap: 12px; font: 500 12px/1.3 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-muted); }
.ficha-k svg { width: 18px; height: 18px; flex: none; fill: none; stroke: var(--neon); stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.ficha-v { font: 500 17px/1.4 var(--font-sans); color: var(--ink); }
.ficha-v q { font-style: italic; quotes: "“" "”"; }
.ficha-row.is-goal { background: linear-gradient(90deg, rgba(43, 255, 136, .07), transparent 70%); }
.goal-arrow { width: 18px; height: 18px; margin-left: 10px; vertical-align: -3px; fill: none; stroke: var(--neon); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- 04 · Gráficos ---------- */
.s04-charts { margin-top: 28px; }
.s-04 .nx-headline { font-size: 36px; }
.s-04 .ways { margin-top: 22px; }
.s-04 .ways .nx-card-title { font-size: 18px; }
.s-04 .ways .nx-card-text { font-size: 13.5px; }
.s-04 .callout { margin-top: 16px; font-size: 16px; }
.viz-card { padding: 24px 26px 20px; display: flex; flex-direction: column; }
.viz-title { margin: 0; font: 600 20px/1.25 var(--font-display); letter-spacing: -.01em; color: var(--ink); }
.viz-text { margin: 6px 0 0; font-size: 14px; line-height: 1.5; color: var(--ink-muted); }
.viz { margin-top: 14px; height: 150px; }
.viz svg { display: block; width: 100%; height: 100%; overflow: visible; }
.viz .bar { transform-box: fill-box; transform-origin: 50% 100%; animation: dm-bar 820ms var(--ease-out) both; animation-delay: calc(480ms + var(--i, 0) * 60ms); }
.viz .bar-launch { fill: var(--ink-subtle); }
.viz .bar-base { fill: var(--neon-deep); }
.viz .bar-new { fill: var(--neon); }
.viz .axis { stroke: var(--line-strong); stroke-width: 1; }
.viz .tick { font: 500 9.5px/1 var(--font-mono); letter-spacing: .1em; fill: var(--ink-subtle); text-transform: uppercase; }
.viz .ann { font: 500 9.5px/1 var(--font-mono); letter-spacing: .1em; fill: var(--ink-muted); }
.viz .hit { fill: transparent; }
.viz .hit:hover + .bar, .viz g:hover .bar { filter: brightness(1.25); }
.viz-legend { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 12px; font: 500 10px/1 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-muted); }
.sw { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 8px; vertical-align: -1px; }
.sw-base { background: var(--neon-deep); }
.sw-new { background: var(--neon); }
.viz-tip { position: absolute; z-index: 5; pointer-events: none; padding: 6px 10px; border-radius: 8px; background: var(--surface-overlay); border: 1px solid var(--line-strong); font: 500 11px/1.3 var(--font-sans); color: var(--ink); white-space: nowrap; opacity: 0; transform: translate(-50%, -100%); transition: opacity .16s; }
.viz-tip.is-on { opacity: 1; }
.viz-card { position: relative; }

/* ---------- 06 · Virada ---------- */
.s-06 .nx-headline, .s-20 .nx-headline { max-width: 940px; }
.s-06 .nx-orb { width: 560px; height: 560px; }

/* ---------- 08 · App do expert ---------- */
.s08-cols { display: grid; grid-template-columns: 1.15fr .85fr; gap: 32px; align-items: center; }
.checks { list-style: none; margin: 28px 0 0; padding: 0; display: grid; gap: 12px; max-width: 520px; }
.checks li { display: flex; align-items: center; gap: 14px; padding: 13px 16px; border-radius: var(--radius-md); background: var(--surface); border: 1px solid var(--line); font: 500 16px/1.4 var(--font-sans); color: var(--ink); animation: dm-up 560ms var(--ease-out) both; animation-delay: calc(460ms + var(--i, 0) * 110ms); }
.check { width: 28px; height: 28px; flex: none; display: grid; place-items: center; border-radius: 8px; background: var(--neon-soft); border: 1px solid var(--neon-line); }
.check svg { width: 16px; height: 16px; fill: none; stroke: var(--neon); stroke-width: 2.25; stroke-linecap: round; stroke-linejoin: round; }
.phone-tag { position: absolute; z-index: 2; top: 18px; right: 18px; }

/* ---------- 09 · Módulos ---------- */
.mods { margin-top: 26px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); overflow: hidden; }
.mods-head, .mods-row { display: grid; grid-template-columns: 300px 1fr 120px; gap: 20px; align-items: center; padding: 0 22px; }
.mods-head { height: 38px; font: 500 11px/1 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-subtle); border-bottom: 1px solid var(--line); }
.mods-row { min-height: 50px; animation: dm-up 520ms var(--ease-out) both; animation-delay: calc(340ms + var(--i, 0) * 70ms); }
.mods-row + .mods-row { border-top: 1px solid var(--line); }
.mods-name { display: flex; align-items: center; gap: 12px; font: 600 15.5px/1.2 var(--font-display); color: var(--ink); }
.mods-row > span:nth-child(2) { font-size: 14.5px; line-height: 1.4; color: var(--ink-muted); }
.mods-row > span:last-child { justify-self: start; }
.mini-ico { width: 30px; height: 30px; flex: none; display: grid; place-items: center; border-radius: 8px; background: var(--surface-raised); border: 1px solid var(--line); color: var(--ink-muted); }
.mini-ico svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.mods-row.is-exclusive { background: linear-gradient(90deg, rgba(43, 255, 136, .08), transparent 75%); }
.mods-row.is-exclusive .mini-ico { background: var(--neon-soft); border-color: var(--neon-line); color: var(--neon); }

/* ---------- 10 · Case ---------- */
.s10-cols { margin-top: 30px; display: grid; grid-template-columns: 1.1fr .9fr; gap: 40px; align-items: center; }
.s10-cols:has(> .quote[hidden]) { grid-template-columns: 1fr; }
.s10-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 32px; }
.s10-cols:has(> .quote[hidden]) .s10-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.s-10 .nx-stat { min-width: 0; }
.s-10 .nx-stat-value { font-size: 52px; font-variant-numeric: normal; }
.nx-stat-value em.u { font-size: .5em; letter-spacing: 0; margin: 0 .1em; }
.quote { position: relative; margin: 0; padding: 28px 30px; border-radius: var(--radius-lg); background: var(--surface); border: 1px solid var(--line); }
.quote-mark { display: block; height: 34px; font: 700 80px/.8 var(--font-display); color: var(--neon); }
.quote blockquote { margin: 8px 0 0; font: 500 20px/1.45 var(--font-display); letter-spacing: -.01em; color: var(--ink); }
.quote figcaption { margin-top: 20px; display: flex; align-items: center; gap: 12px; font: 500 11px/1.3 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-muted); }
.quote-photo { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; filter: grayscale(1) contrast(1.15); box-shadow: 0 0 0 2px var(--surface), 0 0 0 3px var(--neon); }

/* ---------- 11 · Prints ---------- */
.s11-prints { margin-top: 22px; align-items: start; }
.print { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.print-phone { zoom: .66; }
.print:nth-child(2) .nx-phone { animation-delay: -2s; }
.print:nth-child(3) .nx-phone { animation-delay: -4s; }
.print figcaption { max-width: 230px; font: 500 14px/1.4 var(--font-sans); color: var(--ink-muted); text-align: center; }
.s11-prints[data-n="1"] { grid-template-columns: minmax(0, 280px); justify-content: center; }
.s11-prints[data-n="2"] { grid-template-columns: repeat(2, minmax(0, 240px)); justify-content: center; }
.s11-prints[data-n="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.s11-prints.is-many { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
.s11-prints.is-many .print-phone { zoom: .46; }

/* ---------- Marco, parceiros, vídeos ---------- */
.marco-kicker { margin: 22px 0 0; font: 500 12px/1 var(--font-mono); letter-spacing: .18em; text-transform: uppercase; color: var(--ink-muted); }
.marco-num { margin: 6px 0 0; font: 700 88px/.92 var(--font-display); letter-spacing: -.045em; color: var(--neon); text-shadow: 0 0 42px var(--neon-glow); }
.s-marco .nx-headline { margin-top: 16px; }
.s-marco .nx-orb { width: 520px; height: 520px; }
.partner-grid { margin-top: 16px; display: grid; gap: 12px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.partner-grid[data-n="1"] { grid-template-columns: minmax(0, 560px); }
.partner-grid[data-n="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.partner { padding: 16px 16px 14px; }
.partner-top { display: flex; align-items: center; gap: 12px; }
.partner .nx-card-title { margin: 0; font-size: 18px; }
.partner-nicho { margin: 4px 0 0; font: 500 11px/1.3 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-muted); }
.partner-meta { margin: 12px 0 0; font-size: 13px; line-height: 1.4; color: var(--ink-muted); }
.partner-quote { margin: 8px 0 0; font: 500 15px/1.35 var(--font-display); color: var(--ink); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.partner-photo { width: 44px; height: 44px; flex: none; border-radius: 50%; object-fit: cover; filter: grayscale(1) contrast(1.15); box-shadow: 0 0 0 2px var(--surface), 0 0 0 3px var(--neon); }
.partner-photo.is-ph { display: grid; place-items: center; background: var(--neon); color: var(--on-neon); font: 700 13px/1 var(--font-display); filter: none; }
.video-grid { margin-top: 16px; display: grid; gap: 14px; align-items: start; }
.video-grid[data-n="1"] { grid-template-columns: minmax(0, 760px); justify-content: center; }
.video-grid[data-n="2"] { grid-template-columns: 1fr 1fr; }
.video-grid[data-n="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.s-videos .video-grid { margin-top: 12px; align-items: start; justify-content: center; }
.s-videos .video-grid[data-n="1"] { grid-template-columns: 200px; }
.s-videos .video-grid[data-n="2"] { grid-template-columns: 200px 200px; gap: 36px; }
.s-videos .video-grid[data-n="3"] { grid-template-columns: 200px 200px 200px; gap: 24px; }
.s-videos .vid { width: 200px; }
.vid { margin: 0; }
.vid-frame { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 14px; border: 1px solid var(--line-strong); background: #050706; }
.vid-frame.is-portrait { aspect-ratio: 9 / 16; }
.vid-frame iframe, .vid-frame video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; object-fit: cover; }
.vid figcaption { margin-top: 8px; font: 500 13px/1.4 var(--font-sans); color: var(--ink-muted); text-align: center; }
.vid-frame.is-empty { display: grid; place-items: center; color: var(--neon); font: 500 12px/1.4 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; text-align: center; padding: 16px; }

/* ---------- 12 · Co-produção ---------- */
.s12-grid { margin-top: 28px; display: grid; grid-template-columns: 1fr 92px 1fr; align-items: stretch; }
.side { padding: 26px 28px; display: flex; flex-direction: column; gap: 18px; align-items: flex-start; }
.side.is-us { border-color: var(--neon-line); background: linear-gradient(160deg, rgba(43, 255, 136, .07), transparent 55%), var(--surface); }
.bul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.bul li { position: relative; padding-left: 26px; font: 400 16px/1.45 var(--font-sans); color: var(--ink); }
.bul li::before { content: ""; position: absolute; left: 2px; top: .5em; width: 10px; height: 10px; box-sizing: border-box; border-radius: 3px; border: 1.5px solid var(--ink-subtle); }
.is-us .bul li::before { border-color: var(--neon); }
.s12-link { position: relative; display: grid; place-items: center; }
.link-line { position: absolute; left: 0; right: 0; top: 50%; height: 1px; overflow: hidden; background: linear-gradient(90deg, var(--line-strong), var(--neon-line), var(--line-strong)); }
.link-line::after { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 36px; background: linear-gradient(90deg, transparent, var(--neon), transparent); animation: dm-flow 2.6s var(--ease-in-out) infinite; }
.link-node { position: relative; width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: var(--bg); border: 1px solid var(--neon); box-shadow: var(--glow-sm); }
.link-node .nx-dot { width: 12px; height: 12px; }
.pact { margin: 22px 0 0; display: flex; align-items: center; gap: 14px; padding: 15px 20px; border-radius: var(--radius-md); background: var(--neon-soft); border: 1px solid var(--neon-line); font: 400 16px/1.4 var(--font-sans); color: var(--ink); }
.pact b { color: var(--neon); font-weight: 600; }
.pact svg { width: 22px; height: 22px; flex: none; fill: none; stroke: var(--neon); stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- 13 · Linha do tempo ---------- */
.s-13 .nx-headline { font-size: 34px; }
.s13-row { margin-top: 20px; }
.s13-row.is-second { margin-top: 16px; }
.s13-row.is-second::after { animation-delay: 1.3s; }
.s-13 .nx-step-num { animation-delay: calc(var(--i, 0) * 380ms + 250ms); }
.s-13 .nx-step h4 { font-size: 16px; margin-top: 10px; }
.s-13 .nx-step p { font-size: 13px; max-width: 230px; }

/* ---------- 14 · Calculadora ---------- */
.calc { margin-top: 22px; display: grid; gap: 14px; }
.calc-row { display: grid; grid-template-columns: 1fr 36px 1fr 36px 1fr; align-items: stretch; }
.calc-cell { display: flex; flex-direction: column; gap: 6px; padding: 16px 20px 12px; border-radius: var(--radius-lg); background: var(--surface); border: 1px solid var(--line); transition: border-color var(--dur-base) var(--ease-out); }
.calc-cell:focus-within, .calc-cell:hover { border-color: var(--neon-line); }
.calc-k { font: 500 11px/16px var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-muted); }
.calc-v { font: 700 32px/1.05 var(--font-display); letter-spacing: -.03em; color: var(--ink); }
.calc-op { display: grid; place-items: center; font: 500 24px/1 var(--font-display); color: var(--ink-subtle); }
.calc-op.is-eq { color: var(--neon); font-size: 32px; }
.calc-range { -webkit-appearance: none; appearance: none; width: 100%; height: 24px; margin: 6px 0 0; background: transparent; cursor: pointer; --fill: 50%; }
.calc-range::-webkit-slider-runnable-track { height: 4px; border-radius: 4px; background: linear-gradient(90deg, var(--neon) var(--fill), var(--line-strong) var(--fill)); }
.calc-range::-moz-range-track { height: 4px; border-radius: 4px; background: var(--line-strong); }
.calc-range::-moz-range-progress { height: 4px; border-radius: 4px; background: var(--neon); }
.calc-range::-webkit-slider-thumb { -webkit-appearance: none; width: 18px; height: 18px; margin-top: -7px; border-radius: 50%; background: var(--neon); border: 3px solid var(--bg); box-shadow: 0 0 0 1px var(--neon), var(--glow-sm); }
.calc-range::-moz-range-thumb { width: 12px; height: 12px; border-radius: 50%; background: var(--neon); border: 3px solid var(--bg); box-shadow: 0 0 0 1px var(--neon); }
.calc-range:focus-visible { outline: 2px solid var(--neon); outline-offset: 4px; border-radius: 8px; }
.calc-result { display: grid; grid-template-columns: 52px auto 1fr; align-items: center; gap: 16px; padding: 16px 28px 16px 4px; border-radius: var(--radius-lg); border: 1px solid var(--neon-line); background: linear-gradient(100deg, rgba(43, 255, 136, .10), transparent 60%), var(--surface); }
.calc-total { display: block; margin-top: 4px; font: 700 60px/1 var(--font-display); letter-spacing: -.04em; color: var(--neon); text-shadow: 0 0 32px var(--neon-glow); white-space: nowrap; }
.calc-meta { margin: 0; display: flex; justify-content: flex-end; gap: 36px; }
.calc-meta > div { display: flex; flex-direction: column; gap: 8px; }
.calc-meta dt { font: 500 10.5px/1 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-subtle); }
.calc-meta dd { margin: 0; font: 600 22px/1 var(--font-display); letter-spacing: -.01em; color: var(--ink); white-space: nowrap; }
.calc-example { margin: 14px 0 0; font-size: 14px; color: var(--ink-muted); }
.calc-note { margin: 4px 0 0; font-size: 13px; line-height: 1.5; color: var(--ink-subtle); }

/* ---------- 15 · Compromisso ---------- */
.callout { margin: 20px 0 0; padding: 18px 24px; border-radius: var(--radius-md); background: var(--neon-soft); border: 1px solid var(--neon-line); font: 500 18px/1.5 var(--font-display); letter-spacing: -.005em; color: var(--ink); }
.callout b { color: var(--neon); font-weight: 600; }

/* ---------- 16 · Ofertas ---------- */
.s-16 .lead { max-width: 820px; margin-top: 8px; font-size: 16px; }
.s-16 .nx-headline { font-size: 36px; }
.offers { margin-top: 16px; align-items: stretch; }
.offer { display: flex; flex-direction: column; padding: 16px 18px 14px; }
.offer-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.offer-flag { display: none !important; }
.offer.is-pick .offer-flag { display: inline-flex !important; }
.offer .nx-card-title { margin-top: 12px; font-size: 26px; }
.offer-us { margin: 2px 0 0; font: 500 12px/1.2 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-muted); }
.offer-price { margin: 10px 0 8px; font: 700 28px/1.1 var(--font-display); letter-spacing: -.03em; color: var(--ink); }
.offer-price small { margin-left: 4px; font: 500 11px/1 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-muted); }
.incl { margin: 12px 0 0; display: flex; align-items: flex-start; gap: 10px; font-size: 14px; line-height: 1.4; color: var(--ink-muted); }
.incl svg { width: 18px; height: 18px; flex: none; fill: none; stroke: var(--neon); stroke-width: 2.25; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- 18 · Perguntas ---------- */
.faq { margin-top: 16px; gap: 10px; }
.s-18 .nx-headline { font-size: 32px; }
.faq-item { padding: 12px 16px; border-radius: var(--radius-lg); background: var(--surface); border: 1px solid var(--line); animation: dm-up 560ms var(--ease-out) both; animation-delay: calc(340ms + var(--i, 0) * 90ms); }
.faq-item:last-child:nth-child(odd) { grid-column: 1 / -1; }
.faq-item h3 { margin: 0; display: flex; align-items: center; gap: 10px; font: 600 15.5px/1.3 var(--font-display); letter-spacing: -.01em; color: var(--ink); }
.faq-item h3 svg { width: 18px; height: 18px; flex: none; fill: none; stroke: var(--neon); stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.faq-item p { margin: 6px 0 0; font-size: 13.5px; line-height: 1.45; color: var(--ink-muted); }

/* ---------- 19 · Próximos passos ---------- */
.s19-steps { margin-top: 60px; }
.s19-steps .nx-step p { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.is-now .nx-step-num { background: var(--neon); color: var(--on-neon); }

/* ---------- 20 · Fechamento ---------- */
.s-20 .nx-headline { margin-top: 20px; }
.s-20 .nx-orb { width: 600px; height: 600px; }
.s20-cta { margin-top: 36px; display: flex; justify-content: center; }
.btn-ico { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.nx-btn-arrow svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.contact { margin: 26px 0 0; font: 500 13px/1.4 var(--font-mono); letter-spacing: .06em; color: var(--ink-muted); }
.contact > span:not([hidden]) ~ span:not([hidden])::before { content: "·"; margin: 0 12px; color: var(--ink-subtle); }

/* ---------- Controles ---------- */
.hud { position: fixed; right: 18px; bottom: 16px; z-index: 60; display: flex; align-items: center; gap: 4px; padding: 6px; border-radius: var(--radius-pill); background: rgba(10, 15, 12, .84); border: 1px solid var(--line); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); opacity: 0; transform: translateY(6px); transition: opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out); }
.hud.is-on, .hud:focus-within { opacity: 1; transform: none; }
.hud button { width: 34px; height: 34px; display: grid; place-items: center; border: 0; border-radius: 50%; background: transparent; color: var(--ink-muted); cursor: pointer; transition: color var(--dur-fast), background-color var(--dur-fast); }
.hud button:hover { color: var(--neon); background: var(--surface-raised); }
.hud button:focus-visible { outline: 2px solid var(--neon); outline-offset: 1px; }
.hud svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.hud-count { min-width: 66px; text-align: center; font: 500 11px/1 var(--font-mono); letter-spacing: .12em; color: var(--ink-muted); }
.hud-sep { width: 1px; height: 18px; margin: 0 4px; background: var(--line); }
body.is-embed .hud, body.is-embed .progress { display: none; }

/* ---------- Visão geral ---------- */
.overview { position: fixed; inset: 0; z-index: 80; overflow: auto; box-sizing: border-box; padding: 28px 32px 40px; background: var(--bg); }
.overview[hidden] { display: none; }
.overview-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.overview-hint { font: 500 11px/1 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-subtle); }
.overview-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 18px; }
.thumb { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 12px; border: 1px solid var(--line); background: var(--bg); cursor: pointer; padding: 0; transition: border-color var(--dur-base), transform var(--dur-base) var(--ease-out); }
.thumb:hover, .thumb:focus-visible { border-color: var(--neon-line); transform: translateY(-2px); outline: none; }
.thumb.is-current { border-color: var(--neon); box-shadow: var(--glow-sm); }
.thumb-inner { position: absolute; left: 0; top: 0; width: 1120px; height: 630px; pointer-events: none; }
.thumb-num { position: absolute; left: 10px; bottom: 8px; z-index: 5; padding: 4px 8px; border-radius: var(--radius-pill); background: rgba(5, 7, 6, .85); font: 500 10px/1 var(--font-mono); letter-spacing: .12em; color: var(--ink-muted); }
.is-thumb, .is-thumb *, .is-thumb *::before, .is-thumb *::after { animation: none !important; transition: none !important; }
.is-thumb .nx-reveal > span { opacity: 1; transform: none; filter: none; }
.is-thumb .nx-scanline { display: none; }

/* ---------- Apresentador ---------- */
body.is-presenter .viewport { right: 400px; }
body.is-presenter .hud { opacity: 1; transform: none; right: 418px; }
body.is-presenter .hud [data-act="presenter"] { display: none; }
.presenter { position: fixed; top: 0; right: 0; bottom: 0; z-index: 40; width: 400px; box-sizing: border-box; padding: 18px; display: flex; flex-direction: column; gap: 14px; overflow: auto; background: var(--surface); border-left: 1px solid var(--line); }
.presenter[hidden] { display: none; }
.pr-block { padding: 14px; border-radius: var(--radius-md); border: 1px solid var(--line); background: var(--bg); }
.pr-label { margin-bottom: 10px; font: 500 10.5px/1 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-subtle); }
.pr-next { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 8px; border: 1px solid var(--line); }
.pr-next .thumb-inner { pointer-events: none; }
.pr-next-end { display: grid; place-items: center; height: 100%; font: 500 11px/1 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-subtle); }
.pr-time { font: 700 40px/1 var(--font-display); letter-spacing: -.02em; color: var(--ink); font-variant-numeric: tabular-nums; }
.pr-time small { margin-left: 8px; font: 500 12px/1 var(--font-mono); letter-spacing: .1em; color: var(--ink-subtle); }
.pr-time.is-over span { color: var(--neon); }
.pr-time-bar { height: 3px; margin: 12px 0; overflow: hidden; border-radius: 3px; background: var(--line); }
.pr-time-bar i { display: block; height: 100%; width: 0; background: var(--neon); transition: width 1s linear; }
.pr-actions { display: flex; gap: 8px; }
.pr-notes-wrap { flex: 1; }
.pr-notes { font: 400 16px/1.55 var(--font-sans); color: var(--ink); }
.pr-notes p { margin: 0 0 10px; }
.pr-notes .is-missing { background: none; outline: 0; }

/* ---------- Celular (modo leitura em rolagem) ---------- */
body.is-mobile { height: auto; overflow-x: hidden; overflow-y: auto; }
body.is-mobile .viewport { position: static; display: block; overflow: visible; }
body.is-mobile .stage { width: var(--mw, 400px); height: auto; }
body.is-mobile .stage > .slide { position: relative; inset: auto; width: auto; height: auto; min-height: var(--slide-min, 720px); display: flex; padding: 26px 22px 22px; animation: none; border-bottom: 1px solid var(--line); }
body.is-mobile .stage > .slide:not(.is-seen) *, body.is-mobile .stage > .slide:not(.is-seen) *::before, body.is-mobile .stage > .slide:not(.is-seen) *::after { animation-play-state: paused !important; }
body.is-mobile .slide-body { justify-content: flex-start; padding: 30px 0 34px; }
body.is-mobile .hud { display: none; }
body.is-mobile .nx-headline br { display: none; }
body.is-mobile .h-cover, body.is-mobile .h-xl { font-size: 40px; }
body.is-mobile .h-lg { font-size: 32px; }
body.is-mobile .h-md { font-size: 30px; }
body.is-mobile .nx-sub, body.is-mobile .lead { font-size: 17px; }
body.is-mobile .g-2, body.is-mobile .g-3, body.is-mobile .g-4, body.is-mobile .s01-cols, body.is-mobile .s08-cols, body.is-mobile .s10-cols, body.is-mobile .s12-grid, body.is-mobile .calc-row, body.is-mobile .calc-result { grid-template-columns: 1fr !important; }
body.is-mobile .s10-stats { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
body.is-mobile .s-10 .nx-stat-value { font-size: 40px; }
body.is-mobile .phone-col { margin-top: 28px; }
body.is-mobile .phone-wrap { zoom: .86; }
body.is-mobile .cards-row { margin-top: 26px; }
body.is-mobile .ficha-head, body.is-mobile .mods-head { display: none; }
body.is-mobile .ficha-row { grid-template-columns: 1fr; gap: 8px; padding: 14px 18px; }
body.is-mobile .mods-row { grid-template-columns: 1fr auto; row-gap: 6px; padding: 12px 16px; }
body.is-mobile .mods-row > span:nth-child(2) { grid-column: 1 / -1; order: 3; }
body.is-mobile .nx-steps { grid-template-columns: 1fr; gap: 22px; margin-top: 30px; }
body.is-mobile .nx-steps::before, body.is-mobile .nx-steps::after { top: 20px; bottom: 20px; left: 20px; right: auto; width: 1px; height: auto; transform-origin: top; animation-name: dm-grow-y; }
body.is-mobile .nx-step { padding-left: 58px; min-height: 40px; }
body.is-mobile .nx-step-num { position: absolute; left: 0; top: 0; }
body.is-mobile .nx-step h4 { margin-top: 8px; }
body.is-mobile .s11-prints, body.is-mobile .s11-prints.is-many { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px; }
body.is-mobile .partner-grid, body.is-mobile .video-grid { grid-template-columns: 1fr !important; }
body.is-mobile .s-videos .vid { width: min(70vw, 260px); justify-self: center; }
body.is-mobile .marco-num { font-size: 52px; }
body.is-mobile .print-phone { zoom: .44; }
body.is-mobile .print figcaption { font-size: 12px; }
body.is-mobile .s12-link { height: 64px; }
body.is-mobile .link-line { left: 50%; right: auto; top: 0; bottom: 0; width: 1px; height: auto; background: linear-gradient(180deg, var(--line-strong), var(--neon-line), var(--line-strong)); }
body.is-mobile .link-line::after { display: none; }
body.is-mobile .calc-op { height: 30px; }
body.is-mobile .calc-op.is-eq { display: none; }
body.is-mobile .calc-result { padding: 18px 20px; }
body.is-mobile .calc-total { font-size: 46px; }
body.is-mobile .calc-meta { justify-content: flex-start; flex-wrap: wrap; gap: 18px 26px; }
body.is-mobile .slide-foot { flex-direction: column; gap: 6px; }
body.is-mobile .s-06 .nx-orb, body.is-mobile .s-20 .nx-orb, body.is-mobile .s-01 .nx-orb { width: 420px; height: 420px; }

/* ---------- Impressão / PDF ---------- */
@media print {
  @page { size: 1120px 630px; margin: 0; }
  html, body { height: auto; overflow: visible; background: var(--bg); -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .viewport { position: static; display: block; overflow: visible; }
  .stage { zoom: 1 !important; transform: none !important; width: 1120px !important; height: auto !important; }
  .stage > .slide { position: relative !important; display: flex !important; width: 1120px !important; height: 630px !important; min-height: 0 !important; padding: 40px 72px 32px !important; break-after: page; page-break-after: always; border: 0 !important; }
  .stage > .slide.is-hidden { display: none !important; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .nx-reveal > span { opacity: 1 !important; transform: none !important; filter: none !important; }
  .hud, .progress, .overview, .presenter, .nx-scanline, .nx-caret, .nx-toast { display: none !important; }
  /* desfoque e brilho viram retângulos no PDF: troca por versões chapadas */
  .nx-orb { filter: none !important; background: radial-gradient(circle, rgba(43, 255, 136, .16), transparent 60%) !important; }
  *, *::before, *::after { box-shadow: none !important; text-shadow: none !important; }
  .nx-shimmer { background: none !important; -webkit-background-clip: border-box !important; background-clip: border-box !important; color: var(--neon) !important; }
}

/* ---------- Animações próprias ---------- */
@keyframes dm-in { from { opacity: 0; } }
@keyframes dm-out { to { opacity: 0; } }
@keyframes dm-up { from { opacity: 0; translate: 0 14px; } }
@keyframes dm-bar { from { transform: scaleY(0); } }
@keyframes dm-grow-y { from { transform: scaleY(0); } }
@keyframes dm-icon-in { from { opacity: 0; transform: scale(.6); } 70% { transform: scale(1.06); } }
@keyframes dm-flow { from { transform: translateX(-40px); } to { transform: translateX(100px); } }
/* a varredura percorre a altura do slide, não da janela */
@keyframes nx-scan { from { transform: translateY(-140px); } to { transform: translateY(700px); } }

/* ajuste fino do slide 15 */
.s-15 .cards-row { margin-top: 28px; }
.s-15 .callout { margin-top: 16px; }
