/* LAB 188 / SIGNAL — a performance surface, then silence around the work. */
.signal-lab{--sig-black:#08090b;--sig-paper:#fff;--sig-acid:#ddff00;--sig-rule:#d7d7d7;margin-top:28px;color:var(--sig-black)}
.signal-stage{position:relative;min-height:0;margin:0 calc(-1 * var(--gutter));overflow:hidden;background:#fff;isolation:isolate;outline:none}
.signal-stage>canvas{position:absolute;inset:0;display:block;width:100%;height:100%;background:#000;visibility:hidden}
.signal-arrival{position:relative;z-index:4;display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,.7fr);gap:28px 5vw;padding:25px var(--gutter) 48px;background:#fff;align-items:end}
.signal-heading{grid-column:1/-1}.signal-edition{display:flex;justify-content:space-between;gap:20px;font:10px/1.4 var(--mono);letter-spacing:.08em}.signal-arrival h1{margin:12px 0 0;font:400 clamp(90px,28.8vw,460px)/.82 var(--sans);letter-spacing:-.092em;transform:translateX(-.015em)}
.signal-cover{position:relative;align-self:stretch;min-height:300px;overflow:hidden;background:#08090b}.signal-cover img{display:block;position:absolute;width:100%;height:100%;object-fit:cover;inset:0}.signal-cover-register{position:absolute;bottom:17px;left:18px;font:10px/1.4 var(--mono);letter-spacing:.06em;color:#fff;mix-blend-mode:difference}
.signal-start{display:grid;gap:23px;align-self:end;padding-top:8px}.signal-start fieldset{margin:0;padding:0;border:0}.signal-start legend{margin-bottom:8px;font:10px/1.4 var(--mono);letter-spacing:.06em;color:#606067}.signal-choice{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.signal-choice:has(label:nth-child(3)[hidden]){grid-template-columns:repeat(2,minmax(0,1fr))}.signal-choice label{position:relative}.signal-choice input{position:absolute;opacity:0;pointer-events:none}.signal-choice span{display:grid;place-items:center;min-height:43px;border:1px solid var(--sig-rule);font:11px var(--mono);letter-spacing:.045em;cursor:pointer;transition:background .2s,border-color .2s}.signal-choice input:checked+span{background:var(--sig-black);color:#fff;border-color:var(--sig-black)}.signal-choice input:focus-visible+span{outline:2px solid #2145ff;outline-offset:3px}.signal-choice span:hover{border-color:#08090b}.signal-pace span{min-height:36px;font-size:10px}
.signal-source-detail{min-height:24px;margin-top:-16px;display:flex;align-items:baseline;justify-content:space-between;gap:10px}.signal-source-note{font:9px/1.5 var(--mono);letter-spacing:.02em;overflow-wrap:anywhere;color:#666;max-width:100%;margin:0}.signal-source-detail button{font:9px/1.5 var(--mono);white-space:nowrap;text-decoration:underline;text-underline-offset:3px;color:inherit}
.signal-take{display:flex;align-items:center;justify-content:space-between;gap:10px;font:10px/1.45 var(--mono);letter-spacing:.04em;color:#606067}.signal-take label{display:flex;align-items:center;gap:8px;white-space:nowrap}.signal-take input{min-width:0;width:9ch;font:inherit;letter-spacing:.04em;color:var(--sig-black);border:0;border-bottom:1px solid var(--sig-rule);border-radius:0;background:transparent;padding:7px 0}.signal-take button{min-height:36px;color:var(--sig-black);font:inherit;white-space:nowrap}.signal-begin{display:flex;align-items:center;justify-content:space-between;min-height:68px;padding:0 18px;background:var(--sig-acid);color:var(--sig-black);font:18px var(--mono);letter-spacing:.025em;border:1px solid var(--sig-acid);transition:background .2s,color .2s}.signal-begin span{font:34px var(--sans);line-height:1}.signal-begin:hover{background:var(--sig-black);color:#fff;border-color:var(--sig-black)}.signal-begin:focus-visible,.signal-start button:focus-visible,.signal-take input:focus-visible{outline:2px solid #2145ff;outline-offset:4px}.signal-error{padding:12px 0 0;margin:0;border-top:1px solid #d62540;color:#a91630;font:11px/1.5 var(--mono)}
.signal-register{position:absolute;z-index:5;top:max(20px,env(safe-area-inset-top));right:max(24px,env(safe-area-inset-right));left:max(24px,env(safe-area-inset-left));display:flex;justify-content:space-between;gap:25px;color:#fff;font:10px/1.5 var(--mono);letter-spacing:.055em;pointer-events:none;mix-blend-mode:difference;transition:opacity .35s}.signal-register>div{display:flex;gap:22px}.signal-register strong,.signal-register b{font-weight:400}.signal-register>div:last-child{text-align:right}
.signal-performance-controls{position:absolute;z-index:6;bottom:max(18px,env(safe-area-inset-bottom));left:50%;width:min(780px,calc(100% - 40px));transform:translateX(-50%);padding:12px 16px;background:rgba(10,11,14,.9);color:#fff;border:1px solid rgba(255,255,255,.23);border-radius:2px;backdrop-filter:blur(22px);font:11px/1.4 var(--mono);letter-spacing:.045em;transition:opacity .35s,translate .35s;box-shadow:0 8px 40px #0003}.signal-transport-line{display:flex;align-items:center;gap:17px}.signal-track{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#c7c9d0}.signal-performance-controls button{min-height:40px;padding:0 5px;color:inherit;white-space:nowrap;font:inherit;letter-spacing:inherit}.signal-performance-controls button:hover{color:var(--sig-acid)}.signal-performance-controls button:focus-visible,.signal-performance-controls input:focus-visible,.signal-performance-controls select:focus-visible{outline:1px solid var(--sig-acid);outline-offset:3px}.signal-performance-controls button[aria-pressed=true],.signal-performance-controls button[aria-expanded=true]{color:var(--sig-acid)}
.signal-seek{display:flex;align-items:center;gap:16px;margin:0 0 6px}.signal-seek input{flex:1;min-width:0}.signal-seek span{color:#a8abb2;min-width:5ch;text-align:right}.signal-performance-controls input[type=range]{height:28px;accent-color:var(--sig-acid);cursor:pointer;background:transparent}.signal-cues{display:flex;align-items:center;gap:13px;border-top:1px solid #ffffff29;padding-top:7px;margin-top:6px}.signal-cue-divider{flex:1}.signal-cues [data-signal-impact]{color:var(--sig-acid)}
.signal-mixer{display:grid;grid-template-columns:1fr 1fr;gap:5px 25px;padding:10px 0 3px;margin-top:8px;border-top:1px solid #ffffff29}.signal-mixer label{display:flex;gap:12px;align-items:center;color:#b9bbc3;font-size:10px}.signal-mixer input{min-width:0;flex:1;width:75px}.signal-mixer output{min-width:6ch;text-align:right;color:#fff}.signal-mixer select{padding:7px;background:#101116;border:1px solid #555760;color:#fff;font:10px var(--mono);flex:1;min-width:0}.signal-input-meter{display:flex;align-items:center;gap:12px;color:#b9bbc3;font-size:9px}.signal-input-meter span{min-width:8ch}.signal-input-meter meter{flex:1;min-width:30px;height:7px}.signal-performance-note{color:#dce2e8;margin:8px 0 0;border-top:1px solid #ffffff29;padding-top:8px;font-size:10px;line-height:1.5}
.signal-stage.controls-dim{cursor:none}.signal-stage.controls-dim .signal-register,.signal-stage.controls-dim .signal-performance-controls{opacity:0;pointer-events:none}.signal-stage.controls-dim .signal-performance-controls{translate:0 8px}.signal-stage.controls-dim .signal-performance-controls:focus-within{opacity:1;pointer-events:auto;translate:0 0;cursor:auto}
.signal-lab.is-performing .signal-stage{position:fixed;z-index:100000;inset:0;width:100vw;height:100vh;height:100svh;height:100dvh;min-height:0;margin:0;background:#000}.signal-lab.is-performing .signal-stage>canvas{visibility:visible}.signal-lab.is-performing~*{visibility:hidden}.signal-lab.is-performing .signal-about{display:none}.signal-lab.is-performing .signal-stage:fullscreen{width:100%;height:100%}.signal-lab.is-paused .signal-stage{cursor:auto}
.signal-debug{position:absolute;z-index:8;top:64px;left:24px;width:min(350px,calc(100% - 48px));max-height:calc(100% - 260px);overflow:auto;padding:13px;border:1px solid #ffffff40;background:#050505e8;color:#c7c3bb;backdrop-filter:blur(12px);font:10px/1.5 var(--mono)}.signal-debug header{display:flex;justify-content:space-between;color:var(--sig-acid)}.signal-debug pre{margin:13px 0;white-space:pre-wrap;font:10px/1.55 var(--mono)}.signal-debug label{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:8px;margin-top:7px}.signal-debug select{min-height:32px;border:1px solid #777;background:#111;color:#fff;font:10px var(--mono)}
.signal-about{margin:0;color:var(--ink);font:10px/1.5 var(--mono);letter-spacing:.055em}.signal-about summary{display:flex;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--line);cursor:pointer}.signal-about div{display:grid;grid-template-columns:1fr 1fr;gap:8vw;padding:22px 0 40px}.signal-about p{max-width:60ch;line-height:1.7;font:15px/1.6 var(--sans);letter-spacing:0}
@media(max-width:820px){.signal-arrival{grid-template-columns:1fr 1fr;gap:22px;padding:22px var(--gutter) 32px}.signal-arrival h1{font-size:27.8vw}.signal-cover{min-height:310px}.signal-start{gap:17px}.signal-choice span{font-size:10px}.signal-source-detail{display:block}.signal-take{gap:4px;font-size:9px}.signal-take label{gap:4px}.signal-take input{width:7.5ch}.signal-begin{min-height:58px}.signal-energy{display:none}.signal-register>div{display:grid;gap:3px}.signal-about div{grid-template-columns:1fr;gap:16px}}
@media(max-width:560px){.signal-lab{margin-top:10px}.signal-stage{min-height:0}.signal-arrival{grid-template-columns:1fr;gap:22px;padding:17px 18px 25px}.signal-edition{font-size:8px;letter-spacing:.015em;gap:8px}.signal-arrival h1{font-size:27.6vw;letter-spacing:-.09em;margin-top:18px}.signal-cover{min-height:0;height:clamp(190px,56vw,290px)}.signal-cover-register{font-size:8px;left:12px;bottom:12px}.signal-start{gap:17px;padding:0}.signal-choice span{min-height:40px}.signal-pace span{min-height:35px}.signal-source-detail{display:flex;min-height:14px;margin-top:-12px}.signal-source-note{font-size:8px}.signal-take{font-size:10px}.signal-take input{width:9ch}.signal-begin{min-height:57px}.signal-register{top:max(14px,env(safe-area-inset-top));left:14px;right:14px;font-size:9px;gap:12px}.signal-performance-controls{width:calc(100% - 24px);bottom:max(12px,env(safe-area-inset-bottom));padding:9px 11px}.signal-transport-line{gap:9px;font-size:10px;flex-wrap:wrap}.signal-track{flex-basis:calc(100% - 64px)}.signal-transport-line [data-signal-settings-toggle]{margin-left:auto}.signal-transport-line [data-signal-fullscreen]{order:3}.signal-transport-line [data-signal-exit]{order:4}.signal-cues{display:grid;grid-template-columns:repeat(3,1fr);gap:0 8px;padding-top:5px}.signal-cues button{min-height:42px;font-size:10px;text-align:center}.signal-cue-divider{display:none}.signal-mixer{grid-template-columns:1fr;gap:8px}.signal-mixer label{min-height:30px}.signal-debug{top:70px;left:14px;width:calc(100% - 28px)}.signal-performance-note{font-size:9px}}
@media(max-height:600px) and (orientation:landscape){.signal-arrival{grid-template-columns:1.3fr 1fr;padding-top:12px;padding-bottom:20px;gap:15px 30px}.signal-heading{grid-column:1}.signal-arrival h1{font-size:13vw}.signal-edition{font-size:8px}.signal-cover{grid-column:1;height:150px;min-height:0}.signal-start{grid-column:2;grid-row:1/3;gap:12px}.signal-register{top:10px}.signal-performance-controls{bottom:8px;padding:5px 12px}.signal-cues button{min-height:30px}.signal-mixer{position:absolute;bottom:100%;left:-1px;right:-1px;background:#101116;border:1px solid #555;padding:12px}.signal-debug{max-height:45vh}}
@media(prefers-reduced-motion:reduce){.signal-stage *{scroll-behavior:auto!important;transition-duration:.01ms!important}.signal-register,.signal-performance-controls{transition:none}}
.signal-lab [hidden]{display:none!important}

html.signal-performing{overflow:hidden}.signal-lab.is-performing .signal-stage{overscroll-behavior:contain;touch-action:manipulation}

.signal-mixer .signal-save-frame{border:1px solid #ffffff38;justify-self:end;padding:0 12px;min-height:32px;grid-column:2;grid-row:3}.signal-input-meter{grid-column:2;grid-row:2}@media(max-width:560px){.signal-mixer .signal-save-frame{grid-column:1;grid-row:5;justify-self:stretch}.signal-input-meter{grid-column:1;grid-row:4}}
