/* The two homepage animations, ported from the v3 handoff (hero execution receipt, swarm execution graph).
   Motion is transform + opacity only. Final state is the default; .zh-anim opts in to the entrance. */
.zh{--zh-bg:#0a0a08;--zh-line:#2b2e25;--zh-muted:#8b9082;--zh-ink:#f4f5ef;--zh-lime:#c7ff3d;--zh-ease:cubic-bezier(.22,1,.36,1);--zh-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
[data-static-swarm-final]{margin:24px 0}
.zh-receipt-shell{position:relative;z-index:1;min-width:0;width:100%;filter:drop-shadow(0 24px 48px rgba(0,0,0,.45))}
.zh-receipt{background:linear-gradient(135deg,#171813,#0f100d);border:1px solid #34382c;border-radius:16px;padding:23px 23px 20px;box-shadow:inset 0 1px 0 rgba(255,255,255,.055)}
.zh-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border-bottom:1px solid var(--zh-line);padding-bottom:19px;margin-bottom:7px}
.zh-kicker{font:700 11px/1 var(--zh-mono);color:var(--zh-lime);letter-spacing:.16em}
.zh-job{font:12px/1.4 var(--zh-mono);color:var(--zh-muted);margin-top:9px;overflow-wrap:anywhere}
.zh-job strong{color:#d8dccd;font-weight:500}
.zh-seal{font:12px/1 var(--zh-mono);color:var(--zh-lime);display:flex;gap:7px;align-items:center;white-space:nowrap}
.zh-seal i{width:7px;height:7px;border:1px solid var(--zh-lime);border-radius:50%}
.zh-row{display:grid;grid-template-columns:34px minmax(0,1.1fr) minmax(0,.72fr);gap:10px;align-items:center;min-height:72px;border-bottom:1px solid rgba(43,46,37,.78);font-family:var(--zh-mono)}
.zh-row-no{font-size:12px;color:#8b9082}
.zh-call{min-width:0}
.zh-call-top{font-size:12px;color:#eef0e7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zh-call-top em{font-style:normal;color:var(--zh-lime)}
.zh-call-top a,.zh-note a{display:inline-flex;align-items:center;min-height:48px}
.zh-call-sub{font-size:12px;color:var(--zh-muted);margin-top:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zh-hash{text-align:right;font-size:12px;color:#b4bcaa;white-space:nowrap}
.zh-merkle{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:0;padding-top:19px;font:12px/1.4 var(--zh-mono);letter-spacing:.1em;color:var(--zh-muted)}
.zh-root{color:var(--zh-ink);margin-top:7px;letter-spacing:0;overflow-wrap:anywhere}
.zh-root span{color:#cbd0c0}
.zh-check{display:inline-flex;flex:none;width:25px;height:25px;border:1px solid var(--zh-lime);border-radius:50%;align-items:center;justify-content:center}
.zh-check:after{content:"";width:9px;height:5px;border-left:2px solid var(--zh-lime);border-bottom:2px solid var(--zh-lime);transform:translateY(-1px) rotate(-45deg)}
.zh-note{display:block;margin-top:14px;color:var(--zh-muted);font:12px/1.5 var(--zh-mono)}
@media(max-width:560px){.zh-receipt{padding:18px 16px 16px}.zh-row{grid-template-columns:26px minmax(0,1fr) auto}.zh-seal{display:none}}

/* hero entrance: rows 450ms, 120ms stagger, hash characters, merkle root seals with a 400ms pulse */
.zh-anim .zh-row,.zh-anim .zh-merkle,.zh-anim .zh-check{opacity:0;transform:translateY(10px)}
.zh-anim .zh-check:after{opacity:0;transform:translateY(-1px) rotate(-45deg) scaleX(0)}
.zh-anim .zh-char{opacity:0;transition:opacity 36ms var(--zh-ease);transition-delay:calc(var(--c)*18ms)}
.zh-anim .zh-row.landed .zh-char{opacity:1}
.zh-anim .zh-row.landed,.zh-anim .zh-merkle.landed{opacity:1;transform:none;transition:transform 450ms var(--zh-ease),opacity 450ms var(--zh-ease)}
.zh-anim .zh-merkle.landed{transition-duration:560ms}
.zh-anim .zh-check.sealed{opacity:1;transform:none;transition:transform 400ms var(--zh-ease),opacity 400ms var(--zh-ease);animation:zh-seal 400ms var(--zh-ease)}
.zh-anim .zh-check.sealed:after{opacity:1;transform:translateY(-1px) rotate(-45deg) scaleX(1);transition:transform 280ms var(--zh-ease),opacity 180ms var(--zh-ease)}
@keyframes zh-seal{0%{transform:scale(1)}45%{transform:scale(1.06)}100%{transform:scale(1)}}

/* swarm graph */
.aer-home .aer-swarm{grid-template-columns:repeat(2,minmax(0,1fr))}
.aer-home .aer-swarm>*{min-width:0;max-width:100%}
.zh-graph-wrap{position:relative;min-width:0;width:100%;overflow:hidden;border:1px solid rgba(255,255,255,.09);border-radius:16px;background:#0a0a08}
.zh-graph{position:relative;height:500px;width:100%;isolation:isolate}
.zh-graph:before{content:"";position:absolute;inset:14px 6% 20px;background:radial-gradient(ellipse at center,rgba(199,255,61,.055),transparent 62%);z-index:-1}
.zh-node{position:absolute;display:grid;place-items:center;width:60px;height:60px;border:1px solid #434a38;border-radius:50%;background:#11120e;color:#e9eddf;font:11px var(--zh-mono);box-shadow:0 0 0 7px rgba(199,255,61,.015)}
.zh-node.goal{left:calc(50% - 39px);top:25px;width:78px;height:78px;border-color:var(--zh-lime);color:var(--zh-lime);font-size:12px;box-shadow:0 0 32px rgba(199,255,61,.15),inset 0 0 22px rgba(199,255,61,.06)}
.zh-node.root{left:calc(50% - 40px);bottom:6px;width:80px;height:80px;border-color:var(--zh-lime);color:var(--zh-lime);font-size:12px;box-shadow:0 0 32px rgba(199,255,61,.15),inset 0 0 22px rgba(199,255,61,.06)}
.zh-n1{left:5%;top:150px}.zh-n2{left:15%;top:210px}.zh-n3{left:25%;top:130px}.zh-n4{left:34%;top:245px}.zh-n5{left:43%;top:170px}.zh-n6{right:43%;top:170px}.zh-n7{right:34%;top:245px}.zh-n8{right:25%;top:130px}.zh-n9{right:15%;top:210px}.zh-n10{right:5%;top:150px}
.zh-node small{position:absolute;top:68px;color:#a7ad9d;font:12px var(--zh-mono);letter-spacing:.04em;white-space:nowrap}
.zh-node.goal small,.zh-node.root small{top:88px;color:var(--zh-lime)}
.zh-wires{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:-1}
.zh-wire{fill:none;stroke:var(--zh-lime);stroke-width:1;stroke-linecap:round;opacity:.52;vector-effect:non-scaling-stroke}
.zh-wire.secondary{stroke:#67764b;opacity:.28}
.zh-swarm-anim .zh-node{opacity:0;transform:translateY(12px) scale(.94)}
.zh-swarm-anim .zh-wire{opacity:0;transform:scaleY(0);transform-box:fill-box;transform-origin:top center}
.zh-swarm-anim .zh-node.landed{opacity:1;transform:none;transition:transform 600ms var(--zh-ease),opacity 600ms var(--zh-ease)}
.zh-swarm-anim .zh-wire.landed{opacity:.52;transform:scaleY(1);transition:transform 350ms var(--zh-ease),opacity 350ms var(--zh-ease)}
.zh-swarm-anim .zh-wire.secondary.landed{opacity:.28}
@media(max-width:800px){.aer-home .aer-swarm{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){
  .zh-graph-wrap{height:330px;container-type:inline-size}
  .zh-graph{width:100%;height:330px;transform:none}
  .zh-node{width:36px;height:36px;font-size:9px}
  .zh-node.goal,.zh-node.root{width:54px;height:54px;left:calc(50% - 27px);font-size:10px}
  .zh-node.goal{top:16px}.zh-node.root{bottom:6px}
  .zh-n1,.zh-n10{top:99px}.zh-n2,.zh-n9{top:139px}
  .zh-n3,.zh-n8{top:86px}.zh-n4,.zh-n7{top:162px}
  .zh-n5,.zh-n6{top:112px}
  .zh-n1{left:max(0px,calc(5% - 18px))}.zh-n2{left:calc(15% - 18px)}
  .zh-n3{left:calc(25% - 18px)}.zh-n4{left:calc(34% - 18px)}.zh-n5{left:calc(43% - 18px)}
  .zh-n6{right:calc(43% - 18px)}.zh-n7{right:calc(34% - 18px)}.zh-n8{right:calc(25% - 18px)}
  .zh-n9{right:calc(15% - 18px)}.zh-n10{right:max(0px,calc(5% - 18px))}
  .zh-node small{display:none}
}
@media(prefers-reduced-motion:reduce){
  .zh-anim .zh-row,.zh-anim .zh-merkle,.zh-anim .zh-check,.zh-anim .zh-char,.zh-swarm-anim .zh-node,.zh-swarm-anim .zh-wire{opacity:1;transform:none;animation:none;transition:none}
  .zh-swarm-anim .zh-wire{opacity:.52;transform:none}.zh-swarm-anim .zh-wire.secondary{opacity:.28}
  .zh-anim .zh-check:after{opacity:1;transform:translateY(-1px) rotate(-45deg)}
}
