:root{--bg-dark:#04060d;--bg-elev:#0a0e1c;--panel-bg:#0c101ead;--panel-bg-strong:#0e1324e6;--panel-border:#94aadc24;--panel-border-strong:#a0b4e647;--glass-hi:inset 0 1px 0 #ffffff12;--text:#f2f6fd;--muted:#93a3bd;--muted-2:#5d6b84;--accent:#8b5cf6;--accent-2:#22d3ee;--accent-glow:#8b5cf659;--accent-glow-2:#22d3ee42;--danger:#fb4d67;--success:#2dd4a0;--warning:#f5b83d;--shadow-sm:0 4px 16px #00000073;--shadow:0 24px 70px #0000009e, 0 0 50px #8b5cf61a;--shadow-lg:0 34px 100px #000000b8, 0 0 70px #22d3ee17;--radius-sm:8px;--radius:12px;--radius-lg:16px;--radius-xl:22px;--font-ui:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Code", "SF Mono", monospace;--ease:cubic-bezier(.32, .72, .2, 1);--hairline:linear-gradient(120deg, color-mix(in srgb, var(--accent) 55%, transparent), color-mix(in srgb, var(--accent-2) 45%, transparent) 45%, transparent 80%)}*{box-sizing:border-box}::selection{background:color-mix(in srgb, var(--accent) 45%, transparent);color:#fff}html,body{background:var(--bg-dark);width:100%;height:100%;color:var(--text);font-family:var(--font-ui);font-feature-settings:"cv02", "cv03", "cv04", "cv11";-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;overflow:hidden}#app{background:radial-gradient(ellipse 90% 60% at 8% -6%, color-mix(in srgb, var(--accent) 13%, transparent), transparent 55%), radial-gradient(ellipse 70% 50% at 96% 4%, color-mix(in srgb, var(--accent-2) 10%, transparent), transparent 55%), radial-gradient(ellipse 80% 45% at 50% 108%, color-mix(in srgb, var(--accent) 7%, transparent), transparent 60%), linear-gradient(180deg, #05070f 0%, #010205 100%);width:100%;height:100%;position:relative}#app:after{content:"";pointer-events:none;z-index:1;opacity:.55;background:radial-gradient(circle at 22% 30%, color-mix(in srgb, var(--accent) 9%, transparent) 0%, transparent 34%), radial-gradient(circle at 78% 66%, color-mix(in srgb, var(--accent-2) 8%, transparent) 0%, transparent 38%);animation:26s ease-in-out infinite alternate ambient-drift;position:absolute;inset:-20%}@keyframes ambient-drift{0%{transform:translate(-1.5%,-1%)scale(1)}50%{transform:translate(1.2%,1.4%)scale(1.05)}to{transform:translate(-.8%,1%)scale(1)}}#viewport{z-index:0;position:absolute;inset:0}#viewport canvas{outline:none;display:block}audio{display:none}.boot-overlay{z-index:200;background:radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--accent) 14%, transparent), #04060d 72%);color:var(--muted);letter-spacing:.06em;flex-direction:column;justify-content:center;align-items:center;gap:18px;font-size:.92rem;display:flex;position:absolute;inset:0}.spinner{width:54px;height:54px;position:relative}.spinner:before,.spinner:after{content:"";border:2px solid #0000;border-radius:50%;position:absolute;inset:0}.spinner:before{border-top-color:var(--accent);border-right-color:color-mix(in srgb, var(--accent) 35%, transparent);box-shadow:0 0 24px var(--accent-glow);animation:.9s linear infinite spin}.spinner:after{border-bottom-color:var(--accent-2);animation:1.3s linear infinite reverse spin;inset:8px}@keyframes spin{to{transform:rotate(360deg)}}.ui{top:var(--topbar-h,76px);z-index:15;pointer-events:none;justify-content:flex-end;align-items:stretch;padding:0 16px 16px 0;display:flex;position:absolute;bottom:0;right:0}.drawer{pointer-events:auto;max-height:100%;transition:transform .28s var(--ease), opacity .22s ease;display:flex;position:relative}.panel{border-radius:var(--radius-xl) 0 0 var(--radius-xl);background:linear-gradient(180deg, #ffffff0d, #ffffff03 26%), var(--panel-bg);border:1px solid var(--panel-border);backdrop-filter:blur(28px)saturate(150%);width:min(432px,100vw - 40px);max-height:100%;box-shadow:var(--shadow), var(--glass-hi);border-right:0;flex-direction:column;padding:18px;display:flex;position:relative;overflow:hidden}.panel:before{content:"";background:var(--hairline);opacity:.85;pointer-events:none;height:1px;position:absolute;top:0;left:10%;right:10%}.panel-scroll{overscroll-behavior:contain;flex-direction:column;flex:auto;gap:16px;min-height:0;padding-right:4px;display:flex;overflow-y:auto}.panel::-webkit-scrollbar{width:5px}.panel::-webkit-scrollbar-track{background:0 0}.panel::-webkit-scrollbar-thumb{background:#a0b4e62e;border-radius:999px}.panel h1{letter-spacing:-.03em;background:linear-gradient(135deg, #fff, var(--muted));-webkit-text-fill-color:transparent;background-clip:text;margin:0;font-size:1.25rem;font-weight:800}.badge{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 32%, transparent), color-mix(in srgb, var(--accent-2) 32%, transparent));border:1px solid color-mix(in srgb, var(--accent) 55%, transparent);color:#e6ecff;font-family:var(--font-mono);letter-spacing:.08em;box-shadow:0 0 16px var(--accent-glow);-webkit-text-fill-color:currentColor;vertical-align:2px;border-radius:999px;padding:3px 9px;font-size:.64rem;font-weight:800}.tabs{border-radius:var(--radius-lg);background:#02040a8c;border:1px solid #94aadc1a;grid-template-columns:repeat(6,1fr);gap:4px;padding:4px;display:grid}.tab-btn{border-radius:var(--radius);min-height:46px;color:var(--muted-2);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:all .2s var(--ease);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:8px 2px 9px;font-size:.6rem;font-weight:800;display:flex;position:relative}.tab-btn .tab-icon{font-size:1rem;transition:transform .2s}.tab-btn:hover{color:var(--text);background:#ffffff0d}.tab-btn:hover .tab-icon{transform:translateY(-1px)scale(1.12)}.tab-btn.active{color:#fff;background:linear-gradient(160deg, color-mix(in srgb, var(--accent) 88%, white), color-mix(in srgb, var(--accent-2) 82%, black));box-shadow:0 6px 18px color-mix(in srgb, var(--accent) 42%, transparent), var(--glass-hi);text-shadow:0 1px 6px #00000059}.tab-btn.active:after{content:"";background:#ffffffbf;border-radius:999px;height:2px;position:absolute;bottom:3px;left:26%;right:26%;box-shadow:0 0 8px #fffc}.tab-body{flex-direction:column;gap:16px;animation:.24s fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.panel-section{gap:10px;display:grid}.panel-section h3{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;margin:2px 0 0;font-size:.64rem;font-weight:800;display:flex}.panel-section h3:before{content:"";background:var(--hairline);width:14px;height:2px;box-shadow:0 0 8px var(--accent-glow);border-radius:999px;flex:none}.ps-icon{filter:drop-shadow(0 0 6px var(--accent-glow));display:inline-block}.field{border-radius:var(--radius);background:#ffffff08;border:1px solid #94aadc17;gap:7px;padding:10px 12px 11px;transition:border-color .18s,background .18s,box-shadow .18s;display:grid}.field:hover{background:#ffffff0d;border-color:#a0b4e633}.field:focus-within{border-color:color-mix(in srgb, var(--accent) 65%, transparent);box-shadow:0 0 0 3px var(--accent-glow)}.field.disabled{opacity:.42;pointer-events:none}.field-row{gap:8px;display:flex}.field-row>.field{flex:1;min-width:0}.field-label{color:var(--muted);justify-content:space-between;align-items:baseline;gap:8px;font-size:.76rem;font-weight:700;display:flex}.field-label strong{color:var(--accent-2);font-family:var(--font-mono);background:#02050c99;border:1px solid #94aadc24;border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:700}.field input[type=range]{appearance:none;background:linear-gradient(90deg, var(--accent), var(--accent-2)) no-repeat, #94aadc24;background-size:var(--fill,50%) 100%, 100% 100%;cursor:pointer;border-radius:999px;outline:none;width:100%;height:5px}.field input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:3px solid var(--accent);width:16px;height:16px;box-shadow:0 0 12px var(--accent-glow), 0 2px 6px #00000080;background:#fff;border-radius:50%;transition:transform .13s}.field input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.28)}.field input[type=range]::-moz-range-thumb{border:3px solid var(--accent);width:15px;height:15px;box-shadow:0 0 12px var(--accent-glow);background:#fff;border-radius:50%}.field select{border-radius:var(--radius-sm);width:100%;color:var(--text);cursor:pointer;background:#060914f2;border:1px solid #94aadc24;padding:8px 10px;font-family:inherit;font-size:.82rem;transition:border-color .16s}.field select:hover,.field select:focus{border-color:var(--accent);outline:none}.field select option{color:var(--text);background:#0a0e1c}.toggle{border-radius:var(--radius);color:var(--muted);cursor:pointer;background:#ffffff08;border:1px solid #94aadc17;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:.8rem;font-weight:700;transition:border-color .16s,color .16s;display:flex}.toggle:hover{color:var(--text);border-color:#a0b4e633}.toggle.disabled{opacity:.42;pointer-events:none}.toggle input{display:none}.toggle-track{background:#94aadc29;border-radius:999px;flex-shrink:0;width:38px;height:21px;transition:background .22s,box-shadow .22s;position:relative}.toggle-thumb{width:17px;height:17px;transition:transform .22s var(--ease);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 4px #00000080}.toggle input:checked+.toggle-track{background:linear-gradient(135deg, var(--accent), var(--accent-2));box-shadow:0 0 14px var(--accent-glow)}.toggle input:checked+.toggle-track .toggle-thumb{transform:translate(17px)}.button-row{flex-wrap:wrap;gap:8px;display:flex}.btn{cursor:pointer;border-radius:var(--radius);color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));min-height:40px;box-shadow:0 8px 20px color-mix(in srgb, var(--accent) 32%, transparent);transition:transform .14s var(--ease), box-shadow .2s ease, filter .2s ease, background .2s ease;text-shadow:0 1px 4px #00000040;border:0;flex:1;padding:10px 14px;font-family:inherit;font-size:.82rem;font-weight:800}.btn:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 12px 28px color-mix(in srgb, var(--accent) 48%, transparent);transform:translateY(-2px)}.btn:active:not(:disabled){transform:translateY(0)scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.ghost{box-shadow:none;text-shadow:none;background:#ffffff0d;border:1px solid #94aadc29}.btn.ghost:hover:not(:disabled){box-shadow:0 0 18px color-mix(in srgb, var(--accent-2) 22%, transparent);background:#ffffff1a;border-color:#a0b4e652}.btn.ghost.active-ghost{border-color:var(--success);color:var(--success);box-shadow:0 0 16px #2dd4a047}.btn.danger{background:linear-gradient(135deg, var(--danger), #f97316);box-shadow:0 8px 20px #fb4d674d}.btn.danger:hover:not(:disabled){box-shadow:0 12px 26px #fb4d6773}.playlist{gap:4px;max-height:132px;margin-top:4px;display:grid;overflow-y:auto}.playlist::-webkit-scrollbar{width:4px}.playlist::-webkit-scrollbar-thumb{background:#a0b4e62e;border-radius:999px}.playlist-empty{color:var(--muted-2);border-radius:var(--radius-sm);text-align:center;background:#ffffff06;border:1px dashed #94aadc2e;padding:9px 10px;font-size:.75rem}.playlist-item{border-radius:var(--radius-sm);cursor:pointer;color:var(--muted);background:#ffffff08;border:1px solid #0000;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;font-size:.76rem;transition:all .15s;display:flex}.playlist-item:hover{color:var(--text);background:#ffffff12}.playlist-item.active{background:color-mix(in srgb, var(--accent) 20%, transparent);border-color:color-mix(in srgb, var(--accent) 52%, transparent);color:var(--text);box-shadow:0 0 14px color-mix(in srgb, var(--accent) 18%, transparent)}.playlist-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.playlist-remove{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;flex-shrink:0;padding:2px 6px;font-size:.7rem;transition:all .12s}.playlist-remove:hover{color:var(--danger);background:#fb4d6726}.midi-state-row{color:var(--muted);align-items:center;gap:8px;font-size:.78rem;display:flex}.midi-learn{flex-wrap:wrap;gap:6px;display:flex}.learn-chip{color:var(--muted);cursor:pointer;background:#ffffff0a;border:1px solid #94aadc24;border-radius:999px;padding:6px 10px;font-family:inherit;font-size:.7rem;font-weight:700;transition:all .16s}.learn-chip:hover{color:var(--text);border-color:var(--accent)}.learn-chip.armed{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;box-shadow:0 0 14px var(--accent-glow);border-color:#0000;animation:1.4s infinite armedPulse}@keyframes armedPulse{0%,to{box-shadow:0 0 10px var(--accent-glow)}50%{box-shadow:0 0 24px var(--accent-glow)}}.meta{color:var(--muted);border-radius:var(--radius);background:#02050c73;border:1px solid #94aadc14;gap:6px;padding:12px;font-size:.76rem;display:grid}.meta strong{color:var(--text)}.live-dot{background:#ffffff40;border-radius:999px;width:8px;height:8px;margin-right:6px;transition:all .15s;display:inline-block}.live-dot.hot{background:var(--success);box-shadow:0 0 12px var(--success)}.live-dot.rec{background:var(--danger);box-shadow:0 0 12px var(--danger);animation:1.1s ease-in-out infinite rec-pulse}@keyframes rec-pulse{0%,to{box-shadow:0 0 #fb4d678c}50%{box-shadow:0 0 0 6px #fb4d6700}}.hint{color:var(--muted);margin:0;font-size:.72rem;line-height:1.5}.hint code,.hint strong{color:var(--accent-2)}code{font-family:var(--font-mono);font-size:.72rem}.code-input{resize:vertical;border-radius:var(--radius);color:#d6f5ff;width:100%;min-height:190px;font-family:var(--font-mono);tab-size:2;background:#03050cf2;border:1px solid #94aadc24;padding:12px;font-size:.72rem;line-height:1.55;transition:border-color .16s,box-shadow .16s}.code-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);outline:none}.error-box{border-radius:var(--radius);color:var(--danger);background:#fb4d6714;border:1px solid #fb4d6766;gap:6px;padding:10px 12px;font-size:.72rem;display:grid}.error-box pre{font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;margin:0}.shortcut-grid{gap:8px;font-size:.76rem;display:grid}.shortcut-item{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;display:flex}.shortcut-item kbd{color:var(--text);font-family:var(--font-mono);white-space:nowrap;background:#94aadc1a;border:1px solid #94aadc33;border-bottom-width:2px;border-radius:6px;padding:3px 8px;font-size:.7rem}.hud{z-index:10;pointer-events:none;flex-wrap:wrap;gap:8px;max-width:min(560px,46vw);display:flex;position:absolute;bottom:20px;left:20px}.hud-chip{background:linear-gradient(180deg, #ffffff0d, #ffffff04), var(--panel-bg);border:1px solid var(--panel-border);backdrop-filter:blur(18px)saturate(150%);box-shadow:var(--shadow-sm), var(--glass-hi);color:var(--muted);animation:chipIn .32s var(--ease);border-radius:999px;align-items:center;gap:9px;padding:7px 13px 7px 10px;display:flex}@keyframes chipIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.hud-ico{font-size:.95rem;line-height:1}.hud-body{flex-direction:column;gap:1px;min-width:0;display:flex}.hud-label{letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2);font-size:.54rem;font-weight:800;line-height:1.2}.hud-value{color:var(--text);white-space:nowrap;text-overflow:ellipsis;max-width:190px;font-size:.74rem;font-weight:700;line-height:1.25;overflow:hidden}.hud-chip.loading{animation:chipIn .32s var(--ease), loadingGlow 1.6s ease-in-out infinite}@keyframes loadingGlow{0%,to{box-shadow:var(--shadow-sm)}50%{box-shadow:var(--shadow-sm), 0 0 18px var(--accent-glow)}}.hud-chip.obs{background:linear-gradient(135deg,#fb4d6738,#f9731638);border-color:#fb4d6780}.hud-chip.obs .hud-value{color:#fda4af;animation:2s infinite obsPulse}@keyframes obsPulse{0%,to{text-shadow:0 0 6px #fb4d6766}50%{text-shadow:0 0 14px #fb4d67d9}}.dropzone{border-radius:var(--radius-xl);border:2px dashed color-mix(in srgb, var(--accent) 45%, #fff3);text-align:center;pointer-events:none;z-index:100;backdrop-filter:blur(18px);background:#03050ce6;justify-content:center;align-items:center;padding:28px;display:none;position:absolute;inset:20px}.dropzone.active{animation:dropzoneIn .22s var(--ease);display:flex}@keyframes dropzoneIn{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}.dropzone strong{background:linear-gradient(135deg, var(--accent), var(--accent-2));-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px;font-size:1.6rem;display:block}.dropzone span{color:var(--muted);font-size:.9rem}.modal-backdrop{backdrop-filter:blur(12px);z-index:1000;background:#010206bd;justify-content:center;align-items:center;animation:.18s fadeIn;display:flex;position:fixed;inset:0}.modal{background:linear-gradient(180deg, #ffffff0d, #ffffff03 24%), var(--panel-bg-strong);border:1px solid var(--panel-border-strong);border-radius:var(--radius-xl);width:min(460px,92vw);max-height:84vh;box-shadow:var(--shadow-lg), var(--glass-hi);animation:modalIn .24s var(--ease);padding:26px;position:relative;overflow-y:auto}.modal:before{content:"";background:var(--hairline);pointer-events:none;height:1px;position:absolute;top:0;left:12%;right:12%}@keyframes modalIn{0%{opacity:0;transform:scale(.94)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal h2{letter-spacing:-.02em;margin-top:0;font-size:1.2rem}.shortcut-list{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:6px 20px;margin-top:14px;font-size:.86rem;display:grid}.shortcut-list .shortcut-item{border-radius:var(--radius-sm);background:#ffffff08;border:1px solid #94aadc12;padding:7px 10px}.shortcut-list .shortcut-item:hover{border-color:#a0b4e62e}#app.clean .topbar,#app.clean .ui,#app.clean .hud,#app.clean .dropzone{display:none!important}.look-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.look-chip{border-radius:var(--radius);color:var(--muted);cursor:pointer;transition:all .17s var(--ease);background:#ffffff09;border:1px solid #94aadc1f;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;font-family:inherit;font-size:.68rem;font-weight:700;display:flex}.look-chip .look-icon{font-size:1.15rem}.look-chip:hover{color:var(--text);border-color:#a0b4e64d;transform:translateY(-2px);box-shadow:0 8px 18px #00000059}.look-chip.active{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;box-shadow:0 8px 20px var(--accent-glow);border-color:#0000}.audio-monitor{border-radius:var(--radius);background:#02040ae0;border:1px solid #94aadc1a;width:100%;height:150px;box-shadow:inset 0 0 44px #0000008c}.demo-row{gap:10px;display:grid}.url-row{align-items:center;gap:8px;display:flex}.url-row .btn{flex:none}.url-input{border-radius:var(--radius);min-width:0;color:var(--text);background:#060914e6;border:1px solid #94aadc24;flex:1;padding:10px 12px;font-family:inherit;font-size:.78rem;transition:border-color .16s,box-shadow .16s}.url-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);outline:none}.color-row{gap:8px;display:flex}.color-pick{border-radius:var(--radius);color:var(--muted);cursor:pointer;background:#ffffff09;border:1px solid #94aadc1a;flex:1;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-size:.72rem;font-weight:700;transition:border-color .16s;display:flex}.color-pick:hover{border-color:#a0b4e638}.color-pick input[type=color]{cursor:pointer;background:0 0;border:0;border-radius:8px;width:38px;height:28px;padding:0}.color-pick input[type=color]::-webkit-color-swatch-wrapper{padding:2px}.color-pick input[type=color]::-webkit-color-swatch{border:1px solid #ffffff40;border-radius:6px}@media (width<=900px){:root{--topbar-h:128px}.topbar{flex-wrap:wrap;gap:8px}.topbar-status{border-radius:var(--radius);order:10;justify-content:center;width:100%;max-width:100%}.transport{order:2}.spectrum-pill{order:3}.topbar-actions{margin-left:auto}}@media (width<=760px){.panel{border-radius:18px 18px 0 0;width:calc(100vw - 24px);padding:14px}.ui{padding:0 10px 10px;inset:auto 0 0}.drawer{width:100%;max-height:62vh}.hud{max-width:calc(100vw - 24px);bottom:12px;left:12px}.tab-btn{font-size:.53rem}.topbar{padding:10px 12px}.brand{padding:6px 10px}.brand h1{font-size:.92rem}.transport-btn{width:44px;height:44px}.icon-btn{width:40px;height:40px}.panel-collapse{display:none}.panel-close{place-items:center;display:grid}.drawer-open{top:auto;bottom:18px}.ui.collapsed .drawer{transform:translateY(calc(100% + 20px))}.shortcut-list{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}}.boot-overlay.error{text-align:center;background:radial-gradient(circle at 50% 40%,#fb4d6724,#04060d 70%);padding:24px}.boot-error-icon{font-size:2.4rem}.boot-error-title{color:var(--text);letter-spacing:.02em;font-size:1.05rem;font-weight:800}.boot-error-msg{font-family:var(--font-mono);color:var(--danger);border-radius:var(--radius);word-break:break-word;background:#fb4d6714;border:1px solid #fb4d6759;max-width:min(520px,90vw);padding:10px 14px;font-size:.75rem}.boot-overlay.error .btn{background:linear-gradient(135deg, var(--danger), #f97316);flex:none;box-shadow:0 8px 20px #fb4d674d}.panel-error{border-radius:var(--radius);color:var(--muted);background:#fb4d6714;border:1px solid #fb4d6766;gap:10px;padding:18px;font-size:.8rem;display:grid}.panel-error .btn{flex:none}.btn:focus-visible,.tab-btn:focus-visible,.learn-chip:focus-visible,.look-chip:focus-visible,.playlist-remove:focus-visible,.url-input:focus-visible,.field select:focus-visible,.field input[type=range]:focus-visible,.color-pick input[type=color]:focus-visible,.icon-btn:focus-visible,.transport-btn:focus-visible,.lang-btn:focus-visible,.mode-search:focus-visible,.mode-cell-btn:focus-visible,.mode-fav-btn:focus-visible,.toggle:has(input:focus-visible){outline:2px solid var(--accent-2);outline-offset:2px}.topbar{z-index:20;pointer-events:none;align-items:center;gap:10px;padding:14px 18px;display:flex;position:absolute;top:0;left:0;right:0}.brand{pointer-events:auto;background:linear-gradient(180deg, #ffffff0f, #ffffff05), var(--panel-bg);border:1px solid var(--panel-border);backdrop-filter:blur(20px)saturate(150%);box-shadow:var(--shadow-sm), var(--glass-hi);border-radius:999px;align-items:center;gap:10px;padding:8px 15px 8px 12px;display:flex;position:relative;overflow:visible}.brand-logo{width:34px;height:34px;filter:drop-shadow(0 0 8px var(--accent-glow));place-items:center;font-size:1.15rem;display:grid;position:relative}.brand-ring{border:1.5px solid color-mix(in srgb, var(--accent) 65%, transparent);border-top-color:#0000;border-radius:50%;animation:3.2s linear infinite brandOrbit;position:absolute;inset:0}@keyframes brandOrbit{to{transform:rotate(360deg)}}.brand h1{letter-spacing:-.03em;background:linear-gradient(135deg, #fff, var(--muted));-webkit-text-fill-color:transparent;white-space:nowrap;background-clip:text;margin:0;font-size:1.05rem;font-weight:800}.transport{background:linear-gradient(180deg, #ffffff0f, #ffffff05), var(--panel-bg);border:1px solid var(--panel-border);backdrop-filter:blur(20px)saturate(150%);box-shadow:var(--shadow-sm), var(--glass-hi);pointer-events:auto;border-radius:999px;gap:5px;padding:6px;display:flex}.transport-btn{appearance:none;cursor:pointer;width:40px;height:40px;color:var(--text);transition:all .17s var(--ease);background:#ffffff0d;border:1px solid #94aadc1f;border-radius:50%;place-items:center;font-size:1rem;display:grid}.transport-btn:hover:not(:disabled){background:#ffffff1f;transform:translateY(-2px);box-shadow:0 6px 16px #0006}.transport-btn:active:not(:disabled){transform:scale(.92)}.transport-btn:disabled{opacity:.4;cursor:not-allowed}.transport-btn.active{background:linear-gradient(135deg, var(--accent), var(--accent-2));box-shadow:0 0 18px var(--accent-glow);border-color:#0000}.transport-btn.rec.active{background:linear-gradient(135deg, var(--danger), #f97316);animation:1.1s ease-in-out infinite rec-pulse;box-shadow:0 0 20px #fb4d678c}.spectrum-pill{pointer-events:none;background:linear-gradient(180deg, #ffffff0a, #ffffff03), var(--panel-bg);border:1px solid var(--panel-border);backdrop-filter:blur(20px)saturate(150%);box-shadow:var(--shadow-sm), var(--glass-hi);border-radius:999px;align-items:center;gap:10px;padding:6px 12px;display:flex}.spectrum-pill:before{content:"LIVE";font-family:var(--font-mono);letter-spacing:.22em;color:var(--accent-2);text-shadow:0 0 8px var(--accent-glow-2);font-size:.56rem;font-weight:800}.live-spectrum{display:block}.topbar-spacer{flex:1}.topbar-status{background:var(--panel-bg);border:1px solid var(--panel-border);backdrop-filter:blur(20px);box-shadow:var(--shadow-sm), var(--glass-hi);color:var(--muted);pointer-events:none;border-radius:999px;align-items:center;gap:6px;max-width:min(360px,30vw);padding:9px 14px;font-size:.72rem;display:flex}.topbar-status .status-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.topbar-status .rec-timer{font-family:var(--font-mono);color:var(--text);white-space:nowrap;border-left:1px solid #94aadc24;padding-left:8px;font-size:.72rem}.topbar-status .rec-timer.paused{color:var(--warning)}.topbar-actions{background:linear-gradient(180deg, #ffffff0f, #ffffff05), var(--panel-bg);border:1px solid var(--panel-border);backdrop-filter:blur(20px)saturate(150%);box-shadow:var(--shadow-sm), var(--glass-hi);pointer-events:auto;border-radius:999px;align-items:center;gap:5px;padding:6px;display:flex}.icon-btn{appearance:none;cursor:pointer;width:34px;height:34px;color:var(--text);background:#ffffff0d;border:1px solid #94aadc1f;border-radius:50%;place-items:center;font-size:.95rem;transition:all .16s;display:grid}.icon-btn:hover{background:#ffffff1f;transform:translateY(-1px)}.icon-btn:active{transform:scale(.92)}.icon-btn.active{background:linear-gradient(135deg, var(--accent), var(--accent-2));box-shadow:0 0 14px var(--accent-glow);border-color:#0000}.lang-toggle{background:#ffffff0f;border:1px solid #94aadc1a;border-radius:10px;flex:none;gap:2px;padding:2px;display:inline-flex}.lang-btn{appearance:none;color:var(--muted);letter-spacing:.06em;cursor:pointer;font-size:.68rem;font-weight:700;font-family:var(--font-mono);background:0 0;border:0;border-radius:8px;padding:4px 9px;transition:background .18s,color .18s,transform .12s}.lang-btn:hover{color:#fff}.lang-btn:active{transform:scale(.94)}.lang-btn.active{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;box-shadow:0 2px 10px var(--accent-glow)}.panel-close{appearance:none;cursor:pointer;border:1px solid var(--panel-border);width:30px;height:30px;color:var(--text);z-index:6;background:#ffffff14;border-radius:50%;font-size:.8rem;transition:background .16s;display:none;position:absolute;top:10px;right:10px}.panel-close:hover{background:#ffffff29}.panel-collapse{appearance:none;cursor:pointer;background:var(--panel-bg);backdrop-filter:blur(18px);border:1px solid var(--panel-border);width:32px;height:48px;color:var(--muted);z-index:5;border-right:0;border-radius:10px 0 0 10px;font-size:.9rem;transition:all .16s;position:absolute;top:22px;left:-16px}.panel-collapse:hover{color:#fff;background:#ffffff1f}.ui.collapsed .drawer{opacity:0;pointer-events:none;transform:translate(calc(100% + 20px))}.drawer-open{appearance:none;cursor:pointer;background:var(--panel-bg);border:1px solid var(--panel-border);backdrop-filter:blur(18px);width:46px;height:46px;box-shadow:0 8px 24px #00000080, var(--glass-hi);pointer-events:auto;animation:chipIn .3s var(--ease);border-radius:50%;font-size:1.25rem;transition:transform .16s;position:absolute;top:12px;right:18px}.drawer-open:hover{transform:translateY(-2px)scale(1.05)}.drawer-open:active{transform:scale(.92)}.mode-fade{z-index:300;pointer-events:none;background:#000;animation:.34s forwards modeFade;position:fixed;inset:0}@keyframes modeFade{0%{opacity:0}30%{opacity:1}to{opacity:0}}.mode-picker{flex-direction:column;gap:12px;display:flex}.mode-search{border-radius:var(--radius-sm);width:100%;color:var(--text);background:#ffffff0a;border:1px solid #94aadc24;min-height:40px;padding:10px 12px;font-family:inherit;font-size:.82rem;transition:border-color .16s,box-shadow .16s}.mode-search::placeholder{color:var(--muted-2)}.mode-search:focus,.mode-search:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);outline:none}.mode-group{flex-direction:column;gap:6px;display:flex}.mode-group-title{letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2);padding-left:2px;font-size:.62rem;font-weight:800}.mode-grid{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.mode-cell{border-radius:var(--radius);transition:all .17s var(--ease);background:#ffffff09;border:1px solid #94aadc1a;display:flex;position:relative;overflow:hidden}.mode-cell:hover{border-color:#a0b4e647;transform:translateY(-1px)}.mode-cell.active{background:linear-gradient(135deg, var(--accent), var(--accent-2));box-shadow:0 8px 20px var(--accent-glow);border-color:#0000}.mode-cell-btn{min-height:44px;color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:8px;padding:10px 8px;font-family:inherit;font-size:.72rem;font-weight:700;display:flex}.mode-cell.active .mode-cell-btn{color:#fff}.mode-cell:not(.active) .mode-cell-btn:hover{color:var(--text)}.mode-cell-icon{flex:none;font-size:1.05rem}.mode-cell-label{line-height:1.2}.mode-fav-btn{width:36px;min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-left:1px solid #94aadc1a;flex:none;justify-content:center;align-items:center;font-size:.95rem;transition:color .16s,transform .16s;display:flex}.mode-cell.active .mode-fav-btn{color:#ffffffd9;border-left-color:#ffffff40}.mode-fav-btn:hover{transform:scale(1.15)}.mode-fav-btn.active{color:#fbbf24}.mode-cell.active .mode-fav-btn.active{color:#fde68a}.mode-empty{color:var(--muted-2);text-align:center;padding:16px 0;font-size:.78rem}@media (width<=480px){.mode-grid{grid-template-columns:1fr}}.preset-slot-grid{gap:8px;display:grid}.preset-slot{border-radius:var(--radius);background:#ffffff09;border:1px solid #94aadc1a;align-items:center;gap:10px;padding:9px 11px;transition:border-color .18s,background .18s;display:flex}.preset-slot:hover{border-color:#a0b4e638}.preset-slot-num{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;width:26px;height:26px;box-shadow:0 2px 8px var(--accent-glow);border-radius:8px;flex:none;place-items:center;font-size:.72rem;font-weight:800;display:grid}.preset-slot-info{flex:1;justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.preset-slot-name{color:var(--muted);font-size:.74rem;font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.preset-slot-actions{flex:none;gap:6px;display:inline-flex}.preset-slot-actions .btn{padding:5px 10px;font-size:.68rem}.preset-slot-clear.btn{color:var(--danger);box-shadow:none;background:0 0;border:1px solid #fb4d6766}@media (width<=760px){.preset-slot-info{flex-direction:column;align-items:flex-start}.preset-slot-actions{width:100%}.preset-slot-actions .btn{flex:1;justify-content:center}}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px;display:grid}.stats-grid>div{border-radius:var(--radius);text-align:center;background:#ffffff0a;border:1px solid #94aadc1a;flex-direction:column;gap:2px;padding:10px 8px;transition:border-color .18s,transform .15s;display:flex}.stats-grid>div:hover{border-color:#a0b4e63d;transform:translateY(-1px)}.stats-grid strong{font-size:1.15rem;font-family:var(--font-mono);background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#0000;background-clip:text}.stats-grid span{color:var(--muted-2);text-transform:uppercase;letter-spacing:.07em;font-size:.62rem;font-weight:700}.progress-track{cursor:pointer;transition:filter .15s;position:relative}.progress-track:hover{filter:brightness(1.3)}.shot-gallery{gap:12px;display:grid}.shot-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.shot-card{border-radius:var(--radius);background:#ffffff09;border:1px solid #94aadc1a;flex-direction:column;margin:0;transition:border-color .18s,transform .15s;display:flex;overflow:hidden}.shot-card:hover{border-color:#a0b4e642;transform:translateY(-2px)}.shot-thumb{aspect-ratio:16/9;background:#000;display:block}.shot-thumb img{object-fit:cover;width:100%;height:100%;display:block}.shot-card figcaption{gap:6px;padding:8px;display:grid}.shot-meta{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.shot-label{color:var(--text);margin-right:auto;font-size:.72rem;font-weight:600}.shot-chip{color:var(--muted);font-size:.58rem;font-family:var(--font-mono);background:#ffffff0f;border:1px solid #94aadc1a;border-radius:999px;padding:2px 6px}.shot-note{width:100%;color:var(--text);background:#03050c99;border:1px solid #94aadc24;border-radius:8px;padding:6px 8px;font-size:.7rem}.shot-note::placeholder{color:var(--muted-2)}.shot-actions{flex-wrap:wrap;gap:4px;display:flex}.shot-btn{flex:1;border-radius:8px!important;min-height:30px!important;padding:4px 6px!important;font-size:.68rem!important}.shot-btn.danger-text{color:var(--danger);flex:none}.rec-grid{grid-template-columns:1fr;gap:12px;display:grid}.rec-card{border-radius:var(--radius);background:#ffffff09;border:1px solid #94aadc1a;margin:0;overflow:hidden}.rec-video{aspect-ratio:16/9;background:#000;width:100%;display:block}.rec-card figcaption{gap:6px;padding:8px;display:grid}.tabs .tab-btn{transition:color .18s,background .18s,transform .12s,box-shadow .2s}.tabs .tab-btn:hover:not(.active){background:#ffffff0f;transform:translateY(-1px)}.tabs .tab-btn:active{transform:scale(.96)}.tabs .tab-btn .tab-icon{transition:transform .2s;display:inline-block}.tabs .tab-btn.active .tab-icon{animation:.35s icon-pop}@keyframes icon-pop{0%{transform:scale(.6)}60%{transform:scale(1.25)}to{transform:scale(1)}}.btn{will-change:transform}.toggle-grid{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.toggle-grid .toggle{border-radius:var(--radius-sm);padding:8px 10px;font-size:.72rem}@media (prefers-reduced-motion:reduce){#app:after,.brand-ring,.spinner:before,.spinner:after,.live-dot.rec,.transport-btn.rec.active,.learn-chip.armed,.hud-chip.loading,.hud-chip.obs .hud-value,.tabs .tab-btn.active .tab-icon{animation:none!important}.panel-scroll{scroll-behavior:auto}}
