/* Cena contínua da home. Layout em CSS; câmera e opacidade seguem o scroll nativo. */
/* Deslocamentos pertencem ao botão, sem invalidar os estilos de cada traço do SVG. */
@property --node-x{syntax:"<length>";inherits:false;initial-value:0px}
@property --node-y{syntax:"<length>";inherits:false;initial-value:0px}
@property --out-x{syntax:"<length>";inherits:false;initial-value:0px}
@property --out-y{syntax:"<length>";inherits:false;initial-value:0px}
@property --exit-scale{syntax:"<number>";inherits:false;initial-value:1}
.h-native-scroll{scroll-behavior:auto}
.h-hero{min-height:calc(100vh - 89px);min-height:calc(100svh - 89px)}
.h-challenge-brand-space{display:none}
.h-challenges .h-split{grid-template-areas:"intro list" "action list";row-gap:0;align-content:center}
.h-challenges .h-section-intro{grid-area:intro;align-self:end}
.h-challenge-list{grid-area:list}
.h-challenge-action{grid-area:action;align-self:start;justify-self:start}
.h-journey-logo{position:absolute;left:50%;top:50%;width:calc(var(--core-mark-width) * 558 / 353);transform:translate(-50%,calc(-50% + var(--core-mark-lift)));pointer-events:none;z-index:2;color:var(--tx)}
.h-wordmark{position:relative;display:block;width:100%;height:auto;overflow:visible}
.h-wordmark-accent{fill:var(--signal)}
.h-wordmark-extension{opacity:0}
[data-wordmark-slash]{transform-box:view-box}
[data-service-entry="true"] [data-wordmark-slash]{filter:drop-shadow(0 0 6px var(--signal))}
.h-scroll-cue{display:none}

/* O centro do ícone determina a órbita; labels não alteram o alinhamento. */
.h-neural{--node-size:86px;--core-mark-width:100px;--core-mark-lift:-5px}
.h-neural-core strong{position:absolute;top:calc(50% + var(--core-mark-width) * .3 - 11px);margin:0}
.h-neural-agent{--out-x:0px;--out-y:0px;--exit-scale:1;transform-origin:50% calc(var(--node-size)/2);transform:translate(-50%,calc(var(--node-size)/-2)) translate3d(calc(var(--node-x) + var(--out-x)),calc(var(--node-y) + var(--out-y)),0) scale(var(--exit-scale))}
.h-neural-node{width:var(--node-size);height:var(--node-size)}
.h-neural-agent-label{font-family:var(--code);font-size:10px;font-weight:400}
/* Fallback sem JS. Com JS, ângulos e raio são calculados a partir da lista de agentes. */
.h-neural-agent-0{left:50%;top:12%}.h-neural-agent-1{left:82.909%;top:31%}
.h-neural-agent-2{left:82.909%;top:69%}.h-neural-agent-3{left:50%;top:88%}
.h-neural-agent-4{left:17.091%;top:69%}.h-neural-agent-5{left:17.091%;top:31%}
@media(max-width:1050px){.h-neural{--node-size:60px;--core-mark-width:72px;--core-mark-lift:-3.4px}.h-neural-agent-label{font-size:9px}}

.h-scroll-ready{--home-header-base:89px;--home-gutter:48px;--home-header:calc(var(--home-header-base) + env(safe-area-inset-top,0px));--scene-viewport:100vh}
@supports(height:100svh){.h-scroll-ready{--scene-viewport:100svh}}
.h-scroll-ready .h-wrap{padding-inline:max(0px,calc(env(safe-area-inset-left,0px) - var(--home-gutter))) max(0px,calc(env(safe-area-inset-right,0px) - var(--home-gutter)))}
.h-scroll-ready .h-header{position:fixed;inset:0 0 auto;padding-top:env(safe-area-inset-top,0px)}
.h-scroll-ready .h-hero{background:none;overflow:visible;min-height:var(--scene-viewport)}
.h-journey{--scene-height:100vh;--scroll-distance:0px;position:relative;background:radial-gradient(ellipse at 74% 35%,color-mix(in srgb,var(--signal) 12%,transparent),transparent 62%),var(--bg)}
.h-scroll-ready .h-hero-layout{min-height:var(--scene-viewport);padding-block:calc(var(--home-header) + 36px) calc(64px + env(safe-area-inset-bottom,0px));grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(24px,4vw,64px)}
.h-scroll-ready .h-hero h1{font-size:clamp(38px,min(5.6vw,8.7svh),80px);letter-spacing:-.05em;margin-bottom:clamp(16px,2.8svh,28px)}
.h-scroll-ready .h-premise{font-size:clamp(21px,min(2.35vw,3.6svh),34px);margin-bottom:clamp(12px,2.3svh,20px)}
.h-scroll-ready .h-hero .h-kicker{margin-bottom:clamp(16px,2.8svh,26px)}
.h-scroll-ready .h-hero-lead{font-size:clamp(14px,1.2vw,17px);line-height:1.7;margin-bottom:clamp(18px,3svh,32px)}
.h-scroll-ready .h-neural{width:min(100%,calc(var(--scene-viewport) - var(--home-header) - 144px));justify-self:center}
.h-scroll-ready .h-neural-stage{perspective:1200px;perspective-origin:50% 50%}
.h-scroll-ready .h-neural-stage::before,.h-scroll-ready .h-neural-stage::after{opacity:var(--orbit-opacity,1)}
.h-scroll-ready .h-neural-canvas,.h-scroll-ready .h-neural-fallback{transform-origin:50% 50%}
.h-scroll-ready .h-scroll-cue{display:flex;align-items:center;justify-content:center;gap:16px;position:absolute;bottom:max(24px,env(safe-area-inset-bottom,0px));left:0;right:0;font:10px var(--code);letter-spacing:.04em;color:var(--tx-3);pointer-events:none}
.h-scroll-cue span{font-size:20px;color:var(--signal-text)}

/* Tipografia e medidas usam a viewport pequena (svh, a mesma altura que o JS mede).
   O palco fixo cobre a viewport grande (lvh): quando a barra do navegador recolhe,
   só o fundo aumenta; o percurso e as cenas não são recalculados no meio do gesto. */
.h-journey[data-scroll-mode="pinned"]{height:calc(100vh + var(--journey-distance,var(--scroll-distance)));height:calc(100lvh + var(--journey-distance,var(--scroll-distance)));overflow-anchor:none}
[data-scroll-mode="pinned"] .h-journey-pin{position:sticky;top:0;height:100vh;height:100lvh;overflow:clip;isolation:isolate}
[data-scroll-mode="pinned"] .h-hero{height:var(--scene-viewport)}
[data-scroll-mode="pinned"] .h-hero-layout{height:var(--scene-viewport)}
[data-scroll-mode="pinned"] .h-challenges{position:absolute;inset:0 0 auto;min-height:var(--scene-viewport);padding:calc(var(--home-header) + 48px) 0 64px;border:0;background:none;opacity:0;pointer-events:none;z-index:3}
[data-scroll-mode="pinned"] .h-challenges .h-split{display:grid;grid-template-areas:"intro brand list" "action brand list";grid-template-columns:minmax(0,1fr) clamp(150px,20vw,280px) minmax(0,1fr);gap:0 clamp(24px,3vw,48px);align-items:center;min-height:calc(var(--scene-viewport) - var(--home-header) - 112px)}
[data-scroll-mode="pinned"] .h-challenge-brand-space{display:block;height:180px;grid-area:brand}
[data-scroll-mode="pinned"] .h-challenges h2{font-size:clamp(29px,3vw,43px);letter-spacing:-.045em}
[data-scroll-mode="pinned"] .h-challenges .h-section-intro>p:not(.h-kicker){font-size:14px;line-height:1.8;margin-top:24px}
[data-scroll-mode="pinned"] .h-challenge{padding-block:20px;gap:16px}
[data-scroll-mode="pinned"] .h-challenge:first-child{padding-top:0}
[data-scroll-mode="pinned"] .h-challenge:last-child{padding-bottom:0}
[data-scroll-mode="pinned"] .h-challenge h3{font-size:17px;line-height:1.35;margin-bottom:8px}
[data-scroll-mode="pinned"] .h-challenge p{font-size:13px;line-height:1.7}
[data-scroll-mode="pinned"] .h-journey-logo{width:clamp(180px,21vw,292px);transform-origin:50% 50%}
.h-journey-glow{position:absolute;inset:-45%;background:radial-gradient(ellipse,color-mix(in srgb,var(--signal) 22%,transparent),transparent 65%);opacity:0;pointer-events:none}
.h-journey:not([data-scroll-mode="pinned"]) .h-journey-glow{display:none}
/* Promoção fixa só das camadas grandes, enquanto a jornada está na tela. Painéis,
   retratos e blocos de texto usam translate3d e não alternam will-change por gesto. */
[data-scroll-mode="pinned"][data-in-view="true"] :is(.h-neural,.h-neural-canvas,.h-neural-fallback,.h-journey-logo,.h-challenges){will-change:transform,opacity}

/* O cabeçalho acompanha a superfície escura da leitura/fragmentos com os tokens
   da marca (mesma inversão usada nas seções ink), em transição curta. */
.h-scroll-ready .h-header{transition:background-color .4s ease,color .4s ease,border-color .4s ease}
.h-scroll-ready .h-header[data-scene-tone="ink"]{--bg:var(--ink);--bg-alt:var(--soot);--tx:var(--paper);--tx-2:var(--cream);--tx-3:color-mix(in srgb,var(--paper) 72%,var(--ink));--line:color-mix(in srgb,var(--paper) 20%,transparent);--home-rule:var(--line);--signal-text:var(--signal);color:var(--tx)}
.home-page .h-header[data-scene-tone="ink"] .h-brand-light{display:none}
.home-page .h-header[data-scene-tone="ink"] .h-brand-dark{display:block}
@media(prefers-reduced-motion:reduce){.h-scroll-ready .h-header{transition:none}}

/* Os mesmos robôs atravessam a borda da jornada até a próxima cena estar pronta.
   will-change:transform na seção criaria um containing block para o fixed. */
.h-journey[data-scroll-mode="pinned"][data-service-bridge="true"]{z-index:2}
[data-scroll-mode="pinned"][data-service-bridge="true"] .h-services{will-change:auto}
[data-scroll-mode="pinned"][data-service-bridge="true"] .h-service-actors{position:fixed;inset:0;pointer-events:none}

@media(max-width:1100px) and (min-width:768px){
  .h-scroll-ready .h-hero h1{font-size:clamp(36px,5vw,60px)}
  .h-scroll-ready .h-actions{gap:4px}
  .h-scroll-ready .h-actions .h-button{font-size:12px;padding-inline:12px;gap:12px}
  [data-scroll-mode="pinned"] .h-challenges .h-split{grid-template-columns:minmax(0,1fr) 130px minmax(0,1fr);gap:0 24px}
  [data-scroll-mode="pinned"] .h-journey-logo{width:180px}
  [data-scroll-mode="pinned"] .h-challenges h2{font-size:29px}
  [data-scroll-mode="pinned"] .h-challenges .h-section-intro>p:not(.h-kicker){font-size:13px}
}
@media(max-width:1150px){.h-scroll-ready{--home-gutter:32px}}
@media(max-width:900px){.h-scroll-ready{--home-header-base:77px}}
@media(max-width:767px){
  .h-challenges .h-split{grid-template-columns:minmax(0,1fr);grid-template-areas:"intro" "list" "action";row-gap:28px}
  .h-challenge-action{margin-top:0}
  .h-scroll-ready .h-hero-layout{grid-template-columns:minmax(0,1fr);gap:20px;padding-block:calc(var(--home-header) + 22px) calc(56px + env(safe-area-inset-bottom,0px));align-content:center}
  .h-scroll-ready .h-hero-copy{max-width:500px;min-width:0;justify-self:center;width:100%}
  .h-scroll-ready .h-hero h1{font-size:clamp(32px,min(8.6vw,5.8svh),52px);margin-bottom:16px;letter-spacing:-.045em}
  .h-scroll-ready .h-premise{font-size:clamp(19px,4.7vw,26px);margin-bottom:12px}
  .h-scroll-ready .h-hero .h-kicker{font-size:9px;margin-bottom:14px}
  .h-scroll-ready .h-hero-lead{font-size:13px;line-height:1.6;margin-bottom:16px}
  .h-scroll-ready .h-actions{gap:4px 12px}
  .h-scroll-ready .h-actions .h-button{min-height:44px;font-size:11px;padding:10px 12px;gap:8px}
  .h-scroll-ready .h-actions .h-button-secondary{padding-inline:0}
  .h-scroll-ready .h-hero-note{font-size:10px;margin-top:10px}
  .h-scroll-ready .h-neural{width:clamp(236px,calc((var(--scene-viewport) - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)) * .33),360px);max-width:100%}
  .h-scroll-ready .h-neural-agent{gap:4px}
  .h-scroll-ready .h-neural-agent-label{font-size:9px;padding:3px 5px}
  [data-scroll-mode="pinned"] .h-challenges{padding-block:calc(var(--home-header) + 32px) 64px}
  [data-scroll-mode="pinned"] .h-challenges .h-split{grid-template-columns:minmax(0,1fr);grid-template-areas:"intro" "brand" "list" "action";gap:0;min-height:0;max-width:500px}
  [data-scroll-mode="pinned"] .h-challenge-brand-space{height:156px}
  [data-scroll-mode="pinned"] .h-challenge-action{margin-top:28px}
  [data-scroll-mode="pinned"] .h-challenges h2{font-size:clamp(30px,8vw,40px)}
  [data-scroll-mode="pinned"] .h-challenges .h-section-intro>p:not(.h-kicker){font-size:14px;margin-top:20px}
  [data-scroll-mode="pinned"] .h-journey-logo{width:240px}
}
@media(max-width:650px){.h-scroll-ready{--home-header-base:71px;--home-gutter:20px}}
@media(prefers-reduced-motion:reduce){.h-scroll-ready .h-scroll-cue{display:none}}
