.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{color-scheme:dark;--bg: #090d13;--bg-deep: #06090d;--bg-rail: #0b1018;--bg-node: #0e151f;--bg-inset: #080c12;--bg-toolbar: linear-gradient(180deg, #0e141d 0%, #0a0f16 100%);--bg-menu: #0d131c;--bg-hovercard: linear-gradient(180deg, #0e151f 0%, #0b1018 100%);--scrim: rgba(4, 6, 10, .62);--line: #1a2330;--line-bright: #55687e;--text: #ffffff;--text-dim: #ffffff;--text-label: #ffffff;--text-faint: #ffffff;--engrave: #000;--title-glow: rgba(120, 160, 200, .25);--stencil-ink: #ffffff;--stencil-shadow: rgba(0, 0, 0, .7);--wash-faint: rgba(120, 160, 200, .03);--wash-hover: rgba(120, 160, 200, .05);--wash-menu: rgba(120, 160, 200, .08);--wash-active: rgba(120, 160, 200, .1);--hot: #ff4d2e;--hot-bright: #ff9468;--hot-ink: #ff9468;--hot-core: #ff5c3a;--hot-deep: #8a2c18;--hot-glow: rgba(255, 77, 46, .55);--hot-faint: rgba(255, 77, 46, .14);--hot-faint-weak: rgba(255, 77, 46, .04);--hot-wash: rgba(255, 77, 46, .08);--hot-border: rgba(255, 77, 46, .35);--hot-border-soft: rgba(255, 77, 46, .3);--hot-border-strong: rgba(255, 77, 46, .55);--hot-pulse-lo: rgba(255, 77, 46, .25);--hot-pulse-hi: rgba(255, 77, 46, .55);--hot-bloom: rgba(255, 77, 46, .32);--hot-bloom-peak: rgba(255, 77, 46, .45);--hot-bloom-sm: rgba(255, 77, 46, .3);--hot-bloom-sm-peak: rgba(255, 77, 46, .42);--wire-glow-alpha: .16;--bus-stroke: 5px;--bus-trace: #58708e;--bus-glow-alpha: .2;--bus-badge-bg: rgba(14, 21, 31, .92);--bus-badge-ink: #aebfd4;--bus-badge-border: rgba(122, 138, 160, .5);--bus-tip-bg: #0e151f;--bus-tip-ink: #ff9468;--bus-adapter-face: linear-gradient(180deg, #2c3848 0%, #1b2532 100%);--bus-adapter-border: #5b6b80;--bus-adapter-ink: #aebfd4;--wire-low: #3c4a5c;--gate-stroke: #7e90a6;--gate-fill: rgba(14, 21, 31, .92);--pin: #55667b;--sel: #a7bdd3;--conn-line: #7a8aa0;--ok: #3fd68f;--grid-fine: rgba(62, 92, 128, .1);--grid-coarse: rgba(62, 92, 128, .2);--shadow-lift: 0 6px 14px rgba(0, 0, 0, .45);--shadow-hovercard: 0 14px 36px rgba(0, 0, 0, .65), 0 0 0 1px rgba(0, 0, 0, .4);--shadow-menu: 0 10px 28px rgba(0, 0, 0, .6);--shadow-drawer-left: 16px 0 42px rgba(0, 0, 0, .55);--shadow-drawer-right: -16px 0 42px rgba(0, 0, 0, .55);--shadow-tag: inset 0 1px 2px rgba(0, 0, 0, .55), 0 1px 0 rgba(160, 190, 220, .06);--shadow-device: inset 0 1px 0 rgba(160, 190, 220, .07), 0 2px 6px rgba(0, 0, 0, .4);--shadow-pressed: inset 0 1px 3px rgba(0, 0, 0, .5);--shadow-input-focus: 0 0 7px rgba(167, 189, 211, .3);--bezel: #060a0f;--pivot-ring: #0a0f15;--cap-base: #04070b;--cap-highlight: rgba(255, 255, 255, .1);--toggle-face: radial-gradient(circle at 50% 60%, #1a2330, #0d131c 75%);--toggle-well: inset 0 2px 5px rgba(0, 0, 0, .6);--pivot-face: radial-gradient(circle at 35% 30%, #65778d, #232d3a 70%);--lever-face: linear-gradient(90deg, #92a3b8, #5b6b80 55%, #38465a);--lever-face-on: linear-gradient(90deg, #ffb59a, #d96a4a 55%, #8a3a26);--lever-shadow: 0 0 4px rgba(0, 0, 0, .7);--cap-face: radial-gradient(circle at 35% 30%, #3c4856, #1a212c 75%);--cap-face-pressed: radial-gradient(circle at 35% 30%, #6e4234, #2a1812 75%);--pad-face: linear-gradient(180deg, #36424f 0%, #1c242f 100%);--pad-face-pressed: linear-gradient(180deg, #6e4234 0%, #2a1812 100%);--device-face: linear-gradient(180deg, #515d6d 0%, #434f5f 100%);--lamp-glass-hi: #2b3544;--lamp-glass-lo: #10151d;--lamp-bezel: #1c2531;--lamp-lit-hi: #ffe3d0;--lamp-lit-mid: #ff8a5e;--lamp-lit-core: #f0431f;--lamp-lit-rim: #b22a10;--glass-hi: #150c0a;--glass-mid: #0b0706;--glass-lo: #080504;--glass-edge: #05080d;--glass-tint: rgba(255, 77, 46, .05);--glass-sheen: rgba(160, 190, 220, .06);--seg-ghost: rgba(255, 96, 60, .08);--seg-lit: #ff5c3a;--seg-bloom: #ff4d2e;--bclk-face: repeating-linear-gradient(90deg, rgba(160, 190, 220, .025) 0 1px, transparent 1px 3px), linear-gradient(180deg, #1b2430 0%, #11161f 60%, #0c1118 100%);--bclk-glass-hi: #26303f;--bclk-glass-lo: #0e131b;--bclk-lit-hi: #e4efff;--bclk-lit-mid: #66a3ff;--bclk-lit: #2f7bff;--bclk-lit-rim: #1747b8;--bclk-glow: rgba(47, 123, 255, .55);--bclk-bloom: rgba(47, 123, 255, .32);--bclk-ink: #ffffff;--chip-face: repeating-linear-gradient(90deg, rgba(160, 190, 220, .03) 0 1px, transparent 1px 3px), linear-gradient(180deg, #545f6f 0%, #46515f 55%, #3e4956 100%);--chip-edge: #6c7f96;--chip-notch: #060a0f;--silkscreen: #ffffff;--pin-name: #ffffff;--font-display: "Chakra Petch", sans-serif;--font-mono: "IBM Plex Mono", monospace}[data-theme=light]{color-scheme:light;--bg: #eceadf;--bg-deep: #e0dacb;--bg-rail: #f1ece1;--bg-node: #f7f4ec;--bg-inset: #e5dfd0;--bg-toolbar: linear-gradient(180deg, #f6f2e9 0%, #eae5d8 100%);--bg-menu: #faf7f0;--bg-hovercard: linear-gradient(180deg, #faf7f0 0%, #f0ebe0 100%);--scrim: rgba(82, 72, 54, .4);--line: #d2cab9;--line-bright: #a99f8a;--text: #2e2922;--text-dim: #574f41;--text-label: #5f574a;--text-faint: #6e6656;--engrave: rgba(255, 255, 255, .75);--title-glow: rgba(0, 0, 0, 0);--stencil-ink: #4a4337;--stencil-shadow: rgba(255, 255, 255, .5);--wash-faint: rgba(70, 60, 40, .04);--wash-hover: rgba(70, 60, 40, .06);--wash-menu: rgba(70, 60, 40, .08);--wash-active: rgba(70, 60, 40, .12);--bus-trace: #8595a8;--bus-glow-alpha: .28;--bus-badge-bg: rgba(247, 243, 233, .95);--bus-badge-ink: #5f574a;--bus-badge-border: rgba(95, 87, 74, .4);--bus-tip-bg: #2a2620;--bus-tip-ink: #ffd9c2;--bus-adapter-face: linear-gradient(180deg, #ece5d6 0%, #ddd3c0 100%);--bus-adapter-border: #b7aa92;--bus-adapter-ink: #5f574a;--hot: #e03a1e;--hot-ink: #bb3110;--hot-core: #d8401f;--hot-glow: rgba(224, 58, 30, .28);--hot-faint: rgba(224, 58, 30, .1);--hot-faint-weak: rgba(224, 58, 30, .04);--hot-wash: rgba(224, 58, 30, .07);--hot-border: rgba(224, 58, 30, .4);--hot-border-soft: rgba(224, 58, 30, .35);--hot-border-strong: rgba(224, 58, 30, .5);--hot-pulse-lo: rgba(224, 58, 30, .18);--hot-pulse-hi: rgba(224, 58, 30, .4);--hot-bloom: rgba(224, 58, 30, .2);--hot-bloom-peak: rgba(224, 58, 30, .3);--hot-bloom-sm: rgba(224, 58, 30, .18);--hot-bloom-sm-peak: rgba(224, 58, 30, .28);--wire-glow-alpha: .1;--wire-low: #8f8a80;--gate-stroke: #3d3830;--gate-fill: rgba(251, 249, 243, .92);--pin: #5f584a;--sel: #3f4a5e;--conn-line: #707b8e;--ok: #176b40;--grid-fine: rgba(74, 100, 134, .14);--grid-coarse: rgba(74, 100, 134, .26);--shadow-lift: 0 6px 14px rgba(95, 80, 55, .2);--shadow-hovercard: 0 14px 36px rgba(95, 80, 55, .28), 0 0 0 1px rgba(95, 80, 55, .08);--shadow-menu: 0 10px 28px rgba(95, 80, 55, .25);--shadow-drawer-left: 16px 0 42px rgba(95, 80, 55, .3);--shadow-drawer-right: -16px 0 42px rgba(95, 80, 55, .3);--shadow-tag: inset 0 1px 2px rgba(95, 80, 55, .18), 0 1px 0 rgba(255, 255, 255, .7);--shadow-device: inset 0 1px 0 rgba(255, 255, 255, .65), 0 2px 6px rgba(95, 80, 55, .18);--shadow-pressed: inset 0 1px 3px rgba(95, 80, 55, .25);--shadow-input-focus: 0 0 7px rgba(74, 86, 107, .3);--bezel: #4a4337;--pivot-ring: #57503f;--cap-base: #9d937e;--cap-highlight: rgba(255, 255, 255, .55);--toggle-face: radial-gradient(circle at 50% 60%, #ddd6c8, #b9b09c 75%);--toggle-well: inset 0 2px 5px rgba(95, 80, 55, .35);--pivot-face: radial-gradient(circle at 35% 30%, #9b937f, #635c4c 70%);--lever-face: linear-gradient(90deg, #c4bcab, #968e7b 55%, #6e6757);--lever-shadow: 0 0 4px rgba(95, 80, 55, .4);--cap-face: radial-gradient(circle at 35% 30%, #cfc8b8, #9e9683 75%);--pad-face: linear-gradient(180deg, #d3ccbc 0%, #aaa28e 100%);--device-face: linear-gradient(180deg, #f7f4ec 0%, #e6e0d2 100%);--lamp-bezel: #7b7363;--chip-edge: #6e6757;--pin-name: #9fb1c6;--bclk-lit-mid: #4d8efa;--bclk-lit: #1f63e6;--bclk-lit-rim: #123f9e;--bclk-glow: rgba(31, 99, 230, .45);--bclk-bloom: rgba(31, 99, 230, .22);--bclk-ink: #6e8095}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg-deep);color:var(--text);font-family:var(--font-mono);font-size:13px;-webkit-font-smoothing:antialiased;overflow:hidden}.app{display:grid;grid-template-rows:50px 1fr;height:100%}.app.has-crumbs{grid-template-rows:50px 30px 1fr}.app.embed{grid-template-rows:1fr}.app.embed .toolbar,.app.embed .side-rail.palette{display:none}.app.embed .workbench{grid-template-columns:minmax(0,1fr) 284px}.app.embed .workbench.asm-open{grid-template-columns:minmax(0,1fr) 320px 284px}.embed-badge{position:fixed;bottom:12px;right:12px;z-index:1200;display:inline-flex;align-items:center;gap:5px;padding:5px 10px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:var(--hot-ink);background:var(--bg-toolbar);border:1px solid var(--line-bright);border-radius:3px;box-shadow:var(--shadow-hovercard)}.embed-badge:hover{border-color:var(--hot-ink)}.workbench{display:grid;grid-template-columns:224px minmax(0,1fr) 284px;min-height:0}.workbench.asm-open{grid-template-columns:224px minmax(0,1fr) 320px 284px}.workbench.learn-open{grid-template-columns:224px minmax(0,1fr) 340px 284px}.workbench.asm-open.learn-open{grid-template-columns:224px minmax(0,1fr) 320px 340px 284px}.canvas-wrap{position:relative;min-width:0;background:var(--bg)}.toolbar{display:flex;align-items:center;gap:20px;padding:0 16px;background:var(--bg-toolbar);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:baseline;gap:12px}.brand-title{font-family:var(--font-display);font-weight:700;font-size:17px;letter-spacing:.22em;color:var(--text);text-shadow:0 0 12px var(--title-glow)}.brand-sub{font-size:9px;letter-spacing:.28em;color:var(--text-faint)}.status-chip{font-size:10px;letter-spacing:.2em;padding:4px 10px;border:1px solid var(--line-bright);border-radius:2px;color:var(--ok);background:var(--bg-inset)}.status-chip.bad{color:var(--hot);border-color:var(--hot);animation:osc-pulse 1s ease-in-out infinite}.bench-chip{display:inline-flex;align-items:baseline;max-width:340px;font-size:10px;letter-spacing:.2em;padding:4px 10px;border:1px solid var(--line);border-radius:2px;color:var(--text-label);background:var(--bg-inset);text-transform:uppercase;white-space:nowrap}.bench-chip-name{color:var(--text);overflow:hidden;text-overflow:ellipsis}.toolbar-actions{margin-left:auto;display:flex;gap:8px}.tb-btn{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:7px 13px;color:var(--text-dim);background:transparent;border:1px solid var(--line);border-radius:2px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.tb-btn:hover:not(:disabled){color:var(--text);border-color:var(--line-bright);background:var(--wash-hover)}.tb-btn:disabled{opacity:.4;cursor:not-allowed}.tb-btn.danger:hover{color:var(--hot);border-color:var(--hot);background:var(--hot-faint)}.theme-btn{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.theme-glyph{font-size:11px;line-height:1}.crumb-bar{display:flex;align-items:center;gap:7px;min-width:0;padding:0 16px;overflow:hidden;white-space:nowrap;background:var(--bg-inset);border-bottom:1px solid var(--line)}.crumb{flex-shrink:1;min-width:24px;overflow:hidden;text-overflow:ellipsis;padding:3px 8px;font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-label);background:transparent;border:1px solid transparent;border-radius:2px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.crumb:hover{color:var(--text);border-color:var(--line-bright);background:var(--wash-hover)}.crumb-current{color:var(--hot-ink);border-color:var(--hot-border-soft);background:var(--hot-faint-weak);text-shadow:0 0 7px var(--hot-glow);cursor:default}.crumb-sep{flex-shrink:0;font-size:9px;color:var(--text-faint)}.crumb-ellipsis{display:none;flex-shrink:0;font-size:9px;letter-spacing:.16em;color:var(--text-faint)}@media(max-width:700px){.crumb-bar .crumb-mid{display:none}.crumb-bar .crumb-ellipsis{display:inline}}.side-rail{position:relative;background:var(--bg-rail);overflow-y:auto;padding-bottom:16px}.side-rail.palette{border-right:1px solid var(--line)}.side-rail.output-panel{border-left:1px solid var(--line)}[data-uiscale=comfortable] .side-rail.palette .rail-header,[data-uiscale=comfortable] .side-rail.palette .rail-section-title{font-size:13px}[data-uiscale=comfortable] .side-rail.palette .rail-accordion-chevron{font-size:11px;width:11px}[data-uiscale=comfortable] .side-rail.palette .palette-gate-name{font-size:12px}[data-uiscale=comfortable] .side-rail.palette .palette-device-name{font-size:13px;font-weight:600}[data-uiscale=comfortable] .side-rail.palette .palette-device-sub{font-size:11px}[data-uiscale=comfortable] .side-rail.palette .lib-item-name{font-size:13px;font-weight:600}[data-uiscale=comfortable] .side-rail.palette .lib-item-sub{font-size:11px}[data-uiscale=comfortable] .side-rail.palette .lib-badge{font-size:10px}[data-uiscale=comfortable] .side-rail.palette .rail-footer{font-size:11px}[data-uiscale=comfortable] .node-label{font-size:12px;font-weight:600;top:-18px}[data-uiscale=comfortable] .node-tag{font-size:12px;font-weight:600}[data-theme=light][data-uiscale=comfortable] .node-label{color:var(--text-dim)}[data-theme=light][data-uiscale=comfortable] .node-tag,[data-theme=dark][data-uiscale=comfortable] .node-label,[data-theme=dark][data-uiscale=comfortable] .node-tag{color:var(--text)}[data-uiscale=comfortable] .chip-silkscreen{font-size:13px}[data-uiscale=comfortable] .chip-pincount{font-size:9px}[data-uiscale=comfortable] .chip-pin-name{font-size:8px}.side-rail:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E")}.rail-header{font-family:var(--font-display);font-size:11px;font-weight:600;letter-spacing:.26em;color:var(--text-dim);padding:14px 14px 10px;border-bottom:1px solid var(--line);text-shadow:0 1px 0 var(--engrave);background:linear-gradient(180deg,var(--wash-faint),transparent)}.rail-section-title{font-family:var(--font-display);font-size:10px;font-weight:600;letter-spacing:.24em;color:var(--text);padding:14px 14px 6px}.rail-accordion{display:flex;align-items:center;gap:7px;width:100%;margin:0;border:none;background:none;text-align:left;cursor:pointer}.rail-accordion:hover{color:var(--ok)}.rail-accordion-chevron{display:inline-block;width:8px;font-size:8px;line-height:1;color:var(--text-dim)}.rail-accordion:hover .rail-accordion-chevron{color:var(--ok)}.rail-accordion-inline{width:auto;font:inherit;letter-spacing:inherit;color:inherit}.rail-footer{font-size:8px;letter-spacing:.18em;color:var(--text-faint);padding:18px 14px 0;text-align:center}.palette-gates{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 12px}.palette-list{display:flex;flex-direction:column;gap:8px;padding:0 12px}.palette-item{position:relative;border:1px solid var(--line);border-radius:3px;background:var(--bg-node);cursor:grab;transition:transform .12s ease,border-color .12s,box-shadow .12s}.palette-item:hover{transform:translateY(-2px);border-color:var(--line-bright);box-shadow:var(--shadow-lift)}.palette-item:active{cursor:grabbing;transform:translateY(-1px) scale(1.02);border-color:var(--gate-stroke)}.palette-gate{display:flex;flex-direction:column;align-items:center;padding:6px 2px 5px}.palette-gate-name{font-size:9px;letter-spacing:.2em;color:var(--text-label)}.palette-device{display:flex;align-items:center;gap:10px;padding:8px 10px}.palette-device-text{display:flex;flex-direction:column;gap:2px}.palette-device-name{font-size:10px;letter-spacing:.14em;color:var(--text)}.palette-device-sub{font-size:8px;letter-spacing:.12em;color:var(--text-label)}.device-icon .icon-stroke{stroke:var(--text-dim);stroke-width:1.5;fill:none}.device-icon .icon-thick{stroke-width:2.4;stroke-linecap:round}.device-icon .icon-fill{fill:var(--text-dim)}.const-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid var(--line-bright);border-radius:2px;font-size:13px;font-weight:600;color:var(--text-dim)}.lib-save{display:flex;gap:6px;padding:0 12px 8px}.lib-input{flex:1;min-width:0;font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;color:var(--text);background:var(--bg-inset);border:1px solid var(--line);border-radius:2px;padding:7px 8px;transition:border-color .12s}.lib-input::placeholder{color:var(--text-faint);letter-spacing:.12em}.lib-input:focus{outline:none;border-color:var(--line-bright)}.lib-save-btn{font-family:var(--font-mono);font-size:9px;letter-spacing:.14em;padding:0 10px;color:var(--text-dim);background:transparent;border:1px solid var(--line);border-radius:2px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.lib-save-btn:hover:not(:disabled){color:var(--text);border-color:var(--line-bright);background:var(--wash-hover)}.lib-save-btn:disabled{opacity:.4;cursor:default}.lib-group-title{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:10px;font-weight:600;letter-spacing:.26em;color:var(--text);padding:12px 14px 5px;white-space:nowrap}.lib-group-title:before{content:"";flex-shrink:0;width:10px;height:2px;background:linear-gradient(90deg,var(--hot-core),var(--hot-ink));box-shadow:0 0 4px var(--hot-glow)}.lib-group-title:after{content:"";flex:1;height:1px;background:var(--line)}.lib-item{display:flex;align-items:center;padding:0;cursor:pointer}.lib-load{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;text-align:left;padding:8px 10px;font-family:var(--font-mono);background:transparent;border:none;cursor:pointer}.lib-item-name{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lib-item-sub{font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-label);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lib-badge{flex-shrink:0;font-size:8px;letter-spacing:.16em;color:var(--text-label);border:1px solid var(--line);border-radius:2px;padding:2px 4px;margin-right:8px}.lib-badge.lib-lesson{border-color:var(--hot-border);background:var(--hot-wash);letter-spacing:0;margin-right:4px}.lib-item.is-active{background:linear-gradient(90deg,var(--hot-faint) 0%,var(--hot-faint-weak) 60%,transparent 100%),var(--bg-node);border-color:var(--line-bright);box-shadow:inset 2px 0 0 var(--hot)}.lib-item.is-active:hover{box-shadow:inset 2px 0 0 var(--hot),var(--shadow-lift)}.lib-item.is-active .lib-item-name{color:var(--hot-ink)}.lib-badge.on-bench{color:var(--hot-ink);border-color:var(--hot-border-strong);background:var(--hot-faint);text-shadow:0 0 5px var(--hot-glow)}.lib-delete{flex-shrink:0;width:18px;height:18px;margin-right:8px;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:12px;line-height:1;color:var(--text-faint);background:transparent;border:1px solid transparent;border-radius:2px;cursor:pointer;padding:0;transition:color .12s,border-color .12s,background .12s}.lib-delete:hover{color:var(--hot);border-color:var(--hot);background:var(--hot-faint)}.lib-hovercard{position:fixed;z-index:1100;width:252px;padding:12px 14px 11px;background:var(--bg-hovercard);border:1px solid var(--line-bright);border-radius:3px;box-shadow:var(--shadow-hovercard);pointer-events:none;animation:hovercard-in .16s ease-out}@keyframes hovercard-in{0%{opacity:0;transform:translate(-7px)}to{opacity:1;transform:translate(0)}}.hovercard-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px;padding-bottom:7px;border-bottom:1px solid var(--line)}.hovercard-name{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--hot-ink);text-shadow:0 0 9px var(--hot-glow)}.hovercard-tag{flex-shrink:0;font-size:7px;letter-spacing:.18em;color:var(--text-label);border:1px solid var(--line);border-radius:2px;padding:2px 5px;white-space:nowrap}.hovercard-body{font-size:10px;line-height:1.6;letter-spacing:.02em;color:var(--text);white-space:pre-line}.hovercard-meta{margin-top:9px;padding-top:7px;border-top:1px solid var(--line);font-size:8px;letter-spacing:.18em;color:var(--text-label)}.hovercard-verified{margin-top:9px;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--ok) 40%,var(--line))}.hovercard-verified-head{display:flex;align-items:baseline;gap:7px;margin-bottom:4px}.hovercard-verified-badge{flex-shrink:0;font-size:8px;letter-spacing:.16em;color:var(--ok);border:1px solid var(--ok);border-radius:2px;padding:2px 5px;white-space:nowrap}.hovercard-verified-against{font-size:9px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-label)}.hovercard-verified-note{font-size:11px;font-weight:600;letter-spacing:.01em;color:var(--ok)}.hovercard-verified-fidelity{margin-top:4px;font-size:9px;line-height:1.5;letter-spacing:.02em;color:var(--text-label);opacity:.85}.react-flow{background:var(--bg)}.react-flow__node{font-family:var(--font-mono)}.react-flow__handle{width:8px;height:8px;border-radius:2px;background:var(--bg-inset);border:1.5px solid var(--pin);transition:border-color .12s,box-shadow .12s}.react-flow__handle:hover,.react-flow__handle.connectingto,.react-flow__handle.valid{border-color:var(--hot-ink);box-shadow:0 0 6px var(--hot-glow)}.react-flow__edge.selected .wire-base{stroke:var(--sel)}.react-flow__controls{box-shadow:none;border:1px solid var(--line);border-radius:3px;overflow:hidden}.react-flow__controls-button{background:var(--bg-rail);border-bottom:1px solid var(--line);width:24px;height:24px}.react-flow__controls-button svg{fill:var(--text-dim)}.react-flow__controls-button:hover{background:var(--bg-node)}.react-flow__attribution{background:transparent;color:var(--text-faint)}.react-flow__attribution a{color:var(--text-faint)}.wire-base{stroke:var(--wire-low);stroke-width:2;fill:none;transition:stroke .15s}.wire-base.hot{stroke:var(--hot-core);filter:drop-shadow(0 0 3px var(--hot-glow))}.wire-glow{stroke:var(--hot);stroke-width:7;opacity:var(--wire-glow-alpha);fill:none;pointer-events:none;filter:blur(2px)}.wire-flow{stroke:var(--hot-bright);stroke-width:2.25;stroke-linecap:round;stroke-dasharray:7 9;fill:none;pointer-events:none;animation:wire-flow .45s linear infinite}@keyframes wire-flow{to{stroke-dashoffset:-16}}.wire-base.is-bus{stroke:var(--bus-trace);stroke-width:var(--bus-stroke);stroke-linecap:round}.wire-base.is-bus.hot{stroke:var(--hot-core)}.wire-glow.is-bus{stroke-width:calc(var(--bus-stroke) + 6px);opacity:var(--bus-glow-alpha)}.wire-flow.is-bus{stroke-width:3;stroke-dasharray:9 11}.bus-badge{position:absolute;transform:translate(-50%,-50%);padding:1px 5px;border-radius:7px;background:var(--bus-badge-bg);border:1px solid var(--bus-badge-border);color:var(--bus-badge-ink);font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.06em;line-height:1.2;pointer-events:none;white-space:nowrap}.bus-hex-tip{position:absolute;transform:translate(-50%,calc(-50% - 16px));padding:2px 7px;border-radius:5px;background:var(--bus-tip-bg);color:var(--bus-tip-ink);font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.04em;box-shadow:0 2px 8px #00000073;pointer-events:none;white-space:nowrap}.bus-adapter-face{position:absolute;top:2px;right:2px;bottom:2px;left:2px;display:flex;align-items:center;justify-content:center;border-radius:4px;background:var(--bus-adapter-face);border:1px solid var(--bus-adapter-border);box-shadow:inset 0 1px #ffffff14,inset 0 -2px 4px #00000059}.bus-adapter-label{font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.08em;color:var(--bus-adapter-ink);pointer-events:none}.chip-pin-name.is-bus{font-weight:700;color:var(--bus-badge-ink)}.chip-pin-bus-badge{position:absolute;transform:translateY(-50%);padding:0 3px;border-radius:5px;background:var(--bus-badge-bg);border:1px solid var(--bus-badge-border);color:var(--bus-badge-ink);font-family:var(--font-mono);font-size:7px;font-weight:600;letter-spacing:.04em;pointer-events:none}.pin-width-control{display:inline-flex;align-items:center;gap:3px;font-family:var(--font-mono);font-size:8px;letter-spacing:.06em;color:var(--text-dim)}.pin-width-control select,.pin-width-control input{width:34px;font-family:var(--font-mono);font-size:9px;background:var(--bg-inset, var(--bus-badge-bg));color:var(--text-label);border:1px solid var(--bus-badge-border);border-radius:4px;padding:1px 2px}.pin-bus-badge{margin-left:4px;padding:0 4px;border-radius:6px;background:var(--bus-badge-bg);border:1px solid var(--bus-badge-border);color:var(--bus-badge-ink);font-family:var(--font-mono);font-size:8px;font-weight:600}.chip-pin-bus-badge-out{text-align:right}.pin-terminal.is-bus .pin-terminal-name{font-weight:700;letter-spacing:.12em}.pin-terminal.is-bus .pin-lens{border-color:var(--bus-adapter-border);box-shadow:inset 0 1px 2px #000000b3,0 0 0 2px var(--bus-badge-border)}.splitter-node .device,.merger-node .device{background:transparent}.node-shell{position:relative}.node-anim{position:absolute;top:0;right:0;bottom:0;left:0;animation:node-in .22s cubic-bezier(.25,1.1,.4,1.35)}@keyframes node-in{0%{opacity:0;scale:.7}to{opacity:1;scale:1}}.node-body{position:absolute;left:50%;top:50%;transition:transform .2s ease}.node-label{position:absolute;top:-16px;left:0;right:0;text-align:center;font-size:8px;letter-spacing:.24em;color:var(--text-faint);pointer-events:none;white-space:nowrap}.node-tag{position:absolute;top:calc(100% + 5px);left:50%;transform:translate(-50%);max-width:150px;padding:2px 6px;font-size:8px;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-dim);background:var(--bg-inset);border:1px solid var(--line);border-radius:2px;box-shadow:var(--shadow-tag);cursor:text}.node-tag-input{position:absolute;top:calc(100% + 5px);left:50%;transform:translate(-50%);width:104px;padding:2px 6px;font-family:var(--font-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;text-align:center;color:var(--text);background:var(--bg-inset);border:1px solid var(--line-bright);border-radius:2px}.node-tag-input:focus{outline:none;border-color:var(--sel);box-shadow:var(--shadow-input-focus)}.react-flow__node.selected .node-shell{outline:1px dashed var(--sel);outline-offset:3px;border-radius:2px}.node-shell.is-unstable{border-radius:3px;animation:unstable-pulse .8s ease-in-out infinite}@keyframes unstable-pulse{0%,to{box-shadow:0 0 0 1px var(--hot),0 0 10px var(--hot-glow)}50%{box-shadow:0 0 0 1px var(--hot),0 0 22px var(--hot-glow)}}.pin-stubs{position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible;pointer-events:none}.pin-stubs line{stroke:var(--pin);stroke-width:2}.gate-symbol{display:block}.gate-symbol .gate-body{fill:var(--gate-fill);stroke:var(--gate-stroke);stroke-width:2;stroke-linejoin:round;transition:stroke .12s,filter .12s}.gate-symbol .gate-arc{fill:none;stroke:var(--gate-stroke);stroke-width:2;transition:stroke .12s}.gate-symbol .gate-bubble{fill:var(--bg-inset);stroke:var(--gate-stroke);stroke-width:2;transition:stroke .12s}.gate-symbol .pin-stub{stroke:var(--pin);stroke-width:2}.gate-symbol.lit .gate-body,.gate-symbol.lit .gate-arc,.gate-symbol.lit .gate-bubble{stroke:var(--hot-ink);filter:drop-shadow(0 0 3px var(--hot-glow))}.palette-gate .gate-symbol .gate-body{fill:transparent}.device{position:absolute;top:2px;right:14px;bottom:2px;left:2px;display:flex;align-items:center;justify-content:center;gap:8px;background:var(--device-face);border:1px solid var(--line-bright);border-radius:4px;box-shadow:var(--shadow-device)}.led-device{top:2px;right:2px;bottom:2px;left:14px;border-radius:8px}.device-state{font-size:8px;letter-spacing:.16em;color:var(--text-faint);min-width:26px;transition:color .12s}.device-state.hot{color:var(--hot-ink);text-shadow:0 0 6px var(--hot-glow)}.toggle{position:relative;width:38px;height:38px;border:1px solid var(--line);border-radius:4px;background:var(--toggle-face);box-shadow:var(--toggle-well);cursor:pointer;padding:0}.toggle-pivot{position:absolute;left:50%;top:62%;width:12px;height:12px;border-radius:50%;transform:translate(-50%,-50%);background:var(--pivot-face);border:1px solid var(--pivot-ring)}.toggle-lever{position:absolute;left:50%;top:62%;width:8px;height:22px;margin-left:-4px;border-radius:4px 4px 2px 2px;background:var(--lever-face);box-shadow:var(--lever-shadow);transform-origin:50% 100%;transform:translateY(-100%) rotate(26deg);transition:transform .22s cubic-bezier(.3,1.9,.5,.9)}.toggle.on .toggle-lever{transform:translateY(-100%) rotate(-26deg);background:var(--lever-face-on);box-shadow:0 0 7px var(--hot-glow)}.push-btn{width:32px;height:32px;border-radius:50%;border:1px solid var(--bezel);background:var(--cap-face);box-shadow:0 3px 0 var(--cap-base),inset 0 1px 0 var(--cap-highlight);cursor:pointer;padding:0;transition:transform .06s,box-shadow .06s,background .06s}.push-btn.pressed{transform:translateY(2px);box-shadow:0 1px 0 var(--cap-base),inset 0 1px 4px #0000008c;background:var(--cap-face-pressed)}.clock-device{flex-direction:column;gap:5px;padding:7px 10px 5px;justify-content:center}.clock-top{display:flex;align-items:center;justify-content:center;gap:9px;height:28px}.clock-wave{display:block;overflow:visible}.clock-wave path{fill:none;stroke:var(--text-dim);stroke-width:2;stroke-linejoin:miter;transition:stroke .1s,filter .1s}.clock-wave.hot path{stroke:var(--hot-ink);filter:drop-shadow(0 0 3px var(--hot-glow))}.clock-readout{display:flex;align-items:center;gap:6px}.clock-lamp{width:7px;height:7px;border-radius:50%;background:radial-gradient(circle at 36% 30%,var(--lamp-glass-hi),var(--lamp-glass-lo) 70%);box-shadow:0 0 0 1px var(--bezel);transition:background .1s,box-shadow .1s}.clock-lamp.hot{background:radial-gradient(circle at 38% 32%,var(--lamp-lit-hi) 0%,var(--lamp-lit-mid) 40%,var(--lamp-lit-core) 100%);box-shadow:0 0 0 1px var(--bezel),0 0 8px var(--hot-glow)}.clock-hz{font-size:9px;letter-spacing:.14em;color:var(--text-dim);min-width:38px}.step-pad{width:48px;height:26px;padding:0;border:1px solid var(--bezel);border-radius:3px;background:var(--pad-face);box-shadow:0 3px 0 var(--cap-base),inset 0 1px 0 var(--cap-highlight);cursor:pointer;transition:transform .06s,box-shadow .06s,background .06s}.step-pad .step-stencil{font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.26em;color:var(--stencil-ink);text-shadow:0 1px 0 var(--stencil-shadow)}.step-pad.pressed{transform:translateY(2px);box-shadow:0 1px 0 var(--cap-base),inset 0 1px 4px #0000008c;background:var(--pad-face-pressed)}.step-pad.pressed .step-stencil{color:var(--hot-bright);text-shadow:0 0 6px var(--hot-glow)}.clock-slider{position:relative;width:100%}.clock-fader{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;height:14px;margin:0;padding:0;background:transparent;cursor:pointer}.clock-fader:focus{outline:none}.clock-fader::-webkit-slider-runnable-track{height:2px;background:var(--line-bright);border-radius:1px}.clock-fader::-webkit-slider-thumb{-webkit-appearance:none;width:8px;height:12px;margin-top:-5px;border-radius:1px;border:1px solid var(--bezel);background:linear-gradient(180deg,var(--hot-bright) 0%,var(--hot) 60%,var(--hot-deep) 100%);box-shadow:0 0 5px var(--hot-glow)}.clock-fader::-moz-range-track{height:2px;background:var(--line-bright);border-radius:1px}.clock-fader::-moz-range-thumb{width:6px;height:10px;border-radius:1px;border:1px solid var(--bezel);background:linear-gradient(180deg,var(--hot-bright) 0%,var(--hot) 60%,var(--hot-deep) 100%);box-shadow:0 0 5px var(--hot-glow)}.clock-ticks{position:absolute;top:0;left:4px;right:4px;height:4px;display:flex;justify-content:space-between;pointer-events:none}.clock-tick{width:1px;height:4px;background:var(--pin)}.clock-detents{position:relative;height:9px;margin:1px 4px 0}.clock-detent{position:absolute;top:0;transform:translate(-50%);padding:0;border:none;background:none;font-family:var(--font-mono);font-size:7px;line-height:9px;letter-spacing:.1em;color:var(--text-faint);cursor:pointer;transition:color .12s,text-shadow .12s}.clock-detent:hover{color:var(--text-dim)}.clock-detent.active{color:var(--hot-ink);text-shadow:0 0 5px var(--hot-glow)}.constant-value{font-family:var(--font-display);font-size:19px;font-weight:700;color:var(--text-dim)}.constant-device.hot .constant-value{color:var(--hot-ink);text-shadow:0 0 8px var(--hot-glow)}.led-lens{display:block;width:38px;height:38px;border-radius:50%;background:radial-gradient(circle at 36% 30%,var(--lamp-glass-hi),var(--lamp-glass-lo) 70%);border:3px solid var(--lamp-bezel);box-shadow:inset 0 2px 5px #000000b3,0 0 0 1px var(--bezel),inset 0 -1px 2px #a0bedc14;transition:background .1s}.led-lens.lit{background:radial-gradient(circle at 38% 32%,var(--lamp-lit-hi) 0%,var(--lamp-lit-mid) 32%,var(--lamp-lit-core) 72%,var(--lamp-lit-rim) 100%);box-shadow:inset 0 1px 3px #ffffff59,0 0 0 1px var(--bezel),0 0 14px var(--hot-glow),0 0 38px var(--hot-bloom);animation:led-bloom 2.4s ease-in-out infinite}@keyframes led-bloom{0%,to{box-shadow:inset 0 1px 3px #ffffff59,0 0 0 1px var(--bezel),0 0 14px var(--hot-glow),0 0 38px var(--hot-bloom)}50%{box-shadow:inset 0 1px 3px #ffffff59,0 0 0 1px var(--bezel),0 0 18px var(--hot-glow),0 0 52px var(--hot-bloom-peak)}}.display-device{top:2px;right:2px;bottom:2px;left:18px;border-radius:4px}.display-bit{position:absolute;left:19px;width:10px;text-align:center;font-size:6.5px;letter-spacing:.05em;color:var(--text-faint);pointer-events:none}.display-glass{padding:6px 5px;margin-left:10px;background:radial-gradient(ellipse at 50% 32%,var(--glass-hi) 0%,var(--glass-mid) 60%,var(--glass-lo) 100%);border:1px solid var(--glass-edge);border-radius:3px;box-shadow:inset 0 2px 8px #000c,inset 0 0 20px var(--glass-tint),0 1px 0 var(--glass-sheen)}.seg7{display:block;overflow:visible}.seg7-main .seg{fill:var(--seg-ghost);transition:fill .14s ease}.seg7-main .seg.on{fill:var(--seg-lit)}.seg7-bloom{filter:blur(3px)}.seg7-bloom .seg{fill:var(--seg-bloom);opacity:0;transition:opacity .16s ease}.seg7-bloom .seg.on{opacity:.55}.binclock-device{top:2px;right:2px;bottom:2px;left:2px;flex-direction:column;gap:6px;padding:8px 10px 7px}.binclock-face{display:flex;justify-content:center;width:100%;padding:12px 12px 5px;background:var(--bclk-face);border:1px solid var(--glass-edge);border-radius:4px;box-shadow:inset 0 2px 8px #000000b3,0 1px 0 var(--glass-sheen)}.binclock-matrix{display:flex;align-items:flex-end;gap:16px}.binclock-group{display:flex;flex-direction:column;align-items:center;gap:4px}.binclock-pair{display:flex;align-items:flex-end;gap:7px}.binclock-col{display:flex;flex-direction:column;gap:5px}.bclk-lens{display:block;width:19px;height:19px;border-radius:50%;background:radial-gradient(circle at 36% 30%,var(--bclk-glass-hi),var(--bclk-glass-lo) 70%);border:2px solid var(--lamp-bezel);box-shadow:inset 0 1px 3px #000000b3,0 0 0 1px var(--bezel);transition:background .1s,box-shadow .1s}.bclk-lens.lit{background:radial-gradient(circle at 38% 32%,var(--bclk-lit-hi) 0%,var(--bclk-lit-mid) 35%,var(--bclk-lit) 75%,var(--bclk-lit-rim) 100%);box-shadow:inset 0 1px 2px #fff6,0 0 0 1px var(--bezel),0 0 9px var(--bclk-glow),0 0 22px var(--bclk-bloom)}.binclock-unit{font-size:7px;letter-spacing:.3em;margin-right:-.3em;color:var(--bclk-ink);text-shadow:0 1px 0 rgba(0,0,0,.7);pointer-events:none}.binclock-tz{width:100%;height:20px;padding:0 4px;font-family:var(--font-mono);font-size:8px;letter-spacing:.08em;color:var(--text-dim);background:var(--bg-inset);border:1px solid var(--line-bright);border-radius:2px;box-shadow:var(--shadow-tag);cursor:pointer}.binclock-tz:focus{outline:none;border-color:var(--sel);box-shadow:var(--shadow-input-focus)}.chip-face{position:absolute;top:2px;right:12px;bottom:2px;left:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:var(--chip-face);border:1px solid var(--chip-edge);border-radius:3px;box-shadow:inset 0 1px #a0bedc12,inset 0 -2px 5px #00000073,0 2px 6px #0006}.chip-notch{position:absolute;top:-1px;left:10px;width:14px;height:7px;background:var(--chip-notch);border:1px solid var(--chip-edge);border-top:none;border-radius:0 0 8px 8px}.chip-silkscreen{max-width:calc(100% - 44px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-display);font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--silkscreen);text-shadow:0 1px 0 rgba(0,0,0,.7)}.chip-pincount{font-size:7px;letter-spacing:.2em;color:var(--pin-name);pointer-events:none}.chip-pin-name{position:absolute;max-width:38px;overflow:hidden;transform:translateY(-50%);font-size:6.5px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;color:var(--pin-name);text-shadow:0 1px 0 rgba(0,0,0,.6);pointer-events:auto}.chip-pin-out{text-align:right}.chip-face-missing{background:var(--bg-inset);border-color:var(--hot);box-shadow:0 0 9px var(--hot-pulse-lo)}.chip-missing-stencil{font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.22em;color:var(--hot);text-shadow:0 0 6px var(--hot-glow)}.device-face{position:absolute;top:2px;right:12px;bottom:2px;left:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:var(--chip-face);border:1px solid var(--chip-edge);border-radius:3px;box-shadow:inset 0 1px #a0bedc12,inset 0 -2px 5px #00000073,0 2px 6px #0006}.device-rom .device-face{filter:saturate(.85) brightness(.96)}.device-silkscreen{font-family:var(--font-display);font-size:12px;font-weight:600;letter-spacing:.18em;color:var(--silkscreen);text-shadow:0 1px 0 rgba(0,0,0,.7)}.device-geom{font-family:var(--font-mono);font-size:8px;letter-spacing:.18em;color:var(--pin-name)}.device-dq{margin-top:1px;padding:0 5px;border-radius:3px;background:var(--bus-tip-bg);color:var(--bus-tip-ink);font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.04em}.device-pin{position:absolute;transform:translateY(-50%);max-width:44px;overflow:hidden;white-space:nowrap;font-family:var(--font-mono);font-size:7px;letter-spacing:.06em;color:var(--pin-name);text-shadow:0 1px 0 rgba(0,0,0,.6);pointer-events:none}.device-pin-out{text-align:right}.device-pin.is-bus{font-weight:700;color:var(--bus-badge-ink)}.mem-inspector-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;background:#00000073}.mem-inspector{display:flex;flex-direction:column;max-height:80%;max-width:90%;background:var(--panel, var(--bg-inset));border:1px solid var(--line-bright, var(--line));border-radius:6px;box-shadow:0 12px 40px #0000008c;overflow:hidden}.mem-inspector-head{display:flex;align-items:center;gap:12px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--bg-inset)}.mem-inspector-title{font-family:var(--font-display);font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--silkscreen, var(--text))}.mem-inspector-hint{flex:1;font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;color:var(--text-dim)}.mem-inspector-close{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--bg-inset);color:var(--text-dim);border-radius:3px;width:22px;height:22px;cursor:pointer;font-size:12px;line-height:1}.mem-inspector-close:hover{color:var(--hot-ink);border-color:var(--hot-border)}.mem-grid{overflow:auto;padding:8px 12px 12px;font-family:var(--font-mono);font-size:11px}.mem-row{display:grid;grid-template-columns:52px repeat(16,26px);align-items:center}.mem-grid-corner{height:18px}.mem-col-head{text-align:center;font-size:9px;color:var(--text-faint);padding-bottom:4px}.mem-addr{text-align:right;padding-right:10px;color:var(--text-faint);letter-spacing:.04em}.mem-cell{text-align:center;padding:2px 0;color:var(--text);border-radius:3px;border:1px solid transparent}.mem-cell-empty{color:transparent}.mem-cell.is-editable{cursor:pointer}.mem-cell.is-editable:hover{background:var(--hot-faint);border-color:var(--hot-border-soft)}.mem-cell.is-active{color:var(--hot-ink);background:var(--hot-faint);border-color:var(--hot-border);box-shadow:0 0 6px var(--hot-glow)}.mem-cell-input{width:100%;box-sizing:border-box;text-align:center;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;color:var(--text);background:var(--bg);border:1px solid var(--sel);border-radius:3px;padding:1px 0}.mem-cell-input:focus{outline:none;box-shadow:var(--shadow-input-focus)}.mem-grid-note{margin-top:8px;font-size:9px;letter-spacing:.1em;color:var(--text-dim)}.cpu-face{position:absolute;top:2px;right:14px;bottom:2px;left:14px;display:flex;flex-direction:column;gap:6px;padding:7px 9px;background:var(--chip-face);border:1px solid var(--chip-edge);border-radius:3px;box-shadow:inset 0 1px #a0bedc12,inset 0 -2px 5px #00000073,0 2px 6px #0006}.cpu-title{font-size:9px;letter-spacing:.16em;color:var(--text-dim);text-align:center}.cpu-regs{display:grid;grid-template-columns:1fr 1fr;gap:3px 10px}.cpu-reg{display:flex;justify-content:space-between;font-family:IBM Plex Mono,monospace;font-size:11px}.cpu-reg span{color:var(--text-dim)}.cpu-reg b{color:var(--hot-ink);font-weight:600}.cpu-screen{flex:1;min-height:0;display:flex;align-items:center;justify-content:center}.cpu-screen-grid{display:grid;gap:1px;width:100%;aspect-ratio:1;padding:4px;background:#06120a;border:1px solid var(--chip-edge);border-radius:3px;box-shadow:inset 0 0 8px #000c}.cpu-px{background:#0c2014;border-radius:1px}.cpu-px.on{background:#46ff8c;box-shadow:0 0 3px #46ff8c,0 0 5px #46ff8c99}.cpu-screen-label{font-size:8px;letter-spacing:.14em;color:var(--text-dim);text-align:center}.screen-rack{padding:8px 14px 12px;border-bottom:1px solid var(--line)}.screen-rack-grid{display:grid;gap:1px;width:100%;aspect-ratio:1;padding:5px;background:#06120a;border:1px solid var(--chip-edge);border-radius:3px;box-shadow:inset 0 0 8px #000c}.matrix-face{position:absolute;top:2px;right:12px;bottom:2px;left:12px;display:flex;align-items:center;justify-content:center;background:var(--chip-face);border:1px solid var(--chip-edge);border-radius:3px;box-shadow:inset 0 1px #a0bedc12,inset 0 -2px 5px #00000073,0 2px 6px #0006}.matrix-grid{display:grid;gap:2px;width:78%;aspect-ratio:1;padding:4px;background:var(--bg-inset);border-radius:2px}.matrix-px{border-radius:50%;background:radial-gradient(circle at 36% 30%,var(--lamp-glass-hi),var(--lamp-glass-lo) 70%);box-shadow:inset 0 1px 2px #0009;transition:background .1s,box-shadow .1s}.matrix-px.on{background:radial-gradient(circle at 38% 32%,var(--lamp-lit-hi) 0%,var(--lamp-lit-core) 70%,var(--lamp-lit-rim) 100%);box-shadow:0 0 5px var(--hot-glow),0 0 9px var(--hot-bloom-sm)}.fb-grid{padding:10px 14px 14px;font-family:var(--font-mono);font-size:12px}.fb-row{display:grid;grid-template-columns:44px 56px 86px auto;align-items:center;gap:10px;padding:2px 6px;border-radius:3px}.fb-row.fb-head{font-size:9px;letter-spacing:.12em;color:var(--text-faint);padding-bottom:4px}.fb-row.is-active{background:var(--hot-faint);box-shadow:0 0 6px var(--hot-glow)}.fb-addr{color:var(--text-faint)}.fb-hex{color:var(--hot-ink)}.fb-bits{color:var(--text-dim);letter-spacing:.14em}.fb-pixels{display:inline-flex;gap:3px}.fb-px{width:16px;height:16px;padding:0;border:1px solid var(--line);border-radius:3px;background:var(--bg-inset);box-shadow:inset 0 1px 2px #00000080}.fb-px.on{background:radial-gradient(circle at 38% 32%,var(--lamp-lit-hi) 0%,var(--lamp-lit-core) 70%,var(--lamp-lit-rim) 100%);border-color:var(--hot-border);box-shadow:0 0 6px var(--hot-glow)}.fb-px:not(:disabled){cursor:pointer}.fb-px:not(:disabled):hover{border-color:var(--hot-border-strong)}.pin-terminal{gap:7px;padding:0 8px}.pin-in-node .pin-terminal{top:2px;right:12px;bottom:2px;left:2px}.pin-out-node .pin-terminal{top:2px;right:2px;bottom:2px;left:12px;flex-direction:row-reverse}.pin-lens{flex-shrink:0;display:block;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 36% 30%,var(--lamp-glass-hi),var(--lamp-glass-lo) 70%);border:2px solid var(--lamp-bezel);box-shadow:inset 0 1px 2px #000000b3,0 0 0 1px var(--bezel);transition:background .1s,box-shadow .1s}.pin-lens.lit{background:radial-gradient(circle at 38% 32%,var(--lamp-lit-hi) 0%,var(--lamp-lit-mid) 35%,var(--lamp-lit-core) 80%);box-shadow:0 0 0 1px var(--bezel),0 0 8px var(--hot-glow),0 0 18px var(--hot-bloom-sm)}.pin-terminal-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim);transition:color .12s}.pin-terminal.hot .pin-terminal-name{color:var(--hot-ink);text-shadow:0 0 6px var(--hot-glow)}.seal-banner{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:10;display:flex;align-items:center;gap:10px;max-width:calc(100% - 24px);padding:5px 6px 5px 12px;background:var(--bg-hovercard);border:1px solid var(--line-bright);border-radius:3px;box-shadow:var(--shadow-menu)}.seal-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;letter-spacing:.18em;color:var(--text-dim)}.seal-name{color:var(--text)}.seal-edit{flex-shrink:0;font-family:var(--font-mono);font-size:8px;letter-spacing:.16em;padding:4px 8px;color:var(--text-faint);background:transparent;border:1px solid var(--line);border-radius:2px}.seal-edit:disabled{opacity:.55;cursor:not-allowed}.seal-close{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;padding:0;font-family:var(--font-mono);font-size:11px;line-height:1;color:var(--text-dim);background:var(--bg-inset);border:1px solid var(--line);border-radius:2px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.seal-close:hover{color:var(--text);border-color:var(--line-bright);background:var(--wash-hover)}.seal-banner.nudge{animation:banner-shake .3s ease-in-out}.seal-banner.nudge .seal-edit{border-color:var(--hot-border-strong);color:var(--hot-ink)}@keyframes banner-shake{0%,to{transform:translate(-50%)}20%,60%{transform:translate(calc(-50% - 6px))}40%,80%{transform:translate(calc(-50% + 6px))}}.canvas-wrap.sealed .react-flow__node :is(.toggle,.push-btn,.step-pad,.clock-slider,.binclock-tz){pointer-events:none;opacity:.55}.canvas-wrap.sealed .react-flow__node .node-tag{pointer-events:none}.canvas-wrap.sealed .react-flow__handle{cursor:default}.canvas-wrap.view-anim-in .react-flow{animation:chip-view-in .22s ease-out}.canvas-wrap.view-anim-out .react-flow{animation:chip-view-out .22s ease-out}@keyframes chip-view-in{0%{opacity:.15;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes chip-view-out{0%{opacity:.15;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.canvas-wrap.view-anim-in .react-flow,.canvas-wrap.view-anim-out .react-flow,.wire-flow,.wire-flow.is-bus{animation:none}}.rack{display:flex;flex-direction:column;gap:8px;padding:12px}.rack-empty{display:flex;flex-direction:column;gap:6px;padding:18px 12px;border:1px dashed var(--line);border-radius:3px;font-size:10px;letter-spacing:.16em;color:var(--text-dim);text-align:center}.rack-empty span{font-size:9px;letter-spacing:.04em;text-transform:none;color:var(--text-label)}.rack-row{display:flex;align-items:center;gap:12px;padding:9px 12px;border:1px solid var(--line);border-radius:3px;background:var(--bg-node);transition:border-color .15s}.rack-row.lit{border-color:var(--hot-border)}.rack-ch{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rack-num{flex-shrink:0;font-size:7px;letter-spacing:.12em;color:var(--text-label);border:1px solid var(--line);border-radius:2px;padding:2px 3px;margin-right:-4px}.rack-lamp{width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--lamp-glass-hi),var(--lamp-glass-lo) 70%);border:2px solid var(--lamp-bezel);box-shadow:inset 0 1px 2px #000000b3;transition:background .1s}.rack-lamp.lit{background:radial-gradient(circle at 38% 32%,var(--lamp-lit-hi) 0%,var(--lamp-lit-mid) 35%,var(--lamp-lit-core) 80%);box-shadow:0 0 8px var(--hot-glow),0 0 20px var(--hot-bloom-sm);animation:led-bloom-small 2.4s ease-in-out infinite}@keyframes led-bloom-small{0%,to{box-shadow:0 0 8px var(--hot-glow),0 0 20px var(--hot-bloom-sm)}50%{box-shadow:0 0 11px var(--hot-glow),0 0 28px var(--hot-bloom-sm-peak)}}.rack-state{margin-left:auto;font-size:11px;letter-spacing:.2em;color:var(--text-label)}.rack-state.hot{color:var(--hot-ink);text-shadow:0 0 8px var(--hot-glow)}.rack-hexval{margin-left:auto;font-size:9px;letter-spacing:.12em;color:var(--text-dim);white-space:nowrap}.rack-digit{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:28px;font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--hot-bright);text-shadow:0 0 8px var(--hot-glow);background:radial-gradient(ellipse at 50% 35%,var(--glass-hi) 0%,var(--glass-lo) 90%);border:1px solid var(--glass-edge);border-radius:2px;box-shadow:inset 0 1px 4px #000000bf}.status-block{display:flex;flex-direction:column;gap:6px;padding:12px 14px}.status-row{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.18em;color:var(--text-label);border-bottom:1px solid var(--line);padding-bottom:6px}.status-value{color:var(--text);letter-spacing:.1em}.status-value.ok{color:var(--ok)}.status-value.bad{color:var(--hot)}.reg-block{display:flex;flex-direction:column;gap:6px;padding:10px 14px}.reg-group{display:flex;flex-direction:column;gap:4px}.reg-instance{font-size:9px;letter-spacing:.2em;color:var(--text-label);opacity:.7;margin:2px 0}.reg-row{display:flex;justify-content:space-between;align-items:baseline;font-size:11px;letter-spacing:.1em;padding:4px 6px;border:1px solid var(--line);border-radius:3px;background:var(--panel-2, rgba(255, 255, 255, .02))}.reg-name{color:var(--text-label);letter-spacing:.18em}.reg-hex{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.reg-row.reg-pc .reg-hex{color:var(--ok)}.reg-row.flash{animation:reg-flash .36s ease-out}@keyframes reg-flash{0%{background:var(--accent-faint, rgba(120, 200, 255, .28));border-color:var(--accent, #78c8ff)}to{background:var(--panel-2, rgba(255, 255, 255, .02));border-color:var(--line)}}.osc-warning{margin:6px 12px 0;padding:12px;border:1px solid var(--hot);border-radius:3px;background:var(--hot-faint);animation:osc-pulse 1s ease-in-out infinite}@keyframes osc-pulse{0%,to{box-shadow:0 0 6px var(--hot-pulse-lo)}50%{box-shadow:0 0 18px var(--hot-pulse-hi)}}.osc-title{font-family:var(--font-display);font-size:12px;font-weight:600;letter-spacing:.14em;color:var(--hot)}.osc-text{margin-top:6px;font-size:10px;line-height:1.5;color:var(--text-dim)}.osc-list{margin:10px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}.osc-list li{display:flex;justify-content:space-between;gap:8px;font-size:9px;padding:4px 6px;border:1px solid var(--hot-border-soft);border-radius:2px;background:var(--hot-wash)}.osc-kind{color:var(--hot-ink);letter-spacing:.16em}.osc-id{color:var(--text-faint);min-width:0;flex:1;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.context-menu{position:fixed;z-index:1000;min-width:150px;padding:4px;background:var(--bg-menu);border:1px solid var(--line-bright);border-radius:3px;box-shadow:var(--shadow-menu);animation:menu-in .1s ease-out}@keyframes menu-in{0%{opacity:0;transform:scale(.96)}}.menu-item{display:block;width:100%;padding:7px 10px;font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;text-align:left;color:var(--text-dim);background:transparent;border:none;border-radius:2px;cursor:pointer}.menu-item:hover{color:var(--text);background:var(--wash-menu)}.menu-item.danger:hover{color:var(--hot);background:var(--hot-faint)}.rail-toggle{position:relative;flex-shrink:0;font-family:var(--font-display);font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;padding:6px 11px;color:var(--text-dim);background:var(--bg-inset);border:1px solid var(--line-bright);border-radius:2px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.rail-toggle:hover{color:var(--text);background:var(--wash-hover)}.rail-toggle.active{color:var(--text);border-color:var(--gate-stroke);background:var(--wash-active);box-shadow:var(--shadow-pressed)}.toggle-badge{position:absolute;top:-4px;right:-4px;width:8px;height:8px;border-radius:50%;background:radial-gradient(circle at 38% 32%,var(--lamp-lit-hi) 0%,var(--lamp-lit-mid) 35%,var(--lamp-lit-core) 80%);box-shadow:0 0 0 1px var(--bezel),0 0 7px var(--hot-glow);animation:led-bloom-small 2.4s ease-in-out infinite}.drawer-scrim{position:fixed;top:50px;left:0;right:0;bottom:0;z-index:850;background:var(--scrim);opacity:0;pointer-events:none;transition:opacity .2s ease}.drawer-scrim.visible{opacity:1;pointer-events:auto}.drawer{position:fixed;top:50px;bottom:0;z-index:900;width:300px;max-width:85vw;display:flex;flex-direction:column;background:var(--bg-rail);opacity:0;visibility:hidden;transition:transform .2s ease,opacity .2s ease,visibility 0s linear .2s}.drawer.open{transform:none;opacity:1;visibility:visible;transition:transform .2s ease,opacity .2s ease,visibility 0s}.drawer-left{left:0;transform:translate(-100%);border-right:1px solid var(--line-bright);box-shadow:var(--shadow-drawer-left)}.drawer-right{right:0;transform:translate(100%);border-left:1px solid var(--line-bright);box-shadow:var(--shadow-drawer-right)}.drawer-bottom{top:auto;left:0;right:0;width:auto;max-width:none;max-height:66vh;transform:translateY(100%);border-top:1px solid var(--line-bright);box-shadow:var(--shadow-drawer-right)}.drawer-bottom.open{transform:translateY(0)}.drawer-bottom .lesson-panel{width:100%;flex:1 1 auto;border-left:none;min-height:0}.lesson-fab{position:absolute;bottom:16px;right:16px;z-index:10;font-family:var(--font-display);font-size:11px;letter-spacing:.1em;padding:10px 16px;color:#fff;background:var(--hot);border:1px solid var(--hot);border-radius:999px;box-shadow:var(--shadow-menu);cursor:pointer}.lesson-fab:hover{background:var(--hot-core)}.drawer .side-rail{flex:1;min-height:0;border-left:none;border-right:none}.drawer-close{position:absolute;top:8px;right:10px;z-index:5;width:22px;height:22px;display:flex;align-items:center;justify-content:center;padding:0;font-family:var(--font-mono);font-size:13px;line-height:1;color:var(--text-dim);background:var(--bg-inset);border:1px solid var(--line);border-radius:2px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.drawer-close:hover{color:var(--text);border-color:var(--line-bright);background:var(--wash-hover)}.more-wrap{position:relative}.more-btn{font-size:14px;line-height:1;letter-spacing:0;padding:5px 10px}.more-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:950;min-width:150px;padding:4px;background:var(--bg-menu);border:1px solid var(--line-bright);border-radius:3px;box-shadow:var(--shadow-menu);animation:menu-in .1s ease-out}.lib-info{display:none;flex-shrink:0;width:18px;height:18px;margin-right:6px;align-items:center;justify-content:center;padding:0;font-family:var(--font-mono);font-size:10px;font-style:italic;line-height:1;color:var(--text-faint);background:var(--bg-inset);border:1px solid var(--line);border-radius:50%;cursor:pointer}.lib-info:active{color:var(--text);border-color:var(--line-bright)}@media(max-width:1100px){.workbench{grid-template-columns:minmax(0,1fr)}.toolbar{gap:12px;min-width:0}.brand-title,.tb-btn,.status-chip{white-space:nowrap}.brand-sub{display:none}.bench-chip{min-width:36px;overflow:hidden}}@media(max-width:700px){.toolbar{gap:8px;padding:0 10px}.brand{flex-shrink:0}.brand-title{font-size:13px;letter-spacing:.16em}.status-chip{flex-shrink:0;padding:4px 6px;letter-spacing:.1em}.bench-chip{min-width:36px;overflow:hidden;padding:4px 6px;letter-spacing:.1em}.toolbar-actions{gap:6px}.theme-btn{padding:5px 8px}.theme-btn .theme-label{display:none}.drawer{width:85vw}}@media(pointer:coarse){.react-flow__handle:after{content:"";position:absolute;left:50%;top:50%;width:24px;height:24px;transform:translate(-50%,-50%)}.react-flow__pane,.react-flow__node,.react-flow__edge{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.lib-info{display:flex}}.side-rail::-webkit-scrollbar{width:8px}.side-rail::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}.side-rail::-webkit-scrollbar-thumb:hover{background:var(--line-bright)}.chips-shelf-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.chips-new-btn{font-family:var(--font-mono);font-size:8px;letter-spacing:.14em;padding:3px 7px;color:var(--text-dim);background:transparent;border:1px solid var(--line);border-radius:2px;cursor:pointer;white-space:nowrap;transition:color .12s,border-color .12s,background .12s}.chips-new-btn:hover{color:var(--text);border-color:var(--line-bright);background:var(--wash-hover)}.chips-empty{padding:2px 14px 6px;font-size:9px;letter-spacing:.1em;line-height:1.5;color:var(--text-label)}.chip-edit{flex-shrink:0;width:18px;height:18px;margin-right:2px;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:10px;line-height:1;color:var(--text-faint);background:transparent;border:1px solid transparent;border-radius:2px;cursor:pointer;padding:0;transition:color .12s,border-color .12s,background .12s}.chip-edit:hover{color:var(--text);border-color:var(--line-bright);background:var(--wash-hover)}.pins-section-title{color:var(--hot-ink)}.pin-toggle{flex-shrink:0;width:24px;height:26px;border-radius:3px}.pin-toggle .toggle-pivot{width:8px;height:8px}.pin-toggle .toggle-lever{width:5px;height:14px;margin-left:-2.5px;border-radius:3px 3px 2px 2px}.seal-banner.editing{border-color:var(--hot-border-soft)}.seal-dirty{color:var(--hot-ink)}.seal-edit:not(:disabled){color:var(--text-dim);cursor:pointer;transition:color .12s,border-color .12s,background .12s}.seal-edit:not(:disabled):hover{color:var(--text);border-color:var(--line-bright);background:var(--wash-hover)}.seal-save:not(:disabled){color:var(--hot-ink);border-color:var(--hot-border-soft);background:var(--hot-faint-weak)}.seal-save:not(:disabled):hover{border-color:var(--hot-border-strong);background:var(--hot-faint)}.pack-fab{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:10;font-family:var(--font-mono);font-size:9px;letter-spacing:.16em;padding:6px 12px;color:var(--text);background:var(--bg-hovercard);border:1px solid var(--line-bright);border-radius:3px;box-shadow:var(--shadow-menu);cursor:pointer;transition:color .12s,border-color .12s}.pack-fab:hover{color:var(--hot-ink);border-color:var(--hot-border-soft)}.bench-toast{position:absolute;bottom:18px;left:50%;transform:translate(-50%);z-index:12;display:flex;align-items:center;gap:12px;max-width:calc(100% - 24px);padding:8px 8px 8px 14px;background:var(--bg-hovercard);border:1px solid var(--line-bright);border-radius:3px;box-shadow:var(--shadow-menu);animation:toast-in .15s ease-out}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,6px)}}.load-overlay{position:absolute;bottom:28px;left:50%;transform:translate(-50%);z-index:13;pointer-events:none;animation:toast-in .15s ease-out}.load-card{min-width:248px;padding:11px 16px 13px;background:var(--bg-hovercard);border:1px solid var(--line-bright);border-radius:4px;box-shadow:var(--shadow-menu)}.load-title{font-family:var(--font-display);font-size:9px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--hot-ink);text-shadow:0 0 9px var(--hot-glow);margin-bottom:7px}.load-count{font-family:var(--font-mono);font-size:14px;font-weight:600;letter-spacing:.02em;color:var(--text);margin-bottom:8px}.load-unit{font-size:9px;letter-spacing:.16em;color:var(--text-dim)}.load-bar{height:4px;background:var(--line);border-radius:2px;overflow:hidden}.load-bar-fill{height:100%;background:var(--hot-ink);box-shadow:0 0 8px var(--hot-glow);transition:width .08s linear}.bench-toast-msg{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:9px;letter-spacing:.14em;color:var(--text)}.bench-toast-btn{flex-shrink:0;font-family:var(--font-mono);font-size:9px;letter-spacing:.16em;padding:4px 10px;color:var(--hot-ink);background:var(--hot-faint-weak);border:1px solid var(--hot-border-soft);border-radius:2px;cursor:pointer;transition:border-color .12s,background .12s}.bench-toast-btn:hover{border-color:var(--hot-border-strong);background:var(--hot-faint)}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--scrim)}.chip-modal{width:460px;max-width:100%;max-height:calc(100vh - 32px);overflow-y:auto;padding:16px 18px 14px;background:var(--bg-hovercard);border:1px solid var(--line-bright);border-radius:4px;box-shadow:var(--shadow-hovercard);animation:menu-in .12s ease-out}.chip-modal-title{font-family:var(--font-display);font-size:13px;font-weight:600;letter-spacing:.22em;color:var(--text);text-shadow:0 0 12px var(--title-glow)}.chip-modal-sub{margin-top:4px;font-size:9px;letter-spacing:.16em;color:var(--text-label)}.chip-modal-label{display:block;margin:14px 0 5px;font-size:9px;letter-spacing:.2em;color:var(--text-dim)}.chip-modal-optional{color:var(--text-faint);letter-spacing:.16em}.chip-modal-input{display:block;width:100%;box-sizing:border-box;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text);background:var(--bg-inset);border:1px solid var(--line);border-radius:2px;padding:8px 9px;transition:border-color .12s,box-shadow .12s}.chip-modal-textarea{resize:vertical;text-transform:none;line-height:1.5}.chip-modal-input::placeholder{color:var(--text-faint)}.chip-modal-input:focus{outline:none;border-color:var(--line-bright);box-shadow:var(--shadow-input-focus)}.chip-modal-error{margin-top:5px;font-size:9px;letter-spacing:.1em;line-height:1.5;color:var(--hot-ink)}.chip-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.chip-modal-confirm:not(:disabled){color:var(--hot-ink);border-color:var(--hot-border-soft);background:var(--hot-faint-weak)}.chip-modal-confirm:disabled{opacity:.45;cursor:not-allowed}.pinlist-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}@media(max-width:560px){.pinlist-columns{grid-template-columns:1fr}}.pinlist{min-width:0;border:1px solid var(--line);border-radius:3px;background:var(--bg-inset);padding:8px}.pinlist-title{display:flex;justify-content:space-between;font-size:8px;letter-spacing:.2em;color:var(--text-label);padding-bottom:6px;border-bottom:1px solid var(--line);margin-bottom:6px}.pinlist-count{color:var(--text-dim)}.pinlist-empty{font-size:9px;letter-spacing:.16em;color:var(--text-label);padding:4px 2px}.pinlist-row{display:flex;align-items:center;gap:5px;padding:3px 0}.pinlist-index{flex-shrink:0;width:14px;font-family:var(--font-mono);font-size:9px;color:var(--text-faint);text-align:right}.pinlist-name{flex:1;min-width:0;font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text);background:transparent;border:1px solid var(--line);border-radius:2px;padding:4px 6px;transition:border-color .12s}.pinlist-name:focus{outline:none;border-color:var(--line-bright);background:var(--bg-inset)}.pinlist-fan{flex-shrink:0;font-family:var(--font-mono);font-size:8px;color:var(--text-faint)}.pinlist-move{flex-shrink:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;padding:0;font-size:7px;color:var(--text-dim);background:transparent;border:1px solid var(--line);border-radius:2px;cursor:pointer;transition:color .12s,border-color .12s}.pinlist-move:hover:not(:disabled){color:var(--text);border-color:var(--line-bright)}.pinlist-move:disabled{opacity:.35;cursor:default}.welcome-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:8;display:flex;align-items:center;justify-content:center;padding:20px;pointer-events:none}.welcome-card{pointer-events:auto;width:430px;max-width:100%;padding:18px 20px 14px;background:var(--bg-hovercard);border:1px solid var(--line-bright);border-radius:4px;box-shadow:var(--shadow-hovercard);animation:hint-in .18s ease-out}.welcome-title{font-family:var(--font-display);font-size:13px;font-weight:600;letter-spacing:.22em;color:var(--text);text-shadow:0 0 12px var(--title-glow);padding-bottom:9px;margin-bottom:12px;border-bottom:1px solid var(--line)}.welcome-steps{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px}.welcome-steps li{display:flex;gap:10px;font-size:11px;line-height:1.55;letter-spacing:.03em;color:var(--text)}.welcome-num{flex-shrink:0;font-size:13px;line-height:1.3;color:var(--hot-ink);text-shadow:0 0 7px var(--hot-glow)}.welcome-note{margin:12px 0 0;font-size:10px;line-height:1.55;letter-spacing:.03em;color:var(--text-dim)}.welcome-note strong{color:var(--hot-ink);font-weight:600;letter-spacing:.05em}.welcome-foot{display:flex;justify-content:flex-end;margin-top:14px;padding-top:10px;border-top:1px solid var(--line)}.welcome-dismiss{font-size:9px;padding:5px 10px}@media(max-width:700px){.welcome-overlay{padding:12px}.welcome-card{padding:12px 13px 10px}.welcome-steps li{font-size:10px;gap:8px}}@keyframes hint-in{0%{opacity:0}}.hint-chip{position:absolute;z-index:11;display:inline-flex;align-items:center;gap:8px;max-width:calc(100% - 24px);padding:7px 12px;font-family:var(--font-mono);font-size:9px;letter-spacing:.16em;text-align:left;color:var(--text);background:var(--bg-hovercard);border:1px solid var(--hot-border-soft);border-radius:3px;box-shadow:var(--shadow-menu);cursor:pointer;animation:hint-in .18s ease-out}.hint-chip:before{content:"";flex-shrink:0;width:10px;height:2px;background:linear-gradient(90deg,var(--hot-core),var(--hot-ink));box-shadow:0 0 4px var(--hot-glow)}.hint-top-center{top:12px;left:50%;transform:translate(-50%)}.hint-crumb{top:10px;left:12px}.help-btn{font-weight:600;padding:7px 11px}.chip-modal.help-modal{position:relative;width:560px}.help-close{position:absolute;top:14px;right:14px}.help-table{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin-top:14px}.help-row{display:contents}.help-act{font-size:9px;letter-spacing:.18em;color:var(--hot-ink);white-space:nowrap;padding-top:2px}.help-how{font-size:10px;line-height:1.55;letter-spacing:.03em;color:var(--text)}.help-foot{margin-top:14px;padding-top:9px;border-top:1px solid var(--line);font-size:9px;letter-spacing:.1em;color:var(--text-label)}@media(max-width:560px){.help-table{grid-template-columns:1fr;gap:2px}.help-row{display:block;margin-bottom:8px}.help-act{display:block}}.lesson-panel{flex:0 0 340px;width:340px;display:flex;flex-direction:column;background:var(--bg-rail);border-left:1px solid var(--line);overflow-y:auto}.lesson-head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--line)}.lesson-crumb{font-family:var(--font-display);font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim)}.lesson-head-actions{display:flex;align-items:center;gap:6px}.lesson-close,.lesson-map-btn{background:none;border:none;color:var(--text-dim);line-height:1;cursor:pointer}.lesson-close{font-size:16px}.lesson-map-btn{font-size:14px}.lesson-close:hover,.lesson-map-btn:hover{color:var(--text)}.lesson-title{margin:0;padding:12px 14px 2px;font-family:var(--font-display);font-size:17px;font-weight:650;color:var(--text)}.lesson-dot{color:var(--hot);margin-right:6px;font-size:12px;vertical-align:1px}.lesson-body{padding:6px 14px 12px;display:flex;flex-direction:column;gap:11px;font-size:13px;line-height:1.5;color:var(--text)}.lesson-tag{display:block;font-family:var(--font-display);font-size:9px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim);margin-bottom:3px}.lesson-hook{margin:0;font-size:14px}.lesson-watch,.lesson-recap{margin:0}.lesson-sec{border-top:1px solid var(--line);padding-top:9px}.lesson-sec>summary{cursor:pointer;font-family:var(--font-display);font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);list-style:none}.lesson-sec>summary::-webkit-details-marker{display:none}.lesson-sec>summary:before{content:"▸ "}.lesson-sec[open]>summary:before{content:"▾ "}.lesson-sec>summary:hover{color:var(--text)}.lesson-sec>p{margin:8px 0 0}.lesson-table{margin:8px 0 0;font-family:var(--font-mono);font-size:12px;line-height:1.5;color:var(--text);white-space:pre;overflow-x:auto}.lesson-truth{margin:8px 0 0;border-collapse:collapse;font-family:var(--font-mono);font-size:12px;width:100%}.lesson-truth th{font-family:var(--font-display);font-size:9px;letter-spacing:.1em;color:var(--text-dim);font-weight:600;text-align:center;padding:2px 6px;border-bottom:1px solid var(--line)}.lesson-truth td{text-align:center;padding:3px 6px;color:var(--text)}.lesson-truth .lt-out{border-left:1px solid var(--line);color:var(--text-dim)}.lesson-truth tbody tr{cursor:pointer}.lesson-truth tbody tr:hover{background:var(--bg-inset)}.lesson-truth tbody tr.is-live{background:var(--hot-wash)}.lesson-truth tbody tr.is-live td{color:var(--hot-ink)}.lesson-truth tbody tr.is-live .lt-out{color:var(--hot-ink);font-weight:600}.lesson-truth-hint{margin:6px 0 0;font-size:11px;color:var(--text-dim)}.lesson-predict{border:1px solid var(--line);border-radius:3px;background:var(--bg-inset);padding:9px 10px 10px}.lesson-predict-q{margin:0 0 8px}.lesson-predict-opts{display:flex;flex-direction:column;gap:6px}.lesson-predict-opt{text-align:left;font-family:var(--font-mono);font-size:12px;line-height:1.4;padding:6px 9px;border:1px solid var(--line-bright);border-radius:3px;background:var(--bg-node);color:var(--text);cursor:pointer}.lesson-predict-opt:hover{border-color:var(--hot-border);color:var(--hot-ink)}.lesson-predict-opt.is-right{border-color:var(--ok);color:var(--ok);background:color-mix(in srgb,var(--ok) 10%,var(--bg-node))}.lesson-predict-opt.is-wrong{border-color:var(--hot-border-strong);color:var(--hot-ink);background:var(--hot-wash)}.lesson-predict-fb{margin:8px 0 0;font-size:12px;color:var(--text)}.lesson-predict-fb>strong{font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-right:4px}.lesson-predict-fb.is-right>strong{color:var(--ok)}.lesson-predict-fb.is-wrong>strong{color:var(--hot-ink)}.lesson-bridge{border-top:1px solid var(--line);padding-top:11px}.lesson-bridge-lead{margin:0 0 6px;font-family:var(--font-display);font-size:14px;font-weight:650;color:var(--text)}.lesson-bridge-body{margin:0 0 8px}.lesson-bridge-link{font-family:var(--font-mono);font-size:12px;color:var(--hot-ink);text-decoration:none}.lesson-bridge-link:hover{text-decoration:underline}.lesson-step{align-self:flex-start;font-family:var(--font-display);font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:7px 14px;border:1px solid var(--hot-border);border-radius:3px;background:var(--hot-wash);color:var(--hot-ink);cursor:pointer}.lesson-step:hover{background:var(--hot-faint)}.lesson-runrow{display:flex;flex-wrap:wrap;gap:8px}.lesson-drill{align-self:flex-start;font-family:var(--font-display);font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:7px 14px;border:1px solid var(--line-bright);border-radius:3px;background:var(--bg-inset);color:var(--text);cursor:pointer}.lesson-drill:hover{border-color:var(--hot-border);color:var(--hot-ink)}.lesson-inside-badge{align-self:flex-start;font-family:var(--font-display);font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--hot-ink);padding:5px 8px;border:1px solid var(--hot-border);border-radius:3px;background:var(--hot-wash)}.lesson-steps{margin:8px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:6px}.lesson-foot{margin-top:auto;padding:10px 14px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:8px}.lesson-nav{font-family:var(--font-mono);font-size:12px;padding:6px 9px;border:1px solid var(--line);border-radius:3px;background:transparent;color:var(--text);cursor:pointer;min-width:40px}.lesson-nav:hover:not(:disabled){border-color:var(--text-dim)}.lesson-nav:disabled{opacity:.3;cursor:default}.lesson-done{font-family:var(--font-display);font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:7px 14px;border:1px solid var(--line);border-radius:3px;background:transparent;color:var(--text);cursor:pointer}.lesson-done:hover{border-color:var(--text-dim)}.lesson-done.is-done{background:var(--hot);border-color:var(--hot);color:#fff}.learn-this-chip{font-family:var(--font-display);font-size:10px;letter-spacing:.08em;padding:4px 9px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--text-dim);cursor:pointer}.learn-this-chip:hover{color:var(--text);border-color:var(--text-dim)}.journey-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:24px;background:#00000073;animation:hint-in .16s ease-out}.journey-map{width:560px;max-width:100%;max-height:86vh;display:flex;flex-direction:column;background:var(--bg-hovercard);border:1px solid var(--line-bright);border-radius:5px;box-shadow:var(--shadow-hovercard);overflow:hidden}.journey-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}.journey-title{font-family:var(--font-display);font-size:13px;font-weight:600;letter-spacing:.2em;color:var(--text)}.journey-count{font-family:var(--font-mono);font-size:12px;color:var(--text-dim)}.journey-close{margin-left:auto;background:none;border:none;color:var(--text-dim);font-size:17px;line-height:1;cursor:pointer}.journey-close:hover{color:var(--text)}.journey-continue{margin:12px 18px 4px;padding:9px 14px;text-align:left;font-family:var(--font-display);font-size:12px;letter-spacing:.04em;border:1px solid var(--hot-border);border-radius:4px;background:var(--hot-wash);color:var(--hot-ink);cursor:pointer}.journey-continue:hover{background:var(--hot-faint)}.journey-continue.done{color:var(--text-dim);border-color:var(--line);background:transparent;cursor:default}.journey-parts{padding:8px 18px 18px;overflow-y:auto}.journey-part{margin-top:14px}.journey-part-name{font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim);margin-bottom:6px}.journey-stops{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}.journey-stop{display:flex;align-items:center;gap:8px;width:100%;padding:5px 8px;border:1px solid transparent;border-radius:4px;background:none;color:var(--text);font-size:12px;text-align:left;cursor:pointer}.journey-stop:hover{border-color:var(--line-bright);background:var(--bg-inset)}.journey-dot{color:var(--text-faint);font-size:11px}.journey-stop.is-visited .journey-dot{color:var(--text-dim)}.journey-stop.is-done .journey-dot{color:var(--hot)}.journey-num{font-family:var(--font-mono);font-size:11px;color:var(--text-dim);min-width:18px}.journey-stop-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asm-panel{flex:0 0 320px;width:320px;display:flex;flex-direction:column;background:var(--bg-rail);border-left:1px solid var(--line);overflow:hidden;--asm-line: 19px}.asm-head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--line)}.asm-title{font-family:var(--font-display);font-size:11px;font-weight:600;letter-spacing:.26em;color:var(--text-dim)}.asm-x{background:none;border:none;color:var(--text-dim);font-size:18px;line-height:1;cursor:pointer}.asm-x:hover{color:var(--text)}.asm-toolbar{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;border-bottom:1px solid var(--line)}.asm-btn{font-family:var(--font-display);font-size:10px;letter-spacing:.12em;padding:6px 10px;border:1px solid var(--line);border-radius:3px;background:transparent;color:var(--text);cursor:pointer}.asm-btn:hover{border-color:var(--ok)}.asm-btn.primary{border-color:var(--ok);color:var(--ok)}.asm-editor-wrap{flex:1 1 auto;min-height:120px;display:flex;overflow:hidden}.asm-gutter{position:relative;flex:0 0 16px;overflow:hidden;background:var(--bg-deep, var(--bg-rail));border-right:1px solid var(--line)}.asm-gutter-arrow{position:absolute;top:0;left:0;width:16px;height:var(--asm-line);line-height:var(--asm-line);text-align:center;font-size:10px;color:var(--ok);opacity:0;pointer-events:none;will-change:transform}.asm-editor{flex:1 1 auto;overflow:auto;white-space:pre;resize:none;border:none;outline:none;padding:10px 12px;font-family:var(--font-mono);font-size:12px;line-height:var(--asm-line);color:var(--text);background:transparent;-moz-tab-size:2;tab-size:2}.asm-status{padding:8px 14px;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--ok);border-top:1px solid var(--line)}.asm-status.err{color:var(--hot)}.asm-errors{margin:0;padding:4px 14px 8px;list-style:none;font-family:var(--font-mono);font-size:11px;color:var(--hot);max-height:110px;overflow-y:auto}.asm-errors li{padding:2px 0}.asm-errline{color:var(--text-dim);margin-right:6px}.asm-listing{border-top:1px solid var(--line);overflow-y:auto;flex:1 1 auto;min-height:96px;max-height:48%;font-family:var(--font-mono);font-size:11px}.asm-listing-head{padding:8px 14px 4px;font-family:var(--font-display);font-size:9px;letter-spacing:.2em;color:var(--text-dim)}.asm-lrow{display:grid;grid-template-columns:10px 14px 24px 64px 1fr;align-items:center;gap:8px;padding:2px 14px}.asm-lmark{font-size:9px;line-height:1;text-align:center;color:var(--bg-rail)}.asm-lrow.pc{background:var(--ok);border-radius:2px;box-shadow:inset 2px 0 0 var(--bg-rail)}.asm-lrow.pc .asm-lmark,.asm-lrow.pc .asm-laddr,.asm-lrow.pc .asm-lbytes,.asm-lrow.pc .asm-ltext{color:var(--bg-rail);font-weight:600}.asm-bp{width:9px;height:9px;padding:0;border-radius:50%;border:1px solid var(--text-dim);background:transparent;cursor:pointer}.asm-bp.on{background:var(--hot);border-color:var(--hot)}.asm-bp:disabled{opacity:.3;cursor:default}.asm-laddr{color:var(--text-dim)}.asm-lbytes{color:var(--ok)}.asm-ltext{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asm-btn:disabled{opacity:.4;cursor:not-allowed;border-color:var(--line)}.asm-btn:disabled:hover{border-color:var(--line)}
