/* 3d-glow kit: growth — figure-specific styles (prefix every rule with .glow-stage [data-k="growth"]) */
/* Labels get a thin plate-coloured halo so lines never cut through text. */
.glow-stage [data-k="growth"] text { paint-order: stroke; stroke: var(--g-body); stroke-width: 3px; stroke-linejoin: round; }
/* Text-only pressables (cohort rows, cap-table holders, ladder labels): selected = accent, focus = underline. */
.glow-stage [data-k="growth"] .on > text, .glow-stage [data-k="growth"] .on > .g-rv, .glow-stage [data-k="growth"] .on .g-cv { fill: var(--g-accent); }
.glow-stage [data-k="growth"] .press:focus-visible > text { text-decoration: underline; fill: var(--g-ink-hi); }
.glow-stage [data-k="growth"] .g-rv, .glow-stage [data-k="growth"] .g-cv, .glow-stage [data-k="growth"] .g-fp { fill: var(--g-ink-hi); }
.glow-stage [data-k="growth"] .g-sub, .glow-stage [data-k="growth"] .g-gl { opacity: .75; }
/* Partly-lit faces: reached share, founder wedge, water — tinted fill so light themes read without glow. */
.glow-stage [data-k="growth"] .g-reach .face { fill: color-mix(in srgb, var(--g-accent) 22%, var(--g-body)); stroke: color-mix(in srgb, var(--g-accent) 60%, var(--g-line)); }
.glow-stage [data-k="growth"] .g-reach .face.top { fill: color-mix(in srgb, var(--g-accent) 34%, var(--g-deck)); }
.glow-stage [data-k="growth"] .g-wedge { fill: var(--g-detail); stroke: var(--g-line); stroke-width: 1; vector-effect: non-scaling-stroke; transition: fill .4s; }
.glow-stage [data-k="growth"] .on .g-wedge { fill: color-mix(in srgb, var(--g-accent) 45%, var(--g-deck)); stroke: var(--g-accent); }
.glow-stage [data-k="growth"] .sel .g-wedge { fill: var(--g-accent); filter: url(#g-soft); }
.glow-stage [data-k="growth"] .ghost { opacity: .38; transition: opacity .4s; }
/* Glass bucket, water, leaks. */
.glow-stage [data-k="growth"] .g-glass { fill: color-mix(in srgb, var(--g-deck) 55%, transparent); stroke: var(--g-line); stroke-width: 1; vector-effect: non-scaling-stroke; }
.glow-stage [data-k="growth"] .g-glass.front { fill: color-mix(in srgb, var(--g-body) 22%, transparent); }
.glow-stage [data-k="growth"] .g-rim { fill: none; stroke: var(--g-ink); stroke-width: 1; vector-effect: non-scaling-stroke; opacity: .7; }
.glow-stage [data-k="growth"] .g-water .face { fill: color-mix(in srgb, var(--g-accent) 20%, transparent); stroke: var(--g-accent); }
.glow-stage [data-k="growth"] .g-water .face.top { fill: color-mix(in srgb, var(--g-accent) 40%, transparent); }
.glow-stage [data-k="growth"] .g-drip { fill: none; stroke: var(--g-ink); stroke-width: 1.4; vector-effect: non-scaling-stroke; stroke-linecap: round; stroke-dasharray: 2 5;
  animation: g-drip 1s linear infinite; transition: opacity .4s; }
.glow-stage [data-k="growth"] .g-pool { fill: none; stroke: var(--g-detail); stroke-width: 1; vector-effect: non-scaling-stroke; transition: opacity .4s; }
.glow-stage [data-k="growth"] .g-leak.on .g-drip, .glow-stage [data-k="growth"] .g-leak.on .g-pool { opacity: 0; }
.glow-stage [data-k="growth"] .g-leak .lamp { stroke: var(--g-line); stroke-width: 1; vector-effect: non-scaling-stroke; }
.glow-stage [data-k="growth"] .g-leak:focus-visible .lamp { stroke: var(--g-accent-hi); stroke-dasharray: 2 2; }
@keyframes g-drip { to { stroke-dashoffset: -14; } }
/* Coin ridges, payback ruler, zero line, J-curve trail. */
.glow-stage [data-k="growth"] .g-ridge { fill: none; stroke: var(--g-line); stroke-width: 1; vector-effect: non-scaling-stroke; }
.glow-stage [data-k="growth"] .lit .g-ridge { stroke: var(--g-accent-hi); opacity: .6; }
.glow-stage [data-k="growth"] .g-zero { fill: none; stroke: var(--g-ink); stroke-width: 1; vector-effect: non-scaling-stroke; stroke-dasharray: 4 3; opacity: .8; }
.glow-stage [data-k="growth"] .g-trail { fill: none; stroke: var(--g-accent-hi); stroke-width: 2; vector-effect: non-scaling-stroke; stroke-linecap: round; filter: url(#g-soft); }
.glow-stage [data-k="growth"] .g-mkf.face { fill: var(--g-accent); stroke: var(--g-accent-hi); }
.glow-stage [data-k="growth"] .g-mkf.face.side { fill: color-mix(in srgb, var(--g-accent) 70%, var(--g-body)); }
.glow-stage [data-k="growth"] .g-head { stroke-width: 1; }
.glow-stage [data-k="growth"] .g-pos .face.top { fill: var(--g-accent); stroke: var(--g-accent-hi); }
.glow-stage [data-k="growth"] .g-pos .face.front { fill: color-mix(in srgb, var(--g-accent) 16%, var(--g-body)); stroke: color-mix(in srgb, var(--g-accent) 55%, var(--g-line)); }
.glow-stage [data-k="growth"] .g-pos { filter: url(#g-soft); }
.glow-stage [data-k="growth"] .g-hit { fill: transparent; stroke: none; }
.glow-stage [data-k="growth"] .press:focus-visible .g-walk .face, .glow-stage [data-k="growth"] .g-terrain:focus-visible .face.top { stroke-dasharray: none; }
.glow-stage [data-k="growth"] .g-terrain:focus-visible .g-zero { stroke: var(--g-accent-hi); }
@media (prefers-reduced-motion: reduce) {
  .glow-stage [data-k="growth"] .g-drip { animation: none; }
  .glow-stage [data-k="growth"] .g-wedge, .glow-stage [data-k="growth"] .ghost { transition: none; }
}
