/* ══════════════════════════════════════════════════════════════════════════
   flight-scenes.css — pitch-scroll scenes: one idea per viewport, big anchor,
   breathing room. Reuses faq/pulse from flight-sections.css.
═══════════════════════════════════════════════════════════════════════════ */

.scene { position: relative; min-height: 100vh; display: flex; flex-direction: column; justify-content: center; padding: clamp(7rem,16vh,11rem) clamp(1.5rem,6vw,5rem); border-top: 1px solid var(--bsoft); }
.scene::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(56% 44% at 86% 16%, rgba(17,221,173,0.045), transparent 65%); opacity: calc(1 - var(--day) * 0.75); }
.scene:nth-of-type(even)::before { background: radial-gradient(50% 42% at 8% 84%, rgba(17,221,173,0.04), transparent 62%); }
.scene__in { width: 100%; max-width: 1080px; margin: 0 auto; position: relative; }

/* scene folio (deck sense of place) */
.scene__tag { position: absolute; top: clamp(7.6rem, 13vh, 9rem); left: clamp(1.5rem,6vw,5rem); right: clamp(1.5rem,6vw,5rem); margin: 0; display: flex; align-items: center; gap: 0.7rem; font-family: var(--mono); font-size: 0.62rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--dim); z-index: 2; pointer-events: none; }
.scene__tag-n { color: var(--accent, var(--teal)); font-variant-numeric: tabular-nums; }
.scene__tag-rule { flex: 1; height: 1px; background: var(--bsoft); }
.scene__tag-total { font-variant-numeric: tabular-nums; }
@media (max-width: 760px){ .scene__tag { display: none; } }

/* teal full stop — the brand pulse closing each anchor */
.ap { color: var(--accent, var(--teal)); }

/* chapter accents — the wider palette in service of the arc */
.scene { --accent: var(--teal); }
.scene--acc-sky { --accent: #2D6CA8; }
.scene--acc-amber { --accent: #D97A2B; }
.sky-stop { position: absolute; left: 0; bottom: 0; width: 1px; height: 1px; }
.scene__eyebrow { display: inline-flex; align-items: center; gap: 0.7rem; margin: 0 0 1.6rem; font-family: var(--mono); font-size: 0.74rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--accent, var(--teal)); }
.scene__eyebrow::before { content: ""; width: 2rem; height: 1px; background: var(--accent, var(--teal)); }
.scene__anchor { margin: 0; font-family: var(--font); font-size: clamp(2.8rem, 6.6vw, 5.8rem); font-weight: 700; letter-spacing: -0.035em; line-height: 1.0; text-transform: lowercase; color: var(--ink); text-wrap: balance; }
.scene__anchor--sm { font-size: clamp(2rem, 4vw, 3.2rem); }
.scene__detail { margin: 1.8rem 0 0; max-width: 42rem; font-size: clamp(1.15rem, 1.7vw, 1.5rem); line-height: 1.5; color: var(--mid); text-wrap: pretty; }

/* centered statement scenes (ia · diferencial) */
.scene--center .scene__in { display: flex; flex-direction: column; align-items: center; text-align: center; }
.scene--center .scene__eyebrow::before { display: none; }
.scene--center .scene__detail { margin-left: auto; margin-right: auto; }

/* ─── Scene 1 · abertura ─────────────────────────────────────────────── */
.scene--hero__in { display: block; }
.scene--hero__h1 { font-size: clamp(3rem, 8.6vw, 7rem); max-width: 14ch; }
.scene--hero__copy { position: relative; z-index: 2; }
.scene--hero { overflow: hidden; }
.scene--hero::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to bottom, rgba(76,150,205,0.07) 0%, rgba(76,150,205,0.02) 48%, transparent 77.8%, rgba(140,96,56,0.05) 78.2%, rgba(78,52,30,0.07) 100%); }

/* full-bleed artificial horizon — the scene IS the instrument */
.h2h { position: absolute; left: 0; right: 0; top: 78%; z-index: 1; pointer-events: none; }
.h2h__line { position: absolute; left: 0; right: 0; top: 0; height: 1px; background: linear-gradient(to right, transparent, var(--bstrong) 14% 86%, transparent); }
.h2h__craft { position: absolute; right: clamp(2rem, 12vw, 14rem); top: 0; width: clamp(110px, 12vw, 160px); transform: translateY(-50%); overflow: visible; }
.h2h__wing { stroke: var(--teal); stroke-width: 2; stroke-linecap: round; }
.h2h__dot { fill: var(--teal); }
.h2h__tick { stroke: var(--mid); stroke-width: 1; opacity: 0.4; stroke-linecap: round; }
.h2h__cap { position: absolute; right: clamp(1.5rem,6vw,5rem); top: 2.4rem; font-family: var(--mono); font-size: 0.6rem; letter-spacing: 0.2em; color: var(--dim); }
@media (max-width: 920px){ .h2h__craft { right: 8vw; width: 96px; } .h2h__cap { display: none; } }
.scene--hero__scroll { position: absolute; left: 50%; bottom: clamp(1.4rem, 4vh, 2.6rem); transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 0.6rem; z-index: 2; }
.scene--hero__scroll-t { font-family: var(--mono); font-size: 0.6rem; letter-spacing: 0.26em; text-transform: uppercase; color: var(--dim); }
.scene--hero__scroll-l { width: 1px; height: 2.6rem; background: linear-gradient(to bottom, var(--teal), transparent); overflow: hidden; position: relative; }
.scene--hero__scroll-l::after { content:""; position: absolute; left: 0; top: -40%; width: 100%; height: 40%; background: var(--ink); animation: scroll-drip 2.4s cubic-bezier(0.22,0.61,0.36,1) infinite; }
@keyframes scroll-drip { 0%{top:-40%} 100%{top:110%} }
@media (prefers-reduced-motion: reduce){ .scene--hero__scroll-l::after { animation: none; } }

/* ─── Scene 2 · o nome (content full, low emphasis) ──────────────────── */
.scene--quiet { justify-content: center; }
.nome__decode { display: grid; grid-template-columns: 1fr; gap: 2.5rem; margin-top: 0.5rem; }
@media (min-width: 820px){ .nome__decode { grid-template-columns: repeat(3, 1fr); gap: 3rem; } }
.nome__token { display: block; margin-bottom: 0.5rem; font-family: var(--font); font-size: 1.9rem; font-weight: 700; letter-spacing: -0.04em; text-transform: lowercase; color: var(--teal); }
.nome__claim { margin: 0 0 0.8rem; font-family: var(--font); font-size: 1.2rem; font-weight: 700; line-height: 1.2; letter-spacing: -0.01em; text-transform: lowercase; color: var(--ink); text-wrap: balance; }
.nome__body { margin: 0; font-size: 1rem; line-height: 1.6; color: var(--mid); }
.nome__trio { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--bsoft); }
.nome__trio-label { margin: 0 0 1.3rem; font-family: var(--mono); font-size: 0.64rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--dim); }
.nome__trio-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 760px){ .nome__trio-grid { grid-template-columns: repeat(3, 1fr); gap: 2rem; } }
.nome__trio-sym { display: block; margin-bottom: 0.4rem; font-family: var(--font); font-size: 1.4rem; font-weight: 700; color: var(--teal); }
.nome__trio-name { margin: 0 0 0.3rem; font-family: var(--font); font-size: 1rem; font-weight: 700; text-transform: lowercase; color: var(--ink); }
.nome__trio-body { margin: 0; font-size: 0.92rem; line-height: 1.5; color: var(--mid); }

/* ─── Scene 4 · o box (sticky card = "rolar junto") ──────────────────── */
.box__anchor { margin-bottom: 3rem; max-width: 22ch; }
.box__split { display: grid; grid-template-columns: 1fr; gap: 2.5rem; }
@media (min-width: 880px){ .box__split { grid-template-columns: 1.05fr 0.95fr; gap: 4rem; align-items: start; } }
.box__frentes { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--bord); }
.box__frente { border-bottom: 1px solid var(--bsoft); transition: background 0.2s ease; }
.box__frente:hover { background: rgba(17,221,173,0.025); }
.box__frente-q { width: 100%; display: grid; grid-template-columns: auto 1fr auto; align-items: baseline; gap: 1.1rem; padding: 1.1rem 0.4rem; background: transparent; border: none; text-align: left; cursor: pointer; font-family: var(--font); font-size: clamp(1.2rem, 2.2vw, 1.7rem); font-weight: 600; letter-spacing: -0.01em; text-transform: lowercase; color: var(--ink); transition: color 0.2s ease, padding-left 0.2s ease; }
.box__frente-q:hover { color: var(--teal); padding-left: 0.9rem; }
.box__frente-idx { font-family: var(--mono); font-size: 0.7rem; color: var(--teal); }
.box__frente-tog { font-family: var(--mono); font-size: 1.2rem; color: var(--dim); transition: color 0.2s ease, transform 0.2s ease; }
.box__frente.open .box__frente-tog { color: var(--teal); transform: rotate(45deg); }
.box__frente.open .box__frente-q { color: var(--teal); }
.box__frente-a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.32s ease; }
.box__frente.open .box__frente-a { grid-template-rows: 1fr; }
.box__frente-a > div { overflow: hidden; }
.box__frente-a p { margin: 0; padding: 0 1.5rem 1.2rem 2.4rem; font-size: 1rem; line-height: 1.55; color: var(--mid); }
@media (min-width: 880px){ .box__card-wrap { position: sticky; top: 28vh; } }
.box__card { border: 2px solid var(--teal); background: linear-gradient(180deg, rgba(17,221,173,0.07), rgba(17,221,173,0.01)); padding: 2.2rem 2rem; }
.box__card-title { margin: 0 0 0.9rem; font-family: var(--font); font-size: clamp(1.4rem,2.4vw,1.8rem); font-weight: 700; letter-spacing: -0.02em; line-height: 1.15; text-transform: lowercase; color: var(--ink); }
.box__card-sub { margin: 0; font-size: 1.02rem; line-height: 1.55; color: var(--mid); }

/* ─── Scene 5 · protocolos ───────────────────────────────────────────── */
.proto__entry { margin-top: 2.6rem; padding: 1.7rem 1.9rem; border: 2px solid var(--teal); background: linear-gradient(180deg, rgba(17,221,173,0.06), rgba(17,221,173,0.01)); max-width: 46rem; }
.proto__entry-flag { display: inline-flex; align-items: center; gap: 0.5rem; margin-bottom: 0.8rem; font-family: var(--mono); font-size: 0.62rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--teal); }
.proto__entry-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--teal); animation: pulse 2.4s ease-in-out infinite; }
.proto__entry-title { margin: 0 0 0.6rem; font-family: var(--font); font-size: clamp(1.2rem,2.2vw,1.6rem); font-weight: 700; line-height: 1.2; letter-spacing: -0.015em; text-transform: lowercase; color: var(--ink); }
.proto__entry-body { margin: 0; font-size: 1.02rem; line-height: 1.6; color: var(--mid); }

/* ─── Scene 6 · ciclo ────────────────────────────────────────────────── */
/* flight-route graphic (desktop) + timeline (mobile) */
.rota { position: relative; margin: 3rem 0 0.8rem; height: clamp(90px, 12vw, 132px); }
.rota__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.rota__base { fill: none; stroke: var(--bord); stroke-width: 1; stroke-dasharray: 2 7; vector-effect: non-scaling-stroke; stroke-linecap: round; }
.rota__draw { fill: none; stroke: var(--teal); stroke-width: 1.6; stroke-dasharray: 100; stroke-dashoffset: 100; vector-effect: non-scaling-stroke; transition: stroke-dashoffset 2.6s cubic-bezier(0.22,0.61,0.36,1) 0.25s; filter: drop-shadow(0 0 5px rgba(17,221,173,0.35)); }
.rota.in .rota__draw { stroke-dashoffset: 0; }
.rota__node { position: absolute; width: 11px; height: 11px; margin: -5.5px 0 0 -5.5px; border-radius: 50%; border: 1px solid var(--teal); background: var(--bg); opacity: 0; transition: opacity 0.4s ease; }
.rota__node::after { content: ""; position: absolute; inset: 3px; border-radius: 50%; background: var(--teal); }
.rota.in .rota__node { opacity: 1; }
.rota.in .rota__node:nth-child(2) { transition-delay: 0.5s; }
.rota.in .rota__node:nth-child(3) { transition-delay: 1.1s; }
.rota.in .rota__node:nth-child(4) { transition-delay: 1.7s; }
.rota.in .rota__node:nth-child(5) { transition-delay: 2.3s; }
.rota__node--p::before { content: ""; position: absolute; inset: -7px; border-radius: 50%; border: 1px solid var(--teal); animation: pulse 2.4s ease-in-out infinite; }
@media (max-width: 879px){ .rota { display: none; } }
@media (prefers-reduced-motion: reduce){ .rota__draw { transition: none; stroke-dashoffset: 0; } .rota__node { opacity: 1; transition: none; } }

.ciclo__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; }
@media (min-width: 880px){ .ciclo__list { grid-template-columns: repeat(4, 1fr); gap: 0 1.8rem; } }
.ciclo__step { position: relative; padding: 0.4rem 0 0; }
@media (max-width: 879px){
  .ciclo__list { margin-top: 2.2rem; }
  .ciclo__step { padding: 0 0 1.7rem 1.5rem; border-left: 1px solid var(--bord); }
  .ciclo__step:last-child { padding-bottom: 0.3rem; }
  .ciclo__step::before { content: ""; position: absolute; left: -5px; top: 5px; width: 9px; height: 9px; border-radius: 50%; border: 1px solid var(--teal); background: var(--bg); }
}
.ciclo__step:hover .ciclo__n { color: var(--teal-h); }
.ciclo__n { display: block; margin-bottom: 0.55rem; font-family: var(--mono); font-size: 0.76rem; letter-spacing: 0.18em; color: var(--accent, var(--teal)); transition: color 0.2s ease; }
.ciclo__t { display: block; margin-bottom: 0.5rem; font-family: var(--font); font-size: clamp(1.25rem, 1.8vw, 1.55rem); font-weight: 700; letter-spacing: -0.02em; line-height: 1.1; text-transform: lowercase; color: var(--ink); }
.ciclo__d { margin: 0; font-size: 0.99rem; line-height: 1.55; color: var(--mid); }

/* ─── Scene 8 · diferencial proof ────────────────────────────────────── */
.dif__proof { margin-top: 2.6rem; padding-top: 1.9rem; border-top: 1px solid var(--bsoft); }
.scene--center .dif__proof { border-top: none; padding-top: 0.6rem; display: flex; flex-direction: column; align-items: center; }
.dif__proof-label { display: block; margin-bottom: 1rem; font-family: var(--mono); font-size: 0.64rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--dim); }
.dif__proof-stack { display: flex; flex-wrap: wrap; gap: 0.6rem; justify-content: center; }
.dif__proof-item { padding: 0.5rem 0.9rem; border: 1px solid var(--bord); font-family: var(--font); font-size: 0.92rem; font-weight: 600; color: var(--mid); transition: border-color 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease; }
.dif__proof-item:hover { border-color: var(--teal); color: var(--ink); transform: var(--lift); box-shadow: var(--lift-sh); }
.ia__stack { margin: 2.8rem auto 0; width: min(56rem, 100%); display: flex; flex-direction: column; align-items: center; gap: 0.7rem; }
.ia__layer { width: 100%; display: grid; grid-template-columns: 2.2rem 13rem 1fr; align-items: baseline; gap: 1.1rem; text-align: left; padding: 1.1rem 1.4rem; border: 1px solid var(--bord); background: color-mix(in oklab, var(--bg2) 60%, transparent); transition: border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.6s cubic-bezier(0.22,0.61,0.36,1), transform 0.6s cubic-bezier(0.22,0.61,0.36,1); }
.ia__layer:nth-child(2) { width: 87%; }
.ia__layer:nth-child(3) { width: 74%; }
.ia__layer:hover { border-color: var(--accent, var(--teal)); box-shadow: 3px 3px 0 0 color-mix(in oklab, var(--accent, var(--teal)) 24%, transparent); }
.ia__layer-n { font-family: var(--mono); font-size: 0.7rem; color: var(--accent, var(--teal)); }
.ia__layer-head { display: flex; flex-direction: column; gap: 0.15rem; }
.ia__layer-name { font-family: var(--font); font-weight: 700; font-size: 1.15rem; text-transform: lowercase; color: var(--ink); letter-spacing: -0.01em; }
.ia__layer-role { font-family: var(--mono); font-size: 0.58rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent, var(--teal)); }
.ia__layer-body { margin: 0; font-size: 0.95rem; line-height: 1.5; color: var(--mid); }
@media (max-width: 760px){ .ia__layer, .ia__layer:nth-child(2), .ia__layer:nth-child(3) { width: 100%; grid-template-columns: 2rem 1fr; } .ia__layer-body { grid-column: 2; } }
html.js .scene--center .scene__in.reveal .ia__layer { opacity: 0; transform: translateY(16px); }
html.js .scene--center .scene__in.reveal.in .ia__layer { opacity: 1; transform: none; }
html.js .scene--center .scene__in.reveal.in .ia__layer:nth-child(2) { transition-delay: 0.1s; }
html.js .scene--center .scene__in.reveal.in .ia__layer:nth-child(3) { transition-delay: 0.2s; }
.ia__closing { margin: 2.4rem 0 0; font-family: var(--font); font-size: clamp(1.2rem,2vw,1.6rem); font-weight: 600; line-height: 1.3; letter-spacing: -0.01em; text-transform: lowercase; color: var(--ink); max-width: 42rem; }

/* ─── Scene 9 · dúvidas (reference; longer) ──────────────────────────── */
.scene--ref { justify-content: flex-start; }
.duv__cat-label { margin: 2.8rem 0 1.3rem; font-family: var(--mono); font-size: 0.66rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--dim); }
.duv__cat { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; border: 1px solid var(--bsoft); }
@media (min-width: 760px){ .duv__cat { grid-template-columns: 1fr 1fr; } }
.duv__cat-item { display: flex; gap: 0.7rem; padding: 1.05rem 1.2rem; border-top: 1px solid var(--bsoft); font-size: 0.95rem; line-height: 1.5; color: var(--mid); transition: background 0.2s ease; }
.duv__cat-item:first-child { border-top: none; }
@media (min-width: 760px){ .duv__cat-item:nth-child(2) { border-top: none; } .duv__cat-item:nth-child(even) { border-left: 1px solid var(--bsoft); } }
.duv__cat-item:hover { background: rgba(17,221,173,0.025); }
.duv__cat-item b { color: var(--ink); font-weight: 600; }
.duv__cat-idx { flex-shrink: 0; padding-top: 0.15rem; font-family: var(--mono); font-size: 0.66rem; color: var(--accent, var(--teal)); }

/* ─── Scene 10 · começar ─────────────────────────────────────────────── */
.comecar__portas { list-style: none; margin: 2.6rem 0 2rem; padding: 0; border-top: 2px solid var(--bord); max-width: 56rem; }
.comecar__porta { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 1.1rem; padding: 1.4rem 0; border-bottom: 1px solid var(--bsoft); }
.comecar__porta-idx { font-family: var(--mono); font-size: 0.8rem; color: var(--teal); }
.comecar__porta-t { display: block; font-family: var(--font); font-size: clamp(1.3rem, 2.6vw, 1.9rem); font-weight: 700; letter-spacing: -0.01em; text-transform: lowercase; color: var(--ink); }
.comecar__porta-when { margin: 0.4rem 0 0; font-size: 1.02rem; line-height: 1.5; color: var(--mid); max-width: 44rem; }
.comecar__cta { margin-top: 0.5rem; }

/* ─── stagger for scene lists ────────────────────────────────────────── */
html.js .nome__decode.reveal, html.js .box__frentes.reveal, html.js .ciclo__list.reveal, html.js .duv__cat.reveal { opacity: 1; transform: none; }
html.js .nome__decode > *, html.js .box__frentes > *, html.js .ciclo__list > *, html.js .duv__cat > *, html.js .comecar__portas > * {
  opacity: 0; transform: translateY(18px);
  transition: opacity 0.55s cubic-bezier(0.22,0.61,0.36,1), transform 0.55s cubic-bezier(0.22,0.61,0.36,1);
}
html.js .nome__decode.in > *, html.js .box__frentes.in > *, html.js .ciclo__list.in > *, html.js .duv__cat.in > *, html.js .scene--end .scene__in.in .comecar__porta {
  opacity: 1; transform: none;
}
html.js .nome__decode.in > *:nth-child(2), html.js .box__frentes.in > *:nth-child(2), html.js .ciclo__list.in > *:nth-child(2), html.js .duv__cat.in > *:nth-child(2), html.js .comecar__porta:nth-child(2) { transition-delay: 0.08s; }
html.js .nome__decode.in > *:nth-child(3), html.js .box__frentes.in > *:nth-child(3), html.js .ciclo__list.in > *:nth-child(3), html.js .duv__cat.in > *:nth-child(3), html.js .comecar__porta:nth-child(3) { transition-delay: 0.16s; }
html.js .box__frentes.in > *:nth-child(4), html.js .ciclo__list.in > *:nth-child(4), html.js .duv__cat.in > *:nth-child(4) { transition-delay: 0.24s; }
html.js .box__frentes.in > *:nth-child(5), html.js .duv__cat.in > *:nth-child(5) { transition-delay: 0.30s; }
html.js .box__frentes.in > *:nth-child(6), html.js .duv__cat.in > *:nth-child(n+6) { transition-delay: 0.36s; }
@media (prefers-reduced-motion: reduce){
  html.js .nome__decode > *, html.js .box__frentes > *, html.js .ciclo__list > *, html.js .duv__cat > *, html.js .comecar__portas > * { opacity: 1; transform: none; transition: none; }
}

/* ─── Act · "o que é" shrinks top-left while comparison table enters ──── */
.act { position: relative; border-top: 1px solid var(--bsoft); }
.act__left { padding: clamp(6rem,12vh,9rem) clamp(1.5rem,6vw,5rem) 0.5rem; }
.act__left-inner { max-width: 42rem; margin: 0 auto; }
.act__right { padding: 1.5rem clamp(1.5rem,6vw,5rem) clamp(6rem,12vh,9rem); max-width: 1080px; margin: 0 auto; }
.act__right-label { margin: 0 0 1.3rem; font-family: var(--mono); font-size: 0.66rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--dim); }

@media (min-width: 880px){
  .act--oque.choreo { height: 280vh; }
  .act--oque.choreo .act__sticky { position: sticky; top: 0; height: 100vh; overflow: hidden; }
  .act--oque.choreo .act__left { position: absolute; inset: 0; left: 0; right: 0; max-width: 1280px; margin: 0 auto; display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; padding: clamp(5rem,9vh,7rem) clamp(2rem,6vw,5rem) 0; z-index: 2; pointer-events: none; }
  .act--oque.choreo .act__left-inner { max-width: 38rem; margin: 0; transform-origin: left top; transform: translateY(calc((1 - var(--shrink,0)) * 27vh)) scale(calc(1 - 0.46 * var(--shrink,0))); }
  .act--oque.choreo .act__detail { opacity: 1; }
  .act--oque.choreo .act__right { position: absolute; top: 0; bottom: 0; right: max(2rem, calc((100% - 1280px)/2 + 2rem)); width: min(56%, 720px); display: flex; flex-direction: column; justify-content: center; padding: 0; margin: 0; max-width: none; opacity: var(--enter,0); transform: translateY(calc((1 - var(--enter,0)) * 12vh)); z-index: 3; }
  .act--oque.choreo .act__row { opacity: 0; transform: translateY(14px); transition: opacity 0.45s cubic-bezier(0.22,0.61,0.36,1), transform 0.45s cubic-bezier(0.22,0.61,0.36,1); }
  .act--oque.choreo .act__row.in { opacity: 1; transform: none; }
}

/* comparison table */
.act .scene__tag { display: none; }
@media (min-width: 880px){ .act .scene__tag { display: flex; } }
.cmp { border: 1px solid var(--bord); background: var(--bg2); }
.cmp__head { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--bord); }
.cmp__th { padding: 0.85rem 1.1rem; font-family: var(--mono); font-size: 0.6rem; letter-spacing: 0.16em; text-transform: uppercase; }
.cmp__th--m { color: var(--dim); border-right: 1px solid var(--bord); }
.cmp__th--a { color: var(--teal); background: rgba(17,221,173,0.05); display: flex; align-items: center; gap: 0.4rem; }
.cmp__row { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--bsoft); }
.cmp__row:last-child { border-bottom: none; }
.cmp__cell { padding: 0.85rem 1.1rem; font-size: 0.9rem; line-height: 1.42; }
.cmp__cell--m { color: var(--dim); border-right: 1px solid var(--bord); }
.cmp__cell--a { color: var(--ink); background: rgba(17,221,173,0.025); }
@media (prefers-reduced-motion: reduce){ .act--oque.choreo .act__row { opacity: 1; transform: none; } .act--oque.choreo .act__left-inner { transform: none; } }

/* ── ecossistema (cena 5) — vitrine de divisões/squads ────────────────── */
.eco { display: grid; grid-template-columns: 1fr; border: 1px solid var(--bord); border-top: 2px solid var(--teal); margin-top: clamp(2rem,4vw,3rem); }
@media (min-width: 640px){ .eco { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1000px){ .eco { grid-template-columns: repeat(5,1fr); } }
.eco__c { position: relative; padding: 2rem 1.6rem 1.8rem; border-top: 1px solid var(--bsoft); background: linear-gradient(180deg, color-mix(in oklab, var(--ink) 3%, transparent) 0%, transparent 100%); transition: background 0.25s ease, transform 0.2s ease, box-shadow 0.2s ease; }
.eco__c:first-child { border-top: none; }
@media (min-width: 640px){ .eco__c { border-left: 1px solid var(--bsoft); } .eco__c:nth-child(-n+2){ border-top: none; } .eco__c:nth-child(odd){ border-left: none; } }
@media (min-width: 1000px){ .eco__c { padding: 1.7rem 1.2rem 1.5rem; } .eco__c:nth-child(-n+5){ border-top: none; } .eco__c:nth-child(n){ border-left: 1px solid var(--bsoft); } .eco__c:nth-child(5n+1){ border-left: none; } }
.eco__c:hover { background: rgba(17,221,173,0.04); transform: var(--lift); box-shadow: var(--lift-sh); }
.eco__ico { display: block; width: 42px; height: 42px; margin: 0 0 1.2rem; fill: none; stroke: var(--ink); stroke-width: 1.5; stroke-linecap: round; transition: transform 0.25s var(--ease-drawer, ease); }
.eco__c:hover .eco__ico { transform: translateY(-2px); }
.eco__ico .tl { stroke: var(--teal); }
.eco__ico .tlf { fill: var(--teal); stroke: none; }
.eco__tag { display: block; margin-bottom: 0.6rem; font-family: var(--mono); font-size: 0.62rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--teal-ink); transition: letter-spacing 0.25s ease; }
.eco__c:hover .eco__tag { letter-spacing: 0.28em; }
.eco__t { margin: 0 0 0.5rem; font-family: var(--font); font-size: 1.1rem; font-weight: 700; letter-spacing: -0.01em; text-transform: lowercase; color: var(--ink); }
.eco__b { margin: 0; font-size: 0.88rem; line-height: 1.6; color: var(--dim); }
.eco__note { display: flex; align-items: center; gap: 0.7rem; margin: 2rem 0 0; font-family: var(--mono); font-size: 0.68rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--dim); }
.eco__note-dot { width: 0.45rem; height: 0.45rem; border-radius: 50%; background: var(--teal); animation: eco-pulse 2.4s ease-in-out infinite; flex-shrink: 0; }
@keyframes eco-pulse { 0%,100%{ opacity:1; transform:scale(1); } 50%{ opacity:0.4; transform:scale(0.78); } }
@media (prefers-reduced-motion: reduce){ .eco__note-dot { animation: none; } }

/* ─── Mobile: mesma coreografia do desktop (ato "o que é" sticky) ─────── */
@media (max-width: 879px){
  .act--oque.choreo { height: 300vh; height: 300svh; }
  .act--oque.choreo .act__sticky { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; }
  .act--oque.choreo .act__left { position: absolute; inset: 0; display: block; padding: 5.6rem 1.4rem 0; z-index: 2; pointer-events: none; }
  .act--oque.choreo .act__left-inner { max-width: none; margin: 0; transform-origin: left top; transform: translateY(calc((1 - var(--shrink,0)) * 9svh)) scale(calc(1 - 0.34 * var(--shrink,0))); }
  .act--oque.choreo .act__detail { opacity: calc(1 - var(--shrink,0) * 1.4); }
  .act--oque.choreo .act__right { position: absolute; left: 1.4rem; right: 1.4rem; top: 12.8rem; bottom: 1.2rem; padding: 0; margin: 0; max-width: none; display: flex; flex-direction: column; justify-content: flex-start; opacity: var(--enter,0); transform: translateY(calc((1 - var(--enter,0)) * 12svh)); z-index: 3; }
  .act--oque.choreo .act__right-label { margin-bottom: 0.7rem; font-size: 0.58rem; }
  .act--oque.choreo .cmp__cell { padding: 0.62rem 0.75rem; font-size: 0.76rem; line-height: 1.36; }
  .act--oque.choreo .cmp__th { padding: 0.65rem 0.75rem; }
  .act--oque.choreo .act__row { opacity: 0; transform: translateY(14px); transition: opacity 0.45s cubic-bezier(0.22,0.61,0.36,1), transform 0.45s cubic-bezier(0.22,0.61,0.36,1); }
  .act--oque.choreo .act__row.in { opacity: 1; transform: none; }
  .act .scene__tag { display: none; }
}
/* aviação em pé: o ciclo vira rota vertical que desenha ao rolar */
@media (max-width: 879px){
  .ciclo__list { position: relative; }
  .ciclo__step { opacity: 0; transform: translateX(-10px); transition: opacity .6s cubic-bezier(0.22,0.61,0.36,1), transform .6s cubic-bezier(0.22,0.61,0.36,1); }
  .reveal.in .ciclo__step, .ciclo__list.in .ciclo__step { opacity: 1; transform: none; }
  .ciclo__step::before { box-shadow: 0 0 0 4px color-mix(in oklab, var(--teal) 14%, transparent); }
}
@media (max-width: 879px) and (prefers-reduced-motion: reduce){
  .act--oque.choreo .act__row, .ciclo__step { opacity: 1; transform: none; transition: none; }
  .act--oque.choreo .act__right { opacity: 1; transform: none; }
}
