:root{--ui:1rem;font-size:clamp(15px,.35vw + .35vmin + 8px,21px)}html,body{background:#05060a;height:100%;margin:0;overflow:hidden}#scene{width:100%;height:100%;display:block}#hud,#hud-flight{overscroll-behavior:contain;color:#8fa3bf;-webkit-user-select:none;user-select:none;background:#080a12d9;border:1px solid #1c2438;border-radius:.5333rem;width:16rem;max-height:calc(100vh - 24px);padding:.8rem .9333rem;font:13px/1.5 ui-monospace,monospace;position:fixed;top:.8rem;left:.8rem;overflow-y:auto}#hud h1,#hud-flight h1{color:#c8d4e8;margin:0 0 .6667rem;font-size:1rem}#hud h1 span,#hud-flight h1 span{color:#55627a;font-weight:400}.hidden{display:none!important}#palette,#mini-palette{flex-direction:column;gap:.2667rem;margin-bottom:.6667rem;display:flex}.palette-btn{font:inherit;text-align:left;color:#aab8d0;cursor:pointer;background:#10141f;border:1px solid #1c2438;border-radius:.3333rem;align-items:center;gap:.4667rem;padding:.3333rem .5333rem;display:flex}.palette-btn:hover{border-color:#31405f}.palette-btn.selected{color:#d8e4f4;background:#131b22;border-color:#4f8f6f}.palette-btn .chip{border-radius:.2rem;flex-shrink:0;width:.7333rem;height:.7333rem}.palette-btn .key{color:#55627a}.palette-btn .mass{color:#55627a;margin-left:auto;font-size:.7333rem}#gauge-row{flex-wrap:wrap;align-items:center;gap:.2rem;margin-bottom:.6667rem;display:flex}#gauge-row>span:first-child{color:#55627a;text-transform:uppercase;letter-spacing:.06em;width:100%;font-size:.6667rem}.gauge-btn{color:#aab8d0;cursor:pointer;background:#10141f;border:1px solid #1c2438;border-radius:.2667rem;flex:1;padding:.2rem 0;font:11px ui-monospace,monospace}.gauge-btn.selected{color:#d8e4f4;background:#201c14;border-color:#8a6a2c}#stats{color:#c8d4e8;margin-bottom:.5333rem}.help{color:#55627a;margin-bottom:.6667rem;font-size:.7333rem}.help b{color:#8fa3bf}#actions select{box-sizing:border-box;width:100%;font:inherit;color:#d8e4f4;background:#10141f;border:1px solid #1c2438;border-radius:.3333rem;margin-bottom:.4rem;padding:.3333rem .5333rem;font-size:.8rem}#actions input{box-sizing:border-box;width:100%;font:inherit;color:#d8e4f4;background:#10141f;border:1px solid #1c2438;border-radius:.3333rem;margin-bottom:.4rem;padding:.3333rem .5333rem}#actions .row{gap:.3333rem;display:flex}#actions button{font:inherit;color:#aab8d0;cursor:pointer;background:#10141f;border:1px solid #1c2438;border-radius:.3333rem;flex:1;padding:.3333rem 0;font-size:.8rem}#actions button:hover{color:#d8e4f4;border-color:#31405f}#status{color:#4fdc7c;min-height:1.2rem;margin-top:.4rem;font-size:.8rem}button.primary{width:100%;font:inherit;color:#d8e4f4;cursor:pointer;background:#14201b;border:1px solid #2c5744;border-radius:.3333rem;margin-top:.5333rem;padding:.4667rem 0;font-size:.8667rem;display:block}button.primary:hover{border-color:#4f8f6f}.kbd{color:#8fa3bf;background:#10141f;border:1px solid #1c2438;border-radius:.2rem;margin-left:.2667rem;padding:0 .2667rem;font-size:.7333rem}#flight-stats{color:#c8d4e8;margin-bottom:.5333rem}#flight-hint{color:#9fe8ff;min-height:1.2rem;margin-bottom:.4rem;font-size:.8rem}#flight-bus{color:#d8a24a;min-height:1.2rem;margin-bottom:.4rem;font-size:.8rem}#flight-bus.warn{color:#ff9a6b;font-weight:700}#flight-atmo{color:#7fc4a8;min-height:1.2rem;margin-bottom:.4rem;font-size:.8rem}#flight-atmo.warn{color:#ff9a6b;font-weight:700}#flight-vitals{color:#c8d4e8;min-height:1.2rem;margin-bottom:.4rem;font-size:.8rem}#flight-vitals.warn{color:#ffce8a}#flight-vitals.danger{color:#ff6b6b;font-weight:700}#crosshair{color:#9fe8ff;text-shadow:0 0 4px #05060a;pointer-events:none;z-index:5;font:20px/1 ui-monospace,monospace;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}#flight-groups{color:#55627a;margin-bottom:.6667rem}.group-heading{color:#55627a;text-transform:uppercase;letter-spacing:.08em;margin:.4rem 0 2px;font-size:.7333rem}.thruster-group{color:#aab8d0;border-left:2px solid #1c2438;margin-bottom:1px;padding:1px .4rem;font-size:.8rem}.thruster-group.none{color:#3d4557;border-left-color:#141926}#port-popup{z-index:10;background:#080a12f2;border:1px solid #31405f;border-radius:.4rem;flex-direction:column;gap:.2rem;min-width:9.3333rem;padding:.4rem;font:13px/1.5 ui-monospace,monospace;display:flex;position:fixed}#port-popup .popup-title{color:#55627a;text-transform:uppercase;letter-spacing:.08em;padding:2px .4rem;font-size:.7333rem}#port-popup button{font:inherit;text-align:left;color:#d8e4f4;cursor:pointer;background:#10141f;border:1px solid #1c2438;border-radius:.2667rem;align-items:center;gap:.4667rem;padding:.3333rem .5333rem;display:flex}#port-popup button:hover{border-color:#4f8f6f}#port-popup .dir{text-transform:uppercase;border-radius:.2rem;padding:0 .3333rem;font-size:.6667rem}#port-popup .dir.out{color:#4fdc7c;background:#14201b}#port-popup .dir.in{color:#7fc4ff;background:#131b28}#port-popup .hint{color:#55627a;margin-left:auto;padding-left:.6667rem;font-size:.7333rem}#box-panel{z-index:11;color:#8fa3bf;background:#080a12f5;border:1px solid #31405f;border-radius:.5333rem;width:21.3333rem;padding:.8rem .9333rem;font:13px/1.5 ui-monospace,monospace;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}#box-panel.wide{width:45.3333rem}#box-panel select{width:100%;font:inherit;color:#d8e4f4;background:#10141f;border:1px solid #1c2438;border-radius:.2667rem;margin-bottom:.4rem;padding:.3333rem .5333rem}#box-panel textarea{box-sizing:border-box;color:#d8e4f4;resize:vertical;background:#10141f;border:1px solid #1c2438;border-radius:.2667rem;width:100%;height:8.6667rem;margin-bottom:.4rem;padding:.4rem .5333rem;font:12px/1.4 ui-monospace,monospace}#box-panel .logic-preview{background:#0c1018;border:1px solid #1c2438;border-radius:.2667rem;min-height:2.6667rem;max-height:21.3333rem;margin-bottom:.4rem;padding:.5333rem;overflow:auto}#box-panel .logic-preview:has(svg){background:#eef1f6}#box-panel .probe-row{align-items:center;gap:.4rem;margin-bottom:.4rem;display:flex}#box-panel .probe-row>span:first-child{color:#55627a;text-transform:uppercase;width:3.6rem;font-size:.7333rem}#box-panel .probe-btn{color:#aab8d0;cursor:pointer;background:#10141f;border:1px solid #1c2438;border-radius:.2667rem;flex:1;padding:.2667rem 0;font:12px ui-monospace,monospace}#box-panel .probe-btn.on{color:#d8e4f4;background:#14201b;border-color:#4f8f6f}#box-panel .probe-lamp{text-align:center;color:#3d4557;background:#10141f;border:1px solid #141926;border-radius:.2667rem;flex:1;padding:.2667rem 0;font-size:.8rem}#box-panel .probe-lamp.on{color:#9fe8ff;background:#101a24;border-color:#2b5f7a}.hdl-editor{background:#0c1018;border:1px solid #1c2438;border-radius:.2667rem;grid-template-columns:34px 1fr;height:12.6667rem;margin-bottom:.4rem;display:grid;position:relative;overflow:hidden}.hdl-gutter,.hdl-backdrop,#box-panel textarea.hdl-code{margin:0;padding:.5333rem 0;font:12px/1.5 ui-monospace,monospace}.hdl-gutter{text-align:right;color:#3d4557;-webkit-user-select:none;user-select:none;background:#0a0e15;padding-right:.4rem;overflow:hidden}.hdl-gutter .bad{color:#ff8a8a;background:#2a1418;font-weight:700}.hdl-backdrop,#box-panel textarea.hdl-code{white-space:pre;border:0;grid-area:1/2;padding-left:.5333rem;padding-right:.5333rem;overflow:auto}.hdl-backdrop{pointer-events:none;color:#8fa3bf}#box-panel textarea.hdl-code{color:#0000;caret-color:#d8e4f4;resize:none;tab-size:2;background:0 0;border-radius:0;height:100%}#box-panel textarea.hdl-code::selection{color:#0000;background:#2c4a6a}.tok-comment{color:#5c7a5c;font-style:italic}.tok-keyword{color:#c48ce8}.tok-type{color:#7fc4ff}.tok-number{color:#e8b96b}.tok-string{color:#9fd9a0}.tok-directive{color:#d88a4a}.tok-op{color:#8794ad}.snippet-row{flex-wrap:wrap;align-items:center;gap:.2667rem;margin-bottom:.4rem;display:flex}.snippet-row>span:first-child{color:#55627a;text-transform:uppercase;font-size:.7333rem}.snippet-btn{color:#aab8d0;cursor:pointer;background:#10141f;border:1px solid #1c2438;border-radius:.6667rem;padding:.2rem .5333rem;font:11px ui-monospace,monospace}.snippet-btn:hover{color:#d8e4f4;border-color:#4f8f6f}.hdl-status{color:#9fe8ff;min-height:1.2rem;margin-bottom:.4rem;font-size:.8rem}.gate-palette{flex-wrap:wrap;gap:.2667rem;margin-bottom:.5333rem;display:flex}.gate-btn{color:#aab8d0;cursor:pointer;background:#10141f;border:1px solid #1c2438;border-radius:.2667rem;padding:.2667rem .6rem;font:12px ui-monospace,monospace}.gate-btn:hover{color:#d8e4f4;border-color:#4f8f6f}.gate-btn.io{border-color:#2b5f7a}.gate-btn.memory{border-color:#5a4a7a}.gate-group{flex-wrap:wrap;align-items:center;gap:.2667rem;display:flex}.gate-group-label{color:#55627a;text-transform:uppercase;letter-spacing:.06em;width:3.0667rem;font-size:.6667rem}.device-list,.conn-list{color:#55627a;flex-wrap:wrap;gap:.2667rem;min-height:1.3333rem;margin-bottom:.5333rem;font-size:.8rem;display:flex}.device-chip,.conn-chip{color:#aab8d0;background:#0c1018;border:1px solid #1c2438;border-radius:.6667rem;align-items:center;gap:.2667rem;padding:2px .2667rem 2px .5333rem;display:inline-flex}.device-chip b{color:#d8e4f4;font-weight:400}.port-dot{cursor:pointer;border:1px solid #0000;border-radius:.5333rem;padding:1px .4rem;font:10px ui-monospace,monospace}.port-dot.out{color:#4fdc7c;background:#10201a;border-color:#23503a}.port-dot.in{color:#7fc4ff;background:#101a26;border-color:#234a63}.port-dot.picked{background:#1a3a28;outline:1px solid #4fdc7c}.port-dot.in.wired{color:#d8e4f4;background:#1a2a3a}.port-dot:hover{filter:brightness(1.4)}.chip-del{font:inherit;color:#8b6b6b;cursor:pointer;background:0 0;border:none;padding:0 .2667rem}.chip-del:hover{color:#dc4f4f}.conn-chip{color:#8fa3bf;font:11px ui-monospace,monospace}.wire-row{margin-bottom:.5333rem}.wire-row select{flex:1;min-width:0;margin:0}.wire-row button{font:inherit;color:#d8e4f4;cursor:pointer;background:#14201b;border:1px solid #2c5744;border-radius:.3333rem;flex:none;padding:.3333rem .6667rem;font-size:.8rem}.wire-row button:disabled{opacity:.4;cursor:default}#box-panel .probe-devices{color:#55627a;word-break:break-all;font-size:.7333rem}#box-panel .logic-preview:empty{display:none}#box-panel .box-row{align-items:center;gap:.5333rem;margin-bottom:.4rem;display:flex}#box-panel .box-row span{color:#55627a;white-space:nowrap}#box-panel input{font:inherit;color:#d8e4f4;background:#10141f;border:1px solid #1c2438;border-radius:.2667rem;flex:1;padding:.2667rem .5333rem}#box-panel .box-error{color:#dc4f4f;min-height:1.2rem;margin:.2667rem 0;font-size:.8rem}#box-panel .row{gap:.4rem;display:flex}#box-panel button{font:inherit;color:#d8e4f4;cursor:pointer;background:#14201b;border:1px solid #2c5744;border-radius:.3333rem;flex:1;padding:.4rem 0}#box-panel button:hover{border-color:#4f8f6f}.thruster-group.active{color:#9fe8ff;border-left-color:#7fc4ff}.power-label{color:#d8e4f4;pointer-events:none;white-space:nowrap;z-index:4;background:#080a12d1;border:1px solid #2b5f7a;border-radius:.2667rem;padding:1px .3333rem;font:11px ui-monospace,monospace;position:fixed;transform:translate(-50%,-50%)}.power-label.warn{color:#ffce8a;border-color:#7a5a2b}.power-label.bad{color:#ff9a9a;border-color:#7a2b2b;font-weight:700}#inspect-panel-legacy{color:#c8d4e8;pointer-events:none;z-index:6;background:#0c1018e0;border:1px solid #2b3a4f;border-radius:.4rem;width:17.3333rem;padding:.6667rem .8rem;font-size:.7333rem;line-height:1.5;position:absolute;bottom:.8rem;right:.8rem}#inspect-panel.hidden{display:none}#inspect-panel .title{color:#eaf2ff;font-size:.8667rem;font-weight:700}#inspect-panel .subtitle{color:#6d7f96;margin-bottom:.4rem}#inspect-panel .row{justify-content:space-between;gap:.6667rem;display:flex}#inspect-panel .row .k{color:#8fa3bd;white-space:nowrap}#inspect-panel .row .v{text-align:right}#inspect-panel .row.ok .v{color:#7fc4a8}#inspect-panel .row.warn .v{color:#ffce8a}#inspect-panel .row.bad .v{color:#ff6b6b}#inspect-panel .row.dim,#inspect-panel .row.dim .k,#inspect-panel .row.dim .v{color:#6d7f96}#inspect-panel .spawn{color:#8fa3bd;border-top:1px solid #2b3a4f;margin-top:.4rem;padding-top:.4rem}#inspect-panel .spawn b{color:#eaf2ff}#hud-regions{pointer-events:none;z-index:6;color:#c8d4e8;font-size:.7333rem;line-height:1.5;position:absolute;inset:0}#hud-regions.hidden{display:none}#hud-regions>div{gap:.4rem;display:flex;position:absolute}#hud-regions>div.empty{display:none}#hud-top{white-space:nowrap;background:#0c1018cc;border:1px solid #2b3a4f;border-radius:.9333rem;flex-direction:row;align-items:center;padding:.3333rem .8rem;top:.6667rem;left:50%;transform:translate(-50%)}#hud-left,#hud-right{flex-direction:column;max-width:16.6667rem;top:22%}#hud-left{align-items:flex-start;left:.8rem}#hud-right{text-align:right;align-items:flex-end;right:.8rem}#hud-bottom{flex-direction:row;bottom:.8rem;left:50%;transform:translate(-50%)}#hud-centre{flex-direction:column;width:16.6667rem;max-height:62vh;margin-left:2.2667rem;top:50%;left:50%;transform:translateY(-50%)}#hud-centre .hud-item{overflow-y:auto}.hud-item{background:#0c1018d1;border:1px solid #2b3a4f;border-radius:.3333rem;align-items:baseline;gap:.4rem;padding:.2rem .5333rem;display:flex}#hud-top .hud-item{background:0 0;border:none;padding:0 .2667rem}.hud-item .k{color:#8fa3bd;white-space:nowrap}.hud-item .v{color:#eaf2ff;font-variant-numeric:tabular-nums}.hud-item .v.moved{color:#ffe9b8}.hud-item .glyph{font-weight:700}.hud-item .msg{color:#eaf2ff}.hud-item.sev-notice{border-color:#3d5470}.hud-item.sev-warning{border-color:#7a5a2a}.hud-item.sev-warning .glyph,.hud-item.sev-warning .msg,.hud-item.sev-warning .v{color:#ffce8a}.hud-item.sev-critical{background:#300e0ed9;border-color:#8a3030}.hud-item.sev-critical .glyph,.hud-item.sev-critical .msg,.hud-item.sev-critical .v{color:#ff8f8f;font-weight:700}.hud-item .bar{background:#22303f;border-radius:.2rem;width:3.6rem;height:.3333rem;display:inline-block;overflow:hidden}.hud-item .bar i{background:#7fc4a8;height:100%;display:block}.hud-item.sev-warning .bar i{background:#ffce8a}.hud-item.sev-critical .bar i{background:#ff6b6b}.hud-item.kind-tools{gap:.6667rem}.hud-item .tool{color:#6d7f96}.hud-item .tool b{color:#8fa3bd}.hud-item .tool.on{color:#eaf2ff}.hud-item .tool.on b{color:#7fc4a8}.hud-item.kind-detail{flex-direction:column;align-items:stretch;gap:0;padding:.6rem .7333rem}.hud-item.kind-detail .title{color:#eaf2ff;font-size:.8667rem;font-weight:700}.hud-item.kind-detail .subtitle{color:#6d7f96;margin-bottom:.3333rem}.hud-item.kind-detail .row{justify-content:space-between;gap:.6667rem;display:flex}.hud-item.kind-detail .row.ok .v{color:#7fc4a8}.hud-item.kind-detail .row.warn .v{color:#ffce8a}.hud-item.kind-detail .row.bad .v{color:#ff6b6b}.hud-item.kind-detail .row.dim,.hud-item.kind-detail .row.dim .k,.hud-item.kind-detail .row.dim .v{color:#6d7f96}@media (prefers-reduced-motion:reduce){.hud-item,.hud-item .v.moved{transition:none}}.help .dim{color:#6d7f96}#flight-help{color:#c8d4e8;z-index:20;background:#0a0e15f5;border:1px solid #2b3a4f;border-radius:.5333rem;width:28rem;padding:1.2rem 1.4667rem;font-size:.8rem;line-height:1.65;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#flight-help.hidden{display:none}#flight-help h2{color:#eaf2ff;margin:0 0 .6667rem;font-size:1rem}#flight-help p{margin:0 0 .8rem}#flight-help b{color:#eaf2ff}#flight-help .dim,#flight-help .dim b{color:#6d7f96}button.ghost{color:#8fa3bd;background:0 0;border:1px solid #2b3a4f}button.ghost:hover{color:#eaf2ff;border-color:#3d5470}.palette-group{color:#8fa3bd;width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-top:1px solid #1d2735;align-items:center;gap:.4rem;margin-top:.27rem;padding:.27rem .4rem;font-size:.7333rem;display:flex}.palette-group:hover{color:#eaf2ff}.palette-group .caret{color:#55688a;transition:transform .12s;display:inline-block}.palette-group.open .caret{transform:rotate(90deg)}.palette-group .count{color:#55688a;margin-left:auto;font-size:.6667rem}.palette-group-body.hidden{display:none}@media (prefers-reduced-motion:reduce){.palette-group .caret{transition:none}}
