/* Ecosystem Board — shared component (standalone /score + /marketing-ecosystem embed).
   Everything is scoped under .ecoboard and uses eb- classnames + self-contained
   CSS vars, so it is safe to drop into any page. Sticky offset is overridable via
   --eco-sticky-top (default 60px; the embed sets it to the page nav height). */
.ecoboard{
  --eco-asphalt:#001122; --eco-concrete:#0D2744; --eco-court:#002245;
  --eco-line:rgba(190,214,246,0.14); --eco-line-soft:rgba(190,214,246,0.08);
  --eco-bone:#f5f5f5; --eco-chalk:#E8E4DA; --eco-mute:#93A4BE;
  --eco-teal:#00C4B3; --eco-lime:#C6FF3D; --eco-blue:#0099D1; --eco-blue-soft:#5BB8E0; --eco-rust:#FF5A1F;
  --eco-disp:'Anton',sans-serif; --eco-body:'Inter',sans-serif; --eco-mono:'JetBrains Mono',monospace;
  --eco-sticky-top:60px;
  max-width:1240px;margin:0 auto;padding:20px 26px 30px;
  background:var(--eco-asphalt);border-radius:14px;
  font-family:var(--eco-body);color:var(--eco-bone);
}
.ecoboard *{box-sizing:border-box}
.ecoboard .eb-eyebrow{font-family:var(--eco-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--eco-blue-soft)}

/* sticky scoreboard */
.ecoboard .eb-scorebar{position:sticky;top:var(--eco-sticky-top);z-index:40;background:rgba(0,17,34,.94);backdrop-filter:blur(10px);border-top:1px solid var(--eco-line);border-bottom:1px solid var(--eco-line);margin:0 -26px 4px}
.ecoboard .eb-scorebar-in{display:flex;align-items:center;gap:22px;padding:12px 26px;flex-wrap:wrap}
.ecoboard .eb-ems-num{font-family:var(--eco-disp);font-weight:400;font-size:34px;color:var(--eco-teal);min-width:96px;letter-spacing:.01em;line-height:1}
.ecoboard .eb-ems-num small{font-family:var(--eco-mono);font-size:11px;color:var(--eco-mute);display:block;letter-spacing:.12em;font-weight:400}
.ecoboard .eb-stagetrack{flex:1;min-width:260px}
.ecoboard .eb-lbls{display:flex;justify-content:space-between;font-family:var(--eco-mono);font-size:10px;letter-spacing:.08em;color:var(--eco-mute);text-transform:uppercase;margin-bottom:6px}
.ecoboard .eb-lbls span.on{color:var(--eco-teal)}
.ecoboard .eb-bar{height:6px;background:var(--eco-court);border-radius:3px;overflow:hidden}
.ecoboard .eb-bar i{display:block;height:100%;width:0%;background:linear-gradient(90deg,var(--eco-lime),var(--eco-teal));transition:width .5s cubic-bezier(.2,.8,.2,1)}
.ecoboard .eb-pillmini{display:flex;gap:10px}
.ecoboard .eb-pm{font-family:var(--eco-mono);font-size:10px;color:var(--eco-mute);text-align:center}
.ecoboard .eb-pm i{display:block;width:34px;height:4px;background:var(--eco-court);border-radius:2px;margin-bottom:4px;position:relative;overflow:hidden}
.ecoboard .eb-pm i b{position:absolute;left:0;top:0;bottom:0;width:0%;transition:width .4s}
.ecoboard .eb-pm.eb-create i b{background:var(--eco-lime)} .ecoboard .eb-pm.eb-capture i b{background:var(--eco-rust)}
.ecoboard .eb-pm.eb-connect i b{background:var(--eco-blue)} .ecoboard .eb-pm.eb-convert i b{background:var(--eco-teal)}
.ecoboard .eb-pm.eb-compound i b{background:var(--eco-bone)}
.ecoboard .eb-chip{font-family:var(--eco-mono);font-size:11px;color:var(--eco-asphalt);background:var(--eco-teal);border-radius:20px;padding:5px 12px;white-space:nowrap}

/* board */
.ecoboard .eb-board{padding:40px 0 10px}
.ecoboard .eb-pillar{margin-bottom:34px}
.ecoboard .eb-phead{display:flex;align-items:baseline;gap:14px;border-bottom:1px solid var(--eco-line);padding-bottom:10px;margin-bottom:16px;flex-wrap:wrap}
.ecoboard .eb-phead h3{font-family:var(--eco-disp);font-weight:400;text-transform:uppercase;font-size:20px;letter-spacing:.02em;margin:0}
.ecoboard .eb-phead .eb-job{color:var(--eco-mute);font-size:13.5px}
.ecoboard .eb-dot{width:10px;height:10px;border-radius:2px;flex:none;transform:translateY(-1px)}
.ecoboard .eb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(262px,1fr));gap:14px}
.ecoboard .eb-card{background:var(--eco-concrete);border:1px solid var(--eco-line);border-radius:10px;padding:16px 16px 14px;position:relative;transition:border-color .25s, transform .25s}
.ecoboard .eb-card:hover{border-color:var(--eco-blue)}
.ecoboard .eb-card.eb-graded{border-color:var(--eb-pc,var(--eco-blue))}
.ecoboard .eb-card h4{font-size:14.5px;font-weight:600;letter-spacing:.01em;padding-right:34px;margin:0}
.ecoboard .eb-what{color:var(--eco-mute);font-size:12.5px;margin:5px 0 12px;min-height:34px}
.ecoboard .eb-mid{font-family:var(--eco-mono);font-size:10px;color:var(--eco-mute);position:absolute;top:16px;right:14px;cursor:pointer;transition:color .15s}
.ecoboard a.eb-mid:hover{color:var(--eco-teal);text-decoration:underline}
.ecoboard .eb-lvls{display:flex;gap:6px}
.ecoboard .eb-lvl{flex:1;background:var(--eco-court);border:1px solid transparent;border-radius:6px;color:var(--eco-mute);font-family:var(--eco-mono);font-size:11px;padding:7px 0;text-align:center;cursor:pointer;transition:all .15s;user-select:none}
.ecoboard .eb-lvl:hover{color:var(--eco-bone);border-color:var(--eco-blue)}
.ecoboard .eb-lvl.on{background:var(--eb-pc,var(--eco-blue));color:var(--eco-asphalt);font-weight:700;border-color:var(--eb-pc,var(--eco-blue))}
.ecoboard .eb-lvl:focus-visible{outline:2px solid var(--eco-lime);outline-offset:2px}
.ecoboard .eb-lvldesc{font-size:11.5px;color:var(--eco-chalk);margin-top:10px;min-height:30px;line-height:1.45}
.ecoboard .eb-lvldesc b{color:var(--eco-teal);font-family:var(--eco-mono);font-weight:500;font-size:10.5px}
.ecoboard .eb-card.eb-locked .eb-lvls,.ecoboard .eb-card.eb-locked .eb-lvldesc{filter:blur(2.5px);pointer-events:none;opacity:.45}
.ecoboard .eb-lockover{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;background:rgba(0,17,34,.62);border-radius:10px;text-align:center;padding:14px}
.ecoboard .eb-lockover .eb-lk{font-size:20px}
.ecoboard .eb-lockover p{font-family:var(--eco-mono);font-size:11px;color:var(--eco-lime);line-height:1.5;max-width:214px}
.ecoboard .eb-card.eb-unlocking{animation:ebUnlock .8s ease}
@keyframes ebUnlock{0%{transform:scale(.97);border-color:var(--eco-lime)}50%{transform:scale(1.015);border-color:var(--eco-teal)}100%{transform:scale(1)}}

/* results */
.ecoboard .eb-results{padding:34px 0 10px;border-top:1px solid var(--eco-line);margin-top:26px}
.ecoboard .eb-results h3{font-family:var(--eco-disp);font-weight:400;text-transform:uppercase;font-size:clamp(22px,3vw,30px);margin:10px 0 6px}
.ecoboard .eb-sub{color:var(--eco-chalk);font-size:16px;max-width:640px}
.ecoboard .eb-unlocks{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:18px}
.ecoboard .eb-ucard{background:var(--eco-concrete);border:1px solid var(--eco-line);border-left:3px solid var(--eco-lime);border-radius:10px;padding:18px}
.ecoboard .eb-ucard .eb-n{font-family:var(--eco-disp);font-weight:400;font-size:13px;color:var(--eco-lime);letter-spacing:.06em}
.ecoboard .eb-ucard h4{font-size:16px;margin:8px 0 8px}
.ecoboard .eb-ucard .eb-trig{font-size:12.5px;color:var(--eco-chalk);margin-bottom:10px}
.ecoboard .eb-ucard .eb-trig b{color:var(--eco-teal);font-family:var(--eco-mono);font-size:10.5px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;display:block;margin-bottom:3px}
.ecoboard .eb-ucard .eb-opens{font-family:var(--eco-mono);font-size:10.5px;color:var(--eco-mute)}
.ecoboard .eb-ucard .eb-opens span{color:var(--eco-blue-soft)}
.ecoboard .eb-after{margin-top:16px;font-family:var(--eco-mono);font-size:11px;color:var(--eco-mute)}
.ecoboard .eb-after span{color:var(--eco-chalk)}

/* next-step CTA */
.ecoboard .eb-nextstep{margin:30px 0 40px;background:linear-gradient(135deg,var(--eco-concrete),#0a1d33);border:1px solid var(--eco-line);border-radius:14px;padding:34px;display:flex;gap:34px;align-items:center;flex-wrap:wrap}
.ecoboard .eb-ns-left{flex:1;min-width:290px}
.ecoboard .eb-nextstep h3{font-family:var(--eco-disp);font-weight:400;text-transform:uppercase;font-size:clamp(20px,2.6vw,26px);margin:0 0 12px;line-height:1.05}
.ecoboard .eb-nextstep p{font-size:14px;color:var(--eco-chalk);max-width:52ch}
.ecoboard .eb-ns-method{font-family:var(--eco-mono);font-size:11.5px;color:var(--eco-mute);margin-top:14px;line-height:1.6}
.ecoboard .eb-ns-method b{color:var(--eco-teal);font-weight:500}
.ecoboard .eb-ns-actions{flex:1;min-width:290px;background:var(--eco-asphalt);border:1px solid var(--eco-line);border-radius:10px;padding:22px}
.ecoboard .eb-btn{display:inline-block;background:var(--eco-blue);color:#03121b;font-family:var(--eco-disp);font-weight:400;font-size:14px;letter-spacing:.04em;text-transform:uppercase;padding:14px 22px;border-radius:4px;border:0;cursor:pointer;width:100%;text-align:center;transition:transform .15s,background .15s;text-decoration:none}
.ecoboard .eb-btn:hover{transform:translateY(-1px);background:var(--eco-blue-soft)}
.ecoboard .eb-btn-sec{display:block;margin-top:12px;width:100%;text-align:center;font-family:var(--eco-mono);font-size:12.5px;color:var(--eco-chalk);border:1px solid var(--eco-line);border-radius:4px;padding:12px;transition:border-color .15s,color .15s;text-decoration:none}
.ecoboard .eb-btn-sec:hover{border-color:var(--eco-teal);color:var(--eco-teal)}
.ecoboard .eb-ns-note{font-size:11px;color:var(--eco-mute);margin-top:12px;text-align:center;line-height:1.5}

/* methodology */
.ecoboard .eb-method{margin:0 0 10px}
.ecoboard .eb-method details{background:var(--eco-concrete);border:1px solid var(--eco-line);border-radius:10px;padding:16px 20px}
.ecoboard .eb-method summary{font-family:var(--eco-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--eco-chalk);cursor:pointer}
.ecoboard .eb-method details p{font-size:13px;color:var(--eco-mute);margin-top:12px;max-width:820px}
.ecoboard .eb-method details p+p{margin-top:8px}
.ecoboard .eb-method a{color:var(--eco-blue-soft);text-decoration:underline}

/* resume note */
.ecoboard .eb-resume{display:none;margin:0 0 8px;font-family:var(--eco-mono);font-size:12px;color:var(--eco-asphalt);background:var(--eco-lime);border-radius:20px;padding:6px 14px}
.ecoboard .eb-resume.on{display:inline-block}
.ecoboard .eb-resume button{background:none;border:0;color:var(--eco-asphalt);text-decoration:underline;cursor:pointer;font:inherit;margin-left:8px}

@media (prefers-reduced-motion:reduce){.ecoboard *{transition:none!important;animation:none!important}}
@media (max-width:640px){.ecoboard .eb-pillmini{display:none}.ecoboard .eb-ems-num{font-size:26px;min-width:78px}.ecoboard .eb-nextstep{padding:22px}}
