:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#070707;--ink:#f1f5f9;--ink-dim:#94a3b8;--ink-mute:#64748b;--line:#dce2e812;--line-strong:#dce2e829;--hairline:#ffffff24;--glass:#0e0e0eb8;--glass-border:#ffffff1f;--matte:#070707eb;--signal-idle:#374151;--signal-low:#6b7280;--signal-high:#facc15;--signal-bus:#fb923c;--sans:"IBM Plex Sans", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--grid:20px;--grid-major:100px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100dvh;margin:0;overflow:hidden}html{background:var(--bg);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{color:var(--ink);font-family:var(--sans);background-color:var(--bg);background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px), linear-gradient(var(--line-strong) 1px, transparent 1px), linear-gradient(90deg, var(--line-strong) 1px, transparent 1px);background-size:var(--grid) var(--grid), var(--grid) var(--grid), var(--grid-major) var(--grid-major), var(--grid-major) var(--grid-major);background-position:-1px -1px;font-size:15px;line-height:1.45}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default}svg{display:block;overflow:visible}.shell{grid-template-rows:auto minmax(0,1fr) auto;height:100%;display:grid;overflow:hidden}.top{background:var(--matte);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--hairline);z-index:20;align-items:center;gap:24px;padding:16px 28px;display:flex}.brand{font-family:var(--mono);letter-spacing:.28em;text-transform:uppercase;flex-shrink:0;font-size:12px;font-weight:500}.library{align-items:center;gap:20px;min-width:0;margin-right:auto;display:flex}.topics{flex-shrink:0;align-items:center;gap:2px;display:flex}.topic-tab{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim);background:0 0;border:0;border-bottom:1px solid #0000;border-radius:0;padding:8px 12px;font-size:11px}.topic-tab:hover{color:var(--ink)}.topic-tab.is-active{color:var(--ink);border-bottom-color:#ffffff8c}.picker{align-items:center;min-width:0;display:flex;position:relative}.picker-k,.steplog-label,.steplog-k,.steplog-count,.legend{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim);font-size:11px}.picker-trigger{background:var(--glass);border:1px solid var(--glass-border);text-align:left;border-radius:8px;grid-template-columns:1fr auto auto;align-items:center;gap:12px;min-width:15rem;max-width:22rem;padding:10px 14px;display:grid}.picker-trigger:hover,.picker-trigger.is-open{border-color:#ffffff38}.picker-title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.picker-meta{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);font-size:10px}.picker-chevron{border-right:1.5px solid var(--ink-dim);border-bottom:1.5px solid var(--ink-dim);width:7px;height:7px;transition:transform .2s;transform:rotate(45deg)translateY(-2px)}.picker-trigger.is-open .picker-chevron{transform:rotate(225deg)translateY(-1px)}.picker-menu{background:var(--glass);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);z-index:40;border-radius:8px;min-width:18rem;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 8px);left:0;right:0}.picker-option{text-align:left;background:0 0;border:0;border-radius:6px;flex-direction:column;gap:4px;width:100%;padding:11px 12px;display:flex}.picker-option:hover,.picker-option.is-selected{background:#ffffff0f}.picker-option-title{font-size:14px;font-weight:500}.picker-option-desc{color:var(--ink-dim);font-size:12px;line-height:1.4}.legend{flex-shrink:0;gap:16px;margin:0;padding:0;list-style:none;display:flex}.legend li{align-items:center;gap:8px;display:flex}.swatch{border-radius:50%;width:8px;height:8px;display:block}.swatch-low{background:var(--signal-low)}.swatch-high{background:var(--signal-high)}.swatch-bus{background:var(--signal-bus)}.workspace{grid-template-columns:minmax(280px,32vw) 1fr;grid-template-areas:"log stage";min-height:0;display:grid}.steplog-rail{flex-direction:column;grid-area:log;min-height:0;margin:16px 0 16px 16px;display:flex;overflow:hidden}.steplog-head{justify-content:space-between;align-items:center;gap:12px;padding:4px 4px 12px;display:flex}.steplog-purpose{color:var(--ink-dim);margin:0 4px 12px;font-size:13px;line-height:1.55}.steplog{flex-direction:column;flex:1;gap:10px;margin:0;padding:0 4px 16px 0;list-style:none;display:flex;overflow:auto}.steplog-card{background:var(--glass);-webkit-backdrop-filter:blur(18px);border:1px solid var(--glass-border);border-radius:10px;margin:0;padding:12px 16px}.steplog-card.is-current{border-color:#ffffff3d}.steplog-card.steplog-card-live{border-color:#22c55e59;border-left-width:3px}.steplog-k{margin-bottom:6px;display:block}.steplog-card.is-current .steplog-k{color:var(--ink)}.steplog-t{color:var(--ink);margin:0;font-size:13px;font-weight:400;line-height:1.65}.stage{--and-color:#4f8cff;--or-color:#34d399;--not-color:#f472b6;--nand-color:#a78bfa;--nor-color:#fb923c;--xor-color:#22d3ee;--xnor-color:#facc15;--switch-color:#2dd4bf;--bulb-color:#fff;grid-area:stage;place-items:center;min-width:0;min-height:0;padding:40px 48px;display:grid;position:relative;overflow:hidden}.stage-canvas{width:min(100%,940px);min-width:0;min-height:0}.stage svg{width:100%;height:auto;max-height:calc(100vh - 220px);color:var(--signal-idle);--wire-trace:#64748b;-webkit-user-select:none;user-select:none;caret-color:#0000}.stage svg text{font-family:var(--mono);letter-spacing:.04em;-webkit-user-select:none;user-select:none;pointer-events:none}.stage [data-node-type=switch]:focus,.stage [data-node-type=switch]:focus-visible{outline:none}.stage svg rect,.stage svg circle,.stage svg path{vector-effect:non-scaling-stroke}.stage [data-layer=edges] [data-signal=low]{color:var(--signal-low)}.stage [data-layer=edges] [data-signal=high]{color:var(--signal-high)}.stage [data-layer=edges] [data-signal=bus]{color:var(--signal-bus)}.stage [data-layer=edges] [data-signal=idle]{color:var(--signal-idle)}.stage [data-node-type=and]{--gate-color:var(--and-color);--gate-glow:#93c5fd}.stage [data-node-type=or]{--gate-color:var(--or-color);--gate-glow:#6ee7b7}.stage [data-node-type=not]{--gate-color:var(--not-color);--gate-glow:#f9a8d4}.stage [data-node-type=nand]{--gate-color:var(--nand-color);--gate-glow:#c4b5fd}.stage [data-node-type=nor]{--gate-color:var(--nor-color);--gate-glow:#fdba74}.stage [data-node-type=xor]{--gate-color:var(--xor-color);--gate-glow:#67e8f9}.stage [data-node-type=xnor]{--gate-color:var(--xnor-color);--gate-glow:#fde047}.stage [data-node-type=switch]{--gate-color:var(--switch-color);--gate-glow:#5eead4;color:var(--switch-color);cursor:pointer;pointer-events:all}.stage [data-node-type=bulb]{--gate-color:var(--bulb-color);--gate-glow:#fff}.stage [data-node-type=clock]{--clock-color:#38bdf8;cursor:pointer;pointer-events:all;outline:none}.stage [data-node-type=clock]:focus,.stage [data-node-type=clock]:focus-visible{outline:none}.stage [data-node-type=flop]{--flop-color:#38bdf8;--gate-color:#38bdf8}.stage [data-node-type=bit]{--bit-color:#38bdf8;--gate-color:#38bdf8}.stage [data-node-type=value]{--value-color:#7dd3fc;--gate-color:#7dd3fc}.crop{border:0 solid var(--hairline);pointer-events:none;width:14px;height:14px;position:absolute}.crop-tl{border-top-width:1px;border-left-width:1px;top:18px;left:18px}.crop-tr{border-top-width:1px;border-right-width:1px;top:18px;right:18px}.crop-bl{border-bottom-width:1px;border-left-width:1px;bottom:18px;left:18px}.crop-br{border-bottom-width:1px;border-right-width:1px;bottom:18px;right:18px}.dock{background:var(--matte);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--hairline);z-index:20;justify-content:space-between;align-items:center;gap:24px;padding:14px 28px;display:flex}.dock-hint{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-dim);max-width:28rem;margin:0;font-size:11px}.controls{gap:8px;display:flex}.controls button{background:var(--glass);border:1px solid var(--glass-border);min-width:6.5rem;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border-radius:8px;padding:10px 16px;font-size:11px}.controls button:hover:not(:disabled){border-color:#ffffff47}.controls-primary{border-color:#ffffff47!important}.controls button:disabled{color:var(--ink-mute);background:0 0;border-color:#ffffff0f}.controls button:focus-visible{outline:1px solid var(--ink);outline-offset:2px}.empty{color:var(--ink-dim);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;margin:0;padding:28px;font-size:12px}.tooltip{-webkit-backdrop-filter:blur(18px);color:var(--ink);white-space:pre-line;-webkit-user-select:none;user-select:none;background:#08080aeb;border:1px solid #ffffff29;border-radius:8px;padding:10px 14px;font-size:12px;line-height:1.65}.tooltip-title{color:var(--ink);margin-bottom:2px;font-weight:700;display:block}.tooltip-body{color:var(--ink-dim);font-size:11px}@media (hover:none){.tooltip{display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (width<=860px){.workspace{grid-template:"stage"minmax(0,1fr)"log"minmax(7.5rem,30dvh)/1fr}.steplog-rail{max-height:30dvh;margin:0 12px 8px}.steplog-purpose{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-bottom:8px;font-size:12px;display:-webkit-box;overflow:hidden}.steplog-t{max-width:none;font-size:12px;line-height:1.5}.steplog-card{padding:10px 12px}.steplog{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.top{padding:10px 12px;padding-top:max(10px, env(safe-area-inset-top));flex-wrap:wrap;gap:10px 14px}.legend{display:none}.library{flex-wrap:wrap;width:100%;margin-right:0}.topics{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.picker{width:100%;margin-right:0}.picker-trigger{width:100%;min-width:0;max-width:none}.picker-menu{min-width:0;left:0;right:0}.stage{padding:8px 10px 4px}.crop{display:none}.stage-canvas{place-items:center;width:100%;height:100%;display:grid}.stage svg{touch-action:manipulation;width:100%;height:100%;max-height:100%}.dock{padding:10px 12px;padding-bottom:max(10px, env(safe-area-inset-bottom));flex-wrap:wrap;gap:10px}.dock-hint{width:100%;max-width:none}.controls{width:100%}.controls button{flex:1;min-width:0;min-height:44px}}@media (width<=860px) and (height<=560px){.workspace{grid-template-rows:minmax(0,1fr) minmax(5.5rem,24dvh)}.steplog-purpose,.dock-hint{display:none}}
