:root{--dedup1:url("../img/591cb7090329.png")}
.plogo[data-logo="amibroker"]{background-image:url("../img/7bd87fdc26f8.png")}
.plogo[data-logo="ninjatrader-8"]{background-image:var(--dedup1)}
.plogo[data-logo="advanced-get"]{background-image:url("../img/5fe1576db7b2.png")}
.plogo[data-logo="multicharts"]{background-image:url("../img/c3e9003ac93f.png")}
.plogo[data-logo="metastock"]{background-image:url("../img/d5937ddd0754.png")}
.plogo[data-logo="fibonacci-trader"]{background-image:url("../img/3317f24b80ae.png")}
.plogo[data-logo="neuroshell-trader"]{background-image:url("../img/44accdb43efd.png")}
.plogo[data-logo="galactic-trader"]{background-image:url("../img/a7130fca3b61.png")}
.plogo[data-logo="excel"]{background-image:url("../img/885991f0a504.png")}
.api-glyph[data-api="dotnet"]{background-image:url("../img/3b026e1ec0c3.png")}
.api-glyph[data-api="websocket"]{background-image:url("../img/a1baf845bbb0.png")}
.api-glyph[data-api="nodejs"]{background-image:url("../img/350678716d12.png")}
.api-glyph[data-api="python"]{background-image:url("../img/ffe64d2a68eb.png")}
.api-glyph[data-api="rest"]{background-image:url("../img/4f3fb348971e.png")}
.plogo[data-logo="ninjatrader-7"]{background-image:var(--dedup1)}

/* ---- video lightbox ----------------------------------------------
   Plays in an overlay rather than inside the card, so the video is
   large enough to follow a setup walkthrough. One dialog is reused,
   and the iframe is destroyed on close so audio never keeps playing. */
.vbox{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:clamp(12px,3vw,40px)}
.vbox-back{position:absolute;inset:0;background:rgba(8,10,28,.82);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:vfade .22s ease}
.vbox-panel{
  position:relative;width:min(1000px,100%);border-radius:var(--r-xl);overflow:hidden;
  background:#0E1030;border:1px solid rgba(255,255,255,.12);
  box-shadow:0 40px 90px -30px rgba(0,0,0,.8);animation:vrise .26s cubic-bezier(.2,.7,.3,1);
}
@keyframes vfade{from{opacity:0}to{opacity:1}}
@keyframes vrise{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
.vbox-bar{display:flex;align-items:center;gap:14px;padding:14px 16px 14px 20px;border-bottom:1px solid rgba(255,255,255,.09)}
.vbox-bar b{
  flex:1;min-width:0;font-family:Sora,sans-serif;font-weight:700;font-size:.95rem;letter-spacing:-.022em;
  color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.vbox-yt{
  display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-weight:600;color:rgba(255,255,255,.66);
  white-space:nowrap;transition:color .18s;
}
.vbox-yt:hover{color:#fff}
.vbox-yt svg{width:12px;height:12px}
.vbox-x{
  width:34px;height:34px;border-radius:10px;flex:none;display:grid;place-items:center;
  border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);color:#fff;transition:.18s;
}
.vbox-x:hover{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.34)}
.vbox-x svg{width:16px;height:16px}
.vbox-frame{aspect-ratio:16/9;background:#000}
.vbox-frame iframe{display:block;width:100%;height:100%;border:0}
body.vbox-open{overflow:hidden}
@media (max-width:600px){
  .vbox-bar{padding:12px 12px 12px 16px;gap:10px}
  .vbox-bar b{font-size:.85rem}
  .vbox-yt span{display:none}
}

/* shown only when the page is opened straight from disk, where embeds cannot work */
.vlocal{
  margin-bottom:18px;padding:14px 18px;border-radius:12px;
  border:1px solid color-mix(in srgb,var(--orange) 45%,var(--rail));
  background:color-mix(in srgb,var(--orange) 9%,transparent);
  font-size:.86rem;color:var(--ink-2);line-height:1.65;
}
.vlocal b{color:var(--ink);display:block;margin-bottom:6px}
.vlocal code{
  font-family:"JetBrains Mono",monospace;font-size:.82em;padding:2px 7px;border-radius:5px;
  background:var(--rail-2);border:1px solid var(--rail);color:var(--ink);
}
.vlocal-run{display:block;margin-top:12px;padding-top:12px;border-top:1px dashed var(--rail)}
.vlocal-cmd{display:block;margin:8px 0;padding:10px 14px;font-size:.86rem;user-select:all}
.vlocal-act{display:block;margin-top:12px}
.vlocal-act button{
  margin-left:6px;padding:7px 14px;border-radius:8px;font-size:.8rem;font-weight:600;
  border:1px solid var(--rail);background:var(--surface);color:var(--navy);transition:.18s;
}
.vlocal-act button:hover{border-color:var(--navy);background:var(--rail-2)}
