.header-status{display:flex;align-items:center;gap:6px;font-family:Courier New,monospace;font-size:14px;color:#fff;-webkit-user-select:none;user-select:none}.header-status-dot{display:inline-block;width:8px;height:8px;border-radius:50%}.dot-green{background:#2ecc71;box-shadow:0 0 4px #2ecc7199;animation:pulse-green 2s ease-in-out infinite}.dot-amber{background:#f1c40f;box-shadow:0 0 4px #f1c40f99;animation:pulse-amber 1.5s ease-in-out infinite}.dot-red{background:#e74c3c;box-shadow:0 0 4px #e74c3c66}.header-stateless-badge{font-size:11px;color:#aaa;margin-left:2px}.header-status.connected{color:#fff}.header-status.connecting{color:#f1c40f}.header-status.reconnecting{color:#f39c12}.header-status.disconnected{color:gray}.header-status.failed{color:#e74c3c}@keyframes pulse-green{0%,to{opacity:1;box-shadow:0 0 4px #2ecc7199}50%{opacity:.7;box-shadow:0 0 8px #2ecc7166}}@keyframes pulse-amber{0%,to{opacity:1}50%{opacity:.5}}@media (max-width: 768px){.header-status{font-size:12px;gap:4px}.header-status-dot{width:6px;height:6px}}@media (prefers-reduced-motion: reduce){.header-status-dot,.header-stateless-badge{animation:none!important}}.roll-row{font-size:var(--font-base, 1rem);line-height:1.5;letter-spacing:.02em;margin:var(--space-sm, .5rem) 0;color:var(--color-text-primary, #ffffff);white-space:nowrap}.roll-outer{color:var(--color-text-primary, #ffffff)}.roll-pool{color:var(--color-text-primary, #ffffff);margin-right:.25ch}.die{display:inline-block;color:var(--color-dice-roll, #ffffff);min-width:2.5ch}.die.dice-spinning .die-value{color:var(--color-dice-roll, #ffffff)}.die.dice-settled,.die.dice-exploded{animation:settle-flash var(--anim-reveal-blast-ms, .12s) ease-out}.die.dice-exploded .die-value{color:var(--color-text-primary, #ffffff)}.die.dice-exploded .bang{color:var(--color-dice-explode, #ffa020);font-weight:700}.die.dice-spawned{animation:dice-spawn .2s ease-out}.die .bang{color:var(--color-dice-explode, #ffa020);font-weight:700}.die .die-value{color:var(--color-text-primary, #ffffff)}@keyframes dice-spawn{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}@keyframes settle-flash{0%{color:var(--color-dice-settle, #fff6dc);text-shadow:0 0 6px var(--color-dice-settle, #fff6dc)}to{color:var(--color-dice-roll, #ffffff);text-shadow:none}}.mod-favor{color:var(--color-accent, #ffa020)}.mod-dissonance{color:var(--color-text-muted, #888888)}.mod-sep{color:var(--color-text-muted, #888888);margin:0 .25ch}.favor-dissonance-tail{opacity:0;transition:opacity .2s ease-out}.favor-dissonance-tail.revealed{opacity:1}.result{display:inline-block;margin:0 .5ch;color:var(--color-text-primary, #ffffff);font-weight:700}.result .equals{color:var(--color-text-primary, #ffffff);margin-right:.5ch}.result .lbracket,.result .rbracket,.result .value{color:var(--color-text-primary, #ffffff)}.result.empty .lbracket,.result.empty .rbracket,.result.empty .value{visibility:hidden}.result.empty .equals{visibility:visible;color:var(--color-text-primary, #ffffff)}.result.stage-1-empty .lbracket,.result.stage-1-empty .rbracket,.result.stage-1-empty .value{visibility:hidden}.result.stage-1-empty .equals,.result.stage-2-blast .equals{visibility:visible;color:var(--color-text-primary, #ffffff)}.result.stage-2-blast .lbracket,.result.stage-2-blast .rbracket{visibility:hidden}.result.stage-2-blast .value{visibility:visible;color:var(--color-text-primary, #ffffff);text-shadow:0 0 10px var(--color-text-primary, #ffffff);animation:reveal-blast var(--anim-reveal-blast-ms, .12s) ease-out forwards}@keyframes reveal-blast{0%{transform:scale(1.15)}to{transform:scale(1)}}.result.result-success.stage-3-fade .equals,.result.result-success.stage-3-fade .lbracket,.result.result-success.stage-3-fade .rbracket{visibility:visible;color:var(--color-text-primary, #ffffff)}.result.result-success.stage-3-fade .value{visibility:visible;animation:success-fade-greenward var(--anim-reveal-colorfade-ms, .14s) ease-out forwards}@keyframes success-fade-greenward{0%{color:var(--color-text-primary, #ffffff)}to{color:var(--color-dice-hit, #33ff33)}}.result.result-success.stage-4-settle .equals{color:var(--color-text-primary, #ffffff)}.result.result-success.stage-4-settle .lbracket,.result.result-success.stage-4-settle .rbracket{animation:success-brackets-settle var(--anim-reveal-settle-ms, .16s) ease-out forwards}.result.result-success.stage-4-settle .value{animation:success-value-return var(--anim-reveal-settle-ms, .16s) ease-out forwards}@keyframes success-brackets-settle{0%{color:var(--color-text-primary, #ffffff)}to{color:var(--color-dice-hit, #33ff33)}}@keyframes success-value-return{0%{color:var(--color-dice-hit, #33ff33)}to{color:var(--color-text-primary, #ffffff)}}.result.result-success.stage-5-final .equals{color:var(--color-text-primary, #ffffff)}.result.result-success.stage-5-final .lbracket,.result.result-success.stage-5-final .rbracket{color:var(--color-dice-hit, #33ff33)}.result.result-success.stage-5-final .value{color:var(--color-text-primary, #ffffff);font-weight:700}.result.blast-x2.stage-2-blast .value{text-shadow:0 0 16px var(--color-text-primary, #ffffff),0 0 28px var(--color-text-primary, #ffffff)}.result.result-failure.stage-1-blast .equals{visibility:visible;color:var(--color-text-primary, #ffffff)}.result.result-failure.stage-1-blast .lbracket,.result.result-failure.stage-1-blast .rbracket{visibility:hidden}.result.result-failure.stage-1-blast .value{visibility:visible;color:var(--color-text-primary, #ffffff);text-shadow:0 0 10px var(--color-text-primary, #ffffff);animation:reveal-blast var(--anim-reveal-blast-ms, .12s) ease-out forwards}.result.result-failure.stage-2-brackets-white .equals,.result.result-failure.stage-2-brackets-white .lbracket,.result.result-failure.stage-2-brackets-white .rbracket,.result.result-failure.stage-2-brackets-white .value{visibility:visible;color:var(--color-text-primary, #ffffff)}.result.result-failure.stage-3-brackets-grey .equals,.result.result-failure.stage-3-brackets-grey .value{color:var(--color-text-primary, #ffffff)}.result.result-failure.stage-3-brackets-grey .lbracket,.result.result-failure.stage-3-brackets-grey .rbracket{animation:failure-brackets-grey var(--anim-reveal-settle-ms, .16s) ease-out forwards}@keyframes failure-brackets-grey{0%{color:var(--color-text-primary, #ffffff)}to{color:var(--color-dice-miss, #888888)}}.result.result-failure.stage-final .equals{color:var(--color-text-primary, #ffffff)}.result.result-failure.stage-final .lbracket,.result.result-failure.stage-final .rbracket{color:var(--color-dice-miss, #888888)}.result.result-failure.stage-final .value{color:var(--color-text-primary, #ffffff);font-weight:700}.result.result-favor.stage-3-fade .equals,.result.result-favor.stage-3-fade .lbracket,.result.result-favor.stage-3-fade .rbracket{visibility:visible;color:var(--color-text-primary, #ffffff)}.result.result-favor.stage-3-fade .value{visibility:visible;animation:favor-fade-amberward var(--anim-reveal-colorfade-ms, .14s) ease-out forwards}@keyframes favor-fade-amberward{0%{color:var(--color-text-primary, #ffffff)}to{color:var(--color-favor-gold, #ffa020)}}.result.result-favor.stage-4-settle .equals{color:var(--color-text-primary, #ffffff)}.result.result-favor.stage-4-settle .lbracket,.result.result-favor.stage-4-settle .rbracket{animation:favor-brackets-settle var(--anim-reveal-settle-ms, .16s) ease-out forwards}.result.result-favor.stage-4-settle .value{animation:favor-value-return var(--anim-reveal-settle-ms, .16s) ease-out forwards}@keyframes favor-brackets-settle{0%{color:var(--color-text-primary, #ffffff)}to{color:var(--color-favor-gold, #ffa020)}}@keyframes favor-value-return{0%{color:var(--color-favor-gold, #ffa020)}to{color:var(--color-text-primary, #ffffff)}}.result.result-favor.stage-5-final .equals{color:var(--color-text-primary, #ffffff)}.result.result-favor.stage-5-final .lbracket,.result.result-favor.stage-5-final .rbracket{color:var(--color-favor-gold, #ffa020)}.result.result-favor.stage-5-final .value{color:var(--color-text-primary, #ffffff);font-weight:700}.result.result-partial.stage-3-brackets-grey .lbracket,.result.result-partial.stage-3-brackets-grey .rbracket{animation:partial-brackets-amber var(--anim-reveal-settle-ms, .16s) ease-out forwards}.result.result-partial.stage-1-blast .equals{visibility:visible;color:var(--color-text-primary, #ffffff)}.result.result-partial.stage-1-blast .lbracket,.result.result-partial.stage-1-blast .rbracket{visibility:hidden}.result.result-partial.stage-1-blast .value{visibility:visible;color:var(--color-text-primary, #ffffff);text-shadow:0 0 10px var(--color-text-primary, #ffffff);animation:reveal-blast var(--anim-reveal-blast-ms, .12s) ease-out forwards}.result.result-partial.stage-2-brackets-white .equals,.result.result-partial.stage-2-brackets-white .lbracket,.result.result-partial.stage-2-brackets-white .rbracket,.result.result-partial.stage-2-brackets-white .value{visibility:visible;color:var(--color-text-primary, #ffffff)}@keyframes partial-brackets-amber{0%{color:var(--color-text-primary, #ffffff)}to{color:var(--color-warning, #ffdd44)}}.result.result-partial.stage-final .equals{color:var(--color-text-primary, #ffffff)}.result.result-partial.stage-final .lbracket,.result.result-partial.stage-final .rbracket{color:var(--color-warning, #ffdd44)}.result.result-partial.stage-final .value{color:var(--color-text-primary, #ffffff);font-weight:700}.result.result-neutral{color:var(--color-text-primary, #ffffff)}.result.result-neutral .equals,.result.result-neutral .lbracket,.result.result-neutral .rbracket,.result.result-neutral .value{visibility:visible;color:var(--color-text-primary, #ffffff)}.d-char{display:inline-block}.d-char.block-swap{color:var(--color-text-primary, #ffffff);text-shadow:0 0 4px var(--color-text-primary, #ffffff)}.d-char.flash-once{animation:diss-flash-once var(--anim-flicker-ms, 80ms) ease-in-out 1}.d-char.flash-jitter{animation:diss-flash-jitter .32s linear 1}.d-char.flash-fast{animation:diss-flash-once var(--anim-flicker-ms, 80ms) ease-in-out 1}.d-char.flash-jitter-fast{animation:diss-flash-jitter-fast .22s linear 1}@keyframes diss-flash-once{0%,to{opacity:1}50%{opacity:.3}}@keyframes diss-flash-jitter{0%{opacity:1;transform:translateY(0)}15%{opacity:.3;transform:translateY(-1px)}30%{opacity:1;transform:translateY(2px)}45%{opacity:.4;transform:translateY(-2px)}60%{opacity:1;transform:translateY(1px)}75%{opacity:.3;transform:translateY(-1px)}to{opacity:1;transform:translateY(0)}}@keyframes diss-flash-jitter-fast{0%{opacity:1;transform:translateY(0)}10%{opacity:.2;transform:translateY(-2px)}20%{opacity:1;transform:translateY(2px)}30%{opacity:.3;transform:translateY(-2px)}40%{opacity:1;transform:translateY(1px)}50%{opacity:.2;transform:translateY(-1px)}60%{opacity:1;transform:translateY(2px)}70%{opacity:.3;transform:translateY(-2px)}80%{opacity:1;transform:translateY(1px)}to{opacity:1;transform:translateY(0)}}.ch2-row{position:relative;display:block}.matrix-rain{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.matrix-drop{position:absolute;top:-1em;font-family:var(--font-terminal, "Courier New", monospace);font-weight:700;animation:matrix-fall .8s linear forwards}.matrix-drop.logical-op{color:var(--color-text-primary, #ffffff);opacity:.2}@keyframes matrix-fall{0%{transform:translateY(0);opacity:0}20%{opacity:1}80%{opacity:1}to{transform:translateY(4em);opacity:0}}.ch2-row.cue-resource-spend .result .value{text-shadow:0 0 8px var(--color-accent, #ffa020)}.ch2-row.carryover-dim{opacity:.55;filter:saturate(.8)}.ch2-row{transition:opacity .3s ease-out,transform .3s ease-out}.ch2-row.ch2-enter{opacity:1;transform:translateY(0)}@keyframes ch2-bracket-pulse-success{0%{background-color:transparent}20%{background-color:#00c85059}to{background-color:transparent}}@keyframes ch2-bracket-pulse-failure{0%{background-color:transparent}20%{background-color:#dc3c3c59}to{background-color:transparent}}.ch2-row.ch2-pulse-success .roll-outer,.ch2-row.ch2-pulse-success .roll-brackets{animation:ch2-bracket-pulse-success .5s ease-out .1s 1}.ch2-row.ch2-pulse-failure .roll-outer,.ch2-row.ch2-pulse-failure .roll-brackets{animation:ch2-bracket-pulse-failure .5s ease-out .1s 1}:root{--font-terminal: "Courier New", "Courier", monospace;--font-weight-base: 700;--anim-flicker-ms: 80ms;--anim-dice-flip-ms: 60ms;--anim-dice-spin-total-ms: .9s;--anim-reveal-empty-ms: 80ms;--anim-reveal-blast-ms: .12s;--anim-reveal-colorfade-ms: .14s;--anim-reveal-settle-ms: .16s;--anim-phase-step-ms: .2s;--anim-bloom-pulse-ms: .4s;--terminal-line-height: 1.4;--terminal-char-width: 1ch;--room-state-gap: .5rem;--room-state-row-gap: .35rem;--room-state-chip-pad: .05rem .4rem;--room-state-label-size: .7rem;--room-state-chip-size: .8rem;--room-state-panel-mb: .5rem}:root{--color-background: #050403;--color-background-secondary: #080604;--color-surface-elevated: #040508;--color-text-primary: #ffffff;--color-text-muted: #888888;--color-text-secondary: #c9c9c9;--color-accent: #ffa020;--color-prompt: #ff0000;--color-success: #33ff33;--color-warning: #ffdd44;--color-border: #3a2f24;--color-border-light: #ffffff;--color-dice-roll: #ffffff;--color-dice-explode: #ffa020;--color-dice-settle: #fff6dc;--color-dice-hit: #33ff33;--color-dice-miss: #888888;--color-favor-gold: #ffa020;--color-dissonance: #888888}
