:root{--void:#050506;--panel:#060608d1;--panel-solid:#0a0a0c;--line:#f4f4f238;--line-strong:#f4f4f28c;--chalk:#f4f4f2;--ash:#9a9a97;--dim:#5c5c5a;--gap:10px;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace;--noise:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='180'%20height='180'%3E%3Cfilter%20id='n'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.82'%20numOctaves='3'%20stitchTiles='stitch'/%3E%3C/filter%3E%3Crect%20width='180'%20height='180'%20filter='url(%23n)'/%3E%3C/svg%3E")}html[data-contrast=high]{--void:#000;--panel:#000;--panel-solid:#000;--line:#fff;--line-strong:#fff;--chalk:#fff;--ash:#fff;--dim:#ccc}*{box-sizing:border-box;border-radius:0}html,body{background:var(--void);height:100%;color:var(--chalk);font-family:var(--mono);letter-spacing:.06em;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;padding:0;font-size:12px;line-height:1.35;overflow:hidden}#stage{touch-action:none;cursor:grab;width:100%;height:100%;display:block;position:fixed;inset:0}#stage.is-dragging{cursor:grabbing}.skip-link{z-index:50;background:var(--chalk);color:var(--void);text-transform:uppercase;padding:8px 12px;text-decoration:none;position:absolute;top:-100px;left:8px}.skip-link:focus{top:8px}:focus-visible{outline:2px solid var(--chalk);outline-offset:2px}html[data-contrast=high] :focus-visible{outline:3px solid #ff0}.fx{pointer-events:none;z-index:2;position:fixed;inset:0}.fx__scanlines{mix-blend-mode:multiply;opacity:.55;background:repeating-linear-gradient(#0000 0 2px,#00000047 3px,#0000 4px);position:absolute;inset:0}.fx__noise{background-image:var(--noise);opacity:.05;background-size:180px 180px;animation:.7s steps(4,end) infinite grain;position:absolute;inset:-50%}@keyframes grain{0%{transform:translate(0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-2%)}to{transform:translate(3%,1%)}}.fx__vignette{background:radial-gradient(#0000 42%,#0000008c 78%,#000000e0 100%);position:absolute;inset:0}.fx__corner{border:1px solid var(--line);width:26px;height:26px;position:absolute}.fx__corner--tl{border-bottom:0;border-right:0;top:10px;left:10px}.fx__corner--tr{border-bottom:0;border-left:0;top:10px;right:10px}.fx__corner--bl{border-top:0;border-right:0;bottom:10px;left:10px}.fx__corner--br{border-top:0;border-left:0;bottom:10px;right:10px}html[data-contrast=high] .fx__scanlines,html[data-contrast=high] .fx__noise,html[data-contrast=high] .fx__vignette{display:none}html[data-contrast=high] .fx__corner{border-color:#ff0}.boot{z-index:20;background:var(--void);place-items:center;transition:opacity .55s .15s;display:grid;position:fixed;inset:0}.boot.is-done{opacity:0;pointer-events:none}.boot__inner{color:var(--ash);text-transform:uppercase;letter-spacing:.24em;align-items:center;gap:12px;display:flex}.boot__bar{border:1px solid var(--line-strong);background:linear-gradient(90deg, var(--chalk) 0%, var(--chalk) 40%, transparent 40%);width:84px;height:8px;animation:1.1s linear infinite load}@keyframes load{0%{background-position:-60px 0}to{background-position:100px 0}}.hud{z-index:10;gap:var(--gap);pointer-events:none;grid-template:"title.diag""ctrl.diag"1fr"hint. ."/minmax(0,300px) 1fr minmax(0,268px);padding:18px;display:grid;position:fixed;inset:0}.hud>*{pointer-events:auto}.hud--xr{grid-template-columns:minmax(0,300px) 1fr minmax(0,268px)}.hud.is-collapsed>:not(.btn--float):not(.xr-slot){display:none}.panel--title{grid-area:title}.panel--left{grid-area:ctrl}.panel--hint{grid-area:hint}.rail{gap:var(--gap);flex-direction:column;grid-area:diag;min-width:0;min-height:0;display:flex}.rail>.panel{min-height:0}.panel--right{flex:auto}.panel--axes{flex:none;justify-content:center;padding:8px 10px 10px;display:flex}.panel--axes[hidden]{display:none}.panel{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);min-width:0}.panel--title{border-color:var(--line-strong);background:var(--panel-solid);padding:12px 14px 10px}.panel--title h1{letter-spacing:.12em;margin:0;font-size:15px;font-weight:700;line-height:1.15}.panel__meta{letter-spacing:.16em;color:var(--ash);margin:8px 0 0;font-size:9px}.panel__meta span{color:var(--chalk)}.panel--left{flex-direction:column;min-height:0;max-height:100%;display:flex}.panel__scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;min-height:0;padding:12px;overflow-y:auto}.panel__scroll::-webkit-scrollbar{width:6px}.panel__scroll::-webkit-scrollbar-thumb{background:var(--line-strong)}.panel__actions{border-top:1px solid var(--line);flex:none;grid-template-columns:repeat(3,1fr);display:grid}.panel__actions .btn+.btn{border-left:1px solid var(--line)}.panel--hint{letter-spacing:.16em;color:var(--ash);background:var(--panel);flex-wrap:wrap;align-self:end;gap:4px 14px;padding:7px 12px;font-size:9px;display:flex}.panel--hint span:before{content:"// ";color:var(--dim)}.group+.group{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}.group__title{letter-spacing:.28em;color:var(--chalk);margin:0 0 6px;font-size:10px;font-weight:700}.group__note,.control__hint{letter-spacing:.08em;color:var(--dim);text-transform:none;margin:0 0 8px;font-size:9px}.control{margin-bottom:12px}.control__head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.control__label{letter-spacing:.1em;color:var(--ash);font-size:10px}.control__value{font-variant-numeric:tabular-nums;color:var(--chalk);font-size:11px}.control__range{--fill:50%;--zero:50%;appearance:none;cursor:ew-resize;background:0 0;width:100%;height:18px;margin:4px 0 2px}.control__range::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--dim) 0, var(--dim) var(--zero), var(--chalk) var(--zero), var(--chalk) var(--fill), #f4f4f21f var(--fill));height:2px}.control__range::-moz-range-track{background:#f4f4f21f;height:2px}.control__range::-moz-range-progress{background:var(--chalk);height:2px}.control__range::-webkit-slider-thumb{appearance:none;background:var(--chalk);width:10px;height:16px;box-shadow:0 0 0 1px var(--void);border:0;margin-top:-7px}.control__range::-moz-range-thumb{background:var(--chalk);border:0;border-radius:0;width:10px;height:16px}.chips{gap:4px;margin:-4px 0 12px;display:flex}.chip{font:inherit;letter-spacing:.12em;color:var(--ash);border:1px solid var(--line);cursor:pointer;background:0 0;flex:1 1 0;padding:5px 2px;font-size:9px}.chip.is-on{color:var(--void);background:var(--chalk);border-color:var(--chalk)}.btn{font:inherit;letter-spacing:.16em;color:var(--chalk);border:0;border-top:1px solid var(--line);cursor:pointer;text-transform:uppercase;background:0 0;padding:8px 6px;font-size:9px}.btn:hover{background:var(--chalk);color:var(--void)}.btn:disabled{color:var(--dim);cursor:not-allowed;background:0 0}.btn--float{border:1px solid var(--line-strong);background:var(--panel-solid);display:none;position:fixed;top:18px;left:50%;transform:translate(-50%)}.btn--xr{border:1px solid var(--line-strong);background:var(--panel-solid);padding:10px 14px;position:fixed;bottom:64px;right:18px}.toggle{margin-bottom:4px}.toggle__btn{width:100%;font:inherit;letter-spacing:.1em;color:var(--dim);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:8px;padding:6px 2px;font-size:10px;display:flex}.toggle__box{border:1px solid var(--line-strong);background:0 0;flex:none;width:11px;height:11px}.toggle.is-on .toggle__box{background:var(--chalk)}.toggle.is-on .toggle__text,.toggle__btn:hover{color:var(--chalk)}.readout{border-bottom:1px dotted #f4f4f224;grid-template-columns:1fr auto;gap:8px;padding:3px 0;font-size:10px;display:grid}.readout__label{color:var(--dim);letter-spacing:.12em}.readout__value{color:var(--chalk);font-variant-numeric:tabular-nums}.axes{width:100%;margin:0;display:block}.axes__caption{letter-spacing:.14em;color:var(--dim);margin:0 0 6px;font-size:9px}.axes__canvas{aspect-ratio:1;width:100%;max-width:208px;height:auto;image-rendering:crisp-edges;border:1px solid var(--line);background:#f4f4f205;display:block}.modal{z-index:30;background:#000000d1;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal[hidden]{display:none}.modal__panel{background:var(--panel-solid);border:1px solid var(--line-strong);width:min(560px,100%);max-height:82vh;padding:18px;overflow-y:auto}.modal__panel h2{letter-spacing:.3em;margin:0 0 14px;font-size:12px}.modal__panel dl{grid-template-columns:1fr;gap:2px;margin:0 0 16px;display:grid}.modal__panel dt{letter-spacing:.24em;color:var(--chalk);margin-top:10px;font-size:10px}.modal__panel dd{color:var(--ash);border-left:1px solid var(--line);margin:0 0 0 12px;padding-left:8px;font-size:10px}.modal__panel .btn{border:1px solid var(--line-strong);width:100%}.noscript{z-index:40;text-align:center;background:var(--void);color:var(--chalk);letter-spacing:.2em;place-items:center;padding:24px;display:grid;position:fixed;inset:0}@media (max-width:1100px){.hud{grid-template-columns:minmax(0,268px) 1fr minmax(0,236px);padding:12px}}@media (max-width:860px){.hud{grid-template:"title""."1fr"ctrl"/1fr;gap:8px;padding:8px}.btn--float{top:calc(8px + env(safe-area-inset-top,0px));left:calc(8px + env(safe-area-inset-left,0px));min-height:44px;padding:12px;display:block;transform:none}.panel--title{margin-left:72px;padding:8px 10px}.panel--title h1{letter-spacing:.1em;font-size:11px}.panel--title h1 br{display:none}.panel__meta{margin-top:4px;font-size:8px}.panel--right{display:none}.rail{right:calc(8px + env(safe-area-inset-right,0px));top:calc(84px + env(safe-area-inset-top,0px));z-index:12;pointer-events:none;width:104px;display:block;position:fixed}.panel--axes{pointer-events:auto;background:var(--panel-solid);padding:4px}.axes__caption{display:none}.axes__canvas{max-width:100%}.panel--hint{display:none}.panel--left{max-height:46vh;margin-bottom:env(safe-area-inset-bottom,0px);align-self:end}.panel__actions .btn{padding:12px 6px}.hud.is-collapsed>.rail:not(.btn--float):not(.xr-slot){display:block}.btn--xr{right:calc(8px + env(safe-area-inset-right,0px));bottom:calc(8px + env(safe-area-inset-bottom,0px))}}@media (max-width:860px) and (orientation:landscape){.panel--left{max-height:50vh}.panel--title h1{font-size:10px}.rail{width:84px}}@media (max-height:520px) and (min-width:861px){.panel--title{display:none}}@media (prefers-reduced-motion:reduce){.fx__noise,.boot__bar{animation:none}.fx__scanlines{opacity:.35}.boot{transition:none}}
