:root{--bg:#14120d;--panel:#1d1a13;--panel-edge:#2c2718;--ink:#e8e2d0;--ink-dim:#9a917a;--gold:#d6b254;--gold-dim:#8a733a;--pass:#7fbf6a;--fail:#d96f5e}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);flex-direction:column;min-height:100vh;margin:0;font-family:Avenir Next,Segoe UI,system-ui,sans-serif;display:flex}.lab-header{border-bottom:1px solid var(--panel-edge);align-items:baseline;gap:1rem;padding:.9rem 1.4rem;display:flex}.lab-header h1{letter-spacing:.08em;color:var(--gold);text-transform:uppercase;margin:0;font-size:1.25rem}.tagline{color:var(--ink-dim);flex:1;margin:0;font-size:.85rem}.gallery-link{color:var(--gold);font-size:.85rem;text-decoration:none}.gallery-link:hover{text-decoration:underline}.lab-main{flex:1;min-height:0;display:flex}.lab-panel{background:var(--panel);border-right:1px solid var(--panel-edge);flex-shrink:0;width:330px;padding:1rem 1.2rem 2rem;overflow-y:auto}.lab-panel h2{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);margin:1.4rem 0 .5rem;font-size:.72rem}.lab-panel section:first-child h2{margin-top:0}.chips{flex-wrap:wrap;gap:.4rem;display:flex}.chip{border:1px solid var(--gold-dim);color:var(--ink);cursor:pointer;background:0 0;border-radius:999px;padding:.3rem .75rem;font-size:.8rem}.chip.active{background:var(--gold);border-color:var(--gold);color:#1d1a13;font-weight:600}.knob-row{grid-template-columns:1fr 4.2rem;grid-template-areas:"label number""slider slider""chip chip";align-items:center;gap:.15rem .5rem;margin-bottom:.65rem;display:grid}.knob-row label{text-transform:capitalize;grid-area:label;font-size:.82rem}.knob-row input[type=range]{width:100%;accent-color:var(--gold);grid-area:slider}.knob-row input[type=number]{background:var(--bg);width:100%;color:var(--ink);border:1px solid var(--panel-edge);border-radius:4px;grid-area:number;padding:.15rem .3rem;font-size:.8rem}.knob-chip{color:var(--fail);grid-area:chip;font-size:.72rem}.knob-empty{color:var(--ink-dim);font-size:.82rem}.knob-advanced{border-top:1px dashed var(--panel-edge);margin-top:.6rem;padding-top:.5rem}.knob-advanced summary{cursor:pointer;color:var(--ink-dim);margin-bottom:.5rem;font-size:.78rem}#machine-select{background:var(--bg);width:100%;color:var(--ink);border:1px solid var(--panel-edge);border-radius:4px;padding:.35rem .4rem;font-size:.82rem}#custom-dims{align-items:center;gap:.4rem;margin-top:.5rem;font-size:.78rem;display:flex}#custom-dims[hidden]{display:none}#custom-dims input{background:var(--bg);width:4rem;color:var(--ink);border:1px solid var(--panel-edge);border-radius:4px;padding:.15rem .3rem}#custom-dims .unit{color:var(--ink-dim)}.target-note{color:var(--ink-dim);margin:.5rem 0 0;font-size:.74rem}.actions{gap:.5rem;margin-top:1.2rem;display:flex}.actions button{border:1px solid var(--gold-dim);color:var(--gold);cursor:pointer;background:0 0;border-radius:6px;flex:1;padding:.55rem .6rem;font-size:.85rem}.actions button:first-child{background:var(--gold);border-color:var(--gold);color:#1d1a13;font-weight:600}.actions button:disabled{opacity:.35;cursor:not-allowed}.gate-panel dl{grid-template-columns:auto 1fr;gap:.15rem .8rem;margin:.5rem 0 0;font-size:.78rem;display:grid}.gate-panel dt{color:var(--ink-dim)}.gate-panel dd{margin:0}.gate-badge{letter-spacing:.06em;border-radius:4px;padding:.2rem .6rem;font-size:.78rem;font-weight:600;display:inline-block}.gate-badge.pass{color:var(--pass);border:1px solid var(--pass);background:#7fbf6a26}.gate-badge.fail{color:var(--fail);border:1px solid var(--fail);background:#d96f5e26}.gate-failure{color:var(--fail);margin:.4rem 0 0;font-size:.76rem}.trust-badge{letter-spacing:.04em;cursor:help;margin-top:.35rem;font-size:.72rem}.trust-badge.validated{color:var(--pass)}.trust-badge.range{color:var(--gold)}.trust-badge.custom,.trust-badge.unvalidated{color:var(--ink-dim)}.error-panel{border:1px solid var(--fail);color:var(--fail);white-space:pre-wrap;background:#d96f5e14;border-radius:6px;margin-top:1.2rem;padding:.7rem .8rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8rem}.lab-stage{flex:1;justify-content:center;align-self:flex-start;align-items:center;min-width:0;height:calc(100vh - 58px);padding:.5rem;display:flex;position:sticky;top:0}.view-tabs{z-index:2;gap:.35rem;display:flex;position:absolute;top:.8rem;left:1rem}.view-tab{background:var(--panel);border:1px solid var(--panel-edge);color:var(--ink-dim);cursor:pointer;border-radius:999px;padding:.25rem .7rem;font-size:.74rem}.view-tab.active{border-color:var(--gold);color:var(--gold)}.axis-view{aspect-ratio:1;border-radius:8px;width:min(76%,560px,72vh);overflow:hidden;box-shadow:0 6px 24px #00000073}.axis-view[hidden]{display:none}.axis-view svg{width:100%;height:100%;display:block}.process-note{color:var(--fail);margin:.5rem 0 0;font-size:.74rem}#orb-canvas{cursor:grab;touch-action:none}#orb-canvas.dragging{cursor:grabbing}.spinner{color:var(--gold);align-items:center;gap:.6rem;font-size:.8rem;display:flex;position:absolute;top:1rem;right:6.5rem}.spinner[hidden]{display:none}#spinner-label{animation:1.1s ease-in-out infinite pulse}.stop-button{color:var(--gold);border:1px solid var(--gold);cursor:pointer;background:0 0;border-radius:3px;padding:.15rem .6rem;font-size:.75rem}.stop-button:hover{background:#d6b25426}@keyframes pulse{50%{opacity:.35}}.code-toggle{z-index:2;background:var(--panel);border:1px solid var(--panel-edge);color:var(--ink-dim);cursor:pointer;border-radius:999px;padding:.25rem .8rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.74rem;position:absolute;top:.8rem;right:1rem}.code-toggle.active,.code-toggle:hover{border-color:var(--gold);color:var(--gold)}.code-drawer{background:var(--panel);border-top:1px solid var(--gold-dim);z-index:3;flex-direction:column;height:38%;min-height:120px;display:flex;position:absolute;bottom:0;left:0;right:0}.code-drawer[hidden]{display:none}.drawer-resize{cursor:ns-resize;flex-shrink:0;height:6px;margin-top:-3px}.drawer-header{border-bottom:1px solid var(--panel-edge);flex-shrink:0;align-items:center;gap:.6rem;padding:.3rem .9rem;display:flex}.drawer-title{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);font-size:.72rem}.drawer-hint{color:var(--ink-dim);flex:1;font-size:.72rem}.drawer-header button{border:1px solid var(--gold-dim);color:var(--gold);cursor:pointer;background:0 0;border-radius:4px;padding:.2rem .6rem;font-size:.72rem}.drawer-header button:hover{border-color:var(--gold)}.drawer-header a{border:1px solid var(--gold-dim);color:var(--gold);cursor:pointer;background:0 0;border-radius:4px;padding:.2rem .6rem;font-size:.72rem;text-decoration:none}.drawer-header a:hover{border-color:var(--gold)}.editor-body{flex:1;min-height:0;display:flex}.authoring-help{border-top:1px solid var(--panel-edge);color:var(--ink-dim);padding:.3rem .8rem .4rem;font-size:.72rem}.authoring-help summary{cursor:pointer;color:var(--gold-dim);letter-spacing:.06em;-webkit-user-select:none;user-select:none}.authoring-help[open] summary{color:var(--gold)}.authoring-help ul{margin:.4rem 0 .2rem;padding-left:1.2rem}.authoring-help li{margin-top:.25rem;line-height:1.5}.authoring-help code{color:var(--ink);font-family:ui-monospace,SF Mono,Menlo,monospace}.editor-gutter{text-align:right;min-width:2.4rem;color:var(--ink-dim);background:var(--bg);border-right:1px solid var(--panel-edge);-webkit-user-select:none;user-select:none;margin:0;padding:.5rem .4rem .5rem .8rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.78rem;line-height:1.45;overflow:hidden}#code-editor{background:var(--bg);color:var(--ink);resize:none;white-space:pre;border:none;outline:none;flex:1;padding:.5rem .8rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.78rem;line-height:1.45}.toast{background:var(--panel);border:1px solid var(--gold);color:var(--ink);z-index:10;border-radius:6px;padding:.55rem 1rem;font-size:.84rem;position:fixed;bottom:1.4rem;left:50%;transform:translate(-50%);box-shadow:0 4px 18px #00000080}@media (width<=760px){.lab-main{flex-direction:column-reverse}.lab-panel{border-right:none;border-top:1px solid var(--panel-edge);width:100%}.lab-stage{flex-direction:column;align-self:auto;height:auto;min-height:320px;position:static}.code-drawer{width:100%;height:240px;position:static}}
