:root{
  --emo-text:#ffffff;
  --emo-border:#264532;
  --emo-size:16px;
  --emo-radius:12px;
  --emo-pad:10px 14px;
  --emo-gap:16px;
  --emo-speed:40s;
}
.emo-partners{ width:100%; display:flex; flex-direction:column; gap:12px; }
.emo-row{ overflow:hidden; position:relative; }
.emo-label{ display:block; width:100%; color: var(--emo-head-color, #96c5a9); text-align: var(--emo-head-align, left); font-weight:800; font-size:12px; letter-spacing:.12em; text-transform:uppercase; opacity:.9; margin:6px 0 10px; }
.emo-track{ display:flex; width:max-content; gap:var(--emo-gap); will-change:transform; }
.emo-seq{ display:flex; gap:var(--emo-gap); }
.emo-item{
  display:inline-flex; align-items:center; white-space:nowrap;
  font-size: var(--emo-size); color: var(--emo-text);
  border:1px solid var(--emo-border); border-radius: var(--emo-radius);
  padding: var(--emo-pad); opacity:.95; background: transparent;
  box-shadow: 0 1px 0 rgba(0,0,0,.08);
}

/* optional CSS anim if someone forces .css-anim */
.emo-partners.css-anim .emo-track{
  animation: emo-marquee var(--emo-speed,40s) linear infinite;
}
.emo-partners.css-anim[data-dir="right"] .emo-track{ animation-direction: reverse; }
@keyframes emo-marquee{ from{ transform: translateX(0); } to{ transform: translateX(-50%); } }