:root{--bg:#0d1117;--panel:#151b23;--panel-2:#1b222c;--line:#262e3a;--grid:#1a212b;--ink:#e6edf3;--dim:#8b98a5;--faint:#5d6a78;--accent:#58a6ff;--flow:#7d8b9a;--wire:#7b6ab0;--danger:#e0685f;--armed:#e3b341;--radius:9px;--tap:44px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%;overscroll-behavior:none;margin:0;font:15px/1.5 ui-sans-serif,-apple-system,SF Pro Text,Segoe UI,system-ui,sans-serif}.node-value,.chip-val,.step-count,.axis,.edge-label,code{font-variant-numeric:tabular-nums;font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,monospace}.app{min-height:100%;padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex}.masthead{border-bottom:1px solid var(--line);padding:14px 16px 10px}.masthead h1{letter-spacing:-.01em;margin:0;font-size:17px;font-weight:650}.masthead p{color:var(--faint);margin:2px 0 0;font-size:12.5px}.stage{flex-direction:column;display:flex}.toolbar{z-index:20;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);flex-direction:column;gap:8px;padding:8px 12px;display:flex;position:sticky;top:0}.toolbar-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar-note{color:var(--dim);border-top:1px dashed var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding-top:8px;font-size:12px;display:flex}.spacer{flex:1}.step-count{color:var(--dim);padding:0 2px;font-size:13px}.btn{min-height:var(--tap);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);color:var(--ink);font:inherit;cursor:pointer;white-space:nowrap;padding:0 14px;font-size:14px;transition:background .12s,border-color .12s}.btn:hover:not(:disabled){background:#222b36}.btn:disabled{opacity:.4;cursor:default}.btn-primary{color:#bcd9ff;background:#17293f;border-color:#2f5f96}.btn-primary.is-on{background:#1e3a5c}.btn-danger{color:#f0a8a2;background:#241717;border-color:#5a2b2b}.btn-fire{color:#f0d69a;background:#2a2313;border-color:#6a5520;width:100%}.btn-fire.is-armed,.btn-action.is-armed{background:var(--armed);border-color:var(--armed);color:#1a1400;font-weight:600}.mini-btn{min-width:var(--tap);padding:0 10px}select,input{min-height:var(--tap);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);color:var(--ink);font:inherit;max-width:100%;padding:0 10px;font-size:14px}input[type=color]{min-width:64px;padding:4px}.picker{flex:1;min-width:150px;font-weight:550}.mini{min-width:72px}:where(button,select,input,a):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.diagram{background:var(--bg);touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:min(46vh,380px);display:block}.node{cursor:grab}.node-shape{fill:color-mix(in srgb, currentColor 16%, var(--panel));stroke:currentColor;stroke-width:2px}.node-off .node-shape{opacity:.4;stroke-dasharray:4 4}.halo{fill:none;stroke:var(--accent);stroke-width:8px;opacity:.35}.halo-armed{stroke:var(--armed);opacity:.55}.node-value{fill:var(--ink);font-size:17px;font-weight:600}.node-glyph{fill:currentColor;font-size:20px;font-weight:600}.node-name{fill:var(--ink);font-size:13px}.node-sub{fill:var(--faint);font-size:11px}.node-tapdot{fill:var(--armed);stroke:var(--bg);stroke-width:2px}.edge{cursor:pointer}.edge-chip{fill:var(--bg);stroke:var(--line);stroke-width:1px}.edge-label{fill:var(--dim);font-size:12px}.canvas-hint{fill:var(--faint);font-size:11px}.actionbar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.actionbar-label{letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-size:11px}.btn-action{color:#f0d69a;background:#2a2313;border-color:#6a5520}.scope{background:var(--panel);border-bottom:1px solid var(--line)}.readout{scrollbar-width:thin;gap:6px;padding:10px 12px;display:flex;overflow-x:auto}.chip{border:1px solid var(--line);background:var(--panel-2);min-height:34px;color:var(--ink);font:inherit;white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:0 10px;font-size:13px;display:inline-flex}.chip-dot{background:var(--c);border-radius:50%;flex:none;width:9px;height:9px}.chip-name{color:var(--dim)}.chip-val{font-weight:600}.chip-off{opacity:.42}.chip-off .chip-dot{background:var(--faint)}.plot{width:100%;height:150px;display:block}.gridline{stroke:var(--line);stroke-width:1px}.axis{fill:var(--faint);font-size:9px}.playhead{stroke:var(--accent);stroke-width:1px;opacity:.4}.inspector{flex-direction:column;gap:12px;padding:14px 16px 24px;display:flex}.panel-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.panel-head h2{margin:0;font-size:16px;font-weight:650}.panel-section{flex-direction:column;gap:7px;display:flex}.btn-row{flex-wrap:wrap;gap:7px;display:flex}.prose{max-width:62ch;margin:0;font-size:13.5px;line-height:1.55}.prose strong{color:var(--ink);font-weight:600}.muted{color:var(--dim)}.small{font-size:12.5px}.grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.field{flex-direction:column;gap:5px;display:flex}.field-label{letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-size:11px}.field-hint{color:var(--faint);font-size:11.5px;line-height:1.4}.sheet-backdrop{z-index:50;background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--panel);border:1px solid var(--line);width:min(560px,100%);max-height:82vh;padding:16px 16px calc(20px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;flex-direction:column;gap:12px;animation:.18s ease-out rise;display:flex;overflow-y:auto}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}.save-row{gap:8px;display:flex}.save-row input{flex:1}.file-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.file-list li{gap:6px;display:flex}.file-open{min-height:var(--tap);text-align:left;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);color:var(--ink);font:inherit;cursor:pointer;flex:1;padding:0 12px}.file-open:hover{background:#222b36}code{background:var(--panel-2);color:var(--dim);border-radius:4px;padding:1px 5px;font-size:12px}@media (width>=900px){.app{grid-template-rows:auto auto 1fr;grid-template-columns:1fr minmax(320px,400px);height:100vh;display:grid;overflow:hidden}.masthead,.toolbar{grid-column:1/-1}.stage{min-height:0;overflow:hidden}.diagram{flex:1;height:auto;min-height:0}.inspector{border-left:1px solid var(--line);grid-area:3/2;overflow-y:auto}}@media (width<=899px){.masthead{padding:10px 14px 8px}.masthead h1{font-size:16px}.toolbar{gap:6px;padding:7px 10px}.toolbar-note{padding-top:6px;font-size:11.5px}.diagram{height:min(38vh,320px)}.actionbar,.readout{padding:8px 10px}.plot{height:130px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
