/* 3d-glow kit: money — figure-specific styles (prefix every rule with .glow-stage [data-k="money"]) */
/* Labels get a halo in the recess colour so they stay readable where they cross line work. */
.glow-stage [data-k="money"] text { paint-order: stroke; stroke: var(--g-recess); stroke-width: 3; stroke-linejoin: round; pointer-events: none; }
.glow-stage [data-k="money"] .tip, .glow-stage [data-k="money"] .pr, .glow-stage [data-k="money"] .sv { font-weight: 600; }
.glow-stage [data-k="money"] text.on { fill: var(--g-ink-hi); }
.glow-stage [data-k="money"] .lead { fill: none; stroke: var(--g-ink); stroke-opacity: .5; stroke-width: 1; stroke-dasharray: 2 3; vector-effect: non-scaling-stroke; pointer-events: none; }
.glow-stage [data-k="money"] .hit { fill: transparent; stroke: none; }
.glow-stage [data-k="money"] .press:focus-visible .hit { stroke: var(--g-accent-hi); stroke-width: 1; stroke-dasharray: 3 2; vector-effect: non-scaling-stroke; }
/* Outlined = the losing / down / hollow state: pale fill, dashed ink outline (kept in fill, not only glow). */
.glow-stage [data-k="money"] .neg .face, .glow-stage [data-k="money"] .cd.dn .face { fill: var(--g-recess); stroke: var(--g-ink); stroke-dasharray: 3 2; }
.glow-stage [data-k="money"] .cd.dn .face { stroke-dasharray: none; }
/* candles */
.glow-stage [data-k="money"] .wk { fill: none; stroke: var(--g-ink); stroke-width: 1.2; vector-effect: non-scaling-stroke; stroke-linecap: round; }
.glow-stage [data-k="money"] .cd.up .wk { stroke: color-mix(in srgb, var(--g-accent) 70%, var(--g-ink)); }
.glow-stage [data-k="money"] .cd.sel .wk { stroke: var(--g-accent-hi); stroke-width: 2; }
.glow-stage [data-k="money"] .cd.sel.dn .face { stroke: var(--g-accent); }
.glow-stage [data-k="money"] .lvl { fill: none; stroke: var(--g-accent); stroke-width: 1.2; stroke-dasharray: 4 3; vector-effect: non-scaling-stroke; }
/* order book */
.glow-stage [data-k="money"] .mid { stroke-width: 2; stroke-dasharray: 3 2; filter: url(#g-soft); }
/* waterfall + generic selection outline */
.glow-stage [data-k="money"] .wf.on .face, .glow-stage [data-k="money"] .tier.sel .ped .face, .glow-stage [data-k="money"] .sh.sel > .face { stroke: var(--g-accent); }
.glow-stage [data-k="money"] .wf.on.neg .face { fill: color-mix(in srgb, var(--g-accent) 12%, var(--g-recess)); }
/* mrr: new = lit, expansion = tinted, contraction = dashed outline, churn = sunk */
.glow-stage [data-k="money"] .s1 .face { fill: color-mix(in srgb, var(--g-accent) 32%, var(--g-body)); stroke: color-mix(in srgb, var(--g-accent) 70%, var(--g-line)); }
.glow-stage [data-k="money"] .s1 .face.top { fill: color-mix(in srgb, var(--g-accent) 50%, var(--g-deck)); }
.glow-stage [data-k="money"] .s2 .face { fill: var(--g-body); stroke: var(--g-ink); stroke-dasharray: 3 2; }
.glow-stage [data-k="money"] .s3 .face { fill: var(--g-recess); stroke: var(--g-line); }
.glow-stage [data-k="money"] .sg.dim.s2 .face { stroke: var(--g-line); }
/* Unselected months stay solid but drop their glow, so the picked month reads without see-through clutter. */
.glow-stage [data-k="money"] .sg.dim.lit { filter: none; }
.glow-stage [data-k="money"] .sg.dim.lit .face { fill: color-mix(in srgb, var(--g-accent) 24%, var(--g-body)); stroke: color-mix(in srgb, var(--g-accent) 55%, var(--g-line)); }
.glow-stage [data-k="money"] .sg.dim.lit .face.top { fill: color-mix(in srgb, var(--g-accent) 34%, var(--g-deck)); }
.glow-stage [data-k="money"] .sg.dim.s1 .face { fill: var(--g-body); stroke: color-mix(in srgb, var(--g-accent) 40%, var(--g-line)); }
.glow-stage [data-k="money"] .sg.dim.s1 .face.top { fill: color-mix(in srgb, var(--g-accent) 14%, var(--g-deck)); }
/* tiers: the selected (non-recommended) stack gets a tinted outline */
.glow-stage [data-k="money"] .tier.sel:not(.best) .ft .face { fill: color-mix(in srgb, var(--g-accent) 16%, var(--g-body)); stroke: var(--g-accent); }
/* jars: dark back wall, clear front glass, liquid tinted with the accent, the level glowing */
.glow-stage [data-k="money"] .glass { fill: color-mix(in srgb, var(--g-accent-hi) 4%, transparent); stroke: var(--g-line); stroke-width: 1; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.glow-stage [data-k="money"] .glass.back { fill: var(--g-recess); fill-opacity: .85; stroke: var(--g-detail); }
.glow-stage [data-k="money"] .glass.rim { fill: none; }
.glow-stage [data-k="money"] .liq .face { fill: color-mix(in srgb, var(--g-accent) 16%, var(--g-body)); stroke: color-mix(in srgb, var(--g-accent) 40%, var(--g-line)); }
.glow-stage [data-k="money"] .liq .face.top { fill: var(--g-accent); stroke: var(--g-accent-hi); filter: url(#g-soft); }
.glow-stage [data-k="money"] .jar.sel .liq .face.side { fill: color-mix(in srgb, var(--g-accent) 34%, var(--g-body)); }
.glow-stage [data-k="money"] .jar.sel .glass.rim { stroke: var(--g-accent); }
.glow-stage [data-k="money"] .spill { fill: color-mix(in srgb, var(--g-accent) 30%, transparent); stroke: var(--g-accent); stroke-width: 1; vector-effect: non-scaling-stroke; filter: url(#g-soft); }
.glow-stage [data-k="money"] .drip { fill: none; stroke: var(--g-accent); stroke-width: 2.2; stroke-linecap: round; vector-effect: non-scaling-stroke; filter: url(#g-soft); }
/* bond ladder: paid-out rungs become ghosts */
.glow-stage [data-k="money"] .rung.gone .face { fill: none; stroke: var(--g-detail); stroke-dasharray: 3 3; }
.glow-stage [data-k="money"] .rung.gone .lamp { opacity: 0; }
/* aging + vault */
.glow-stage [data-k="money"] .lit .detail { stroke: color-mix(in srgb, var(--g-accent) 45%, var(--g-body)); }
.glow-stage [data-k="money"] .bar.empty { opacity: 0; }
.glow-stage [data-k="money"] .bar.drop { animation: m-drop .45s cubic-bezier(.3, .8, .4, 1) 1; }
@keyframes m-drop { from { transform: translateY(-14px); opacity: 0; } to { transform: none; opacity: 1; } }
.glow-stage [data-k="money"] .goal { fill: none; stroke: var(--g-accent); stroke-width: 1.2; stroke-dasharray: 4 3; vector-effect: non-scaling-stroke; }
.glow-stage [data-k="money"] .vault .dopen { display: none; }
.glow-stage [data-k="money"] .vault.open .dopen { display: inline; }
.glow-stage [data-k="money"] .vault.open .dshut { display: none; }
.glow-stage [data-k="money"] .vault.open .halo { opacity: .3; }
@media (prefers-reduced-motion: reduce) {
  .glow-stage [data-k="money"] .bar.drop { animation: none; }
}
