/* The member engine (ecosystem page, 2026-10-25): a 3D loop that replaces the old flywheel circle.
   The scene is drawn at 800x840 and scaled to fit its column by engine.js (--s). */
.pg .bx-brain{grid-template-columns:1fr;margin-top:clamp(40px,7vh,72px)}

.eng{display:grid;gap:clamp(20px,4vw,56px);align-items:center;margin-top:10px}
@media (min-width:980px){.eng{grid-template-columns:minmax(0,440px) minmax(0,1fr)}}
.eng-h{font-family:var(--font-display);font-weight:400;text-transform:uppercase;line-height:.92;letter-spacing:.005em;
  font-size:clamp(48px,6vw,80px);margin:16px 0 0}
.eng-p{margin:18px 0 0;font-size:clamp(16px,1.6vw,18px);line-height:1.55;color:var(--ash);max-width:40ch}

.eng-rows{display:flex;flex-direction:column;gap:8px;margin-top:26px}
.eng-row{display:flex;align-items:flex-start;gap:14px;width:100%;padding:14px 16px;cursor:pointer;text-align:left;
  font-family:inherit;border-radius:0;background:transparent;color:#8a8a8a;border:1px solid rgba(255,255,255,.08);
  transition:color .4s,background .4s,border-color .4s}
.eng-row:hover{border-color:rgba(255,255,255,.4)}
.eng-row:focus-visible{outline:2px solid var(--paper);outline-offset:3px}
.eng-row.is-on{background:#0f0f0f;color:var(--paper);border-color:rgba(255,255,255,.32)}
.eng-num{font-family:var(--font-cond);font-size:13px;letter-spacing:.16em;width:26px;flex-shrink:0;padding-top:4px}
.eng-txt{display:flex;flex-direction:column;gap:2px}
.eng-title{font-family:var(--font-cond);font-weight:500;font-size:19px;letter-spacing:.05em;text-transform:uppercase}
.eng-sub{font-family:var(--font-body);font-weight:400;font-size:14px;letter-spacing:0;text-transform:none;opacity:.7}
.eng-desc{display:none;font-size:15px;line-height:1.5;color:#d9d9d9;margin-top:4px}
.eng-row.is-on .eng-desc{display:block}
.eng-loop{display:inline-flex;align-items:center;gap:10px;margin-top:20px;padding:9px 16px;border:1px solid rgba(255,255,255,.22);
  border-radius:999px;font-family:var(--font-cond);font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:#cfcfcf}
.eng-spin{display:inline-block;animation:engSpin 6s linear infinite}

/* ---- the 3D scene ---- */
.eng-stage{position:relative;width:100%;max-width:800px;justify-self:center;aspect-ratio:800/820;
  background:radial-gradient(closest-side,rgba(255,255,255,.07),rgba(255,255,255,0) 72%)}
.eng-scene{position:absolute;left:0;top:-20px;width:800px;height:860px;transform-origin:0 0;transform:scale(var(--s,.5));
  perspective:1500px;perspective-origin:50% 22%}
.eng-disc{position:absolute;left:100px;top:190px;width:600px;height:600px;border-radius:50%;transform:rotateX(62deg);transform-style:preserve-3d}
.eng-floor{position:absolute;inset:0;border-radius:50%;background:radial-gradient(closest-side,rgba(255,255,255,.10),rgba(255,255,255,.02) 70%,rgba(255,255,255,0))}
.eng-ring{position:absolute;box-sizing:border-box;border-radius:50%}
.eng-ring.r1{inset:0;border:1px solid rgba(255,255,255,.10)}
.eng-ring.r2{inset:30px;border:1px dashed rgba(255,255,255,.10)}
.eng-ring.r3{inset:60px;border:2px solid rgba(255,255,255,.26)}
.eng-ring.r4{inset:150px;border:1px dashed rgba(255,255,255,.16)}
.eng-core{position:absolute;left:230px;top:230px;width:140px;height:140px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(255,255,255,.28),rgba(255,255,255,0));animation:engPulse 2.4s ease-in-out infinite;transition:background .8s}
.eng.is-data .eng-core{background:radial-gradient(closest-side,rgba(255,255,255,.75),rgba(255,255,255,0))}
.eng-orbit{position:absolute;left:60px;top:60px;width:480px;height:480px;border-radius:50%;transition:transform 1.4s cubic-bezier(.65,0,.35,1)}
.eng-trail{position:absolute;inset:-2px;border-radius:50%;
  background:conic-gradient(from -80deg,rgba(255,255,255,0) 0deg,rgba(255,255,255,.95) 80deg,rgba(255,255,255,0) 80.5deg);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 7px),#000 calc(100% - 6px));
  mask:radial-gradient(farthest-side,transparent calc(100% - 7px),#000 calc(100% - 6px))}
.eng-dot{position:absolute;left:50%;top:0;width:18px;height:18px;margin:-8px 0 0 -9px;border-radius:50%;background:#fff;box-shadow:0 0 22px 8px rgba(255,255,255,.55)}

.eng-node{position:absolute;width:0;height:0;transform-style:preserve-3d}
.eng-node.n0{left:300px;top:60px}
.eng-node.n1{left:540px;top:300px}
.eng-node.n2{left:300px;top:540px}
.eng-node.n3{left:60px;top:300px}
.eng-mark{position:absolute;left:-16px;top:-16px;width:32px;height:32px;box-sizing:border-box;border-radius:50%;
  background:#000;border:2px solid rgba(255,255,255,.5);transition:all .6s}
.eng-node.is-on .eng-mark{background:#fff;border-color:#fff;box-shadow:0 0 30px 10px rgba(255,255,255,.45)}
.eng-bill{position:absolute;left:-92px;top:-230px;width:184px;height:230px;display:flex;flex-direction:column;justify-content:flex-end;
  align-items:center;transform-origin:50% 100%;transform:rotateX(-62deg)}
.eng-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:184px;box-sizing:border-box;padding:12px 14px 13px;
  background:rgba(12,12,12,.86);color:#fff;border:1px solid rgba(255,255,255,.22);transition:background .6s,color .6s,border-color .6s,box-shadow .6s}
.eng-node.is-on .eng-card{background:#fff;color:#000;border-color:#fff;box-shadow:0 18px 50px rgba(255,255,255,.18)}
.eng-cnum{font-family:var(--font-cond);font-size:12px;letter-spacing:.2em;opacity:.7}
.eng-ctitle{font-family:var(--font-display);font-size:26px;line-height:1;text-transform:uppercase}
.eng-csub{font-family:var(--font-body);font-size:13px;opacity:.75}
.eng-beam{width:2px;height:36px;opacity:.6;background:linear-gradient(rgba(255,255,255,.6),rgba(255,255,255,.05));
  transition:height .6s cubic-bezier(.65,0,.35,1),opacity .6s}
.eng-node.is-on .eng-beam{height:96px;opacity:1;background:linear-gradient(#fff,rgba(255,255,255,.15))}

@keyframes engPulse{0%,100%{opacity:.55}50%{opacity:1}}
@keyframes engSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){
  .eng-core,.eng-spin{animation:none}
  .eng-orbit,.eng-beam,.eng-card,.eng-mark{transition:none}
}
@media (max-width:979px){.eng-stage{order:-1;margin-bottom:-24px}}
