/* TradeFloor deck scenes — styles namespaced under .deck-scene */
.deck-scene {
  --ink-1000:#000000; --ink-950:#09090B; --ink-900:#0D0D10; --ink-850:#111113; --ink-800:#17171A; --ink-700:#1F1F23;
  --txt-50:#FAFAFA; --txt-200:#E4E4E7; --txt-400:#A1A1AA; --txt-500:#71717A; --txt-600:#52525B;
  --good:#34D399; --bad:#F87171; --warn:#FBBF24;
  --hair: rgba(255,255,255,.08);
  --hair-soft: rgba(255,255,255,.06);
  --font-d: 'Space Grotesk','Inter',ui-sans-serif,system-ui,sans-serif;
  --font-b: 'Inter',ui-sans-serif,system-ui,sans-serif;
  --font-m: 'JetBrains Mono',ui-monospace,SFMono-Regular,monospace;
  color: var(--txt-50);
}
.deck-scene canvas { display:block; }
.deck-scene .lbl { font-family:var(--font-m); font-size:11px; letter-spacing:.08em; color:var(--txt-500); text-transform:uppercase; }
.deck-scene .lbl-sm { font-family:var(--font-m); font-size:10px; letter-spacing:.08em; color:var(--txt-500); text-transform:uppercase; }
.deck-scene .mono { font-family:var(--font-m); }
.deck-scene .tnum { font-variant-numeric: tabular-nums; }
.deck-scene .good { color:var(--good); }
.deck-scene .bad { color:var(--bad); }
.deck-scene .warn { color:var(--warn); }
.deck-scene .dim { color:var(--txt-500); }
.deck-scene .dot { display:inline-block; width:6px; height:6px; border-radius:99px; background:var(--good); vertical-align:1px; }
@keyframes pulseSoft { 0%,100%{opacity:1} 50%{opacity:.35} }
.deck-scene .pulse { animation:pulseSoft 1.8s ease-in-out infinite; }
@media (max-width: 1020px) {
  .deck-scene .desk-grid, .deck-scene .cons-grid, .deck-scene .guard-grid, .deck-scene .tilt-grid { grid-template-columns:1fr; }
  .deck-scene .stage-grid { grid-template-columns:repeat(2,1fr); }
  .deck-scene .stage { border-bottom:1px solid var(--hair-soft); }
  .deck-scene .pipe-rail { display:none; }
  .deck-scene .cons-stage { min-height:440px; }
  .deck-scene .mc-grid { grid-template-columns:1fr; }
  .deck-scene .mc-lanes { border-right:0; border-bottom:1px solid var(--hair-soft); }
  .deck-scene .mc-lane { grid-template-columns:14px 1.2fr auto 80px; }
  .deck-scene .mc-lane .mc-spark, .deck-scene .mc-lane .mc-wr { display:none; }
}
@media (max-width: 640px) {
  .deck-scene #eqCanvas { height:260px; }
  .deck-scene .venue-strip { grid-template-columns:1fr; }
  .deck-scene .venue-cell { border-right:0; border-bottom:1px solid var(--hair-soft); }
}
@media (prefers-reduced-motion: reduce) {
  .deck-scene .pulse, .deck-scene .eq-scan, .deck-scene .code-caret { animation:none !important; }
}

    /* ---------- panels ---------- */
    .panel { background:var(--ink-900); border:1px solid var(--hair-soft); border-radius:8px; }
    .deck-scene .panel-head {
      display:flex; align-items:center; justify-content:space-between; gap:12px;
      padding:10px 16px; border-bottom:1px solid var(--hair-soft);
      font-family:var(--font-m); font-size:11px; color:var(--txt-400);
      flex-wrap:wrap;
    }
    .hr-t { border-top:1px solid var(--hair); }

    .dot { display:inline-block; width:6px; height:6px; border-radius:99px; background:var(--good); vertical-align:1px; }
    @keyframes pulseSoft { 0%,100%{opacity:1} 50%{opacity:.35} }
    .pulse { animation:pulseSoft 1.8s ease-in-out infinite; }


    /* ---------- desk ---------- */
    .desk-grid { display:grid; grid-template-columns:1.5fr 1fr; gap:14px; align-items:stretch; }
    .eq-panel { display:flex; flex-direction:column; overflow:hidden; position:relative; }
    .eq-top { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; padding:20px 20px 6px; flex-wrap:wrap; }
    .eq-pnl { font-family:var(--font-d); font-size:clamp(38px,4.6vw,62px); letter-spacing:-0.05em; line-height:1; font-variant-numeric:tabular-nums; }
    .eq-pnl .pct { font-size:.42em; color:var(--good); font-weight:400; margin-left:10px; letter-spacing:-0.02em; }
    .eq-stats { display:flex; gap:22px; flex-wrap:wrap; padding-bottom:6px; }
    .eq-stat .k { font-family:var(--font-m); font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--txt-600); }
    .eq-stat .v { font-family:var(--font-m); font-size:13px; color:var(--txt-200); margin-top:3px; font-variant-numeric:tabular-nums; }
    #eqCanvas { width:100%; height:340px; }
    .deck-scene .eq-scan {
      position:absolute; left:0; right:0; height:90px; top:0; pointer-events:none; opacity:.5;
      background:linear-gradient(180deg, transparent, rgba(52,211,153,.05) 50%, transparent);
      animation:scanY 7s linear infinite;
    }
    @keyframes scanY { from { transform:translateY(-90px);} to { transform:translateY(540px);} }

    .venue-strip { display:grid; grid-template-columns:repeat(3,1fr); border-bottom:1px solid var(--hair-soft); }
    .venue-cell { padding:12px 16px; border-right:1px solid var(--hair-soft); }
    .venue-cell:last-child { border-right:0; }
    .venue-cell .vv { font-family:var(--font-d); font-size:clamp(18px,1.8vw,24px); letter-spacing:-0.03em; margin-top:6px; font-variant-numeric:tabular-nums; }
    .venue-cell .vn { font-family:var(--font-m); font-size:9.5px; color:var(--txt-600); margin-top:3px; }

    .side-col { display:flex; flex-direction:column; gap:14px; min-width:0; }

    .book-body { padding:12px 16px 16px; }
    .book-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
    .book-col .bk-head { display:flex; justify-content:space-between; font-family:var(--font-m); font-size:9.5px; color:var(--txt-600); text-transform:uppercase; letter-spacing:.08em; margin-bottom:8px; }
    .bk-row { position:relative; height:19px; margin-bottom:3px; border-radius:3px; overflow:hidden; display:flex; justify-content:space-between; padding:0 6px; }
    .bk-row .fillbar { position:absolute; top:0; bottom:0; border-radius:3px; transition:width .5s cubic-bezier(.3,.7,.3,1); }
    .bk-row.bid .fillbar { left:0; background:rgba(52,211,153,.13); border-left:2px solid rgba(52,211,153,.55); }
    .bk-row.ask .fillbar { right:0; background:rgba(248,113,113,.11); border-right:2px solid rgba(248,113,113,.5); }
    .bk-row .px, .bk-row .sz { position:relative; z-index:1; font-family:var(--font-m); font-size:10.5px; line-height:19px; font-variant-numeric:tabular-nums; }
    .bk-row.bid .px { color:var(--good); } .bk-row.ask .px { color:var(--bad); }
    .bk-row .sz { color:var(--txt-500); }
    .obi-wrap { margin-top:12px; }
    .obi-bar { height:4px; border-radius:99px; overflow:hidden; background:rgba(248,113,113,.18); position:relative; }
    .obi-bar .b { position:absolute; left:0; top:0; bottom:0; background:rgba(52,211,153,.55); transition:width .5s ease; }
    .obi-meta { display:flex; justify-content:space-between; font-family:var(--font-m); font-size:10px; color:var(--txt-500); margin-top:6px; font-variant-numeric:tabular-nums; }

    .feed-body { padding:8px 0 6px; min-height:228px; overflow:hidden; }
    .deck-scene .feed-row {
      display:flex; align-items:center; gap:10px; padding:7px 16px;
      font-family:var(--font-m); font-size:11px; color:var(--txt-400);
      border-bottom:1px solid rgba(255,255,255,.03);
      animation:feedIn .45s cubic-bezier(.2,.7,.3,1) both;
      font-variant-numeric:tabular-nums;
      white-space:nowrap;
    }
    @keyframes feedIn { from { opacity:0; transform:translateY(-10px); } to { opacity:1; transform:none; } }
    .feed-row .t { color:var(--txt-600); }
    .feed-row .side-l { color:var(--good); } .feed-row .side-s { color:var(--bad); }
    .feed-row .coin { color:var(--txt-50); }
    .deck-scene .chip {
      margin-left:auto; font-size:9.5px; padding:2px 7px; border-radius:4px; letter-spacing:.05em;
      border:1px solid var(--hair-soft); color:var(--txt-400);
    }
    .chip.win  { color:var(--good); border-color:rgba(52,211,153,.3); background:rgba(52,211,153,.07); }
    .chip.loss { color:var(--bad);  border-color:rgba(248,113,113,.28); background:rgba(248,113,113,.06); }
    .chip.info { color:var(--warn); border-color:rgba(251,191,36,.25); background:rgba(251,191,36,.05); }


    /* ---------- strategies / DSL ---------- */
    .strat-grid { display:grid; grid-template-columns:.95fr 1.05fr; gap:clamp(20px,3vw,48px); align-items:center; }
    .spec-list { margin-top:28px; font-family:var(--font-m); font-size:12px; }
    .spec-list li { list-style:none; display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-top:1px solid var(--hair-soft); color:var(--txt-400); }
    .spec-list li:last-child { border-bottom:1px solid var(--hair-soft); }
    .spec-list b { color:var(--txt-50); font-weight:400; }
    .spec-list { padding-left:0; margin-bottom:0; }
    .deck-scene .code {
      font-family:var(--font-m); font-size:12.5px; line-height:1.75; color:var(--txt-200);
      padding:22px 24px; margin:0; white-space:pre-wrap;
    }
    .code .k { color:var(--txt-400); }
    .code .n { color:var(--good); }
    .code .s { color:var(--warn); }
    .code .c { color:var(--txt-600); font-style:italic; }
    .code .f { color:var(--txt-50); }
    .code-caret { display:inline-block; width:7px; height:13px; background:var(--good); vertical-align:-2px; animation:pulseSoft .8s steps(2) infinite; }


    /* ---------- consensus ---------- */
    .cons-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:14px; align-items:stretch; }
    .cons-stage { position:relative; min-height:520px; display:flex; align-items:center; justify-content:center; overflow:hidden; }
    #consCanvas { position:absolute; inset:0; width:100%; height:100%; }
    .cons-core { position:relative; z-index:2; text-align:center; pointer-events:none; }
    .cons-score { font-family:var(--font-d); font-size:clamp(56px,6vw,84px); letter-spacing:-0.05em; line-height:1; font-variant-numeric:tabular-nums; }
    .cons-core .lbl-sm { margin-top:6px; display:block; }
    .cons-state { margin-top:10px; font-family:var(--font-m); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--txt-500); transition:color .3s ease; }
    .cons-state.go { color:var(--good); }
    .sig-log { padding:6px 0; min-height:170px; }
    .prov-wrap { padding:14px 16px 16px; display:flex; flex-wrap:wrap; gap:6px; }
    .deck-scene .prov {
      display:inline-flex; align-items:center; gap:6px;
      font-family:var(--font-m); font-size:9.8px; color:var(--txt-500);
      border:1px solid rgba(255,255,255,.05); border-radius:4px; padding:3.5px 7px;
      transition:border-color .3s ease, color .3s ease;
    }
    .prov i { width:5px; height:5px; border-radius:99px; background:var(--txt-600); transition:background .25s ease, box-shadow .25s ease; }
    .prov.vl i { background:var(--good); box-shadow:0 0 8px rgba(52,211,153,.8); }
    .prov.vs i { background:var(--bad);  box-shadow:0 0 8px rgba(248,113,113,.7); }
    .prov.vl { color:var(--txt-200); border-color:rgba(52,211,153,.25); }
    .prov.vs { color:var(--txt-200); border-color:rgba(248,113,113,.22); }


    /* ---------- pipeline ---------- */
    .pipe-rail { position:relative; height:2px; background:rgba(255,255,255,.05); margin:0 20px; }
    .pipe-rail .run { position:absolute; left:0; top:0; bottom:0; background:linear-gradient(90deg, rgba(52,211,153,.0), var(--good)); transition:width 1s linear; }
    .deck-scene .pipe-rail .head {
      position:absolute; top:50%; width:10px; height:10px; border-radius:99px;
      background:var(--good); box-shadow:0 0 14px rgba(52,211,153,.9), 0 0 3px rgba(52,211,153,1);
      transform:translate(-50%,-50%); transition:left 1s linear;
    }
    .stage-grid { display:grid; grid-template-columns:repeat(6,1fr); }
    .stage { padding:18px 18px 20px; border-right:1px solid var(--hair-soft); transition:background .4s ease; position:relative; }
    .stage:last-child { border-right:0; }
    .stage.live { background:rgba(52,211,153,.025); }
    .stage .st-at { font-family:var(--font-m); font-size:10px; color:var(--txt-600); }
    .stage .st-state { font-family:var(--font-m); font-size:10px; float:right; color:var(--txt-600); }
    .stage.live .st-state { color:var(--warn); } .stage.done .st-state { color:var(--good); }
    .stage .st-t { font-family:var(--font-d); font-size:16.5px; letter-spacing:-0.02em; margin-top:12px; }
    .stage .st-d { font-family:var(--font-m); font-size:10.5px; color:var(--txt-500); margin-top:5px; line-height:1.5; }
    .stage .st-bar { margin-top:14px; height:2px; background:rgba(255,255,255,.05); border-radius:99px; overflow:hidden; }
    .stage .st-bar i { display:block; height:100%; width:0; background:var(--good); transition:width 1s linear; }
    .pipe-console { border-top:1px solid var(--hair-soft); padding:16px 20px; background:var(--ink-1000); border-radius:0 0 8px 8px; font-family:var(--font-m); font-size:11.5px; line-height:1.9; color:var(--txt-400); min-height:118px; }
    .pipe-console .ln { display:flex; gap:12px; animation:feedIn .3s ease both; }
    .pipe-console .at { color:var(--txt-600); flex-shrink:0; }


    /* ---------- mission control ---------- */
    .mc-strip { display:flex; flex-wrap:wrap; border-bottom:1px solid var(--hair-soft); }
    .mc-cell { flex:1 1 auto; min-width:150px; padding:12px 16px; border-right:1px solid var(--hair-soft); display:flex; flex-direction:column; gap:6px; }
    .mc-cell:last-child { border-right:0; }
    .mc-cell .k { font-family:var(--font-m); font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--txt-600); }
    .mc-cell .v { font-family:var(--font-d); font-size:19px; letter-spacing:-.02em; font-variant-numeric:tabular-nums; line-height:1; }
    .mc-grid { display:grid; grid-template-columns:1.35fr .65fr; }
    .mc-lanes { border-right:1px solid var(--hair-soft); }
    .deck-scene .mc-lane {
      display:grid; grid-template-columns:14px minmax(150px,1.2fr) minmax(90px,auto) 90px 92px 64px;
      gap:14px; align-items:center; padding:14px 18px;
      border-bottom:1px solid rgba(255,255,255,.04);
      border-left:2px solid transparent;
      transition:background .35s ease, border-color .35s ease;
    }
    .mc-lane:last-child { border-bottom:0; }
    .mc-lane.focus { background:rgba(52,211,153,.03); border-left-color:var(--good); }
    .mc-lane .n { font-family:var(--font-d); font-size:15px; letter-spacing:-.02em; display:block; }
    .mc-lane .k { display:block; margin-top:3px; }
    .mc-dots { display:flex; gap:3px; overflow:hidden; }
    .mc-dots i { width:5px; height:10px; border-radius:1.5px; background:var(--ink-700); flex:0 0 auto; transition:background .3s ease; }
    .mc-dots i.o { background:rgba(52,211,153,.75); }
    .mc-dots i.b { background:rgba(251,191,36,.55); }
    .mc-dots i.l { background:rgba(248,113,113,.6); }
    .mc-spark { display:block; }
    .mc-pnl { font-family:var(--font-d); font-size:16px; text-align:right; font-variant-numeric:tabular-nums; }
    .mc-wr { text-align:right; }
    .mc-side { display:flex; flex-direction:column; min-width:0; }
    .mc-side-head { display:flex; justify-content:space-between; gap:10px; padding:10px 16px; border-bottom:1px solid var(--hair-soft); }
    .mc-drill { min-height:186px; padding:4px 0; flex:1; overflow:hidden; }
    .mc-health { padding:8px 16px 14px; }
    .mc-kv { display:flex; align-items:center; gap:10px; padding:7px 0; font-family:var(--font-m); font-size:11px; color:var(--txt-500); }
    .mc-kv i { flex:1; border-top:1px dashed rgba(255,255,255,.07); }
    .mc-kv b { font-weight:400; color:var(--txt-200); font-variant-numeric:tabular-nums; white-space:nowrap; }
    .mc-hint { border-top:1px solid var(--hair-soft); padding:10px 18px; font-family:var(--font-m); font-size:10px; color:var(--txt-600); letter-spacing:.04em; }


    /* ---------- guard ---------- */
    .guard-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:14px; align-items:stretch; }
    .dial-stage { position:relative; min-height:420px; display:flex; align-items:center; justify-content:center; }
    #dialCanvas { position:absolute; inset:0; width:100%; height:100%; }
    .dial-core { position:relative; z-index:2; text-align:center; pointer-events:none; }
    .dial-v { font-family:var(--font-d); font-size:clamp(48px,5vw,72px); letter-spacing:-0.05em; line-height:1; font-variant-numeric:tabular-nums; transition:color .4s ease; }
    .ladder { display:flex; flex-direction:column; }
    .deck-scene .lvl {
      display:grid; grid-template-columns:54px 1fr auto; gap:14px; align-items:center;
      padding:17px 18px; border-bottom:1px solid var(--hair-soft);
      transition:background .4s ease;
    }
    .lvl:last-child { border-bottom:0; }
    .lvl .ln { font-family:var(--font-m); font-size:13px; color:var(--txt-500); }
    .lvl .lt { font-family:var(--font-d); font-size:16px; letter-spacing:-0.02em; }
    .lvl .ld { font-family:var(--font-m); font-size:10.5px; color:var(--txt-500); margin-top:3px; line-height:1.5; }
    .lvl .st { font-family:var(--font-m); font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; padding:3px 8px; border-radius:4px; border:1px solid var(--hair-soft); color:var(--txt-500); transition:all .3s ease; }
    .lvl.armed .st { color:var(--txt-400); }
    .lvl.fired { background:rgba(248,113,113,.035); }
    .lvl.fired .st { color:var(--ink-950); background:var(--warn); border-color:var(--warn); font-weight:700; }
    .lvl.fired.crit .st { background:var(--bad); border-color:var(--bad); }
    .lvl.cleared .st { color:var(--good); border-color:rgba(52,211,153,.35); }
    .guard-log { border-top:1px solid var(--hair-soft); padding:12px 18px; font-family:var(--font-m); font-size:11px; line-height:1.9; color:var(--txt-500); min-height:96px; }


    /* ---------- anti-tilt ---------- */
    .tilt-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:14px; align-items:stretch; }
    .tilt-chips { display:flex; flex-wrap:wrap; gap:6px; padding:12px 16px; border-bottom:1px solid var(--hair-soft); }
    .deck-scene .tchip {
      display:inline-flex; align-items:center; gap:7px;
      font-family:var(--font-m); font-size:10px; letter-spacing:.05em;
      border:1px solid var(--hair-soft); border-radius:4px; padding:4px 9px; color:var(--txt-500);
      transition:all .3s ease;
    }
    .tchip i { width:5px; height:5px; border-radius:99px; background:var(--txt-600); }
    .tchip.armed { color:var(--txt-400); }
    .tchip.fired { color:var(--warn); border-color:rgba(251,191,36,.35); background:rgba(251,191,36,.05); }
    .tchip.fired i { background:var(--warn); box-shadow:0 0 8px rgba(251,191,36,.8); }
    .tilt-feed { min-height:230px; padding:6px 0; }
    .deck-scene .tilt-lock {
      margin:10px 16px 16px; border:1px solid rgba(251,191,36,.3); border-radius:6px;
      background:rgba(251,191,36,.04); padding:14px 16px;
      display:none; animation:feedIn .5s ease both;
    }
    .tilt-lock.on { display:block; }
    .tilt-lock .tl-head { display:flex; align-items:center; gap:10px; font-family:var(--font-d); font-size:16px; letter-spacing:-.02em; color:var(--warn); }
    .tilt-lock .tl-sub { margin-top:6px; font-family:var(--font-m); font-size:10.5px; color:var(--txt-500); line-height:1.6; }
    .tilt-lock .tl-cd { font-variant-numeric:tabular-nums; color:var(--txt-200); }
    #tiltCanvas { width:100%; height:300px; }
    .tilt-delta { padding:14px 18px 6px; display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; }
    .tilt-delta .dv { font-family:var(--font-d); font-size:clamp(28px,3vw,42px); letter-spacing:-.04em; font-variant-numeric:tabular-nums; color:var(--good); }
    .tilt-delta .dk { font-family:var(--font-m); font-size:10px; color:var(--txt-600); text-transform:uppercase; letter-spacing:.08em; }



/* ---------- hub live tiles (/product directory) ---------- */
.hub-live{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.05)}
.hub-live .hub-val{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10.5px;color:#A1A1AA;font-variant-numeric:tabular-nums;white-space:nowrap}
.hub-live .hub-spark{display:block}

/* ---------- deck marquee band ---------- */
.deck-band{padding:clamp(36px,6vh,68px) 0;border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06);overflow:hidden;background:#0D0D10}
.deck-band .db-mq{overflow:hidden;white-space:nowrap}
.deck-band .db-mq+.db-mq{margin-top:10px}
.deck-band .db-track{display:inline-flex;width:max-content;animation:deckMq 36s linear infinite}
.deck-band .db-mq.rev .db-track{animation:deckMqRev 42s linear infinite}
@keyframes deckMq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes deckMqRev{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.deck-band span{font-family:'Space Grotesk','Inter',sans-serif;font-weight:500;letter-spacing:-.04em;font-size:clamp(40px,6vw,92px);line-height:1;padding-right:32px}
.deck-band .out{color:transparent;-webkit-text-stroke:1px rgba(250,250,250,.17)}
.deck-band .fill{color:#17171A}
.deck-band .x{color:#34D399;font-weight:300}
@media (prefers-reduced-motion: reduce){.deck-band .db-track{animation:none}}

/* ---------- the room votes (/how-it-decides signature) ---------- */
.deck-scene .rv-wrap{overflow:hidden}
.deck-scene .rv-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--hair-soft);font-family:var(--font-m);font-size:11px;color:var(--txt-400)}
.deck-scene .rv-body{display:grid;grid-template-columns:1.45fr .55fr}
.deck-scene .rv-lanes{border-right:1px solid var(--hair-soft)}
.deck-scene .rv-lane{display:grid;grid-template-columns:118px 64px 1fr 78px;gap:14px;align-items:center;padding:13px 18px;border-bottom:1px solid rgba(255,255,255,.04)}
.deck-scene .rv-lane:last-child{border-bottom:0}
.deck-scene .rv-name{font-family:var(--font-d);font-size:14px;letter-spacing:-.02em}
.deck-scene .rv-wbar{height:4px;border-radius:99px;background:rgba(255,255,255,.06);overflow:hidden}
.deck-scene .rv-wbar i{display:block;height:100%;background:linear-gradient(90deg,rgba(52,211,153,.4),var(--good))}
.deck-scene .rv-dots{display:flex;flex-wrap:wrap;gap:3px}
.deck-scene .rv-dot{width:8px;height:8px;border-radius:2px;background:var(--ink-700);transition:background .35s ease,box-shadow .35s ease}
.deck-scene .rv-dot.l{background:var(--good);box-shadow:0 0 6px rgba(52,211,153,.7)}
.deck-scene .rv-dot.s{background:var(--bad);box-shadow:0 0 6px rgba(248,113,113,.6)}
.deck-scene .rv-lean{font-family:var(--font-m);font-size:10.5px;text-align:right;color:var(--txt-500);font-variant-numeric:tabular-nums}
.deck-scene .rv-lean.l{color:var(--good)}.deck-scene .rv-lean.s{color:var(--bad)}
.deck-scene .rv-verdict{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:24px 18px;text-align:center}
.deck-scene .rv-meter{position:relative;width:160px;height:160px}
.deck-scene .rv-meter canvas{width:100%;height:100%}
.deck-scene .rv-core{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.deck-scene .rv-score{font-family:var(--font-d);font-size:46px;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.deck-scene .rv-clbl{margin-top:12px}
.deck-scene .rv-read{margin-top:8px;font-family:var(--font-m);font-size:12px;letter-spacing:.04em;color:var(--txt-400);min-height:18px;transition:color .3s ease}
.deck-scene .rv-read.go{color:var(--good)}
.deck-scene .rv-foot{margin-top:8px;font-size:10px;color:var(--txt-600);letter-spacing:.04em}
@media (max-width:1020px){.deck-scene .rv-body{grid-template-columns:1fr}.deck-scene .rv-lanes{border-right:0;border-bottom:1px solid var(--hair-soft)}.deck-scene .rv-lane{grid-template-columns:104px 1fr 70px}.deck-scene .rv-wbar{display:none}}
@media (max-width:640px){.deck-scene .rv-lane{grid-template-columns:90px 1fr}.deck-scene .rv-lean{display:none}}

/* ---------- rule composer (/product/build signature, interactive) ---------- */
.deck-scene .rc-wrap{overflow:hidden}
.deck-scene .rc-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--hair-soft);font-family:var(--font-m);font-size:11px;color:var(--txt-400)}
.deck-scene .rc-body{display:grid;grid-template-columns:1fr 1fr}
.deck-scene .rc-pick{padding:18px;border-right:1px solid var(--hair-soft)}
.deck-scene .rc-grp{margin-bottom:16px}
.deck-scene .rc-grp:last-child{margin-bottom:0}
.deck-scene .rc-gl{font-family:var(--font-m);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--txt-600);margin-bottom:9px}
.deck-scene .rc-chips{display:flex;flex-wrap:wrap;gap:7px}
.deck-scene .rc-chip{font-family:var(--font-m);font-size:11.5px;color:var(--txt-400);border:1px solid var(--hair-soft);border-radius:5px;padding:6px 11px;cursor:pointer;user-select:none;transition:all .15s ease;background:transparent}
.deck-scene .rc-chip:hover{border-color:rgba(255,255,255,.22);color:var(--txt-200)}
.deck-scene .rc-chip.on{border-color:rgba(52,211,153,.5);color:var(--good);background:rgba(52,211,153,.07)}
.deck-scene .rc-logic{display:inline-flex;border:1px solid var(--hair-soft);border-radius:5px;overflow:hidden;margin-left:8px}
.deck-scene .rc-logic button{font:inherit;font-family:var(--font-m);font-size:10.5px;background:transparent;border:0;color:var(--txt-500);padding:5px 10px;cursor:pointer}
.deck-scene .rc-logic button.on{background:var(--txt-50);color:var(--ink-950)}
.deck-scene .rc-side{display:flex;flex-direction:column}
.deck-scene .rc-code{flex:1;margin:0;padding:18px;font-family:var(--font-m);font-size:12.5px;line-height:1.75;color:var(--txt-200);white-space:pre-wrap;min-height:230px}
.deck-scene .rc-code .k{color:var(--txt-400)}.deck-scene .rc-code .n{color:var(--good)}.deck-scene .rc-code .s{color:var(--warn)}.deck-scene .rc-code .f{color:var(--txt-50)}.deck-scene .rc-code .c{color:var(--txt-600);font-style:italic}
.deck-scene .rc-foot{border-top:1px solid var(--hair-soft);padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.deck-scene .rc-match{font-family:var(--font-d);font-size:26px;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.deck-scene .rc-mlbl{font-family:var(--font-m);font-size:10px;color:var(--txt-600);text-transform:uppercase;letter-spacing:.08em;margin-top:2px}
.deck-scene .rc-hint{font-family:var(--font-m);font-size:10.5px;color:var(--txt-500);text-align:right;max-width:50%}
@media (max-width:860px){.deck-scene .rc-body{grid-template-columns:1fr}.deck-scene .rc-pick{border-right:0;border-bottom:1px solid var(--hair-soft)}}

/* ---------- block/allow ledger (/product/protection signature) ---------- */
.deck-scene .bl-wrap{overflow:hidden}
.deck-scene .bl-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--hair-soft);font-family:var(--font-m);font-size:11px;color:var(--txt-400)}
.deck-scene .bl-lock{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--hair-soft);background:rgba(251,191,36,.05)}
.deck-scene .bl-lock .ic{width:18px;height:18px;color:var(--warn);flex:0 0 auto}
.deck-scene .bl-lock .lt{font-family:var(--font-d);font-size:15px;letter-spacing:-.02em;color:var(--warn)}
.deck-scene .bl-lock .ls{font-family:var(--font-m);font-size:10.5px;color:var(--txt-500);margin-top:2px}
.deck-scene .bl-lock .cd{color:var(--txt-200);font-variant-numeric:tabular-nums}
.deck-scene .bl-cols{display:grid;grid-template-columns:1fr 1fr}
.deck-scene .bl-col{min-height:236px;padding:6px 0}
.deck-scene .bl-col:first-child{border-right:1px solid var(--hair-soft)}
.deck-scene .bl-ct{display:flex;align-items:center;gap:8px;padding:10px 18px;font-family:var(--font-m);font-size:10px;letter-spacing:.1em;text-transform:uppercase}
.deck-scene .bl-ct.x{color:var(--bad)}.deck-scene .bl-ct.ok{color:var(--good)}
.deck-scene .bl-row{display:flex;align-items:center;gap:10px;padding:7px 18px;font-family:var(--font-m);font-size:11.5px;color:var(--txt-300);animation:blIn .4s cubic-bezier(.2,.7,.3,1) both}
@keyframes blIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.deck-scene .bl-row .t{color:var(--txt-600);font-size:10px}
.deck-scene .bl-row .st{margin-left:auto;font-size:9.5px;padding:2px 7px;border-radius:4px;border:1px solid var(--hair-soft)}
.deck-scene .bl-row.x .st{color:var(--bad);border-color:rgba(248,113,113,.3);background:rgba(248,113,113,.06)}
.deck-scene .bl-row.ok .st{color:var(--good);border-color:rgba(52,211,153,.3);background:rgba(52,211,153,.07)}
.deck-scene .bl-foot{border-top:1px solid var(--hair-soft);padding:13px 18px;font-family:var(--font-m);font-size:11px;color:var(--txt-500)}
@media (max-width:640px){.deck-scene .bl-cols{grid-template-columns:1fr}.deck-scene .bl-col:first-child{border-right:0;border-bottom:1px solid var(--hair-soft)}}

/* ---------- backtest method switcher (/product/backtest signature, interactive) ---------- */
.deck-scene .bt-wrap{overflow:hidden}
.deck-scene .bt-tabs{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--hair-soft)}
.deck-scene .bt-tab{font-family:var(--font-m);font-size:11.5px;color:var(--txt-500);background:transparent;border:0;border-right:1px solid var(--hair-soft);padding:13px 18px;cursor:pointer;transition:color .15s ease,background .15s ease}
.deck-scene .bt-tab:hover{color:var(--txt-200)}
.deck-scene .bt-tab.on{color:var(--good);background:rgba(52,211,153,.05)}
.deck-scene .bt-stage{position:relative;height:300px}
.deck-scene .bt-stage canvas{width:100%;height:100%}
.deck-scene .bt-foot{border-top:1px solid var(--hair-soft);padding:14px 18px;display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap}
.deck-scene .bt-cap{font-family:var(--font-m);font-size:11.5px;color:var(--txt-400);max-width:60%}
.deck-scene .bt-metric{font-family:var(--font-d);font-size:15px;letter-spacing:-.02em;color:var(--txt-200);font-variant-numeric:tabular-nums}

/* ---------- bracket order ticket (/product/terminal signature) ---------- */
.deck-scene .ot-wrap{overflow:hidden}
.deck-scene .ot-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--hair-soft);font-family:var(--font-m);font-size:11px;color:var(--txt-400)}
.deck-scene .ot-body{display:grid;grid-template-columns:1.25fr .75fr}
.deck-scene .ot-ladder{border-right:1px solid var(--hair-soft);padding:8px 0}
.deck-scene .ot-leg{display:grid;grid-template-columns:58px 1fr auto auto;gap:12px;align-items:center;padding:9px 18px;font-family:var(--font-m);font-size:12px;position:relative}
.deck-scene .ot-leg .tag{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--txt-500)}
.deck-scene .ot-leg.tp .tag{color:var(--good)}.deck-scene .ot-leg.sl .tag{color:var(--bad)}.deck-scene .ot-leg.ins .tag{color:var(--warn)}.deck-scene .ot-leg.entry .tag{color:var(--txt-50)}
.deck-scene .ot-leg .px{color:var(--txt-200);font-variant-numeric:tabular-nums}
.deck-scene .ot-leg .wt{color:var(--txt-500);font-variant-numeric:tabular-nums;font-size:10.5px}
.deck-scene .ot-leg .st{font-size:9px;padding:2px 7px;border-radius:4px;border:1px solid var(--hair-soft);color:var(--txt-600);min-width:62px;text-align:center;transition:all .3s ease}
.deck-scene .ot-leg.placed .st{color:var(--good);border-color:rgba(52,211,153,.3);background:rgba(52,211,153,.07)}
.deck-scene .ot-leg .bar{position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--ink-700);transition:background .3s ease}
.deck-scene .ot-leg.tp.placed .bar{background:var(--good)}.deck-scene .ot-leg.sl.placed .bar{background:var(--bad)}.deck-scene .ot-leg.ins.placed .bar{background:var(--warn)}.deck-scene .ot-leg.entry.placed .bar{background:var(--txt-50)}
.deck-scene .ot-side{display:flex;flex-direction:column;justify-content:space-between;padding:16px 18px}
.deck-scene .ot-kv{display:flex;justify-content:space-between;font-family:var(--font-m);font-size:11px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.04)}
.deck-scene .ot-kv span{color:var(--txt-500)}.deck-scene .ot-kv b{color:var(--txt-200);font-weight:400;font-variant-numeric:tabular-nums}
.deck-scene .ot-kv b.l{color:var(--good)}
.deck-scene .ot-fire{margin-top:14px;width:100%;font-family:var(--font-b);font-weight:500;font-size:13px;border:1px solid var(--good);background:rgba(52,211,153,.1);color:var(--good);border-radius:6px;padding:11px;cursor:pointer;transition:all .15s ease}
.deck-scene .ot-fire:hover{background:rgba(52,211,153,.18)}
.deck-scene .ot-fire.firing{opacity:.6;pointer-events:none}
.deck-scene .ot-routes{margin-top:12px;display:flex;flex-direction:column;gap:5px}
.deck-scene .ot-route{display:flex;align-items:center;gap:8px;font-family:var(--font-m);font-size:10.5px;color:var(--txt-500)}
.deck-scene .ot-route i{width:6px;height:6px;border-radius:99px;background:var(--ink-700);transition:background .3s ease,box-shadow .3s ease}
.deck-scene .ot-route.ok i{background:var(--good);box-shadow:0 0 6px rgba(52,211,153,.7)}
.deck-scene .ot-route .ms{margin-left:auto;color:var(--txt-400);font-variant-numeric:tabular-nums}
.deck-scene .ot-foot{border-top:1px solid var(--hair-soft);padding:13px 18px;font-family:var(--font-m);font-size:11px;color:var(--txt-500)}
@media (max-width:860px){.deck-scene .ot-body{grid-template-columns:1fr}.deck-scene .ot-ladder{border-right:0;border-bottom:1px solid var(--hair-soft)}}

/* ---------- signal lifecycle (/product/signals signature) ---------- */
.deck-scene .sl-wrap{overflow:hidden}
.deck-scene .sl-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--hair-soft);font-family:var(--font-m);font-size:11px;color:var(--txt-400)}
.deck-scene .sl-top{display:flex;align-items:center;gap:16px;padding:16px 18px;border-bottom:1px solid var(--hair-soft);flex-wrap:wrap}
.deck-scene .sl-dir{font-family:var(--font-m);font-size:11px;padding:4px 10px;border-radius:5px;border:1px solid rgba(52,211,153,.4);color:var(--good);background:rgba(52,211,153,.07)}
.deck-scene .sl-coin{font-family:var(--font-d);font-size:24px;letter-spacing:-.03em}
.deck-scene .sl-coin .tf{font-family:var(--font-m);font-size:12px;color:var(--txt-500);margin-left:4px}
.deck-scene .sl-chip{font-family:var(--font-m);font-size:10px;letter-spacing:.06em;padding:3px 9px;border-radius:5px;border:1px solid rgba(52,211,153,.35);color:var(--good);background:rgba(52,211,153,.08)}
.deck-scene .sl-rr{margin-left:auto;font-family:var(--font-m);font-size:11px;color:var(--txt-400);font-variant-numeric:tabular-nums}
.deck-scene .sl-steps{display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid var(--hair-soft)}
.deck-scene .sl-step{padding:14px 14px 16px;border-right:1px solid var(--hair-soft);position:relative;transition:background .4s ease}
.deck-scene .sl-step:last-child{border-right:0}
.deck-scene .sl-step.on{background:rgba(52,211,153,.04)}
.deck-scene .sl-step.done{opacity:.85}
.deck-scene .sl-sn{font-family:var(--font-m);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--txt-600);display:flex;align-items:center;gap:6px}
.deck-scene .sl-sn i{width:6px;height:6px;border-radius:99px;background:var(--ink-700);transition:background .3s ease,box-shadow .3s ease}
.deck-scene .sl-step.on .sl-sn i{background:var(--warn);box-shadow:0 0 7px rgba(251,191,36,.8)}
.deck-scene .sl-step.done .sl-sn i{background:var(--good);box-shadow:0 0 7px rgba(52,211,153,.7)}
.deck-scene .sl-st{font-family:var(--font-d);font-size:15px;letter-spacing:-.02em;margin-top:9px}
.deck-scene .sl-sd{font-family:var(--font-m);font-size:10.5px;color:var(--txt-500);margin-top:4px;line-height:1.45}
.deck-scene .sl-bar{height:2px;background:rgba(255,255,255,.05);margin:0 18px}
.deck-scene .sl-bar i{display:block;height:100%;width:0;background:var(--good);transition:width .6s cubic-bezier(.4,0,.2,1)}
.deck-scene .sl-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 18px}
.deck-scene .sl-result{font-family:var(--font-d);font-size:26px;letter-spacing:-.03em;font-variant-numeric:tabular-nums;transition:color .3s ease}
.deck-scene .sl-note{font-family:var(--font-m);font-size:10.5px;color:var(--txt-500);text-align:right;max-width:50%}
@media (max-width:760px){.deck-scene .sl-steps{grid-template-columns:1fr;}.deck-scene .sl-step{border-right:0;border-bottom:1px solid var(--hair-soft)}}

/* ---------- market board (/product/analytics signature) ---------- */
.deck-scene .mb-wrap{overflow:hidden}
.deck-scene .mb-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--hair-soft);font-family:var(--font-m);font-size:11px;color:var(--txt-400)}
.deck-scene .mb-hr,.deck-scene .mb-row{display:grid;grid-template-columns:84px 1fr 96px 84px 120px;gap:14px;align-items:center;padding:9px 18px}
.deck-scene .mb-hr{border-bottom:1px solid var(--hair-soft);font-family:var(--font-m);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--txt-600)}
.deck-scene .mb-row{border-bottom:1px solid rgba(255,255,255,.04);font-family:var(--font-m);font-size:12px;font-variant-numeric:tabular-nums}
.deck-scene .mb-row:last-child{border-bottom:0}
.deck-scene .mb-coin{font-family:var(--font-d);font-size:14px;letter-spacing:-.02em}
.deck-scene .mb-mark{color:var(--txt-200)}
.deck-scene .mb-fund.pos{color:var(--good)}.deck-scene .mb-fund.neg{color:var(--bad)}
.deck-scene .mb-oi.pos{color:var(--good)}.deck-scene .mb-oi.neg{color:var(--bad)}
.deck-scene .mb-skewcol{display:block}
.deck-scene .mb-skew{display:block;width:100%;height:7px;border-radius:99px;background:rgba(248,113,113,.20);position:relative;overflow:hidden}
.deck-scene .mb-skew i{position:absolute;left:0;top:0;bottom:0;background:rgba(52,211,153,.5);transition:width .6s ease}
.deck-scene .mb-foot{border-top:1px solid var(--hair-soft);padding:13px 18px;font-family:var(--font-m);font-size:11px;color:var(--txt-500)}
.deck-scene .r-right{text-align:right}
@media (max-width:760px){.deck-scene .mb-hr,.deck-scene .mb-row{grid-template-columns:64px 1fr 80px;}.deck-scene .mb-oi,.deck-scene .mb-skewcol,.deck-scene .mb-hr .mb-skewcol{display:none}}

/* ---------- allocation board (/product/strategies signature) ---------- */
.deck-scene .ab-wrap{overflow:hidden}
.deck-scene .ab-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--hair-soft);font-family:var(--font-m);font-size:11px;color:var(--txt-400)}
.deck-scene .ab-row{display:grid;grid-template-columns:1.5fr 88px 96px 1.2fr;gap:16px;align-items:center;padding:15px 18px;border-bottom:1px solid rgba(255,255,255,.04)}
.deck-scene .ab-row:last-child{border-bottom:0}
.deck-scene .ab-name{font-family:var(--font-d);font-size:15px;letter-spacing:-.02em}
.deck-scene .ab-kind{font-family:var(--font-m);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--txt-600);margin-top:2px;display:block}
.deck-scene .ab-wr{font-family:var(--font-m);font-size:11px;color:var(--txt-400);text-align:right;font-variant-numeric:tabular-nums}
.deck-scene .ab-pnl{font-family:var(--font-d);font-size:16px;text-align:right;font-variant-numeric:tabular-nums}
.deck-scene .ab-alloc{display:flex;align-items:center;gap:10px}
.deck-scene .ab-bar{flex:1;height:8px;border-radius:99px;background:rgba(255,255,255,.05);overflow:hidden}
.deck-scene .ab-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,rgba(52,211,153,.5),var(--good));transition:width .8s cubic-bezier(.4,0,.2,1)}
.deck-scene .ab-bar.loser i{background:linear-gradient(90deg,rgba(248,113,113,.4),rgba(248,113,113,.6))}
.deck-scene .ab-pct{font-family:var(--font-m);font-size:11px;color:var(--txt-300);width:34px;text-align:right;font-variant-numeric:tabular-nums}
.deck-scene .ab-foot{border-top:1px solid var(--hair-soft);padding:13px 18px;display:flex;justify-content:space-between;gap:12px;font-family:var(--font-m);font-size:11px;color:var(--txt-500)}
.deck-scene .ab-foot b{color:var(--good);font-weight:400}
@media (max-width:760px){.deck-scene .ab-row{grid-template-columns:1fr 80px;gap:10px}.deck-scene .ab-wrcol,.deck-scene .ab-alloc{display:none}}

/* ---------- journal insight (/product/research signature) ---------- */
.deck-scene .ji-wrap{overflow:hidden}
.deck-scene .ji-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--hair-soft);font-family:var(--font-m);font-size:11px;color:var(--txt-400)}
.deck-scene .ji-body{display:grid;grid-template-columns:1fr 1fr}
.deck-scene .ji-trade{padding:18px;border-right:1px solid var(--hair-soft)}
.deck-scene .ji-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.deck-scene .ji-dir{font-family:var(--font-m);font-size:10.5px;padding:3px 9px;border-radius:5px}
.deck-scene .ji-dir.l{color:var(--good);border:1px solid rgba(52,211,153,.4);background:rgba(52,211,153,.07)}
.deck-scene .ji-dir.s{color:var(--bad);border:1px solid rgba(248,113,113,.4);background:rgba(248,113,113,.06)}
.deck-scene .ji-coin{font-family:var(--font-d);font-size:20px;letter-spacing:-.02em}
.deck-scene .ji-r{margin-left:auto;font-family:var(--font-d);font-size:20px;font-variant-numeric:tabular-nums}
.deck-scene .ji-story{margin-top:16px;display:flex;flex-direction:column;gap:8px}
.deck-scene .ji-leg{display:flex;align-items:center;gap:10px;font-family:var(--font-m);font-size:11px;color:var(--txt-400)}
.deck-scene .ji-leg i{width:5px;height:5px;border-radius:99px;flex:0 0 auto}
.deck-scene .ji-leg.ok i{background:var(--good)}.deck-scene .ji-leg.be i{background:var(--warn)}.deck-scene .ji-leg.ins i{background:var(--txt-500)}
.deck-scene .ji-leg b{color:var(--txt-200);font-weight:400;margin-left:auto;font-variant-numeric:tabular-nums}
.deck-scene .ji-side{padding:18px;display:flex;flex-direction:column;justify-content:center}
.deck-scene .ji-ailbl{display:flex;align-items:center;gap:8px;font-family:var(--font-m);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--good)}
.deck-scene .ji-ai{margin-top:12px;font-family:var(--font-d);font-size:clamp(17px,1.7vw,21px);letter-spacing:-.02em;line-height:1.3;color:var(--txt-50);min-height:84px}
.deck-scene .ji-foot{border-top:1px solid var(--hair-soft);padding:13px 18px;font-family:var(--font-m);font-size:11px;color:var(--txt-500)}
@media (max-width:760px){.deck-scene .ji-body{grid-template-columns:1fr}.deck-scene .ji-trade{border-right:0;border-bottom:1px solid var(--hair-soft)}}

/* ---------- execution race (/product/execution signature) ---------- */
.deck-scene .er-wrap{overflow:hidden}
.deck-scene .er-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--hair-soft);font-family:var(--font-m);font-size:11px;color:var(--txt-400)}
.deck-scene .er-lane{padding:18px 18px 6px}
.deck-scene .er-lane+.er-lane{border-top:1px solid rgba(255,255,255,.04)}
.deck-scene .er-llbl{display:flex;align-items:baseline;justify-content:space-between;font-family:var(--font-m);font-size:12px;color:var(--txt-300);margin-bottom:10px}
.deck-scene .er-llbl b{font-family:var(--font-d);font-size:15px;font-weight:500;font-variant-numeric:tabular-nums}
.deck-scene .er-llbl .win{color:var(--good)}.deck-scene .er-llbl .slow{color:var(--txt-500)}
.deck-scene .er-track{position:relative;height:30px;border-radius:6px;background:rgba(255,255,255,.03);overflow:hidden}
.deck-scene .er-fill{position:absolute;left:0;top:0;bottom:0;width:0;background:linear-gradient(90deg,rgba(52,211,153,.18),rgba(52,211,153,.32));border-right:1px solid rgba(52,211,153,.5)}
.deck-scene .er-fill.seq{background:linear-gradient(90deg,rgba(161,161,170,.12),rgba(161,161,170,.2));border-right-color:rgba(161,161,170,.4)}
.deck-scene .er-leg{position:absolute;top:50%;transform:translate(-50%,-50%);width:9px;height:9px;border-radius:2px;background:var(--ink-700);transition:background .2s ease,box-shadow .2s ease;z-index:2}
.deck-scene .er-leg.on{background:var(--good);box-shadow:0 0 7px rgba(52,211,153,.8)}
.deck-scene .er-lane.seq .er-leg.on{background:var(--txt-300);box-shadow:none}
.deck-scene .er-leg .tip{position:absolute;top:-16px;left:50%;transform:translateX(-50%);font-family:var(--font-m);font-size:8.5px;color:var(--txt-500);white-space:nowrap}
.deck-scene .er-foot{border-top:1px solid var(--hair-soft);padding:13px 18px;font-family:var(--font-m);font-size:11px;color:var(--txt-500)}
.deck-scene .er-foot b{color:var(--good);font-weight:400}

/* ---------- persona scenario (/for/* signature) ---------- */
.deck-scene .scn-wrap{overflow:hidden}
.deck-scene .scn-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--hair-soft);font-family:var(--font-m);font-size:11px;color:var(--txt-400)}
.deck-scene .scn-log{min-height:232px;padding:6px 0}
.deck-scene .scn-row{display:flex;align-items:center;gap:12px;padding:10px 18px;font-family:var(--font-m);font-size:12px;color:var(--txt-300);border-bottom:1px solid rgba(255,255,255,.03);animation:blIn .45s cubic-bezier(.2,.7,.3,1) both}
.deck-scene .scn-row .t{color:var(--txt-600);font-size:10.5px;min-width:42px}
.deck-scene .scn-row .st{margin-left:auto;font-size:9.5px;padding:2px 8px;border-radius:4px;border:1px solid var(--hair-soft);color:var(--txt-400);white-space:nowrap}
.deck-scene .scn-row .st.g{color:var(--good);border-color:rgba(52,211,153,.3);background:rgba(52,211,153,.07)}
.deck-scene .scn-row .st.r{color:var(--bad);border-color:rgba(248,113,113,.28);background:rgba(248,113,113,.06)}
.deck-scene .scn-row .st.w{color:var(--warn);border-color:rgba(251,191,36,.28);background:rgba(251,191,36,.05)}
.deck-scene .scn-foot{border-top:1px solid var(--hair-soft);padding:14px 18px;font-family:var(--font-d);font-size:15px;letter-spacing:-.02em;color:var(--txt-200)}

/* hero-live: row flash on signal verdict change (unique class, not namespaced) */
.sig-flash{animation:sigFlash .8s ease-out}
@keyframes sigFlash{0%{background:rgba(255,255,255,.07)}100%{background:transparent}}
@media(prefers-reduced-motion:reduce){.sig-flash{animation:none}}

/* setup verdict scene (/product/setup) */
.deck-scene .ss-wrap{padding:22px;display:flex;flex-direction:column;gap:16px}
.deck-scene .ss-head{display:flex;align-items:center;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:11px;color:#71717A}
.deck-scene .ss-pair{color:#A1A1AA}
.deck-scene .ss-dots{animation:ssBlink 1.4s steps(1) infinite}
@keyframes ssBlink{0%,100%{opacity:.3}50%{opacity:1}}
.deck-scene .ss-body{display:flex;align-items:center;justify-content:space-between;gap:18px}
.deck-scene .ss-word{font-family:'Space Grotesk','Inter',sans-serif;font-weight:600;font-size:clamp(34px,5vw,46px);line-height:1;letter-spacing:-.03em;color:#34D399;transition:color .35s ease}
.deck-scene .ss-conv{margin-top:8px;font-family:'JetBrains Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#34D399;transition:color .35s ease}
.deck-scene .ss-score{display:flex;flex-direction:column;align-items:center;gap:8px;flex-shrink:0}
.deck-scene .ss-ring{position:relative;width:100px;height:100px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:conic-gradient(from -90deg,#34D399 0deg,rgba(255,255,255,.07) 0deg)}
.deck-scene .ss-ring::before{content:"";position:absolute;inset:9px;border-radius:50%;background:#0A0A0C}
.deck-scene .ss-ring-num{position:relative;font-family:'Space Grotesk','Inter',sans-serif;font-weight:600;font-size:28px;color:#FAFAFA;line-height:1;font-variant-numeric:tabular-nums}
.deck-scene .ss-ring-den{position:relative;font-family:'JetBrains Mono',monospace;font-size:10px;color:#71717A;margin-top:1px}
.deck-scene .ss-sec{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:#A1A1AA;text-align:center}
.deck-scene .ss-plan{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.06);border-radius:8px;overflow:hidden}
.deck-scene .ss-pcell{background:#0A0A0C;padding:10px 8px;display:flex;flex-direction:column;gap:3px}
.deck-scene .ss-pcell span{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;color:#52525B}
.deck-scene .ss-pcell b{font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:500;color:#FAFAFA;font-variant-numeric:tabular-nums}
.deck-scene .ss-pcell b.ss-good{color:#34D399}
.deck-scene .ss-foot{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:#71717A;border-top:1px solid rgba(255,255,255,.06);padding-top:12px;transition:color .35s ease}
@media(max-width:520px){.deck-scene .ss-plan{grid-template-columns:repeat(2,1fr)}.deck-scene .ss-ring{width:84px;height:84px}}
@media(prefers-reduced-motion:reduce){.deck-scene .ss-dots{animation:none}}

/* hero canvas scenes (product page heroes — replaces the old static device mocks) */
.hero-scene{overflow:hidden;background:#0A0A0C;border:1px solid rgba(255,255,255,.08);border-radius:12px}
.hero-scene .hs-bar{display:flex;align-items:center;gap:10px;padding:11px 15px;border-bottom:1px solid rgba(255,255,255,.06);font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;color:#71717A}
.hero-scene .hs-dots{display:inline-flex;gap:5px}
.hero-scene .hs-dots i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.14)}
.hero-scene .hs-dots i:first-child{background:#F87171}
.hero-scene .hs-dots i:nth-child(2){background:#FBBF24}
.hero-scene .hs-dots i:last-child{background:#34D399}
.hero-scene .hs-title{color:#A1A1AA}
.hero-scene .hs-meta{margin-left:auto;color:#52525B}
.hero-scene .hs-meta>span{color:#34D399}
.hero-scene .hs-canvas{display:block;width:100%;height:328px}
.hero-scene .hs-foot{padding:11px 15px;border-top:1px solid rgba(255,255,255,.06);font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10.5px;color:#52525B;text-align:center}
@media(max-width:1024px){.hero-scene .hs-canvas{height:288px}}

/* scout scan: fresh shortlist row fade-in */
.sc-in{animation:scIn .42s ease}
@keyframes scIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.sc-in{animation:none}}

/* blLedger column-title icons (replace misaligned emoji) */
.bl-ic{width:13px;height:13px;flex-shrink:0;display:block}

/* setupScore: cap width so verdict↔ring don't drift apart on wide columns */
.deck-scene .ss-wrap{max-width:520px}

/* persona hero reveal animations (swing trade-replay rows + recovering tilt chips) */
.sr-row{opacity:0;transform:translateX(-6px);transition:opacity .4s ease,transform .4s ease}
.sr-row.in{opacity:1;transform:none}
.rg-chip{opacity:0;transform:translateY(4px);transition:opacity .35s ease,transform .35s ease}
.rg-chip.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.sr-row,.rg-chip{transition:none;opacity:1;transform:none}}
