:root,[data-theme=dark]{color-scheme:dark;--surface: #1A1510;--panel: #251F17;--panel-raised: #2E271D;--panel-inset: #201A13;--line: #3A3226;--shadow: rgba(0, 0, 0, .5);--ink: #E4DACA;--ink-dim: #9A8D79;--ink-faint: #5E5443;--lamp: #E09A3E;--lamp-glow: rgba(224, 154, 62, .28);--danger: #C9584A;--focus-ring: var(--lamp)}[data-theme=light]{color-scheme:light;--surface: #CBC3B2;--panel: #E6DFCE;--panel-raised: #F0EADB;--panel-inset: #DAD2BF;--line: #B9AE97;--shadow: rgba(60, 48, 32, .25);--ink: #2A241B;--ink-dim: #6E6252;--ink-faint: #A2967F;--lamp: #A96F1A;--lamp-glow: rgba(169, 111, 26, .22);--danger: #B23A2C;--focus-ring: var(--lamp)}:root,[data-theme=dark],[data-theme=light]{--well: #14100B;--well-line: #2A241B;--tape: #C2A878;--tape-dim: #7E6D50;--head-line: #E8B45A;--loop-bracket: var(--fn-loop);--glass: #120E09;--digits: #F0A43C;--digits-dim: #6B4E23;--meter-face: #EFE7D2;--meter-needle: #2A241C;--meter-scale: #4A4234;--meter-red: #C34A3D;--rec: #D0402F;--rec-glow: rgba(208, 64, 47, .35);--well-shadow: rgba(0, 0, 0, .45)}:root,[data-theme=dark]{--fn-tape: #E8B45A;--fn-loop: #8FAC62;--fn-loop-glow: rgba(143, 172, 98, .28);--fn-rec: #D0402F;--fn-send: #D98E3D;--orrery-head: #E8B45A;--orrery-thread: #C2A878}[data-theme=light]{--fn-tape: #B07C1E;--fn-loop: #5C7440;--fn-loop-glow: rgba(92, 116, 64, .22);--fn-rec: #B23A2C;--fn-send: #B06B22;--orrery-head: #443F8F;--orrery-thread: #55519E}:root,[data-theme=dark],[data-theme=light]{--cap: #EAE3D2;--cap-edge: #CFC6B0;--cap-shine: rgba(255, 255, 255, .38);--cap-line: #2A241C;--cap-rec: #C7402F;--nameplate: linear-gradient(180deg, #D8D2C4, #B8B1A0);--nameplate-ink: #23201A}:root{--font-label: "Archivo", system-ui, sans-serif;--font-counter: "DSEG7 Classic", monospace;--font-value: "Space Mono", ui-monospace, monospace}@media(prefers-color-scheme:light){:root:not([data-theme]){color-scheme:light;--surface: #CBC3B2;--panel: #E6DFCE;--panel-raised: #F0EADB;--panel-inset: #DAD2BF;--line: #B9AE97;--shadow: rgba(60, 48, 32, .25);--ink: #2A241B;--ink-dim: #6E6252;--ink-faint: #A2967F;--lamp: #A96F1A;--lamp-glow: rgba(169, 111, 26, .22);--fn-tape: #B07C1E;--fn-loop: #5C7440;--fn-loop-glow: rgba(92, 116, 64, .22);--fn-rec: #B23A2C;--fn-send: #B06B22;--danger: #B23A2C;--orrery-head: #443F8F;--orrery-thread: #55519E}}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}@font-face{font-family:Archivo;src:url(/fonts/Archivo-Variable.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap}@font-face{font-family:Space Mono;src:url(/fonts/SpaceMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Space Mono;src:url(/fonts/SpaceMono-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:DSEG7 Classic;src:url(/fonts/DSEG7Classic-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:DSEG7 Classic;src:url(/fonts/DSEG7Classic-Italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overscroll-behavior:none}body{background:var(--surface);color:var(--ink);font-family:var(--font-label);font-size:13px;overflow:hidden;-webkit-font-smoothing:antialiased;user-select:none}button{font-family:inherit;color:inherit;background:none;border:none;cursor:pointer}html.theme-anim body,html.theme-anim .landing,html.theme-anim .landing-logotype,html.theme-anim .landing-tagline,html.theme-anim .panel,html.theme-anim .header,html.theme-anim .strip,html.theme-anim .icon-btn,html.theme-anim .led-btn,html.theme-anim .midi-row,html.theme-anim .midi-chip,html.theme-anim .warn-banner,html.theme-anim .section-title,html.theme-anim .mini-label,html.theme-anim .header-note,html.theme-anim .keys-row,html.theme-anim .knob-label,html.theme-anim .knob-value,html.theme-anim .controls-pane,html.theme-anim .loop-btn{transition:background-color .15s ease,color .15s ease,border-color .15s ease}.app{display:grid;grid-template-rows:auto auto 1fr;grid-template-columns:1fr 340px;grid-template-areas:"header header" "topbar topbar" "deck side";height:100%;gap:10px;padding:10px;min-width:1080px}.header{grid-area:header;display:flex;align-items:center;gap:18px;padding:10px 16px;background:var(--nameplate);border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:2px}.wordmark{font-family:var(--font-label);font-size:22px;font-weight:800;font-stretch:125%;letter-spacing:.04em;color:var(--nameplate-ink)}.wordmark em{font-style:normal;color:inherit}.header .spacer{flex:1}.header-note{color:var(--ink-dim);font-size:12px}.header .icon-btn,.reel-select,.theme-toggle{font-family:var(--font-value);font-size:12px;letter-spacing:.04em;padding:6px 11px;border-radius:3px;background:var(--cap);border:1px solid var(--cap-edge);color:var(--cap-line);box-shadow:inset 0 1px 0 var(--cap-shine),0 1px 2px var(--shadow)}.header .icon-btn:hover,.reel-select:hover,.theme-toggle:hover{color:var(--cap-line);background:var(--cap);filter:brightness(1.03)}.header .icon-btn:active,.theme-toggle:active{transform:translateY(1px);box-shadow:inset 0 1px 0 var(--cap-shine)}.badge{font-family:var(--font-value);font-size:11px;letter-spacing:.08em;padding:5px 10px;border-radius:3px;background:var(--cap);border:1px solid var(--cap-edge);color:var(--cap-line);box-shadow:inset 0 1px 0 var(--cap-shine),0 1px 2px var(--shadow)}.badge:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px;vertical-align:1px;background:var(--cap-edge)}.badge.saved:before{background:var(--fn-tape);box-shadow:0 0 4px var(--lamp-glow)}.badge.unarchived:before{background:var(--lamp)}.badge.error:before{background:var(--danger)}.export-menu{position:relative;display:inline-flex}.export-pop{position:absolute;top:calc(100% + 6px);right:0;z-index:60;display:flex;flex-direction:column;gap:4px;padding:6px;min-width:136px}.export-pop .icon-btn{width:100%;text-align:left}.panel{background:var(--panel);border:1px solid var(--line);border-radius:4px;box-shadow:0 2px 8px var(--shadow)}.section-title{font-family:var(--font-label);font-stretch:85%;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim)}.topbar{grid-area:topbar;display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;padding:10px 16px}.transport{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.master-bar{margin-left:auto;display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:14px}.master-meters{display:flex;align-items:center;gap:8px}.master-meters .mini-label{width:auto}.master-group{display:flex;align-items:center;gap:6px}.master-group.vertical{flex-direction:column;align-items:stretch;gap:5px}.master-group.vertical .icon-btn{text-align:center}.trim-field{display:flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap}.master-sep{align-self:stretch;width:1px;min-height:34px;margin:0 2px;background:var(--line)}.counter{position:relative;font-family:var(--font-counter);font-size:25px;line-height:1.3;color:var(--digits);background:var(--glass);border:1px solid var(--well-line);border-radius:6px;padding:8px 16px 5px;min-width:218px;text-align:center;box-shadow:inset 0 3px 6px var(--well-shadow)}.counter .digits{position:relative;text-shadow:0 0 10px var(--lamp-glow)}.counter .digits-ghost{position:absolute;top:8px;left:16px;right:16px;color:var(--digits-dim);pointer-events:none}.counter small{display:block;font-family:var(--font-label);font-stretch:85%;font-size:9px;letter-spacing:.3em;color:var(--digits-dim);text-shadow:none}.tbuttons{display:flex;gap:8px;align-items:center;border-radius:4px;outline:1px solid var(--line);outline-offset:6px}.tbtn{width:54px;height:44px;border-radius:3px;border:1px solid var(--cap-edge);background:var(--cap);color:var(--cap-line);font-size:15px;box-shadow:inset 0 1px 0 var(--cap-shine),inset 0 -1px 0 var(--cap-edge),0 2px 2px var(--shadow);transition:transform 60ms,box-shadow .12s}.tbtn:active,.tbtn.held{transform:translateY(1px);box-shadow:inset 0 1px 0 var(--cap-shine),0 1px 1px var(--shadow)}.tbtn:disabled{color:color-mix(in srgb,var(--cap-line),transparent 65%);cursor:default;box-shadow:inset 0 1px 0 var(--cap-shine)}.tbtn.lit{transform:translateY(1px);box-shadow:inset 0 1px 0 var(--cap-shine),0 1px 1px var(--shadow),0 0 0 2px var(--lamp),0 0 12px var(--lamp-glow)}.tbtn .key{display:block;font-family:var(--font-value);font-size:8px;letter-spacing:.1em;color:color-mix(in srgb,var(--cap-line),transparent 40%);margin-top:1px}.tbtn.rec{background:var(--cap-rec);border-color:color-mix(in srgb,var(--cap-rec),var(--glass) 30%);color:var(--cap);font-size:18px}.tbtn.rec .key{color:color-mix(in srgb,var(--cap),transparent 30%)}.tbtn.rec.lit{box-shadow:inset 0 1px 0 var(--cap-shine),0 1px 1px var(--shadow),0 0 0 2px var(--rec),0 0 18px var(--rec-glow);animation:recpulse 1.4s ease-in-out infinite}@keyframes recpulse{50%{box-shadow:inset 0 1px 0 var(--cap-shine),0 1px 1px var(--shadow),0 0 0 2px var(--rec),0 0 5px var(--rec-glow)}}.tbtn.loop:not(:disabled):not(.lit):hover{color:var(--fn-loop)}.tbtn.loop.lit{background:var(--fn-loop);border-color:var(--fn-loop);color:var(--glass);box-shadow:inset 0 1px 0 var(--cap-shine),0 1px 1px var(--shadow),0 0 14px var(--fn-loop-glow)}.tbtn.loop.lit .key{color:color-mix(in srgb,var(--glass),transparent 25%)}.locate-group{display:flex;flex-direction:column;gap:4px;font-size:10px;color:var(--ink-faint)}.icon-btn{padding:2px 6px;font-family:var(--font-value);font-size:11px;border-radius:3px;border:1px solid var(--line);color:var(--ink-dim);background:var(--panel-raised);box-shadow:0 1px 1px var(--shadow)}.icon-btn:hover:not(:disabled){color:var(--ink)}.icon-btn:active:not(:disabled){transform:translateY(1px);box-shadow:none}.icon-btn:disabled{color:var(--ink-faint);cursor:default;box-shadow:none}.icon-btn.on{color:var(--lamp);border-color:var(--lamp);background:var(--lamp-glow)}.icon-btn.loop:hover:not(:disabled){color:var(--fn-loop);border-color:var(--fn-loop)}.icon-btn.loop.on{color:var(--glass);border-color:var(--fn-loop);background:var(--fn-loop);box-shadow:0 0 10px var(--fn-loop-glow)}.icon-btn.dir{min-width:24px;text-align:center;font-size:12px}.icon-btn.dir:hover:not(:disabled),.icon-btn.dir.rev{color:var(--fn-tape);border-color:var(--fn-tape)}.varispeed{padding:12px;display:flex;flex-direction:column;gap:12px}.varispeed>.section-title{align-self:flex-start}.varispeed-head{display:flex;align-items:center;justify-content:center;gap:20px}.quantize-control{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px}.quantize-control .icon-btn{min-width:78px;text-align:center}.knob-wrap{display:flex;flex-direction:column;align-items:center;gap:2px}.knob-label{font-family:var(--font-label);font-stretch:85%;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim)}.knob-value{font-family:var(--font-value);font-size:11px;color:var(--ink);text-align:center}.knob-value .unit{color:var(--ink-dim)}.knob-value.bent .val{color:var(--fn-tape)}.fine-trim{display:flex;flex-direction:column;align-items:center;gap:6px}.fine-trim.vertical .slider{writing-mode:vertical-lr;direction:rtl;flex:none;width:22px;height:104px;min-width:0;border:none;box-shadow:none;background:linear-gradient(to right,transparent calc(50% - 3px),var(--line) calc(50% - 3px) calc(50% - 2px),var(--panel-inset) calc(50% - 2px) calc(50% + 2px),var(--line) calc(50% + 2px) calc(50% + 3px),transparent calc(50% + 3px))}.fine-trim.vertical .slider::-webkit-slider-thumb{width:22px;height:12px;border-radius:3px;background:linear-gradient(to bottom,transparent 0 calc(50% - 1px),var(--cap-line) calc(50% - 1px) calc(50% + 1px),transparent calc(50% + 1px)),var(--cap);border:1px solid var(--cap-edge);box-shadow:inset 0 1px 0 var(--cap-shine),0 1px 2px var(--shadow);cursor:ns-resize}.deck{grid-area:deck;display:grid;grid-template-rows:repeat(4,1fr);gap:8px;padding:10px;min-height:0}.track-row{display:grid;grid-template-columns:384px 1fr;gap:10px;min-height:0}.strip{display:flex;align-items:stretch;gap:22px;padding:10px 14px;background:var(--panel);border:1px solid var(--line);border-radius:4px;overflow:hidden}.strip canvas,.strip .led-btn{flex-shrink:0}.col-quiet{display:flex;flex-direction:column;align-items:center;justify-content:space-between;width:46px;flex:0 0 auto;padding-bottom:2px}.tno{font-family:var(--font-value);font-size:20px;line-height:1;color:var(--ink-dim)}.fader-col{align-self:stretch;width:48px;flex:0 0 auto;min-height:0;overflow:hidden}.fader,.pan-knob{display:block;touch-action:none;cursor:ns-resize}.col-state{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:6px;width:90px;flex:0 0 auto}.tier{display:flex;align-items:center;justify-content:center;gap:8px}.tier .icon-btn.dir{min-width:24px;padding:3px 6px;font-size:11px;text-align:center}.tier.util .icon-btn{font-size:10px;padding:2px 6px}.loop-btn{font-family:var(--font-value);font-size:11px;letter-spacing:.08em;padding:3px 9px;border-radius:3px;border:1px solid var(--line);color:var(--ink-dim);background:var(--panel-raised);box-shadow:0 1px 1px var(--shadow)}.loop-btn:hover{color:var(--fn-loop);border-color:var(--fn-loop)}.loop-btn:active{transform:translateY(1px);box-shadow:none}.loop-btn.on{color:var(--glass);background:var(--fn-loop);border-color:var(--fn-loop);box-shadow:0 0 12px var(--fn-loop-glow)}.strip-row{position:relative;display:flex;align-items:center;gap:6px}.slider{-webkit-appearance:none;appearance:none;flex:1 1 50px;min-width:50px;height:4px;border-radius:2px;background:var(--panel-inset);border:1px solid var(--line);box-shadow:inset 0 1px 1px var(--shadow)}.slider::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:20px;border-radius:3px;background:linear-gradient(to right,transparent 0 calc(50% - 1px),var(--cap-line) calc(50% - 1px) calc(50% + 1px),transparent calc(50% + 1px)),var(--cap);border:1px solid var(--cap-edge);box-shadow:inset 0 1px 0 var(--cap-shine),0 1px 2px var(--shadow);cursor:ew-resize}.mini-label{font-family:var(--font-label);font-stretch:85%;font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim);width:22px;text-align:right}.led-btn{width:26px;height:26px;border-radius:50%;border:1px solid var(--ink-faint);background:var(--panel-inset);color:var(--ink-faint);font-size:10px;box-shadow:inset 0 1px 2px var(--shadow);flex-shrink:0}.led-btn.arm.on{background:var(--fn-rec);color:var(--glass);border-color:var(--fn-rec);box-shadow:0 0 12px var(--rec-glow)}.led-btn.mute{border-radius:5px;border-color:var(--line);background:var(--panel-raised);color:var(--ink-dim);box-shadow:0 1px 1px var(--shadow)}.led-btn.mute.on{background:var(--ink);color:var(--panel);border-color:var(--ink);box-shadow:none}.led-btn.punched{animation:recpulse 1.2s ease-in-out infinite}.ribbon{position:relative;min-height:0;border-radius:4px;border:1px solid var(--well-line);background:var(--well);overflow:hidden;box-shadow:inset 0 4px 6px -3px var(--well-shadow)}.ribbon canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.side{grid-area:side;display:flex;flex-direction:column;gap:10px;min-height:0}.controls{flex:1;min-height:0;padding:12px;display:flex;flex-direction:column;gap:10px}.controls-title{flex-shrink:0}.controls-pane{background:var(--panel-inset);border:1px solid var(--line);border-radius:4px;padding:10px}.controls .midi{flex:1 1 auto}.shortcuts{flex-shrink:0}.shortcuts-head{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;padding:0;cursor:pointer}.shortcuts-head:hover .section-title{color:var(--ink)}.shortcuts-toggle{font-size:10px;color:var(--ink-faint)}.shortcuts .keys-grid{margin-top:10px}.keys-grid{display:flex;flex-direction:column;gap:7px}.keys-row{display:flex;align-items:baseline;gap:10px;font-family:var(--font-label);font-stretch:85%;font-size:11px;color:var(--ink-dim)}.keys-row kbd{font-family:var(--font-value);font-size:10px;color:var(--cap-line);background:var(--cap);border:1px solid var(--cap-edge);border-radius:3px;padding:2px 6px;min-width:74px;text-align:center;flex-shrink:0;box-shadow:inset 0 1px 0 var(--cap-shine),0 1px 1px var(--shadow)}.trim-input{width:48px;font-family:var(--font-value);font-size:11px;background:var(--panel-inset);color:var(--ink);border:1px solid var(--line);border-radius:3px;padding:2px 4px}.master-tape{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.master-tape .mini-label{width:auto}.take-review{position:absolute;top:calc(100% + 8px);right:0;z-index:40;width:320px;padding:12px;display:flex;flex-direction:column;gap:10px}.take-review-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.take-wave{display:block;width:100%;height:56px;border-radius:3px;border:1px solid var(--well-line)}.trim-range{position:relative;height:22px}.trim-track{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:4px;border-radius:2px;background:var(--panel-inset);border:1px solid var(--line)}.trim-fill{position:absolute;top:50%;transform:translateY(-50%);height:4px;background:var(--fn-tape);box-shadow:0 0 6px var(--lamp-glow)}.trim-range input[type=range]{position:absolute;top:0;left:0;width:100%;height:22px;margin:0;background:none;border:none;box-shadow:none;-webkit-appearance:none;appearance:none;pointer-events:none}.trim-range input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:12px;height:22px;border-radius:3px;background:linear-gradient(to right,transparent 0 calc(50% - 1px),var(--cap-line) calc(50% - 1px) calc(50% + 1px),transparent calc(50% + 1px)),var(--cap);border:1px solid var(--cap-edge);box-shadow:inset 0 1px 0 var(--cap-shine),0 1px 2px var(--shadow);cursor:ew-resize}.trim-readout{display:flex;justify-content:space-between}.trim-readout .mini-label{width:auto}.take-review-actions{display:flex;gap:6px}.take-review-actions .icon-btn{flex:1;text-align:center}.icon-btn.danger:hover:not(:disabled){color:var(--danger);border-color:var(--danger)}.capture-rolling{font-family:var(--font-value);font-size:10px;letter-spacing:.12em;color:var(--fn-rec);animation:recblink 1.4s ease-in-out infinite}.capture-rolling.idle{visibility:hidden;animation:none}@keyframes recblink{50%{opacity:.45}}.capture-clock-stack{display:flex;flex-direction:column;align-items:center;gap:2px}.capture-clock{position:relative;font-family:var(--font-counter);font-size:13px;color:var(--digits);background:var(--glass);border:1px solid var(--well-line);border-radius:3px;padding:3px 6px 2px;min-width:52px;text-align:center}.capture-clock .digits{position:relative;text-shadow:0 0 6px var(--lamp-glow)}.capture-clock .digits-ghost{position:absolute;top:3px;left:6px;right:6px;color:var(--digits-dim);pointer-events:none}.capture-dropped{font-size:10px;color:var(--lamp);min-height:12px}.take-len{font-family:var(--font-value);font-size:11px;color:var(--ink)}.take-flag{font-family:var(--font-label);font-stretch:85%;font-size:8px;letter-spacing:.1em;color:var(--lamp);border:1px solid var(--lamp);border-radius:3px;padding:1px 4px}.take-flag.damaged{color:var(--danger);border-color:var(--danger)}select.reel-select{cursor:pointer}.landing{position:relative;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:var(--surface)}.landing-corner{position:absolute;top:14px;right:14px}.landing-logotype{font-family:var(--font-label);font-size:42px;font-weight:800;font-stretch:125%;letter-spacing:.04em;color:var(--ink);line-height:1}.landing-logotype.glow{animation:logo-warm 2.4s ease}@keyframes logo-warm{35%,65%{color:var(--fn-tape)}}.landing-tagline{font-family:var(--font-label);font-stretch:85%;font-size:11px;text-transform:uppercase;letter-spacing:.3em;color:var(--ink-dim)}.landing-stage{position:relative;width:min(72vh,72vw);height:min(72vh,72vw)}.landing-stage canvas{position:absolute;inset:0;width:100%;height:100%}.landing-actions{display:flex;align-items:center;gap:10px}.landing-cta,.landing-audio{font-family:var(--font-value);border-radius:3px;border:1px solid var(--cap-edge);background:var(--cap);color:var(--cap-line);box-shadow:inset 0 1px 0 var(--cap-shine),inset 0 -1px 0 var(--cap-edge),0 2px 2px var(--shadow);transition:transform 60ms,box-shadow .12s}.landing-cta{padding:10px 20px;font-size:12px;letter-spacing:.12em}.landing-cta:active,.landing-audio:active{transform:translateY(1px);box-shadow:inset 0 1px 0 var(--cap-shine),0 1px 1px var(--shadow)}.landing-audio{padding:10px 12px;font-size:12px;color:color-mix(in srgb,var(--cap-line),transparent 55%)}.landing-audio.on{color:var(--cap-line);box-shadow:inset 0 1px 0 var(--cap-shine),0 1px 1px var(--shadow),0 0 0 2px var(--lamp),0 0 10px var(--lamp-glow)}.landing-error{color:var(--danger);max-width:520px;text-align:center;line-height:1.6;font-family:var(--font-value);font-size:12px}.warn-banner{background:var(--lamp-glow);border:1px solid var(--lamp);color:var(--ink);border-radius:4px;font-size:11px;padding:5px 10px}.midi{display:flex;flex-direction:column;gap:8px;min-height:0;overflow:hidden}.midi-inputs{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.midi-error{color:var(--danger)}.midi-rows{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-height:100px;max-height:300px;overflow-y:auto;padding-right:2px}.midi-group{font-family:var(--font-label);font-stretch:85%;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin:7px 0 3px}.midi-group:first-child{margin-top:0}.midi-row{display:flex;align-items:center;gap:8px;width:100%;background:none;border:1px solid transparent;border-radius:4px;padding:3px 6px;color:var(--ink-dim);cursor:pointer;font:inherit;font-size:11px;text-align:left}.midi-row:hover{border-color:var(--line);color:var(--ink)}.midi-row.armed{border-color:var(--lamp);color:var(--lamp);animation:midi-pulse 1.1s ease-in-out infinite}.midi-row .midi-label{flex:1}.midi-chip{font-family:var(--font-value);font-size:10px;border:1px solid var(--line);border-radius:3px;padding:1px 6px;color:var(--ink-faint);min-width:62px;text-align:center;flex-shrink:0}.midi-chip.bound{color:var(--lamp);border-color:var(--lamp);background:var(--lamp-glow)}.midi-x{color:var(--ink-faint);padding:0 2px}.midi-x:hover{color:var(--danger)}@keyframes midi-pulse{50%{opacity:.5}}.quantize-keyboard{display:flex;flex-direction:column;gap:10px;padding-top:12px;border-top:1px solid var(--line)}.quantize-body{display:flex;flex-direction:column;gap:10px}.quantize-body.disabled{opacity:.4;pointer-events:none}.quant-select{font-family:var(--font-value);font-size:10px;background:var(--panel-inset);color:var(--ink);border:1px solid var(--line);border-radius:3px;padding:3px 4px;cursor:pointer}.quant-select.scale{flex:1;min-width:0}.quantize-kbd{position:relative;width:194px;height:64px;display:flex;gap:2px;margin:0 auto}.pkey{border-radius:0 0 3px 3px;font-family:var(--font-value);font-size:9px}.pkey.white{width:26px;height:64px;background:var(--panel-raised);border:1px solid var(--line);color:var(--ink-faint);display:flex;align-items:flex-end;justify-content:center;padding-bottom:3px;box-shadow:0 1px 1px var(--shadow)}.pkey.black{position:absolute;top:0;width:16px;height:38px;background:var(--well);border:1px solid var(--ink-faint);z-index:1;box-shadow:0 0 0 1px var(--panel),0 2px 3px var(--shadow)}.pkey.on,.pkey.black.on{background:var(--fn-tape);border-color:var(--fn-tape);color:var(--glass);box-shadow:0 0 10px var(--lamp-glow)}.pkey.black.on{border-color:color-mix(in srgb,var(--fn-tape),var(--glass) 35%);box-shadow:0 0 0 1px var(--panel),0 0 10px var(--lamp-glow)}.pkey.white:hover:not(.on){color:var(--ink)}.quantize-foot{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.quant-readout{font-family:var(--font-value);font-size:10px;color:var(--fn-tape);white-space:nowrap}.quantize-kbd-head{display:flex;align-items:center;gap:8px}.quantize-kbd-head .section-title{flex:1}.quant-octave{font-family:var(--font-value);font-size:10px;color:var(--lamp);border:1px solid var(--lamp);border-radius:3px;padding:1px 6px;white-space:nowrap}.pkey.sounding{outline:2px solid var(--lamp);outline-offset:1px;box-shadow:0 0 12px var(--lamp-glow)}.quantize-glide{display:flex;align-items:center;gap:6px}.quantize-glide.dim .mini-label,.quantize-glide.dim .quant-glide-val{color:var(--ink-faint)}.quant-glide-val{font-family:var(--font-value);font-size:10px;color:var(--ink-dim);min-width:44px;text-align:right;white-space:nowrap}@media(max-width:1500px){.lbl-extra{display:none}}@media(max-width:1240px){.app{grid-template-columns:1fr 300px}.track-row{grid-template-columns:330px 1fr}.strip{gap:16px;padding:8px 10px}.col-quiet{width:42px}.col-state{width:84px}}
