/* Contained artwork, coherent entrances, and motion inside the illustrations. */
:root { --motion-text:360ms; --motion-scene:500ms; --motion-item:320ms; --motion-ease:cubic-bezier(.22,1,.36,1); }
[data-reveal] { --reveal-distance:8px; --reveal-duration:var(--motion-text); transition:opacity var(--reveal-duration) var(--motion-ease),transform var(--reveal-duration) var(--motion-ease); transition-delay:var(--reveal-delay,0ms); will-change:auto; }
[data-reveal-kind="scene"] { --reveal-distance:10px; --reveal-duration:var(--motion-scene); }
[data-reveal-kind="item"] { --reveal-distance:6px; --reveal-duration:var(--motion-item); }
html.motion-ready [data-reveal]:not(.is-visible) { transform:translateY(var(--reveal-distance)); }
@media (min-width:961px) {
  #inicio .hero-stage__copy-wrapper { width:44%; }
  #inicio .hero-stage__art-wrapper { right:0; width:68%; }
  #inicio .hero-art { overflow:hidden; }
}
@media (min-width:961px) and (max-width:1100px) { #inicio .hero-copy h1 { font-size:clamp(38px,4vw,44px); } }
#para-quem .journey-search__art { min-height:0; height:auto; max-height:none; align-self:center; aspect-ratio:3 / 2; overflow:hidden; border-radius:0; -webkit-mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent),linear-gradient(to bottom,transparent,#000 5%,#000 90%,transparent); mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent),linear-gradient(to bottom,transparent,#000 5%,#000 90%,transparent); -webkit-mask-composite:source-in; mask-composite:intersect; }
#para-quem .journey-search__art :is(.passenger-fallback,.passenger-motion) { object-fit:contain; object-position:center; filter:none; -webkit-mask-image:none; mask-image:none; }
#para-quem .journey-search__art .passenger-fallback { z-index:1; }
#para-quem .journey-search__art .passenger-motion { z-index:2; }
#servicos .services-illustration { position:absolute; top:70px; left:50%; width:min(100%,520px); aspect-ratio:3 / 2; transform:translateX(-50%); }
#servicos .services-illustration .services-scene { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
#servicos .services-illustration { -webkit-mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent),linear-gradient(to bottom,transparent,#000 5%,#000 90%,transparent); mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent),linear-gradient(to bottom,transparent,#000 5%,#000 90%,transparent); -webkit-mask-composite:source-in; mask-composite:intersect; }
[data-scene-video] { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:contain; opacity:0; pointer-events:none; }
[data-video-scene][data-video-ready="true"] [data-scene-video] { opacity:1; }
[data-video-scene][data-video-ready="true"] :is(.passenger-fallback,.services-scene) { opacity:0; }
#servicos .flow-canvas { height:500px; }
@media (max-width:700px) {
  #servicos .flow-canvas { height:auto; }
  #servicos .services-illustration { position:relative; inset:auto; width:100%; grid-column:1 / -1; transform:none; }
  #para-quem .journey-search__art { height:auto; min-height:0; aspect-ratio:3 / 2; }
}

/* Approved shared editorial stage: the shell remains the outside boundary. */
.hero-motion-toggle { padding:12px 15px; min-height:48px; gap:8px; border:1px solid var(--line-strong); border-radius:10px; background:rgba(255,255,255,.32); line-height:20px; min-width:170px; justify-content:center; transition:background 180ms ease,border-color 180ms ease,color 180ms ease; }
.hero-motion-toggle__icon { display:inline-flex; width:16px; height:20px; align-items:center; justify-content:center; flex:none; }
.hero-motion-toggle__label { white-space:nowrap; }
.hero-motion-toggle:hover { background:rgba(255,255,255,.65); border-color:var(--ink-secondary); }
.hero-motion-toggle:active { background:var(--paper-subtle); }
@media(min-width:1101px) { #inicio .hero-stage { min-height:clamp(570px,46vw,720px); } #inicio .hero-stage__art-wrapper { width:68%; } }
@media(min-width:961px) and (max-width:1100px) { #inicio .hero-stage__art-wrapper { width:62%; } }
/* Scene reveals have their own direction; text groups reveal their children. */
html.motion-ready [data-reveal]:not(.is-visible) { transform:translate(var(--enter-x,0px),var(--enter-y,12px)) scale(var(--enter-scale,1)); }
[data-reveal] { --reveal-duration:480ms; }
[data-entrance="scene"] { --enter-x:24px; --enter-y:0px; --enter-scale:.975; --reveal-duration:820ms; }
[data-entrance="bridge"] { --enter-x:0px; --enter-y:0px; --enter-scale:.985; --reveal-duration:800ms; }
[data-entrance="result"] { --enter-x:-16px; --enter-y:0px; --reveal-duration:560ms; }
html.motion-ready [data-entrance="heading"]:not(.is-visible) { opacity:1; transform:none; }
[data-entrance="heading"] { transition:none; }
[data-entrance-part] { transition:opacity 500ms var(--motion-ease),transform 600ms var(--motion-ease); transition-delay:var(--part-delay,0ms); }
html.motion-ready [data-entrance="heading"]:not(.is-visible) [data-entrance-part] { opacity:0; transform:translateY(10px); }
[data-entrance-part="eyebrow"] { --part-delay:0ms; transition-duration:240ms; }
[data-entrance-part="description"] { --part-delay:220ms; }
[data-entrance-part="actions"] { --part-delay:300ms; }
[data-entrance-part="title"] { --part-delay:60ms; }
.enter-word { display:inline-block; clip-path:inset(0 0 -10% 0); transition:clip-path 620ms var(--motion-ease),transform 620ms var(--motion-ease); transition-delay:calc(60ms + var(--line-index,0) * 75ms); }
html.motion-ready [data-entrance="heading"]:not(.is-visible) .enter-word { clip-path:inset(0 0 100% 0); transform:translateY(.65em); }
html.motion-ready [data-entrance="heading"]:not(.is-visible) [data-entrance-part="title"] { opacity:1; transform:none; }
html.entrances-paused [data-reveal],html.entrances-paused [data-entrance-part],html.entrances-paused .enter-word { transition:none!important; }
@media(max-width:640px) { [data-entrance="scene"] { --enter-x:12px; --reveal-duration:650ms; } .hero-motion-toggle { min-width:164px; padding-inline:12px; } }

[data-entrance-instant="true"], [data-entrance-instant="true"] [data-entrance-part], [data-entrance-instant="true"] .enter-word { transition:none!important; }
.system-flow .flow-node { transition:opacity 420ms var(--motion-ease),transform 550ms var(--motion-ease); transition-delay:240ms; }
.system-flow .flow-node--route,.system-flow .flow-node--done { transition-delay:360ms; }
html.motion-ready .system-flow:not(.is-visible) .flow-node { opacity:0; transform:translateX(-8px); }
.process-steps li { transition:opacity 420ms var(--motion-ease),transform 550ms var(--motion-ease); transition-delay:calc(var(--step-index,0) * 75ms); }
.process-steps li:nth-child(2) { --step-index:1; } .process-steps li:nth-child(3) { --step-index:2; } .process-steps li:nth-child(4) { --step-index:3; }
html.motion-ready .process-steps:not(.is-visible) li { opacity:0; transform:translateX(-10px); }
.inline-faq details[open] > p { animation:faq-answer 220ms var(--motion-ease); }
@keyframes faq-answer { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:none; } }
html.entrances-paused :is(.flow-node,.process-steps li,.inline-faq details > p) { transition:none!important; animation:none!important; }

/* Prepaint state is established by a tiny head script, not the late WebGL module. */
html.motion-pending [data-reveal] { opacity:0!important; transition:none!important; }
html.motion-pending [data-entrance-part],html.motion-pending .enter-word { transition:none!important; }
