.constellation-background { position:fixed; inset:0; width:min(100%,1640px); margin-inline:auto; overflow:hidden; pointer-events:none; z-index:0; opacity:.45; contain:strict; }
#app { position:relative; z-index:1; }
#app .experience { background:transparent; }
.dial { background:conic-gradient(from -24deg,#b71928 var(--arc),transparent 0); }
.rib-scan[data-enhanced] .rib-respiration,
.rib-scan[data-enhanced] .core-deformation { animation: none !important; }
.synchronized-body { transform-box: view-box; transform-origin: 50% 53%; transform: scale(var(--sync-breath-x,1),var(--sync-breath-y,1)); will-change: transform; }
.synchronized-heart { transform-box: view-box; transform-origin: 50% 53%; transform: scale(var(--sync-heart,1)); }
.synchronized-ribs { transform-box: view-box; transform-origin: 50% 53%; transform: scaleX(var(--sync-rib,1)); }
.rib-scan[data-enhanced] .rib-bone path:nth-child(1) { stroke:var(--rib-shadow,#cc1c20); opacity:var(--rib-glow-opacity,.32); }
.rib-scan[data-enhanced] .rib-bone path:nth-child(2) { stroke:var(--rib-color,#ff2d1e); }
.rib-scan[data-enhanced] .rib-bone path:nth-child(3) { stroke:var(--rib-highlight,#ff493c); }
.rib-scan[data-enhanced] .rib-bone path:nth-child(4) { stroke:var(--rib-color,#ff2d1e); opacity:.2; }
.rib-scan[data-enhanced] .rib-bone path { transition:stroke .2s ease,opacity .2s ease; }
.rib-scan[data-enhanced] .fluid-stream { display:none; }
.invasion-reveal { r:var(--invasion-radius,0px); }
.blue-organ-tissue { opacity:var(--invasion-opacity,0); }
.integrated-infusion { pointer-events:none; }
.integrated-inlet path { stroke-linejoin:round; }
.infusion-front { stroke-dasharray:var(--front,0) 1; opacity:var(--fluid-opacity,0); filter:drop-shadow(0 0 2px #2559a4); }
.infusion-branch { stroke-dasharray:var(--dose,0) 1; opacity:var(--invasion-opacity,0); }
.infusion-particles { stroke-dasharray:.026 .16; stroke-dashoffset:var(--flow-offset,0); opacity:calc(var(--dose,0)*.95); }
.integrated-inlet:first-child .infusion-particles { opacity:calc(var(--front,0)*var(--fluid-opacity,0)); }
.enhanced-signals { display:flex; flex-direction:column; }
.signal-row { display:grid; grid-template-columns:78px minmax(0,1fr); border-bottom:1px solid #272020; flex:1; min-height:102px; }
.signal-label { padding:18px 10px; display:flex; flex-direction:column; justify-content:center; gap:8px; font:12px ui-monospace,monospace; letter-spacing:.03em; color:#d4c5c1; border-right:1px solid #272020; }
.signal-label small { color:#9f8b86; font-size:12px; }
.signal-plot { position:relative; min-width:0; background:linear-gradient(#b43b3710 1px,transparent 1px),linear-gradient(90deg,#b43b3710 1px,transparent 1px); background-size:20px 20px; }
.signal-plot canvas { width:100%; height:100%; min-height:102px; position:absolute; inset:0; }
.signal-plot strong { position:absolute; top:10px; right:12px; font:13px ui-monospace,monospace; color:#e8ceca; background:#0c0707d9; padding:3px 5px; }
.enhanced-signals .monitor-note { padding:12px 16px; font-size:12px; }
html[data-life-stopped='true'] .rib-scan[data-enhanced] .rib-bone path { stroke:#4e0912; filter:none; }
html[data-life-stopped='true'] .blue-organ-tissue { opacity:0; }
html[data-life-stopped='true'] .core-deformation { filter:brightness(.45) saturate(.8); }
html[data-life-stopped='true'] .integrated-infusion path { stroke:#4e0912; filter:none; }
.terminal-summary { position:relative; z-index:1; border:1px solid #75252c; padding:14px 18px; margin-bottom:16px; color:#d79797; background:#180607; display:grid; gap:8px; }
.terminal-summary>span { font:12px ui-monospace,monospace; letter-spacing:.08em; }
.terminal-summary>strong { font-size:18px; color:#f0c8c5; }
.terminal-summary p { font-size:13px; margin:0; line-height:1.6; }
.control-row input:disabled { cursor:not-allowed; opacity:.4; }
@media(max-width:600px) { .signal-row{grid-template-columns:70px minmax(0,1fr);min-height:92px}.signal-plot canvas{min-height:92px} }
@media(prefers-reduced-motion:reduce) { .infusion-particles{stroke-dashoffset:0}.rib-bone path{transition:none!important} }
