/* Infinity AI — apresentação em tela cheia (usa infinity.css). */

/* ============ PALCO EM TELA CHEIA ============ */
/* O conteúdo do slide (1600×900) escala para caber inteiro e fica centralizado; o fundo, os efeitos
   e o HUD ocupam a tela toda, em qualquer proporção (16:9, 16:10, ultrawide, 4:3). */
html,body{height:100%}
body.deck{overflow:hidden;background:var(--bg)}
.deck .stage-fit{position:fixed;inset:0;width:auto;aspect-ratio:auto;overflow:hidden;overflow:clip}
.deck .stage{border-radius:0;box-shadow:none;overflow:visible;background:transparent}
.deck .bg-fx.fullbleed{position:absolute;inset:0;border-radius:0}
.deck .bg-fx.fullbleed .pt{animation-name:rise-screen}
@keyframes rise-screen{0%{transform:translateY(0);opacity:0}10%,85%{opacity:1}100%{transform:translateY(-110vh) translateX(var(--x,30px));opacity:0}}
.deck .bg-fx.fullbleed .pt{left:calc(var(--lx) * 1%)}
/* efeitos de transição e abertura cobrem também as sobras laterais/verticais */
.deck .cam-fx{inset:-1200px}
.deck .intro-bg{inset:-2000px}

/* ============ HUD: cantos reais da tela ============ */
.hud{position:absolute;inset:0;pointer-events:none;z-index:30}
.hud>*{pointer-events:auto}
.deck .stage-logo{position:absolute;left:clamp(20px,3vw,64px);top:clamp(16px,3.6vh,48px);height:clamp(40px,5.4vh,72px);width:auto;transition:opacity .6s var(--ease)}
.deck .stage.on-cover~.hud .stage-logo,.deck .stage.intro-on~.hud .stage-logo{opacity:0}
.hud .cam-nav{right:clamp(16px,2.4vw,48px);bottom:clamp(16px,3vh,40px)}
.hud .dock{position:absolute;left:clamp(16px,2vw,32px);top:clamp(16px,2vw,32px);bottom:clamp(16px,2vw,32px);width:300px;z-index:7;transform:translateX(calc(-100% - 40px));opacity:0;visibility:hidden;
  transition:transform .7s var(--ease),opacity .4s,visibility 0s .7s}
.stage.menu-open~.hud .dock{transform:none;opacity:1;visibility:visible;transition:transform .7s var(--ease),opacity .3s}
.hud .dock-head{position:relative;display:flex;align-items:center;justify-content:space-between;padding:4px 4px 0 12px;font:600 13px var(--f-ui);letter-spacing:.08em;text-transform:uppercase;color:#7f9ea1}
.hud .scrim{position:absolute;inset:0;z-index:6;background:rgba(6,24,27,.22);opacity:0;visibility:hidden;transition:opacity .5s,visibility 0s .5s;border:0;padding:0;cursor:default}
.stage.menu-open~.hud .scrim{opacity:1;visibility:visible;transition:opacity .5s}
.stage.intro-on~.hud .cam-nav{opacity:0}

/* ============ PEÇAS COMUNS ============ */
.center{text-align:center;margin-inline:auto}
.ghost{position:absolute;display:flex;align-items:center;gap:12px;padding:12px 16px 12px 12px;font-weight:600;font-size:17px;color:var(--ink-2)}
.ghost .pend{margin-left:4px;padding:3px 9px;border-radius:999px;background:rgba(227,160,42,.16);color:#8a5a06;font-size:14px;font-weight:650}

/* ============ CAPA ============ */
.s-cover .cover{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:34px;text-align:center}
.s-cover .cover-logo{width:560px;height:auto}
.s-cover .t-lead{font-size:40px;color:var(--ink);max-width:16em}
.s-cover .t-lead em{font-style:normal;color:var(--teal-d)}

/* ============ 01 ============ */
.s-01 .head{position:absolute;left:160px;right:160px;top:170px;display:grid;gap:40px;justify-items:center;z-index:2}
.s-01 .panel{width:760px;padding:30px 40px;display:grid;gap:12px;text-align:center}
.s-01 .panel .t-body{margin-inline:auto}

/* ============ 07: segurança ============ */
.s-07 .node,.s-07 .llms{z-index:1}
.s-07 .node{position:absolute;padding:24px;display:flex;flex-direction:column;gap:10px;border-radius:24px}
.s-07 .node h3{margin:auto 0 0;font:650 26px/1.2 var(--f-ui);letter-spacing:-.03em;display:flex;align-items:center;gap:12px}
.s-07 .node p{margin:0;font-size:16px;line-height:1.4}
.s-07 .node.ink p{color:var(--on-ink-2)}
.s-07 .node.glass p{color:var(--ink-2)}
.s-07 .n-hub{left:110px;top:360px;width:250px;height:230px}
.s-07 .n-agent{left:810px;top:360px;width:250px;height:230px}
.s-07 .n-ctrl{left:450px;top:330px;width:270px;height:290px;align-items:center;text-align:center}
.s-07 .n-ctrl h3{margin:0;display:block}
.s-07 .shield{position:relative;width:110px;height:110px;margin:10px auto 8px;display:grid;place-items:center;border-radius:50%;color:var(--teal-d)}
.s-07 .shield .icon{width:72px;height:72px;stroke-width:1.4}
.s-07 .shield:before,.s-07 .shield:after{content:"";position:absolute;inset:-8px;border-radius:50%;border:1.5px solid rgba(11,141,150,.35);opacity:0;animation:shieldWave 2.4s ease-out infinite}
.s-07 .shield:after{animation-delay:1.2s}
@keyframes shieldWave{0%{transform:scale(.9);opacity:.9}100%{transform:scale(1.35);opacity:0}}
.s-07 .llms{position:absolute;left:1150px;top:330px;width:340px;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.s-07 .llm{height:86px;display:flex;align-items:center;justify-content:center;gap:10px;border-radius:18px;font:650 17px/1.3 var(--f-ui);letter-spacing:-.02em;color:var(--ink-2);text-align:left;white-space:nowrap;padding:0 10px;transition:color .4s}
/* balanceamento: o modelo em uso muda de tempos em tempos (um ciclo de 9s passa por todos) */
.s-07 .llm{animation:llmUse 9s ease-in-out infinite;animation-delay:calc(var(--k) * 1.5s)}
.s-07.is-active .llm[data-in="rise"]{animation:rise var(--t-enter) var(--ease) backwards,llmUse 9s ease-in-out infinite;animation-delay:calc(var(--d0,0ms) + var(--d,0ms)),calc(var(--k) * 1.5s)}
@keyframes llmUse{0%,3%{box-shadow:inset 0 1px 0 rgba(255,255,255,.95),var(--sh-1)}8%,14%{box-shadow:inset 0 0 0 2px var(--cyan),0 18px 30px -18px rgba(11,141,150,.7);color:var(--teal-d)}19%,100%{box-shadow:inset 0 1px 0 rgba(255,255,255,.95),var(--sh-1)}}
.s-07-wires{position:absolute;left:0;top:0;width:1600px;height:900px;pointer-events:none}
.s-07-wires svg{position:absolute;inset:0;overflow:visible}
.s-07-wires path{fill:none;stroke-width:2.5;stroke-linecap:round}
.s-07-wires .w-data{stroke:var(--lime-d);stroke-dasharray:3 8}
.s-07-wires .w-req{stroke:var(--cyan)}
/* dados (lima) vão até o escudo e voltam: não atravessam a camada de controle */
.packet.data{animation:dataReturn 2.8s var(--ease) infinite;animation-delay:var(--pdl,0s)}
@keyframes dataReturn{0%{offset-distance:0%;opacity:0}10%{opacity:1}50%{offset-distance:100%;opacity:1}60%{offset-distance:100%;transform:scale(.4);opacity:0}100%{offset-distance:0%;opacity:0}}
/* pedidos (ciano) seguem para o modelo em uso, no mesmo ritmo do balanceamento */
.packet.req{animation:reqRun 9s linear infinite;animation-delay:calc(var(--k) * 1.5s)}
@keyframes reqRun{0%,4%{offset-distance:0%;opacity:0}5%{opacity:1}12%{offset-distance:100%;opacity:1}14%,100%{offset-distance:100%;opacity:0}}
.s-07 .body{position:absolute;left:250px;right:250px;top:690px;text-align:center}
.s-07 .body .t-body{margin-inline:auto;font-size:22px}
.s-07 .llm svg{width:26px;height:26px;flex:none;fill:currentColor}

/* ============ CARREGAMENTO (abre a apresentação) ============ */
/* No escuro, o infinito do logotipo original se desenha seguindo a fita, o "AI" acende dentro do laço
   e o nome aparece da esquerda para a direita; depois o fundo clareia e o logo pousa na capa. */
.intro{position:absolute;inset:0;z-index:20;pointer-events:none}
.intro-bg{position:absolute;inset:0;background:radial-gradient(70% 70% at 50% 45%,#0c3a35 0%,#071b1e 55%,#041214 100%)}
.intro-bg:after{content:"";position:absolute;inset:0;opacity:.06;background-image:radial-gradient(rgba(255,255,255,.9) 1px,transparent 1.4px);background-size:28px 28px;
  -webkit-mask-image:radial-gradient(60% 60% at 50% 45%,#000,transparent);mask-image:radial-gradient(60% 60% at 50% 45%,#000,transparent)}
.intro-logo{position:absolute;left:480px;top:250px;width:640px;height:349px;transform-origin:0 0}
.intro-logo svg,.intro-logo img{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.intro-logo .light-logo{opacity:0}
.intro-logo .head{fill:#efffc2;filter:url(#headGlow)}
.intro-meter{position:absolute;left:680px;top:660px;width:240px;display:grid;gap:12px;justify-items:center;transition:opacity .5s var(--ease)}
.intro-meter .bar{width:100%;height:2px;border-radius:2px;background:rgba(255,255,255,.1);overflow:hidden}
.intro-meter .bar i{display:block;height:100%;width:calc(var(--p,0) * 1%);border-radius:2px;background:linear-gradient(90deg,var(--lime),var(--cyan))}
.intro-meter .pct{font:500 14px var(--f-ui);letter-spacing:.16em;color:rgba(230,243,240,.6);font-variant-numeric:tabular-nums}
.intro.leaving .intro-meter{opacity:0}
.stage.intro-on .s-cover .cover-logo{opacity:0}

/* ============ DOLLY ============ */
.dolly .frame{visibility:hidden;transform-origin:50% 50%}
.dolly .frame.is-active,.dolly .frame.leaving{visibility:visible}
.dolly .frame.leaving{z-index:2;pointer-events:none}
.dolly .cam-layer{transform-origin:800px 450px}

/* ============ SLIDES ============ */
.frame .head{position:absolute;left:150px;right:150px;top:64px;display:grid;gap:14px;justify-items:center;text-align:center}
.note{position:absolute;left:0;right:0;bottom:24px;text-align:center;font-size:16px;color:var(--muted)}
.row2{position:absolute;left:150px;right:150px;display:grid;grid-template-columns:1fr 1fr;gap:22px}
.txt{padding:26px 30px;border-radius:22px}
.txt .t-body{font-size:20px}
.hl.warn{background-image:linear-gradient(90deg,var(--amber),#f2c25c)}

/* 02 */
.s-02 .cards{position:absolute;left:130px;right:130px;top:248px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.gcard{padding:12px 12px 22px;border-radius:26px}
.screen{position:relative;height:220px;border-radius:18px;padding:20px;overflow:hidden;isolation:isolate}
.screen .num{font:650 42px/1 var(--f-ui);letter-spacing:-.04em;color:#f3faf7;position:relative;z-index:2}
.screen .cap{display:flex;align-items:center;gap:7px;margin-top:8px;font-size:15px;color:var(--on-ink-2);position:relative;z-index:2}
.screen .cap i{width:8px;height:8px;border-radius:50%;background:var(--lime)}
.screen .cap i.alt{background:#5f8487}
.gcard h3{margin:18px 10px 6px;font:650 23px/1.2 var(--f-ui);letter-spacing:-.03em}
.gcard p{margin:0 10px;font-size:16.5px;line-height:1.5;color:var(--ink-2)}
.c1 .chart{position:absolute;left:0;right:0;bottom:0;height:130px;color:var(--lime)}
.c1 .legend{position:absolute;right:18px;top:22px;display:grid;gap:4px;z-index:2}
.c1 .legend .cap{margin:0}
.c2 .orbit{position:absolute;left:50%;top:58%;width:130px;height:130px;translate:-50% -50%;display:grid;place-items:center}
.c2 .orbit .wave{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(168,228,75,.4);opacity:0;animation:ringWave 3s ease-out infinite}
.c2 .orbit .wave:nth-child(2){animation-delay:1s}.c2 .orbit .wave:nth-child(3){animation-delay:2s}
.c2 .orbit svg.arc{position:absolute;inset:6px;width:calc(100% - 12px);height:calc(100% - 12px);transform:rotate(-90deg)}
.c2 .orbit svg.arc circle{fill:none;stroke:var(--lime);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:.3 1;animation:arcSpin 2.4s linear infinite}
@keyframes arcSpin{to{stroke-dashoffset:-1}}
@keyframes ringWave{0%{transform:scale(.45);opacity:.9}100%{transform:scale(1.35);opacity:0}}
.c2 .orbit .core{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;color:var(--on-lime);background:radial-gradient(circle at 35% 30%,#e9ffa8,var(--lime) 55%,#8fcf2c);box-shadow:0 10px 30px -8px rgba(120,173,28,.8)}
.c2 .orbit .core .icon{width:26px;height:26px}
.c2 .pct{position:absolute;right:20px;bottom:18px;z-index:2;text-align:right}
.c2 .pct .num{font-size:34px}
.c3 .mods{list-style:none;display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:24px 0 0;padding:0;text-align:center}
.c3 .mods b{display:block;font-size:13px;font-weight:600;letter-spacing:.06em;color:var(--on-ink-2);margin-bottom:8px}
.c3 .mods i{display:grid;place-items:center;width:30px;height:30px;margin:auto;border-radius:50%;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.06);color:var(--on-lime)}
.c3 .mods .on i{background:radial-gradient(circle at 35% 30%,#e9ffa8,var(--lime) 60%)}
.c3 .mods .icon{width:15px;height:15px;stroke-width:2.4}
.s-02.is-active .c3 .mods i{animation:iconIn .7s var(--spring) backwards;animation-delay:calc(var(--d0,0ms) + var(--cd,0ms) + 500ms + var(--k) * 90ms)}
.c3 .total{display:flex;align-items:baseline;gap:10px;margin-top:24px;color:var(--on-ink-2);font-size:15px}
.c3 .total .num{font-size:30px;color:var(--lime)}
.c3 .total .pctv{margin-left:auto;color:#e6f3f0;font-weight:600}
.c3 .bar{height:7px;border-radius:9px;background:rgba(255,255,255,.08);margin-top:12px;overflow:hidden}
.c3 .bar span{display:block;height:100%;width:43%;border-radius:9px;background:linear-gradient(90deg,var(--cyan),var(--lime))}

/* 03 */
.s-03 .signals{position:absolute;left:250px;right:250px;top:260px;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.sig{padding:22px 24px;border-radius:22px;display:grid;gap:6px;min-height:200px;align-content:end}
.sig h3{margin:12px 0 0;font:650 26px/1.2 var(--f-ui);letter-spacing:-.03em;color:#f3faf7}
.sig p{margin:0;font-size:17px;color:var(--on-ink-2)}
.viz-err{display:grid;gap:6px}
.viz-err span{display:flex;align-items:center;gap:8px;height:16px}
.viz-err span i{width:60%;height:6px;border-radius:4px;background:rgba(255,255,255,.14)}
.viz-err span b{flex:1}
.viz-err .icon{width:16px;height:16px;stroke-width:2.6;color:var(--lime)}
.viz-err span:nth-child(2) .icon,.viz-err span:nth-child(4) .icon{color:var(--amber);animation:errBlink 2.8s ease-in-out infinite;animation-delay:calc(var(--k) * .4s)}
@keyframes errBlink{0%,100%{opacity:.35}40%,60%{opacity:1}}
.viz-late{position:relative;width:70px;height:70px}
.viz-late .dial{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(255,255,255,.3)}
.viz-late .due{position:absolute;left:50%;top:50%;width:2px;height:31px;margin-left:-1px;background:var(--amber);transform-origin:50% 0;transform:rotate(-120deg)}
.viz-late .hand{position:absolute;left:50%;top:50%;width:3px;height:28px;margin-left:-1.5px;border-radius:2px;background:var(--lime);transform-origin:50% 0;animation:lateHand 4s cubic-bezier(.4,0,.3,1) infinite}
@keyframes lateHand{0%{transform:rotate(150deg)}70%,100%{transform:rotate(280deg)}}
.viz-drift{width:180px;height:64px;overflow:visible}
.viz-drift path{fill:none;stroke-width:3;stroke-linecap:round}
.viz-drift .plan{stroke:rgba(255,255,255,.3);stroke-dasharray:5 7}
.viz-drift .real{stroke:var(--amber);stroke-dasharray:1;animation:driftDraw 3.6s var(--ease) infinite}
@keyframes driftDraw{0%{stroke-dashoffset:1}60%,100%{stroke-dashoffset:0}}
.s-03 .row2{top:510px}
.islands-card{display:grid;gap:14px}
.islands{position:relative;display:flex;gap:12px;align-items:center}
.isle{display:flex;align-items:center;gap:7px;padding:8px 12px;border-radius:12px;background:rgba(11,141,150,.08);color:var(--teal-d);font-size:15px;font-weight:600;border:1px dashed rgba(11,141,150,.35)}
.isle .icon{width:16px;height:16px}
.isle small{font-size:inherit}
.risk{margin-left:auto;color:var(--amber);animation:errBlink 2.4s ease-in-out infinite}
.risk .icon{width:26px;height:26px}

/* 04 */
.s-04 .core{position:absolute;left:660px;top:130px;width:740px;height:520px;padding:56px;overflow:hidden}
.s-04 .core .t-title{color:#f3faf7;margin:22px 0 14px;text-align:left}
.s-04 .core .t-body{margin-top:22px}
.s-04 .sources{position:absolute;left:220px;top:150px;display:grid;gap:16px;width:270px}
.s-04 .src{display:flex;align-items:center;gap:14px;padding:12px 18px 12px 12px;font-size:19px;font-weight:600;color:var(--ink-2)}
.s-04 .links{position:absolute;left:490px;top:150px;width:170px;height:400px}
.s-04 .links svg{width:170px;height:400px;overflow:visible}
.s-04 .links path{fill:none;stroke:var(--cyan);stroke-width:2.5;stroke-linecap:round}
.s-04 .packets{position:absolute;inset:0}
.s-04 .lake{position:absolute;left:880px;top:690px;width:520px;padding:20px 24px;display:flex;align-items:center;gap:14px}
.s-04 .lake strong{font-size:22px;letter-spacing:-.02em}
.s-04 .lake span{font-size:16px;color:#2d4a12}
.s-04 .lake .lake-n{margin-left:auto;text-align:right}
.s-04 .lake .lake-n b{display:block;font-size:26px;letter-spacing:-.03em;color:var(--on-lime)}
.s-04 .lake .lake-n small{white-space:nowrap;font-size:14px;color:#2d4a12}

/* 05 */
.s-05 .orch{position:absolute;left:200px;right:200px;top:240px;height:330px;border-radius:26px;overflow:hidden}
.orch-top{position:absolute;left:28px;right:28px;top:24px;display:flex;gap:8px;align-items:center}
.orch-top .always{margin-left:auto;display:flex;align-items:center;gap:10px;color:#f3faf7;font-size:22px}
.orch-top .viz-clock{width:30px;height:30px}
.orch-top .viz-clock:before{height:11px}
.orch-wire,.orch-pk{position:absolute;left:0;top:0;width:1200px;height:300px}
.orch-wire{overflow:visible}
.orch-wire path{fill:none;stroke:rgba(25,195,208,.6);stroke-width:2.5;stroke-linecap:round}
.orch-wire .exc{stroke:rgba(227,160,42,.6);stroke-dasharray:4 7}
.packet.exc{background:var(--amber);box-shadow:0 0 0 4px rgba(227,160,42,.25)}
.agents{position:absolute;left:100px;right:100px;top:118px;display:flex;justify-content:space-between}
.agent{display:grid;justify-items:center;gap:8px;width:120px}
.agent .tile-icon{width:62px;height:62px;border-radius:20px;background:#0f3a40;border-color:rgba(255,255,255,.12)}
.agent .tile-icon .icon{width:28px;height:28px;color:var(--lime)}
.agent b{font-size:15px;font-weight:600;color:var(--on-ink-2)}
.agent .tile-icon{animation:agentTask 4.2s ease-in-out infinite;animation-delay:calc(var(--k) * .84s)}
@keyframes agentTask{0%,100%{box-shadow:none}8%,16%{box-shadow:0 0 0 3px rgba(168,228,75,.55)}}
.people{position:absolute;left:510px;top:262px;display:flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:rgba(227,160,42,.16);color:#f6d38b;font-size:15px;font-weight:600}
.people .icon{width:16px;height:16px}
.s-05 .row2{top:600px}
.s-05 .txt .t-body{font-size:18px}

/* 06 */
.s-06 .trio{position:absolute;left:250px;right:250px;top:300px;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.res{padding:24px;border-radius:22px;min-height:230px;display:grid;gap:6px;align-content:end}
.res h3{margin:12px 0 0;font:650 25px/1.2 var(--f-ui);letter-spacing:-.03em;color:#f3faf7}
.res p{margin:0;font-size:17px;color:var(--on-ink-2)}
.viz-up{display:flex;align-items:flex-end;gap:5px;height:70px}
.viz-up i{width:12px;height:var(--h);border-radius:3px;background:var(--lime);transform-origin:50% 100%;animation:upGrow 2.4s var(--ease) infinite;animation-delay:calc(var(--k) * 90ms)}
@keyframes upGrow{0%{transform:scaleY(.1)}40%,100%{transform:scaleY(1)}}
.viz-done{display:grid;gap:7px}
.viz-done span{display:flex;align-items:center;gap:8px}
.viz-done i{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:rgba(255,255,255,.1);color:var(--on-lime);animation:doneTick 2.4s ease-in-out infinite;animation-delay:calc(var(--k) * .25s)}
.viz-done i .icon{width:11px;height:11px;stroke-width:3}
.viz-done b{height:6px;flex:1;border-radius:4px;background:rgba(255,255,255,.14)}
@keyframes doneTick{0%,10%{background:rgba(255,255,255,.1)}25%,100%{background:var(--lime)}}
.viz-down{width:200px;height:80px;overflow:visible}
.viz-down path{fill:none;stroke:var(--cyan);stroke-width:3;stroke-linecap:round;stroke-dasharray:1;animation:driftDraw 2.4s var(--ease) infinite}
.viz-down .area{fill:rgba(25,195,208,.14);stroke:none;animation:none}
.s-06 .foot-txt{position:absolute;left:280px;right:280px;top:580px;display:grid;gap:12px;justify-items:center;text-align:center}
.s-06 .foot-txt .t-body{margin-inline:auto;font-size:21px}

/* 09 */
.s-09 .hub{position:absolute;left:130px;top:220px;width:920px;padding:18px;border-radius:26px}
.hub-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.hub-brand{display:flex;align-items:center;gap:8px;font-weight:650;color:var(--ink-2)}
.hub-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:14px}
.s-09 .kpi{padding:20px 22px;min-height:190px;display:flex;flex-direction:column;border-radius:20px}
.s-09 .kpi .top-row{display:flex;justify-content:space-between;align-items:center;gap:12px}
.s-09 .kpi .v{font:650 60px/1 var(--f-ui);letter-spacing:-.04em;margin-top:auto}
.s-09 .kpi .l{font-size:16px;color:var(--muted);margin-top:6px}
.s-09 .kpi.ink .l{color:var(--on-ink-2)}
.s-09 .kpi.wide{grid-column:1/-1;min-height:150px}
.s-09 .kpi.wide .chart{position:relative;height:84px;margin-top:10px;color:var(--teal)}
.s-09 .kpi.wide .chart svg{width:840px;height:80px}
.s-09 .insights{position:absolute;left:1080px;right:130px;top:220px;display:grid;gap:16px}
.ins{padding:20px 22px;border-radius:20px;display:flex;gap:14px;align-items:flex-start}
.ins h3{margin:0;font:650 22px/1.2 var(--f-ui);letter-spacing:-.02em}
.ins p{margin:4px 0 0;font-size:16px}
.ins.ink h3{color:#f3faf7}.ins.ink p{color:var(--on-ink-2)}.ins.glass p{color:var(--ink-2)}

/* 11 */
.s-11 .vision{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:40px;padding:0 160px;text-align:center}
.s-11 .vision-logo{width:390px;height:auto}
.s-11 .sign{color:var(--teal-d);font-size:44px}

/* conteúdo do slide centralizado na vertical (deslocamento medido pela câmera) */
.frame-in{position:absolute;inset:0;translate:0 var(--cy,0px)}

/* ============ RODADA 2 ============ */
.s-07 .node.float{--fa:.4}
.deck .stage.on-last~.hud .stage-logo{opacity:0}

/* 08: workflow — dados soltos convergem no iHub, o iAgent distribui para os processos e tudo vira insight */
.wf-layer{position:absolute;inset:0}
.wf-wire{position:absolute;inset:0;width:1600px;height:900px;overflow:visible}
.wf-wire path{fill:none;stroke:rgba(25,195,208,.55);stroke-width:2.5;stroke-linecap:round}
.wf-wire .exc{stroke:rgba(227,160,42,.7);stroke-dasharray:4 7}
.wf-pk{position:absolute;inset:0}
.raw{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--c);font-style:normal;animation:rawFlow var(--pd,3.5s) cubic-bezier(.5,0,.8,.4) infinite;animation-delay:var(--pdl,0s)}
.raw.lab{width:auto;height:auto;border-radius:0;background:none;font:600 15px var(--f-ui);letter-spacing:.04em;color:var(--teal-d);white-space:nowrap;animation:labBob 3.4s ease-in-out infinite alternate;animation-delay:var(--pdl,0s)}
@keyframes labBob{from{translate:0 -3px}to{translate:0 3px}}
@keyframes rawFlow{0%{transform:translate(0,0);opacity:0}15%{opacity:1}80%{opacity:.9}100%{transform:translate(var(--tx),var(--ty)) scale(.4);opacity:0}}
.wf-engine{position:absolute;top:330px;width:200px;height:180px;padding:22px;border-radius:24px;display:grid;justify-items:center;align-content:center;gap:6px;text-align:center}
.wf-engine.hub-e{left:370px}
.wf-engine.agent-e{left:640px;width:190px}
.wf-engine h3{margin:0;display:flex;align-items:center;gap:10px;font:650 26px/1.2 var(--f-ui);letter-spacing:-.03em;color:#f3faf7}
.wf-engine small{font-size:15px;color:var(--on-ink-2)}
.eng-icon{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:18px;background:rgba(168,228,75,.12);border:1px solid rgba(168,228,75,.35);color:var(--lime);animation:engPulse 2.6s ease-in-out infinite}
.eng-icon .icon{width:22px;height:22px}
@keyframes engPulse{50%{box-shadow:0 0 0 8px rgba(168,228,75,.08)}}
.wf-proc{position:absolute;left:930px;width:200px;height:52px;padding:0 18px;border-radius:14px;display:flex;align-items:center;gap:10px;font-size:17px;font-weight:600;color:var(--ink)}
.wf-proc .dot{width:8px;height:8px;border-radius:2px;background:var(--cyan)}
.wf-live{position:absolute;left:1230px;top:250px;width:290px;padding:18px;border-radius:22px;display:grid;gap:14px}
.live-head{display:flex;align-items:center;justify-content:space-between}
.live-head b{font-size:18px;letter-spacing:-.02em}
.donut{display:flex;align-items:center;gap:14px}
.donut svg{width:84px;height:84px;transform:rotate(-90deg)}
.donut circle{fill:none;stroke-width:6}
.donut .trk{stroke:rgba(12,32,36,.08)}
.donut .seg.a{stroke:var(--teal)}.donut .seg.b{stroke:var(--lime)}.donut .seg.c{stroke:var(--cyan)}.donut .seg.d{stroke:var(--ink-2)}
.donut .seg{animation:segIn 1.4s var(--ease) backwards}
@keyframes segIn{from{stroke-dasharray:0 100}}
.donut .legend{display:grid;gap:5px;font-size:14px;color:var(--ink-2)}
.donut .legend span{display:flex;align-items:center;gap:7px}
.donut .legend i{width:8px;height:8px;border-radius:2px}
.donut .legend .a{background:var(--teal)}.donut .legend .b{background:var(--lime)}.donut .legend .c{background:var(--cyan)}.donut .legend .d{background:var(--ink-2)}
.spark{width:254px;height:58px;overflow:visible}
.spark .area{fill:rgba(11,141,150,.12)}
.spark .ln{fill:none;stroke:var(--teal);stroke-width:2;stroke-linejoin:round}
.wf-people{position:absolute;left:945px;top:640px;padding:10px 16px;border-radius:999px;display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:#8a5a06}
.wf-people .icon{width:18px;height:18px;color:var(--amber)}

/* 10: os 9 motivos em grade, cada card com o ícone do que afirma e flutuação leve */
.reasons-grid{position:absolute;left:170px;right:170px;top:270px;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.belt-card{height:150px;padding:18px 20px;border-radius:22px;display:grid;grid-template-rows:auto 1fr;gap:14px;align-content:start}
.belt-card span{font-size:19px;font-weight:600;line-height:1.3;color:var(--ink);align-self:end}
.belt-icon{height:44px;display:flex;align-items:center;color:var(--teal)}
.mi{position:relative;display:block;width:72px;height:44px}
/* não substitui: os blocos ficam; a ligação entre eles acende */
.mi-keep{display:flex;align-items:center;gap:12px}
.mi-keep i{width:16px;height:16px;border-radius:4px;border:2.5px solid currentColor;background:#fff;position:relative;z-index:1}
.mi-keep:before{content:"";position:absolute;left:8px;right:8px;top:50%;height:2.5px;margin-top:-1px;background:linear-gradient(90deg,transparent,var(--lime-d),transparent) 0 0/40% 100% no-repeat;animation:linkRun 1.8s linear infinite}
/* potencializa: o uso sobe */
.mi-boost{display:flex;align-items:flex-end;gap:4px}
.mi-boost i{width:8px;height:var(--h);border-radius:2px;background:currentColor;transform-origin:50% 100%;animation:upGrow 2.4s var(--ease) infinite;animation-delay:calc(var(--k) * 80ms)}
.mi-boost i:last-child{background:var(--lime-d)}
/* analisa e estrutura: pontos soltos entram em fila */
.mi-order{display:grid;grid-template-columns:repeat(3,8px);gap:6px;align-content:center;width:auto}
.mi-order i{width:8px;height:8px;border-radius:2px;background:currentColor;animation:order 3s var(--ease) infinite;animation-delay:calc(var(--k) * 60ms)}
@keyframes order{0%,10%{translate:var(--sx) var(--sy);rotate:45deg;opacity:.5}45%,90%{translate:0 0;rotate:0deg;opacity:1}100%{translate:var(--sx) var(--sy);rotate:45deg;opacity:.5}}
/* fim do isolamento: as ilhas se conectam */
.mi-join svg{position:absolute;inset:0;width:64px;height:40px;overflow:visible}
.mi-join path{fill:none;stroke:currentColor;stroke-width:2;stroke-dasharray:1;animation:joinDraw 3s var(--ease) infinite}
@keyframes joinDraw{0%{stroke-dashoffset:1}50%,90%{stroke-dashoffset:0}100%{stroke-dashoffset:1}}
.mi-join i{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#fff;border:2.5px solid currentColor}
/* exceção: as tarefas seguem na esteira; só uma desce para a pessoa */
.mi-except b{position:absolute;left:0;right:14px;top:12px;height:2px;background:rgba(11,141,150,.3)}
.mi-except i{position:absolute;left:0;top:9px;width:8px;height:8px;border-radius:50%;background:currentColor;animation:lane 2.4s linear infinite;animation-delay:calc(var(--k) * -.8s)}
@keyframes lane{from{translate:0 0}to{translate:58px 0}}
.mi-except i.out{background:var(--amber);animation:dropOut 2.4s var(--ease) infinite}
@keyframes dropOut{0%{translate:0 0}40%{translate:30px 0}75%,100%{translate:30px 22px;opacity:0}}
.mi-except .icon{position:absolute;left:26px;bottom:-2px;width:18px;height:18px;color:var(--amber)}
/* visibilidade total: o radar varre e encontra cada ponto */
.mi-vision{width:44px;border-radius:50%}
.mi-vision .ring{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(11,141,150,.45)}
.mi-vision .ring.r2{inset:11px}
.mi-vision .sweep{position:absolute;left:50%;top:0;width:2px;height:50%;margin-left:-1px;border-radius:2px;background:var(--teal);transform-origin:50% 100%;animation:spin 2.6s linear infinite}
@keyframes spin{to{rotate:360deg}}
.mi-vision b{position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px;border-radius:50%;background:var(--lime-d);translate:var(--x) var(--y);animation:blip 2.6s ease-out infinite}
.mi-vision b:nth-of-type(2){animation-delay:.9s}.mi-vision b:nth-of-type(3){animation-delay:1.7s}
@keyframes blip{0%{opacity:1;scale:1.4}60%,100%{opacity:.25;scale:1}}
/* fim da lentidão: o ponteiro vai para o rápido */
.mi-fast svg{position:absolute;left:0;top:4px;width:60px;height:34px;overflow:visible}
.mi-fast .arc{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;opacity:.45}
.mi-fast .needle{position:absolute;left:28.5px;top:34px;width:3px;height:22px;margin-top:-22px;border-radius:2px;background:var(--lime-d);transform-origin:50% 100%;animation:needle 2.8s var(--ease) infinite}
@keyframes needle{0%{rotate:-70deg}45%,85%{rotate:62deg}100%{rotate:-70deg}}
/* 24/7: o relógio não para */
.mi-clock{display:flex;align-items:center;gap:10px;width:auto}
.mi-clock:before{content:"";width:40px;height:40px;border-radius:50%;border:2.5px solid currentColor;box-sizing:border-box}
.mi-clock .hand{position:absolute;left:19px;top:22px;width:2.5px;height:13px;margin-top:-13px;border-radius:2px;background:var(--lime-d);transform-origin:50% 100%;animation:spin 4s linear infinite}
.mi-clock b{font-size:18px;color:var(--teal-d)}
/* fim das cobranças: o valor é riscado */
.mi-nocost{display:flex;align-items:center}
.mi-nocost b{font-size:24px;font-weight:700;color:var(--teal-d);padding:4px 10px;border:2px dashed rgba(11,141,150,.5);border-radius:10px}
.mi-nocost .strike{position:absolute;left:-2px;top:50%;width:64px;height:3px;margin-top:-1.5px;border-radius:3px;background:var(--amber);transform-origin:0 50%;rotate:-14deg;animation:strike 2.8s var(--ease) infinite}
@keyframes strike{0%,10%{scale:0 1}40%,90%{scale:1 1}100%{scale:1 1;opacity:0}}

/* ============ MODO APRESENTAÇÃO: cursor e barra somem com o mouse parado ============ */
body.deck.idle,body.deck.idle *{cursor:none!important}
.hud .cam-nav{transition:opacity .5s var(--ease),translate .5s var(--ease)}
body.idle .hud .cam-nav{opacity:0;translate:0 14px;pointer-events:none}

/* ============ AUDITORIA ============ */
/* chips dentro dos slides legíveis a distância */
.frame .chip{font-size:14px}
/* 04: o nome do motor identifica o painel, no canto, em vez de rótulo acima do título */
.s-04 .core-tag{position:absolute;right:56px;top:56px;padding:8px 14px}
.s-04 .core-tag .icon{width:16px;height:16px}
/* só os selos soltos do 01 balançam; cards com texto flutuam sem girar */
.ghost{--fr:1}
/* abertura: nada aparece antes do palco ser ajustado à tela nem antes do desenho começar */
.deck .stage:not([style]){visibility:hidden}
.intro-logo .head{opacity:0}
/* teclado: a barra reaparece ao receber foco, mesmo no modo apresentação */
body.idle .hud .cam-nav:focus-within{opacity:1;translate:none;pointer-events:auto}
/* P pausa todos os loops */
body.paused .stage-fit *,body.paused .stage-fit *:before,body.paused .stage-fit *:after{animation-play-state:paused!important}

/* 09: o card Insights se desdobra nas previsões; a varredura passa por uma de cada vez */
.s-09 .ins-col{position:absolute;left:1080px;right:130px;top:220px;display:grid;gap:12px}
.s-09 .ins-col .ins{padding:14px 18px;align-items:center}
.s-09 .ins-col .ins h3{font-size:20px}
.s-09 .insights-panel{padding:18px 20px 20px;border-radius:24px;overflow:hidden}
.ins-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.ins-head h3{margin:0;font:650 24px/1.2 var(--f-ui);letter-spacing:-.02em;color:#f3faf7}
.ins-head .chip{margin-left:auto}
.pred-list{position:relative;list-style:none;margin:0;padding:0 0 0 26px;display:grid;gap:7px}
.pred-list .rail{position:absolute;left:8px;top:-8px;bottom:28px;width:2px;border-radius:2px;background:rgba(168,228,75,.25)}
.pred-list .rail b{position:absolute;left:-3px;width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 4px rgba(168,228,75,.2);animation:railRun 10s linear infinite}
@keyframes railRun{from{top:0}to{top:100%}}
.pred{position:relative;display:flex;align-items:center;gap:12px;padding:7px 12px 7px 8px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);font-size:16px;font-weight:550;line-height:1.3;color:#e6f3f0;
  animation:predScan 10s ease-in-out infinite;animation-delay:calc(var(--k) * 2s)}
.pred:before{content:"";position:absolute;left:-18px;top:50%;width:16px;height:2px;background:rgba(168,228,75,.25)}
.pred .tile-icon{width:36px;height:36px;border-radius:12px;flex:none}
.pred .tile-icon .icon{width:18px;height:18px}
.is-active .pred[data-in="rise"]{animation:rise var(--t-enter) var(--ease) backwards,predScan 10s ease-in-out infinite;animation-delay:calc(var(--d0,0ms) + var(--d,0ms)),calc(var(--k) * 2s)}
@keyframes predScan{0%,3%,20%,100%{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.07)}8%,15%{background:rgba(168,228,75,.12);border-color:rgba(168,228,75,.45)}}

/* marca-texto lima (design system) nas palavras de impacto: risca por trás depois que o título termina de virar */
[data-in="flip"]:has(.mark){line-height:1.12}
.mark{background:linear-gradient(var(--lime),var(--lime)) 0 50%/100% 100% no-repeat;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .14em;margin:0 -.06em;border-radius:.12em;color:var(--on-lime)}
.is-active .mark{animation:markDraw .8s var(--ease) backwards;animation-delay:calc(var(--d0,0ms) + var(--d,0ms) + var(--md,0ms))}
@keyframes markDraw{from{background-size:0 100%}}

.s-02 .head .t-title{white-space:nowrap}
