/* =====================================================================
   ZenusHub · landing (index.php) — camada "viva" v8
   Só esta página. Por cima do sistema v7 (assets/css/zenus.css), sem o alterar.

   Ideia: "a leitura". A Zenus AI lê o gráfico com um feixe de luz; a página
   usa a mesma linguagem: um campo de luz violeta que respira atrás de tudo e
   muda de temperatura por capítulo, palavras que entram em foco, um feixe que
   revela a análise real no gráfico real, um telemóvel que faz o fluxo, e
   números reais que contam quando aparecem.

   Desvio consciente do DESIGN.md (§1.3 luz de fundo, §1.5 brilho, §6 loops)
   pedido pelo dono em 2026-09-30 ("só preto não prende"), limitado a esta página.
   Regras: só transform/opacity nas animações contínuas; tudo pausa fora do ecrã
   (.zh-live); prefers-reduced-motion = estados finais, sem movimento espacial.
   ===================================================================== */

@property --zh-sh{syntax:'<percentage>';inherits:true;initial-value:-40%}
@property --zh-a{syntax:'<angle>';inherits:false;initial-value:0deg}

.zh-page{--ease-out:cubic-bezier(.16,1,.3,1);--zh-glow:rgba(123,77,234,.55)}

/* ── 0 · campo de luz ambiente (fixo, atrás de tudo) ── */
html:has(body.zh-page){background:#000}
body.zh-page{background:transparent}
.zh-amb{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden;background:#000;contain:strict}
/* recurso sem WebGL: céu de luz estático com as cores do capítulo (o JS muda as variáveis) */
.zh-amb::before{content:"";position:absolute;inset:0;
  background:
    radial-gradient(70% 46% at 50% -6%,rgb(var(--amb-b,91 53 214) / .42),transparent 72%),
    radial-gradient(46% 38% at 104% 18%,rgb(var(--amb-c,178 75 219) / .20),transparent 70%),
    radial-gradient(52% 40% at -6% 34%,rgb(var(--amb-a,40 26 120) / .30),transparent 72%),
    radial-gradient(80% 30% at 50% 108%,rgb(var(--amb-b,91 53 214) / .14),transparent 70%);
  transition:opacity 1.2s var(--ease)}
.zh-amb canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity 1.6s var(--ease)}
.zh-amb.gl canvas{opacity:1}
.zh-amb.gl::before{opacity:0}
/* grão fino só no fundo (nunca por cima do texto): tira o banding do gradiente */
.zh-grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.055;
  background:url("../imgs/landing/grain.webp") repeat;background-size:96px 96px}

/* nada sai pelos lados (luzes e planos 3D são maiores do que a coluna) */
.zh-page #conteudo>section,.zh-page #conteudo>.zh-interlude{overflow-x:clip}

/* superfícies passam a deixar ver a luz (sem blur: cartões nunca desfocam) */
.zh-page .zn-ribbon{background:rgba(8,8,12,.5);border-bottom-color:rgba(255,255,255,.07)}
.zh-page .zn-section.alt{background:linear-gradient(180deg,rgba(10,10,14,.2),rgba(10,10,14,.55) 30%,rgba(10,10,14,.55) 70%,rgba(10,10,14,.2))}
.zh-page .zn-card,.zh-page .zn-tile{background:rgba(15,15,20,.84)}
.zh-page .zh-vs-card.good{background:linear-gradient(180deg,rgba(24,20,36,.9) 0%,rgba(15,15,20,.86) 100%)}
.zh-page .zn-footer{background:rgba(0,0,0,.62)}

/* ── 1 · progresso de leitura (base da nav) ── */
.zh-prog{position:absolute;left:0;right:0;bottom:-1px;height:2px;pointer-events:none;transform-origin:0 50%;transform:scaleX(0);
  background:linear-gradient(90deg,var(--p-700),var(--p-400) 60%,var(--p-200));will-change:transform}
.zh-prog::after{content:"";position:absolute;right:-1px;top:-2px;width:26px;height:6px;border-radius:6px;background:radial-gradient(closest-side,rgba(221,210,254,.9),transparent)}

/* ── 2 · barra de urgência no topo (como na versão antiga): roxa, mono, sempre visível dentro da nav fixa ── */
/* --zh-urg-h: altura real medida no index.php (style no <html>); estes valores são só o ponto de partida */
:root{--zh-urg-h:37px}
html{scroll-padding-top:calc(var(--nav-h) + var(--zh-urg-h) + 16px)}
.zh-urg{text-align:center;padding:11px 14px;font-family:var(--mono);font-size:11.5px;letter-spacing:.09em;font-weight:500;line-height:1.3;color:#fff;
  background:linear-gradient(90deg,#8B5CF6,#A855F7,#6D28D9,#A855F7,#8B5CF6);background-size:220% 100%;animation:zhUrgFlow 5s linear infinite;
  box-shadow:0 6px 34px rgba(139,92,246,.45)}
.zh-urg b{font-weight:800}
@keyframes zhUrgFlow{0%{background-position:0 0}100%{background-position:220% 0}}
.zh-urg-sp{height:calc(var(--nav-h) + var(--zh-urg-h))}
@media(max-width:640px){:root{--zh-urg-h:46px}.zh-urg{font-size:9.5px;letter-spacing:.05em;padding:9px 10px;line-height:1.5}}
@media(prefers-reduced-motion:reduce){.zh-urg{animation:none}}
@keyframes zhPing{0%{box-shadow:0 0 0 0 rgba(168,141,251,.55)}70%,100%{box-shadow:0 0 0 7px rgba(168,141,251,0)}}

/* ── 3 · hero ── */
.zh-hero{isolation:isolate}
.zh-hero .zn-hero-title{position:relative}
/* palavras em foco (o split é feito por um script inline logo a seguir ao h1) */
.zh-split .zh-w{display:inline-block}
.zh-split .zn-grad{background:none!important}
.zh-split .zn-grad .zh-w{
  background-image:linear-gradient(100deg,rgba(255,255,255,0) calc(var(--zh-sh) - 8%),rgba(255,255,255,.96) var(--zh-sh),rgba(255,255,255,0) calc(var(--zh-sh) + 8%)),var(--accent-grad);
  background-size:var(--gw,100%) 100%;background-position:var(--gx,0px) 0;background-repeat:no-repeat;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
  padding:.05em 0 .12em;margin:-.05em 0 -.12em}
@media (prefers-reduced-motion:no-preference){
  .zh-split .zh-w{opacity:0;transform:translate3d(0,.38em,0) scale(.985);filter:blur(9px);
    animation:zhWord 1s var(--ease-out) forwards;animation-delay:calc(var(--i) * 32ms + 60ms)}
  .zh-split{animation:zhSheen 8s var(--ease-in-out) 1.05s infinite;animation-play-state:paused}
  .zh-hero.zh-live .zh-split{animation-play-state:running}
}
@keyframes zhWord{to{opacity:1;transform:none;filter:blur(0)}}
@keyframes zhSheen{0%{--zh-sh:-40%}20%{--zh-sh:140%}100%{--zh-sh:140%}}
/* o resto do hero chega depois das palavras */
.zh-hero .zn-hero-sub.zn-fade{animation-delay:.42s}
.zh-hero .zh-vsl.zn-fade{animation:zhRise 1.1s var(--ease-out) .5s forwards}
.zh-hero .zh-callput.zn-fade{animation-delay:.72s}
.zh-hero .zn-hero-cta.zn-fade{animation-delay:.8s}
.zh-hero .zh-trust.zn-fade{animation-delay:.9s}
@keyframes zhRise{from{opacity:0;transform:translateY(26px) scale(.965)}to{opacity:1;transform:none}}

/* VSL: aresta de luz viva (Apple Intelligence, em violeta) + luz de chão */
.zh-page .zh-vsl{padding:1.5px;background:rgba(255,255,255,.1);isolation:isolate;
  box-shadow:0 40px 100px -24px rgba(0,0,0,.9),0 0 0 1px rgba(255,255,255,.04)}
.zh-page .zh-vsl>:not(.zh-edge){position:relative;z-index:1;border-radius:calc(var(--r-xl) - 1.5px);overflow:hidden}
.zh-edge{position:absolute;left:50%;top:50%;width:160%;aspect-ratio:1;margin:-80% 0 0 -80%;z-index:0;pointer-events:none;border-radius:50%;
  background:conic-gradient(from 0deg,
    transparent 0deg,transparent 40deg,rgba(123,77,234,.0) 50deg,rgba(143,107,245,.9) 78deg,#F1EAFF 92deg,rgba(192,107,255,.9) 104deg,transparent 140deg,
    transparent 210deg,rgba(91,76,230,.0) 220deg,rgba(110,90,240,.75) 248deg,#DCCFFF 262deg,rgba(214,91,208,.7) 276deg,transparent 312deg,transparent 360deg);
  animation:zhSpin 7s linear infinite;animation-play-state:paused}
.zh-live .zh-edge,.zh-edge.zh-live{animation-play-state:running}
@keyframes zhSpin{to{transform:rotate(1turn)}}
.zh-floor{position:relative;height:0;max-width:1000px;margin:0 auto;pointer-events:none}
.zh-floor::before{content:"";position:absolute;left:8%;right:8%;top:-34px;height:110px;border-radius:50%;
  background:radial-gradient(50% 50% at 50% 40%,rgba(123,77,234,.42),rgba(91,53,214,.14) 55%,transparent 75%);opacity:.9}
@media(max-width:560px){.zh-page .zh-vsl{border-radius:var(--r-lg)}.zh-page .zh-vsl>:not(.zh-edge){border-radius:calc(var(--r-lg) - 1.5px)}.zh-floor::before{top:-26px;height:80px}}

/* CALL / PUT: a decisão a alternar (como a IA a pesar os dois lados) */
.zh-page .zh-dir{position:relative;overflow:hidden;transition:transform .5s var(--ease-spring),box-shadow .5s var(--ease)}
@media (prefers-reduced-motion:no-preference){
  .zh-hero.zh-live .zh-dir.call{animation:zhPick 5.6s var(--ease) 1.6s infinite}
  .zh-hero.zh-live .zh-dir.put{animation:zhPick 5.6s var(--ease) 4.4s infinite}
}
@keyframes zhPick{0%,100%{transform:none;box-shadow:none}8%{transform:scale(1.07)}16%,40%{transform:scale(1.04);box-shadow:0 0 0 1px currentColor inset}50%{transform:none;box-shadow:none}}

/* ── 4 · botões de compra vivos ── */
.zh-cta{position:relative;isolation:isolate;overflow:hidden;
  background:linear-gradient(180deg,#8B5EF1 0%,#7646E6 55%,#6C3DDD 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),inset 0 -1px 0 rgba(0,0,0,.18),0 14px 34px -14px var(--zh-glow),0 0 0 1px rgba(197,179,253,.16);
  transition:background var(--d-2) var(--ease),transform var(--d-2) var(--ease-spring),box-shadow .4s var(--ease),translate .6s var(--ease-spring)}
.zh-cta:hover{background:linear-gradient(180deg,#9468F4 0%,#7F50EA 55%,#7342E2 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.34),inset 0 -1px 0 rgba(0,0,0,.18),0 18px 44px -14px rgba(123,77,234,.75),0 0 0 1px rgba(197,179,253,.26)}
.zh-cta::after{content:"";position:absolute;top:-20%;bottom:-20%;left:0;width:42%;z-index:-1;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.36) 50%,transparent);transform:translateX(-130%) skewX(-18deg);
  animation:zhShine 5.2s var(--ease-in-out) 1.6s infinite;animation-play-state:paused}
.zh-live .zh-cta::after,.zh-cta.zh-live::after,.zn-ctabar.show .zh-cta::after{animation-play-state:running}
@keyframes zhShine{0%{transform:translateX(-130%) skewX(-18deg)}24%,100%{transform:translateX(330%) skewX(-18deg)}}
/* aresta luminosa a rodar (só nos dois botões principais) */
.zh-cta.edge::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;z-index:-1;pointer-events:none;
  background:conic-gradient(from var(--zh-a),rgba(255,255,255,0) 0deg,rgba(255,255,255,0) 200deg,rgba(241,234,255,.95) 250deg,rgba(255,255,255,0) 300deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
  animation:zhTurn 3.6s linear infinite;animation-play-state:paused}
.zh-live .zh-cta.edge::before{animation-play-state:running}
@keyframes zhTurn{to{--zh-a:360deg}}
.zh-cta>*{position:relative}

/* ── 5 · cartões: luz que segue o cursor (desktop) / luz de cima (toque) ── */
.zh-spot{position:relative}
.zh-spot::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;
  background:radial-gradient(120% 60% at 50% -10%,rgba(168,141,251,.07),transparent 60%)}
@media (hover:hover) and (pointer:fine){
  .zh-spot::after{background:radial-gradient(520px circle at var(--mx,50%) var(--my,-20%),rgba(168,141,251,.1),transparent 55%);transition:opacity .5s var(--ease)}
  .zh-spot::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;pointer-events:none;z-index:1;opacity:0;transition:opacity .45s var(--ease);
    background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(221,210,254,.55),transparent 70%);
    -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
  .zh-spot:hover::before{opacity:1}
  .zn-tile.zh-spot::before{inset:0}
}
@media (hover:none){
  .zh-spot::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;opacity:0;transition:opacity .6s var(--ease);
    background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(168,141,251,.16),transparent 60%)}
  .zh-spot.zh-touch::before{opacity:1;transition-duration:.12s}
}
.zh-spot>*{position:relative;z-index:1}

/* ── 6 · números reais ── */
.zh-spec{position:relative}
.zh-spec .zn-spec-v{position:relative}
.zh-count{display:inline-block;text-align:center;font-variant-numeric:tabular-nums}
.zh-ticks{display:flex;justify-content:center;gap:3px;margin:-2px auto 18px;height:16px;align-items:flex-end}
.zh-ticks i{width:4px;height:100%;border-radius:2px;background:rgba(255,255,255,.12);transform-origin:50% 100%}
.zh-ticks i.w{background:var(--green)}
@media (prefers-reduced-motion:no-preference){
  .zh-anim .zh-ticks i{transform:scaleY(.25);opacity:.4;transition:transform .5s var(--ease-spring),opacity .4s var(--ease);transition-delay:calc(var(--k) * 26ms + 200ms)}
  .zh-anim .zh-spec.in .zh-ticks i,.zh-anim .zh-ticks.in i{transform:none;opacity:1}
}
@media(max-width:400px){.zh-ticks{gap:2px}.zh-ticks i{width:3.5px}}
/* brilho único quando o número chega ao fim */
.zh-hit{animation:zhHit .9s var(--ease-out)}
@keyframes zhHit{0%{transform:scale(1)}30%{transform:scale(1.045)}100%{transform:scale(1)}}

/* ── 7 · faixa de prints em 3D ── */
.zh-proofbar{position:relative}
.zh-marq3d{position:relative;perspective:1500px;perspective-origin:50% 0;padding:8px 0 0;margin-bottom:-24px;overflow:hidden;contain:paint;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.zh-marq-plane{display:flex;flex-direction:column;gap:16px;transform:rotateX(12deg) rotateZ(-2.2deg) scale(1.06);transform-origin:50% 30%}
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .zh-marq-plane{animation:zhFlat linear both;animation-timeline:view();animation-range:entry 0% cover 55%}
    @keyframes zhFlat{from{transform:rotateX(34deg) rotateZ(-5deg) scale(1.14) translateY(30px)}to{transform:rotateX(9deg) rotateZ(-1.6deg) scale(1.04)}}
  }
}
.zh-marq-row{display:flex;width:max-content;animation:zhMarq3 80s linear infinite;animation-play-state:paused}
@keyframes zhMarq3{to{transform:translate3d(-33.3333%,0,0)}}
.zh-marq-row.rev{animation-direction:reverse;animation-duration:92s;margin-left:-140px}
.zh-live .zh-marq-row{animation-play-state:running}
.zh-marq3d:hover .zh-marq-row{animation-play-state:paused}
.zh-print{position:relative;flex:0 0 auto;margin-right:16px;border-radius:var(--r-md);overflow:hidden;background:var(--surf);
  box-shadow:0 0 0 1px var(--line2),0 24px 40px -18px rgba(0,0,0,.9);transition:transform .6s var(--ease-spring)}
.zh-print img{display:block;height:200px;width:auto;cursor:zoom-in}
.zh-print::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:linear-gradient(118deg,rgba(255,255,255,.13) 0%,rgba(255,255,255,0) 34%,rgba(255,255,255,0) 70%,rgba(168,141,251,.08) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}
.zh-print:hover{transform:translateY(-6px) scale(1.03)}
/* luz a varrer o plano de vidro */
.zh-marq3d::after{content:"";position:absolute;top:0;bottom:0;left:0;width:30%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(197,179,253,.10) 45%,rgba(255,255,255,.12) 50%,rgba(197,179,253,.10) 55%,transparent);
  transform:translateX(-120%);animation:zhSweep 9s var(--ease-in-out) 2s infinite;animation-play-state:paused}
.zh-live.zh-marq3d::after{animation-play-state:running}
@keyframes zhSweep{0%{transform:translateX(-120%)}45%,100%{transform:translateX(440%)}}
@media(max-width:640px){.zh-print img{height:150px}.zh-print{margin-right:10px}.zh-marq-plane{gap:10px}.zh-marq-row.rev{margin-left:-90px}.zh-marq-plane{transform:rotateX(10deg) rotateZ(-2deg) scale(1.08)}}

/* ── 8 · antes / depois no gráfico real ── */
.zh-ba{max-width:1080px;margin:0 auto clamp(44px,5.4vw,80px);padding:0 var(--gutter)}
.zh-ba-frame{--p:50;position:relative;border-radius:var(--r-xl);overflow:hidden;aspect-ratio:1400/660;background:#0D1017;isolation:isolate;
  box-shadow:0 0 0 1px var(--line2),0 44px 110px -30px rgba(0,0,0,.95),0 30px 80px -40px rgba(123,77,234,.5);
  touch-action:pan-y;cursor:ew-resize;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
.zh-ba-frame img{position:absolute;left:0;top:0;width:100%;height:121.3%;object-fit:cover;object-position:50% 0;pointer-events:none;-webkit-user-drag:none}
.zh-ba-top{position:absolute;inset:0;overflow:hidden;transform:translate3d(calc((var(--p) - 100) * 1%),0,0);will-change:transform}
.zh-ba-top img{transform:translate3d(calc((100 - var(--p)) * 1%),0,0);will-change:transform}
.zh-ba-beam{position:absolute;inset:0;pointer-events:none;transform:translate3d(calc(var(--p) * 1%),0,0);will-change:transform;z-index:3}
.zh-ba-beam::before{content:"";position:absolute;top:0;bottom:0;left:-1px;width:2px;
  background:linear-gradient(180deg,rgba(221,210,254,0),#F1EAFF 18%,#C5B3FD 50%,#F1EAFF 82%,rgba(221,210,254,0));box-shadow:0 0 18px 2px rgba(168,141,251,.55)}
.zh-ba-wake{position:absolute;top:0;bottom:0;right:100%;width:22%;background:linear-gradient(90deg,rgba(123,77,234,0),rgba(123,77,234,.2));mix-blend-mode:screen}
.zh-ba-knob{position:absolute;left:0;top:50%;width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:50%;display:grid;place-items:center;
  background:rgba(20,18,28,.78);box-shadow:0 0 0 1.5px rgba(221,210,254,.8),0 10px 30px rgba(0,0,0,.6),0 0 30px rgba(143,107,245,.45);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .4s var(--ease-spring)}
.zh-ba-knob svg{width:24px;height:24px;color:#fff}
.zh-ba-frame.drag .zh-ba-knob{transform:scale(1.12)}
.zh-ba-tag{position:absolute;top:16px;z-index:4;display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 12px;border-radius:var(--r-pill);
  font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;pointer-events:none;transition:opacity .35s var(--ease)}
.zh-ba-tag.l{left:16px;background:rgba(123,77,234,.9);color:#fff;opacity:calc((var(--p) - 18) / 12)}
.zh-ba-tag.r{right:16px;background:rgba(0,0,0,.62);color:var(--ink2);box-shadow:inset 0 0 0 1px var(--line2);opacity:calc((82 - var(--p)) / 12)}
.zh-ba-range{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;pointer-events:none}
.zh-ba-frame:focus-within{box-shadow:0 0 0 2px var(--p-400),0 44px 110px -30px rgba(0,0,0,.95)}
.zh-ba-hint{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:16px;font-size:14px;color:var(--ink2)}
.zh-ba-hint svg{width:30px;height:14px;color:var(--p-300)}
@media (prefers-reduced-motion:no-preference){.zh-ba-hint svg{animation:zhNudge 2.2s var(--ease-in-out) infinite}}
@keyframes zhNudge{0%,100%{transform:translateX(-4px)}50%{transform:translateX(4px)}}
@media(max-width:640px){
  .zh-ba{padding:0 12px}
  .zh-ba-frame{border-radius:var(--r-lg);aspect-ratio:1.02}
  .zh-ba-frame img{height:150%;object-position:100% 0}
  .zh-ba-tag{top:10px;height:26px;font-size:11.5px;padding:0 10px}.zh-ba-tag.l{left:10px}.zh-ba-tag.r{right:10px}
  .zh-ba-knob{width:46px;height:46px;margin:-23px 0 0 -23px}
}

/* listas: cada item entra quando o cartão aparece */
@media (prefers-reduced-motion:no-preference){
  .zh-anim .zh-vs-card .zh-list li{opacity:0;transform:translateY(10px);transition:opacity .6s var(--ease),transform .7s var(--ease-spring);transition-delay:calc(var(--k,0) * 70ms + 180ms)}
  .zh-anim .zh-vs-card.in .zh-list li{opacity:1;transform:none}
  .zh-anim .zh-vs-card .zh-list li::before{transform:scale(0);transition:transform .5s var(--ease-spring);transition-delay:calc(var(--k,0) * 70ms + 320ms)}
  .zh-anim .zh-vs-card.in .zh-list li::before{transform:none}
}

/* ── 9 · citações: profundidade + inclinação ── */
.zh-page .zh-quote{transform-style:preserve-3d;transition:transform .7s var(--ease-spring),border-color .4s}
.zh-page .zh-quote img{box-shadow:0 0 0 1px var(--line),0 18px 36px -16px rgba(0,0,0,.95);transform:translateZ(0)}
@media (hover:hover) and (pointer:fine){
  .zh-page .zh-quote:hover{border-color:var(--line2)}
  .zh-page .zh-quote:hover img{transform:translateZ(0) scale(1.04) rotate(-1.2deg)}
}
.zh-quote figcaption b .zh-count{text-align:left}

/* ── 10 · interlúdios: as palavras acendem com o scroll ── */
.zh-page .zh-interlude{position:relative;overflow:hidden;background:linear-gradient(90deg,rgba(10,10,14,.2),rgba(10,10,14,.6) 50%,rgba(10,10,14,.2));padding:clamp(40px,5vw,72px) var(--gutter)}
.zh-page .zh-interlude::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(197,179,253,.8),transparent);transform:translateX(-100%);animation:zhRun 6s var(--ease-in-out) infinite;animation-play-state:paused}
.zh-page .zh-interlude.zh-live::before{animation-play-state:running}
@keyframes zhRun{0%{transform:translateX(-100%)}50%,100%{transform:translateX(100%)}}
.zh-page .zh-interlude p{font-size:clamp(28px,4.4vw,60px);font-weight:700;letter-spacing:-.035em;line-height:1.05}
.zh-kin .zh-k{color:#3A3A44;transition:color .5s var(--ease),opacity .5s var(--ease)}
.zh-kin .zh-k.lit{color:var(--ink)}
.zh-kin .zn-grad .zh-k{-webkit-text-fill-color:#3A3A44;transition:-webkit-text-fill-color .6s var(--ease)}
.zh-kin .zn-grad .zh-k.lit{-webkit-text-fill-color:transparent}
@media (prefers-reduced-motion:reduce){.zh-kin .zh-k{color:inherit}.zh-kin .zn-grad .zh-k{-webkit-text-fill-color:transparent}}

/* ── 11 · como funciona: o telemóvel faz o fluxo real ── */
.zh-flow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto);gap:clamp(40px,7vw,120px);align-items:center;max-width:var(--maxw);margin:0 auto}
.zh-flow .zh-steps{grid-template-columns:minmax(0,1fr);gap:12px;max-width:560px;margin:0}
.zh-flow .zh-step{cursor:pointer;padding:clamp(22px,2.4vw,30px) clamp(22px,2.6vw,32px) clamp(24px,2.6vw,32px);transition:opacity .5s var(--ease),background .5s var(--ease),transform .6s var(--ease-spring)}
.zh-flow .zh-step-top{margin-bottom:18px}
.zh-flow .zh-step .zn-step-t{font-size:clamp(22px,2vw,27px)}
.zh-flow .zh-step .zn-step-d{font-size:15.5px;margin-top:10px}
.zh-step-bar{position:absolute;left:clamp(22px,2.6vw,32px);right:clamp(22px,2.6vw,32px);bottom:14px;height:2px;border-radius:2px;background:rgba(255,255,255,.08);overflow:hidden;z-index:2}
.zh-step-bar i{display:block;height:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--p-500),var(--p-200))}
.zh-flow.run .zh-step{opacity:.5}
.zh-flow.run .zh-step.on{opacity:1;background:rgba(22,20,31,.92)}
.zh-flow.run .zh-step.on .zh-step-ic{background:var(--accent-fill);color:#fff}
.zh-flow.run .zh-step.on .zh-step-bar i{animation:zhBar var(--dur,3000ms) linear forwards}
.zh-flow.run .zh-step.done .zh-step-bar i{transform:none}
.zh-step-ic{transition:background .4s var(--ease),color .4s var(--ease)}
@keyframes zhBar{to{transform:none}}
.zh-flow-media{position:relative;display:flex;justify-content:center;padding:10px 0 30px}
.zh-flow-media::before{content:"";position:absolute;left:50%;top:48%;width:170%;aspect-ratio:1;translate:-50% -50%;pointer-events:none;z-index:-1;border-radius:50%;
  background:radial-gradient(closest-side,rgba(123,77,234,.26),rgba(91,53,214,.08) 55%,transparent)}
.zh-flow-media::after{content:"";position:absolute;left:12%;right:12%;bottom:0;height:60px;border-radius:50%;pointer-events:none;
  background:radial-gradient(50% 50% at 50% 50%,rgba(0,0,0,.9),transparent 70%);z-index:-1}
.zh-phone.zn-device{width:min(300px,70vw)}
.zh-phone .zn-device-screen{background:#07070A}
.zh-ph-status{position:absolute;top:15px;left:26px;right:22px;z-index:4;display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:600;color:#fff;font-variant-numeric:tabular-nums}
.zh-ph-icons{display:flex;align-items:center;gap:4px}
.zh-ph-status svg{height:10px;width:auto;flex:none}
.zh-ph-app{position:absolute;inset:0;padding:52px 13px 14px;display:flex;flex-direction:column;gap:10px}
.zh-ph-head{display:flex;align-items:center;gap:8px;height:30px;font-size:13px;font-weight:600;color:#fff;transition:opacity .5s var(--ease)}
.zh-ph-head img{width:15px;height:auto}
.zh-ph-state{margin-left:auto;display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:999px;background:var(--accent-soft);color:var(--p-200);font-size:10.5px;font-weight:600;opacity:0;transition:opacity .35s var(--ease)}
.zh-ph-state i{width:9px;height:9px;border-radius:50%;border:1.6px solid rgba(221,210,254,.3);border-top-color:var(--p-200);animation:zhRot .8s linear infinite}
@keyframes zhRot{to{transform:rotate(1turn)}}
.zh-ph-card{position:relative;aspect-ratio:1.02;border-radius:14px;overflow:hidden;background:#0D1017;box-shadow:0 0 0 1px rgba(255,255,255,.08);z-index:2;
  transform-origin:50% 22%;transition:transform 1s var(--ease-spring),border-radius .8s var(--ease)}
.zh-ph-card img{position:absolute;top:-1%;left:-133%;width:236%;max-width:none;height:auto;pointer-events:none}
.zh-ph-full{position:absolute;inset:0;z-index:2;overflow:hidden;opacity:0;pointer-events:none;background:#0D1017;transform-origin:50% 30%}
.zh-ph-full img{position:absolute;top:-2%;left:-212%;height:130%;width:auto;max-width:none}
.zh-ph-annot{position:absolute;inset:0;overflow:hidden}
.zh-flow.run[data-stage="0"] .zh-ph-annot{transform:translate3d(-100%,0,0)}
.zh-flow.run[data-stage="0"] .zh-ph-annot img{transform:translate3d(100%,0,0)}
.zh-ph-beam{position:absolute;top:0;bottom:0;left:0;width:2px;z-index:2;opacity:0;transform:translate3d(-4px,0,0);
  background:linear-gradient(180deg,transparent,#F1EAFF 20%,#C5B3FD 80%,transparent);box-shadow:0 0 14px 2px rgba(168,141,251,.7)}
.zh-ph-beam::before{content:"";position:absolute;top:0;bottom:0;right:2px;width:70px;background:linear-gradient(90deg,rgba(123,77,234,0),rgba(123,77,234,.28))}
.zh-ph-flash{position:absolute;inset:0;z-index:3;background:#fff;opacity:0;pointer-events:none}
.zh-ph-res{display:flex;flex-direction:column;gap:9px;padding:12px;border-radius:14px;background:rgba(255,255,255,.045);box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.zh-ph-dir{display:flex;align-items:center;gap:8px;font-size:38px;font-weight:700;letter-spacing:-.04em;line-height:1;color:var(--green)}
.zh-ph-dir svg{width:20px;height:20px}
.zh-ph-conf{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:600;color:var(--ink3)}
.zh-ph-meter{flex:1;height:6px;border-radius:6px;background:rgba(255,255,255,.08);overflow:hidden}
.zh-ph-meter i{display:block;height:100%;width:100%;border-radius:6px;background:linear-gradient(90deg,#27B04B,var(--green-ink));transform-origin:0 50%;transform:scaleX(.8)}
.zh-ph-when{display:inline-flex;align-items:center;align-self:flex-start;gap:7px;height:28px;padding:0 11px;border-radius:9px;background:var(--green-soft);color:var(--green-ink);font-size:11.5px;font-weight:600}
.zh-ph-when i{width:6px;height:6px;border-radius:50%;background:currentColor;animation:zhPing2 1.6s var(--ease) infinite}
@keyframes zhPing2{0%{box-shadow:0 0 0 0 rgba(74,222,128,.6)}80%,100%{box-shadow:0 0 0 6px rgba(74,222,128,0)}}
.zh-ph-tabs{position:absolute;left:0;right:0;bottom:0;z-index:4;display:flex;justify-content:space-around;align-items:center;height:58px;padding:0 18px 8px;
  background:rgba(12,12,16,.92);border-top:1px solid rgba(255,255,255,.06);transition:opacity .5s var(--ease)}
.zh-ph-tabs i{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;color:#6E6E76}
.zh-ph-tabs i.on{color:var(--p-300)}
.zh-ph-tabs svg{width:19px;height:19px}

/* estados do fluxo (só quando o JS corre; sem JS fica o resultado final) */
.zh-flow.run .zh-ph-res>*{transition:opacity .5s var(--ease),transform .7s var(--ease-spring)}
.zh-flow.run[data-stage="0"] .zh-ph-full{opacity:1;transition:none}
.zh-flow.run[data-stage="0"].s0b .zh-ph-full{opacity:0;transform:translateY(-6%) scale(.82);border-radius:30px;transition:opacity .75s var(--ease) .1s,transform .9s var(--ease-spring),border-radius .9s var(--ease)}
.zh-flow.run[data-stage="0"] .zh-ph-card{opacity:0;transform:scale(1.12)}
.zh-flow.run[data-stage="0"].s0b .zh-ph-card{opacity:1;transform:none;transition:opacity .6s var(--ease) .2s,transform .9s var(--ease-spring) .1s}
.zh-flow.run[data-stage="0"] .zh-ph-head,.zh-flow.run[data-stage="0"] .zh-ph-res,.zh-flow.run[data-stage="0"] .zh-ph-tabs{opacity:0}
.zh-flow.run[data-stage="0"].s0b .zh-ph-head,.zh-flow.run[data-stage="0"].s0b .zh-ph-res,.zh-flow.run[data-stage="0"].s0b .zh-ph-tabs{opacity:1;transition:opacity .6s var(--ease) .45s}
.zh-flow.run[data-stage="0"] .zh-ph-flash{animation:zhFlash .7s var(--ease) .45s both}
.zh-ph-full .zh-ph-flash{z-index:6}
@keyframes zhFlash{0%{opacity:0}12%{opacity:.85}100%{opacity:0}}
.zh-flow.run[data-stage="0"] .zh-ph-res>*,.zh-flow.run[data-stage="1"] .zh-ph-res>*{opacity:.0;transform:translateY(10px)}
.zh-flow.run[data-stage="0"] .zh-ph-res,.zh-flow.run[data-stage="1"] .zh-ph-res{background:rgba(255,255,255,.03)}
.zh-ph-res{position:relative;overflow:hidden}
.zh-ph-res::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transform:translateX(-100%);
  background:linear-gradient(100deg,transparent 20%,rgba(197,179,253,.10) 50%,transparent 80%)}
.zh-flow.run[data-stage="1"] .zh-ph-res::after{opacity:1;animation:zhSkel 1.1s var(--ease-in-out) infinite}
@keyframes zhSkel{to{transform:translateX(100%)}}
.zh-flow.run[data-stage="1"] .zh-ph-state{opacity:1}
.zh-flow.run[data-stage="1"] .zh-ph-annot{animation:zhPhA 2.1s var(--ease-in-out) .15s both}
.zh-flow.run[data-stage="1"] .zh-ph-annot img{animation:zhPhI 2.1s var(--ease-in-out) .15s both}
.zh-flow.run[data-stage="1"] .zh-ph-beam{animation:zhPhB 2.1s var(--ease-in-out) .15s forwards}
@keyframes zhPhA{from{transform:translate3d(-100%,0,0)}to{transform:none}}
@keyframes zhPhI{from{transform:translate3d(100%,0,0)}to{transform:none}}
@keyframes zhPhB{0%{opacity:1;transform:translate3d(-4px,0,0)}92%{opacity:1}100%{opacity:0;transform:translate3d(var(--cw,260px),0,0)}}
.zh-flow.run[data-stage="2"] .zh-ph-annot,.zh-flow.run[data-stage="2"] .zh-ph-annot img{transform:none}
.zh-flow.run[data-stage="2"] .zh-ph-res>*{opacity:1;transform:none}
.zh-flow.run[data-stage="2"] .zh-ph-res>:nth-child(2){transition-delay:.12s}
.zh-flow.run[data-stage="2"] .zh-ph-res>:nth-child(3){transition-delay:.24s}
.zh-flow.run[data-stage="2"] .zh-ph-meter i{animation:zhMeter 1.2s var(--ease-out) .25s both}
.zh-flow.run[data-stage="2"] .zh-ph-dir{animation:zhDir .8s var(--ease-spring) both}
@keyframes zhMeter{from{transform:scaleX(0)}to{transform:scaleX(.8)}}
@keyframes zhDir{0%{transform:translateY(12px) scale(.9);opacity:0}100%{transform:none;opacity:1}}
@media(max-width:900px){
  .zh-flow{grid-template-columns:minmax(0,1fr);gap:28px}
  .zh-flow-media{order:-1;padding-bottom:18px}
  .zh-flow .zh-steps{max-width:none;gap:10px}
  .zh-phone.zn-device{width:min(250px,64vw);border-radius:44px;padding:9px}
  .zh-phone .zn-device-screen{border-radius:36px}
  .zh-phone .zn-device-island{height:22px;top:9px}
  .zh-ph-status{top:12px;left:22px;right:18px;font-size:10.5px}
  .zh-ph-app{padding:42px 10px 10px;gap:8px}
  .zh-ph-dir{font-size:31px}
  .zh-ph-tabs{height:48px;padding:0 12px 6px}.zh-ph-tabs svg{width:16px;height:16px}
  .zh-flow .zh-step{padding:18px 18px 24px}
  .zh-flow .zh-step-top{margin-bottom:10px}
  .zh-flow .zh-step .zn-step-t{font-size:20px}
  .zh-flow .zh-step .zn-step-d{font-size:15px}
  .zh-step-bar{left:18px;right:18px;bottom:11px}
  .zh-flow .zh-step-ic{width:40px;height:40px;border-radius:12px}
}

/* ── 12 · primeiros 7 dias: a linha acende de dia para dia ── */
.zh-day::after{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;transform-origin:0 50%;
  background:linear-gradient(90deg,var(--p-300),var(--p-500) 70%,rgba(143,107,245,.15))}
.zh-page .zh-day::before{z-index:1;background:var(--p-300);box-shadow:0 0 0 4px rgba(168,141,251,.18)}
@media (prefers-reduced-motion:no-preference){
  .zh-anim .zh-day::after{transform:scaleX(0);transition:transform 1.3s var(--ease-out) calc(var(--delay,0ms) + 250ms)}
  .zh-anim .zh-day.in::after{transform:none}
  .zh-anim .zh-day::before{transform:scale(0);transition:transform .6s var(--ease-spring) calc(var(--delay,0ms) + 150ms),box-shadow .6s}
  .zh-anim .zh-day.in::before{transform:none;animation:zhDot 1.6s var(--ease) calc(var(--delay,0ms) + 500ms) 1 both}
}
@keyframes zhDot{0%{box-shadow:0 0 0 4px rgba(168,141,251,.18),0 0 0 4px rgba(168,141,251,.6)}100%{box-shadow:0 0 0 4px rgba(168,141,251,.18),0 0 0 18px rgba(168,141,251,0)}}

/* ── 13 · stack de valor: os preços riscam-se e o total desce até aos 29 € ── */
.zh-page .zh-stack .zn-receipt li>em{position:relative;text-decoration:none}
.zh-page .zh-stack .zn-receipt li:not(.total)>em::after{content:"";position:absolute;left:-3px;right:-3px;top:54%;height:1.5px;border-radius:1px;background:currentColor;transform-origin:0 50%}
@media (prefers-reduced-motion:no-preference){
  .zh-anim .zh-stack .zn-receipt li{opacity:0;transform:translateY(12px);transition:opacity .55s var(--ease),transform .7s var(--ease-spring);transition-delay:calc(var(--k,0) * 85ms + 120ms)}
  .zh-anim .zh-stack.in .zn-receipt li{opacity:1;transform:none}
  .zh-anim .zh-stack .zn-receipt li:not(.total)>em::after{transform:scaleX(0);transition:transform .45s var(--ease-out);transition-delay:calc(var(--k,0) * 85ms + 520ms)}
  .zh-anim .zh-stack.in .zn-receipt li:not(.total)>em::after{transform:none}
  .zh-anim .zh-stack .zn-receipt li>.zn-list-ic{transform:scale(.6);transition:transform .6s var(--ease-spring);transition-delay:calc(var(--k,0) * 85ms + 200ms)}
  .zh-anim .zh-stack.in .zn-receipt li>.zn-list-ic{transform:none}
}
.zh-stack .zn-receipt li.total>em{display:inline-block;text-align:right;transform-origin:100% 80%}
.zh-stack .zn-receipt li.total.zh-land>em{animation:zhLand .9s var(--ease-spring)}
@keyframes zhLand{0%{transform:scale(1.18);filter:brightness(1.6)}100%{transform:none;filter:none}}
.zh-stack .zn-receipt li.total{position:relative}
.zh-stack .zn-receipt li.total::after{content:"";position:absolute;right:-6%;bottom:-40%;width:60%;height:180%;pointer-events:none;border-radius:50%;opacity:0;
  background:radial-gradient(closest-side,rgba(143,107,245,.32),transparent);transition:opacity 1.2s var(--ease)}
.zh-stack .zn-receipt li.total.zh-land::after{opacity:1}
.zh-stack .zn-receipt li.total>*{position:relative;z-index:1}

/* ── 14 · muro de prints em colunas com profundidade ── */
.zh-wall.cols{columns:auto;display:flex;gap:16px;align-items:flex-start}
.zh-wall-col{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:16px;will-change:transform}
.zh-wall img{height:auto}
.zh-wall.cols img{margin:0}
@media (prefers-reduced-motion:no-preference){
  .zh-anim .zh-wall img{opacity:0;transform:translateY(24px) scale(.97);filter:blur(6px);transition:opacity .8s var(--ease),transform 1s var(--ease-spring),filter .8s var(--ease)}
  .zh-anim .zh-wall img.in{opacity:1;transform:none;filter:none}
  .zh-anim .zh-wall img.in:hover{transform:scale(1.025)}
}
@media(max-width:640px){.zh-wall.cols,.zh-wall-col{gap:10px}}

/* ── 15 · oferta: aresta de luz, preço com brilho ── */
.zh-page .zh-offer{position:relative;overflow:hidden;isolation:isolate;
  box-shadow:0 50px 120px -30px rgba(0,0,0,.95),0 40px 100px -50px rgba(123,77,234,.55)}
.zh-page .zh-offer>.zn-offer-in{position:relative;z-index:1}
.zh-offer .zh-edge{animation-duration:9s}
.zh-offer .zn-price .now{background:linear-gradient(100deg,#fff 0%,#fff 38%,#DCCFFF 50%,#fff 62%,#fff 100%);background-size:260% 100%;background-position:100% 0;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.zh-offer .zn-price .now .cur{-webkit-text-fill-color:var(--ink2)}
@media (prefers-reduced-motion:no-preference){.zh-live .zh-offer .zn-price .now,.zh-offer.zh-live .zn-price .now{animation:zhPrice 6s var(--ease-in-out) 1s infinite}}
@keyframes zhPrice{0%{background-position:100% 0}30%,100%{background-position:0% 0}}
.zh-offer .zn-pill .zh-sc::before{content:none}
.zh-offer .zn-offer-head .zn-pill{position:relative}
.zh-offer .zn-offer-head .zn-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--p-300);animation:zhPing 2.4s var(--ease) infinite}
/* recibo da oferta: cada linha acende */
@media (prefers-reduced-motion:no-preference){
  .zh-anim .zh-offer .zn-receipt li{opacity:0;transform:translateX(-8px);transition:opacity .5s var(--ease),transform .6s var(--ease-spring);transition-delay:calc(var(--k,0) * 60ms + 300ms)}
  .zh-anim .zh-offer.in .zn-receipt li{opacity:1;transform:none}
}
/* garantia: o escudo desenha-se */
@media (prefers-reduced-motion:no-preference){
  .zh-anim .zh-guar .zn-seal-mark svg path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.3s var(--ease-out) .25s}
  .zh-anim .zh-guar .zn-seal-mark svg path+path{transition-delay:1s;transition-duration:.6s}
  .zh-anim .zh-guar.in .zn-seal-mark svg path{stroke-dashoffset:0}
}
.zh-guar .zn-seal-mark{transition:box-shadow 1s var(--ease)}
.zh-guar.in .zn-seal-mark{box-shadow:inset 0 0 0 1px var(--line2),inset 0 0 0 6px #0B0A0F,inset 0 0 0 7px rgba(168,141,251,.6),0 0 40px -6px rgba(123,77,234,.5)}

/* ── 16 · FAQ: abrir com mola (altura animada pelo JS) ── */
.zh-page .zn-faq details{position:relative;transition:background .4s var(--ease)}
.zh-page .zn-faq details::before{content:"";position:absolute;inset:0 -18px;border-radius:18px;background:rgba(123,77,234,.07);opacity:0;transform:scaleY(.9);transition:opacity .4s var(--ease),transform .5s var(--ease-spring);pointer-events:none}
.zh-page .zn-faq details[open]::before{opacity:1;transform:none}
.zh-page .zn-faq summary{position:relative;transition:transform .35s var(--ease-spring),color .3s}
.zh-page .zn-faq summary:active{transform:scale(.985)}
.zh-page .zn-faq details[open] summary::after{background-color:var(--accent-fill)}
.zh-page .zn-faq .a{position:relative;overflow:hidden}
.zh-faq-anim .a{animation:none!important}
@media(max-width:760px){.zh-page .zn-faq details::before{inset:0 -10px;border-radius:14px}}

/* ── 17 · CTA final ── */
.zh-page .zh-final{position:relative;padding-bottom:calc(var(--section) * 1.1)}
.zh-final .zn-display .zh-k{transition:color .6s var(--ease),opacity .6s var(--ease)}
.zh-page .zh-final .zn-copy{color:var(--ink2)}

/* ── 18 · barra de CTA fixa: viva ── */
.zh-page .zn-ctabar{isolation:isolate}
.zh-page .zn-ctabar::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;pointer-events:none;border-radius:inherit;
  background:linear-gradient(90deg,transparent 0%,rgba(168,141,251,.0) 20%,rgba(221,210,254,.95) 50%,rgba(168,141,251,0) 80%,transparent 100%);background-size:220% 100%;
  animation:zhLine 3.6s linear infinite;animation-play-state:paused}
.zh-page .zn-ctabar.show::before{animation-play-state:running}
@keyframes zhLine{from{background-position:120% 0}to{background-position:-120% 0}}
.zh-page .zn-ctabar-t b{padding-left:14px;background:radial-gradient(circle at 3px 55%,var(--p-400) 3px,rgba(168,141,251,.25) 3.6px,transparent 6px) no-repeat}
.zh-page .zn-ctabar.show .zh-cta{animation:zhPop .8s var(--ease-spring) .25s both}
@keyframes zhPop{0%{transform:scale(.9)}60%{transform:scale(1.04)}100%{transform:none}}
@media(min-width:761px){.zh-page .zn-ctabar.all::before{left:24px;right:24px}}

/* ── 19 · lightbox com profundidade ── */
#lb.on img{animation:zhLb .6s var(--ease-spring)}
@keyframes zhLb{from{opacity:0;transform:scale(.88) translateY(20px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}

/* ── movimento reduzido: estado final, sem deslocações ── */
@media (prefers-reduced-motion:reduce){
  .zh-edge,.zh-cta::after,.zh-cta.edge::before,.zh-marq3d::after,.zh-page .zh-interlude::before,.zh-page .zn-ctabar::before,.zh-ph-when i,.zh-ph-state i{animation:none!important}
  .zh-marq3d{overflow-x:auto}.zh-marq-row{animation:none!important}
  .zh-split .zh-w{opacity:1;transform:none;filter:none}
  .zh-cta{translate:none!important}
}
