/* A clearer, higher-contrast canvas makes the ecosystem read as one connected system. */
.ecosystem-orbit-shell{
  border-color:rgba(172,213,139,.2);
  background:
    radial-gradient(ellipse at 50% 47%,rgba(169,224,104,.19),transparent 25%),
    radial-gradient(ellipse at 50% 73%,rgba(60,111,67,.22),transparent 58%),
    linear-gradient(145deg,#0a1710 0%,#10251a 49%,#09170f 100%);
  box-shadow:0 28px 78px rgba(15,39,22,.2),inset 0 1px 0 rgba(232,249,215,.08);
}
.ecosystem-orbit-shell::before{
  border-color:rgba(183,224,147,.11);
  box-shadow:0 0 0 37px rgba(184,226,149,.025);
}
.ecosystem-orbit-stage::before{
  position:absolute;
  z-index:-2;
  inset:0;
  background-image:linear-gradient(rgba(215,244,190,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(215,244,190,.025) 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:radial-gradient(ellipse at 50% 48%,#000 8%,transparent 78%);
  content:"";
  pointer-events:none;
}
.orbit-ring{stroke:rgba(190,229,161,.19);stroke-width:1.5;stroke-dasharray:2 10}
.orbit-wire{stroke-width:2.7;filter:drop-shadow(0 0 5px rgba(164,220,118,.32));animation-duration:16s}
.orbit-node{fill:#c0ed82;stroke:#13291b;stroke-width:4;filter:drop-shadow(0 0 7px rgba(185,235,128,.6))}
.orbit-packet{stroke:#f4ffdd;stroke-width:2.5;filter:drop-shadow(0 0 8px currentColor)}
.orbit-kicker{
  border-color:rgba(198,232,170,.13);
  background:rgba(22,47,31,.9);
  box-shadow:0 10px 28px rgba(0,0,0,.18),inset 0 1px 0 rgba(239,255,224,.08);
}
.orbit-kicker>span{background:linear-gradient(145deg,#d3f4a4,#8bcf59);color:#17341c;box-shadow:0 0 16px rgba(182,232,127,.2)}
.orbit-kicker small{color:#9fb99a}
.orbit-kicker h3{color:#eff6e8}
.orbit-hub{
  border-color:rgba(202,243,155,.62);
  background:radial-gradient(circle at 48% 30%,#3a7946 0%,#1b4a2c 48%,#0a2114 82%);
  box-shadow:0 0 0 10px rgba(160,220,106,.1),0 0 0 25px rgba(160,220,106,.05),0 0 66px rgba(158,221,104,.21),0 25px 54px rgba(0,0,0,.34),inset 0 0 58px rgba(204,247,146,.16);
}
.orbit-hub::before,.orbit-hub::after{border-color:rgba(216,248,183,.2)}
.orbit-hub::after{border-color:rgba(216,248,183,.12)}
.orbit-hub-mark{border-color:rgba(217,247,188,.38);background:linear-gradient(145deg,rgba(207,246,162,.22),rgba(120,181,82,.15));box-shadow:0 0 28px rgba(190,241,133,.23)}
.orbit-flow-label{color:#bfd89e}
.orbit-flow-label b{border-color:rgba(199,236,166,.22);background:#173320;color:#c2e998}
.orbit-summary{color:#96ad91}
.orbit-summary span{color:#b6c9aa}
.orbit-summary span:first-child,.orbit-summary span:last-child{color:#d1f1a8}
.orbit-summary i{background:#b4e77e;box-shadow:0 0 0 4px rgba(180,231,126,.1),0 0 12px rgba(180,231,126,.45)}
.orbit-app,.orbit-area{
  border-color:rgba(219,234,209,.88);
  box-shadow:0 16px 32px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.98);
}
.orbit-app:hover,.orbit-area:hover{box-shadow:0 20px 38px rgba(0,0,0,.28),0 0 0 4px rgba(183,231,130,.12),inset 0 1px 0 #fff}
.ecosystem-ops-board{border-top-color:rgba(207,236,179,.14)}
@media(max-width:900px){
  .ecosystem-orbit-stage::before{background-size:36px 36px;mask-image:radial-gradient(ellipse at 50% 45%,#000 0%,transparent 75%)}
}
@media(max-width:620px){
  .orbit-hub{width:228px;height:228px}
  .palmy-launcher{padding:5px}
  .palmy-launcher .palmy-orb{width:44px;height:44px}
}
@media(prefers-reduced-motion:reduce){
  .orbit-wire{animation:none}
  .ecosystem-orbit-stage::before{mask-image:none}
}
