/* Hero graphics: each page has its own motion. */
.ho-orbit{display:flex;justify-content:center;align-items:center}
.ho-order{width:min(100%,400px);height:auto;overflow:visible}
/* ERPNext: five modules dock into one hub */
.hub-core{fill:#528179;animation:hubPulse 8s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.hub-mod{fill:#E63815;animation:hubDock 8s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.hub-mod.m2{animation-delay:0.15s}.hub-mod.m3{animation-delay:0.3s}.hub-mod.m4{animation-delay:0.45s}.hub-mod.m5{animation-delay:0.6s}
.hub-lines line{stroke:rgba(255,255,255,0.4);stroke-width:2;stroke-dasharray:140;stroke-dashoffset:140;animation:hubLine 8s ease-in-out infinite}
@keyframes hubDock{0%,8%{transform:translate(var(--dx),var(--dy));fill:#E63815;opacity:0.35}38%,80%{transform:none;fill:#F79F1B;opacity:1}100%{transform:translate(var(--dx),var(--dy));fill:#E63815;opacity:0.35}}
@keyframes hubLine{0%,30%{stroke-dashoffset:140}48%,80%{stroke-dashoffset:0}100%{stroke-dashoffset:140}}
@keyframes hubPulse{0%,40%{transform:scale(1)}55%{transform:scale(1.14)}70%,100%{transform:scale(1)}}
/* Free resources: three calculator results fill in */
.calc-bars{width:min(100%,420px);display:flex;flex-direction:column;gap:1.6rem;padding:2rem;background:#141414;border:1px solid rgba(255,255,255,0.12)}
.cb{display:flex;flex-direction:column;gap:0.55rem}
.cb span{font-size:0.9rem;color:rgba(255,255,255,0.8)}
.cb i{display:block;height:10px;width:100%;background:rgba(255,255,255,0.08);position:relative}
.cb i::after{content:'';position:absolute;left:0;top:0;bottom:0;width:0;background:#F79F1B;animation:cbFill 7s ease-in-out infinite}
.cb:nth-child(2) i::after{animation-delay:0.5s;background:#528179}
.cb:nth-child(3) i::after{animation-delay:1s;background:#E63815}
@keyframes cbFill{0%,6%{width:0}34%,82%{width:var(--w)}100%{width:0}}
.ho-split{display:grid !important;grid-template-columns:1.1fr 0.9fr;gap:4rem;align-items:center;max-width:none !important;width:100%}
@media(max-width:980px){.ho-split{grid-template-columns:1fr}.ho-orbit{display:none}}
@media(prefers-reduced-motion:reduce){.hub-core,.hub-mod,.hub-lines line,.cb i::after{animation:none}.hub-mod{transform:none;fill:#F79F1B;opacity:1}.hub-lines line{stroke-dashoffset:0}.cb i::after{width:var(--w)}}
