@font-face{font-family:D-DIN;src:url(/assets/fonts/D-DIN.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:D-DIN;src:url(/assets/fonts/D-DIN-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:D-DIN Condensed;src:url(/assets/fonts/D-DINCondensed.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:D-DIN Condensed;src:url(/assets/fonts/D-DINCondensed-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--bg-chassis: #090b0e;--bg-surface: #121418;--bg-panel: #161c24;--bg-card: #1a202a;--bg-elevated: #222936;--bg-knob: #151921;--border-subtle: #242c38;--border-active: #3a475a;--border-highlight: rgba(255, 255, 255, .08);--plate-titanium: #9aa2b0;--plate-glint: rgba(255, 255, 255, .35);--plate-shadow: rgba(0, 0, 0, .7);--intaglio-shadow: #22262e;--accent-emerald: #00e6a0;--accent-emerald-glow: rgba(0, 230, 160, .35);--accent-cyan: #00e5ff;--accent-cyan-glow: rgba(0, 229, 255, .35);--accent-amber: #ff9d26;--accent-amber-glow: rgba(255, 157, 38, .35);--accent-ruby: #ff3366;--accent-ruby-glow: rgba(255, 51, 102, .35);--text-primary: #f0f4f8;--text-secondary: #94a3b8;--text-muted: #64748b;--font-sans: "D-DIN", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display: "D-DIN Condensed", "D-DIN", -apple-system, sans-serif;--font-condensed: "D-DIN Condensed", "D-DIN", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--shadow-chassis: 0 8px 32px rgba(0, 0, 0, .8), inset 0 1px 0 rgba(255, 255, 255, .05);--shadow-bevel: inset 1px 1px 0 var(--plate-glint), inset -1px -1px 0 var(--plate-shadow)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;user-select:none;-webkit-user-select:none;touch-action:manipulation}body{background-color:var(--bg-chassis);color:var(--text-primary);font-family:var(--font-sans);height:100vh;width:100vw;overflow:hidden;-webkit-font-smoothing:antialiased}#app{display:flex;flex-direction:column;height:100%;width:100%;background:radial-gradient(circle at 50% 0%,#151a22 0%,var(--bg-chassis) 75%)}.eidolon-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1.25rem;background:linear-gradient(180deg,#181d26,#10141a);border-bottom:1px solid var(--border-subtle);box-shadow:0 4px 16px #00000080;z-index:10}.nameplate-badge{display:flex;align-items:center;gap:.85rem;background:linear-gradient(135deg,#2b3340,#1c222c,#151a22);border:1px solid #3d485a;border-radius:4px;padding:.35rem .85rem;position:relative;box-shadow:0 2px 8px #0009,inset 0 1px #ffffff26}.torx-screw{width:6px;height:6px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#8c96a5,#2a303a 80%);box-shadow:inset 0 1px 1px #000c,0 1px #ffffff1a;position:absolute}.torx-screw.tl{top:3px;left:3px}.torx-screw.tr{top:3px;right:3px}.torx-screw.bl{bottom:3px;left:3px}.torx-screw.br{bottom:3px;right:3px}.power-jewel{width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 40% 40%,#a6ffdf 0%,var(--accent-emerald) 60%,#008f63 100%);box-shadow:0 0 10px var(--accent-emerald),0 0 20px var(--accent-emerald-glow);position:relative;flex-shrink:0;border:1px solid rgba(0,0,0,.6)}.nameplate-typography{display:flex;flex-direction:column}.nameplate-title{font-family:var(--font-display);font-size:1.15rem;font-weight:700;letter-spacing:.15em;color:#fff;line-height:1;text-shadow:0 1px 2px rgba(0,0,0,.8)}.nameplate-subline{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.12em;color:var(--plate-titanium);text-transform:uppercase;margin-top:2px}.nav-tabs{display:flex;gap:.4rem;background:#0d1015;padding:.25rem;border-radius:6px;border:1px solid var(--border-subtle)}.tab-btn{background:transparent;color:var(--text-secondary);border:1px solid transparent;padding:.4rem .9rem;border-radius:4px;cursor:pointer;font-family:var(--font-display);font-size:.9rem;letter-spacing:.08em;font-weight:700;text-transform:uppercase;transition:all .15s ease}.tab-btn:hover{color:var(--text-primary);background:#ffffff0a}.tab-btn.active{background:linear-gradient(180deg,#242c38,#1a202a);color:var(--accent-emerald);border:1px solid #364254;box-shadow:inset 0 1px #ffffff1a,0 2px 6px #0006}.telemetry-strip{display:flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;background:#0c0f14;border:1px solid var(--border-subtle);padding:.35rem .75rem;border-radius:4px}.led-beacon{width:7px;height:7px;border-radius:50%;background:var(--accent-ruby);box-shadow:0 0 6px var(--accent-ruby-glow);transition:all .3s ease}.led-beacon.online{background:var(--accent-emerald);box-shadow:0 0 8px var(--accent-emerald)}.viewport-container{flex:1;overflow:hidden;position:relative;display:flex;flex-direction:column}.faceplate-wrapper{display:flex;flex-direction:column;height:100%;padding:1.25rem;gap:1.25rem;overflow-y:auto}.device-banner{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1.25rem;background:linear-gradient(180deg,#1d2430,#151a23);border:1px solid var(--border-subtle);border-radius:6px;box-shadow:inset 0 1px #ffffff14,0 4px 12px #0006}.device-title{font-family:var(--font-display);font-size:1.35rem;font-weight:700;letter-spacing:.08em;color:var(--accent-emerald)}.device-sub{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.05em;color:var(--text-secondary)}.device-tag{font-family:var(--font-mono);font-size:.75rem;color:var(--accent-cyan);background:#0d1117;border:1px solid var(--border-subtle);padding:.3rem .7rem;border-radius:4px;letter-spacing:.05em}.controls-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:1.25rem;padding:.5rem 0}.control-card{background:linear-gradient(180deg,#1c222c,#141820);border:1px solid var(--border-subtle);border-radius:8px;padding:1rem .5rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;box-shadow:0 4px 12px #0006,inset 0 1px #ffffff0f;position:relative;transition:border-color .2s ease,transform .1s ease;touch-action:none}.control-card:hover{border-color:#3b4759}.control-label{font-family:var(--font-display);font-size:.85rem;font-weight:700;letter-spacing:.06em;color:var(--text-primary);text-align:center;text-transform:uppercase;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;width:100%;padding:0 .25rem}.knob-bezel{width:58px;height:58px;border-radius:50%;background:radial-gradient(circle,#2a323d,#151920 60%,#0d1015);border:2px solid #364252;box-shadow:0 4px 10px #000000b3,inset 0 1px 1px #fff3;display:flex;align-items:center;justify-content:center;position:relative}.knob-dial{width:44px;height:44px;border-radius:50%;background:repeating-radial-gradient(circle at 50% 50%,#252b36,#1a2028 2px,#202632 4px);border:1px solid #3e4c5e;box-shadow:0 2px 6px #000c,inset 0 1px #ffffff40;display:flex;justify-content:center;position:relative;transition:transform .05s linear}.knob-indicator{width:3px;height:10px;background:var(--accent-emerald);border-radius:2px;box-shadow:0 0 6px var(--accent-emerald);margin-top:3px}.control-val{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.04em;color:var(--accent-cyan);background:#090c10;border:1px solid var(--border-subtle);padding:.2rem .5rem;border-radius:4px;width:90%;text-align:center}.fader-track{width:44px;background:linear-gradient(90deg,#0a0d12,#05070a,#0a0d12);border:1px solid #232a35;border-radius:22px;position:relative;display:flex;justify-content:center;box-shadow:inset 0 2px 8px #000000e6;touch-action:none}.fader-cap{position:absolute;width:42px;height:54px;background:linear-gradient(180deg,#3a4454,#242c38 45%,#181d26 50%,#283240);border:1px solid #4a576b;border-radius:4px;box-shadow:0 6px 14px #000c,inset 0 1px #ffffff4d;display:flex;align-items:center;justify-content:center;cursor:pointer}.fader-cap-stripe{width:100%;height:2px;background:var(--accent-emerald);box-shadow:0 0 6px var(--accent-emerald)}.btn-solo{background:linear-gradient(180deg,#3d240e,#201306);border:1px solid var(--accent-amber);color:var(--accent-amber);border-radius:4px;font-family:var(--font-display);font-size:.85rem;font-weight:700;letter-spacing:.1em;padding:.5rem 0;cursor:pointer;box-shadow:0 2px 6px #0006}.btn-mute{background:linear-gradient(180deg,#3d0e17,#20060b);border:1px solid var(--accent-ruby);color:var(--accent-ruby);border-radius:4px;font-family:var(--font-display);font-size:.85rem;font-weight:700;letter-spacing:.1em;padding:.5rem 0;cursor:pointer;box-shadow:0 2px 6px #0006}.transport-meter-box{background:linear-gradient(180deg,#151a22,#0d1016);border:1px solid var(--border-subtle);padding:1.75rem 3.5rem;border-radius:10px;text-align:center;width:100%;max-width:640px;box-shadow:0 8px 30px #000000b3,inset 0 1px #ffffff14}.transport-pos-readout{font-family:var(--font-display);font-size:3.75rem;font-weight:700;color:var(--accent-cyan);letter-spacing:.08em;text-shadow:0 0 20px var(--accent-cyan-glow);line-height:1}.transport-tempo-readout{font-family:var(--font-display);font-size:1.35rem;font-weight:700;color:var(--accent-emerald);letter-spacing:.08em;margin-top:.75rem;text-shadow:0 0 12px var(--accent-emerald-glow)}.btn-transport{flex:1;border-radius:8px;font-family:var(--font-display);font-size:1.75rem;font-weight:700;letter-spacing:.1em;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.85rem;box-shadow:0 6px 18px #0009,inset 0 1px #ffffff26;transition:all .1s ease}.btn-transport:active{transform:translateY(2px);box-shadow:0 2px 8px #0009}.btn-rec{background:linear-gradient(180deg,#45111c,#26070e);border:2px solid var(--accent-ruby);color:var(--accent-ruby);text-shadow:0 0 12px var(--accent-ruby-glow)}.btn-play{background:linear-gradient(180deg,#113829,#071f16);border:2px solid var(--accent-emerald);color:var(--accent-emerald);text-shadow:0 0 12px var(--accent-emerald-glow)}.btn-stop{background:linear-gradient(180deg,#2a3240,#181d26);border:2px solid #3f4b5e;color:var(--text-primary)}.btn-setup-action{display:flex;align-items:center;gap:.45rem;background:linear-gradient(180deg,#1b2636,#111822);border:1px solid #2d3e54;color:var(--accent-cyan);padding:.38rem .85rem;border-radius:4px;cursor:pointer;font-family:var(--font-display);font-size:.85rem;font-weight:700;letter-spacing:.08em;box-shadow:0 2px 6px #0006,inset 0 1px #ffffff14;transition:all .15s ease}.btn-setup-action:hover{border-color:var(--accent-cyan);box-shadow:0 0 12px var(--accent-cyan-glow);color:#fff}.setup-dialog{border:1px solid #3d4a5d;background:#11151c;border-radius:12px;color:var(--text-primary);max-width:780px;width:92vw;margin:auto;padding:0;box-shadow:0 20px 60px #000000f2,inset 0 1px #ffffff1a;overflow:hidden}.setup-dialog::backdrop{background:#05070ad1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.setup-dialog-inner{display:flex;flex-direction:column;max-height:88vh}.setup-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:linear-gradient(180deg,#1d2532,#151a24);border-bottom:1px solid var(--border-subtle)}.setup-title{font-family:var(--font-display);font-size:1.25rem;font-weight:700;letter-spacing:.12em;color:#fff}.setup-subtitle{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.08em;color:var(--plate-titanium);text-transform:uppercase}.btn-close-dialog{background:transparent;border:1px solid var(--border-subtle);color:var(--text-secondary);width:32px;height:32px;border-radius:6px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.btn-close-dialog:hover{color:#fff;border-color:#4a576b;background:#ffffff0d}.setup-content{padding:1.25rem;overflow-y:auto;display:flex;flex-direction:column;gap:1rem}.download-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;background:linear-gradient(135deg,#162a22,#101c18);border:1px solid rgba(0,230,160,.35);border-radius:8px;box-shadow:0 4px 16px #00000080,inset 0 1px #00e6a033}.btn-download-primary{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1.2rem;background:linear-gradient(180deg,#00e6a0,#00b37c);color:#051610;font-family:var(--font-display);font-size:1rem;font-weight:700;letter-spacing:.08em;text-decoration:none;border-radius:6px;box-shadow:0 4px 12px #00e6a04d;white-space:nowrap;transition:all .15s ease}.btn-download-primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px #00e6a066}.os-tabs{display:flex;gap:.5rem}.os-tab-btn{background:#090c10;color:var(--text-secondary);border:1px solid var(--border-subtle);padding:.4rem .85rem;border-radius:4px;cursor:pointer;font-family:var(--font-display);font-size:.85rem;font-weight:700;letter-spacing:.08em;transition:all .15s ease}.os-tab-btn.active{background:linear-gradient(180deg,#242c38,#1a202a);color:var(--accent-cyan);border-color:var(--accent-cyan)}.file-link{color:var(--accent-cyan);text-decoration:none}.file-link:hover{text-decoration:underline}.platform-panel{display:flex;flex-direction:column;gap:.85rem}.step-card{display:flex;gap:1rem;background:linear-gradient(180deg,#171d27,#11151d);border:1px solid var(--border-subtle);border-radius:6px;padding:1rem}.step-num{width:28px;height:28px;border-radius:50%;background:#0d1016;border:1px solid var(--accent-cyan);color:var(--accent-cyan);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:.85rem;flex-shrink:0}.step-body{flex:1;display:flex;flex-direction:column;gap:.35rem}.step-title{font-family:var(--font-display);font-size:.95rem;font-weight:700;letter-spacing:.06em;color:#fff}.step-desc{font-size:.82rem;color:var(--text-secondary);line-height:1.45}.path-box{display:flex;align-items:center;justify-content:space-between;gap:.5rem;background:#090c10;border:1px solid var(--border-subtle);padding:.4rem .75rem;border-radius:4px;margin-top:.35rem}.path-box code{font-family:var(--font-mono);font-size:.72rem;color:var(--accent-emerald);word-break:break-all}.btn-copy{background:#18202b;border:1px solid #364254;color:var(--text-secondary);padding:.25rem .5rem;border-radius:4px;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.05em;cursor:pointer;white-space:nowrap;transition:all .15s ease}.btn-copy:hover{color:#fff;border-color:var(--accent-cyan)}.step-note{font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted);line-height:1.5;margin-top:.25rem}.modal-status-ticker{display:flex;justify-content:space-between;align-items:center;background:#090c10;border:1px solid var(--border-subtle);padding:.6rem 1rem;border-radius:6px;margin-top:.5rem}.status-indicator{display:flex;align-items:center;gap:.5rem}.btn-telemetry-picker{display:flex;align-items:center;gap:.45rem;background:transparent;border:1px solid transparent;padding:.15rem .45rem;border-radius:4px;cursor:pointer;font-family:inherit;font-size:inherit;letter-spacing:inherit;color:inherit;transition:all .15s ease}.btn-telemetry-picker:hover{background:#ffffff0d;border-color:#2b394d}.telemetry-port-tag{font-family:var(--font-mono);font-size:.65rem;font-weight:700;color:var(--accent-cyan);background:#00e5ff1a;border:1px solid rgba(0,229,255,.25);padding:.1rem .4rem;border-radius:3px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.telemetry-gear-icon{font-size:.75rem;color:var(--plate-titanium);transition:transform .2s ease,color .15s ease}.btn-telemetry-picker:hover .telemetry-gear-icon{color:var(--accent-cyan);transform:rotate(45deg)}.midi-picker-panel{background:linear-gradient(180deg,#131822,#0c1017);border:1px solid #2b3749;border-radius:8px;padding:1rem 1.15rem;display:flex;flex-direction:column;gap:.85rem;box-shadow:inset 0 1px #ffffff0d}.picker-header{display:flex;justify-content:space-between;align-items:center}.picker-title{font-family:var(--font-display);font-size:.95rem;font-weight:700;letter-spacing:.08em;color:#fff}.auto-detected-tag{font-family:var(--font-mono);font-size:.62rem;font-weight:700;letter-spacing:.05em;padding:.15rem .45rem;border-radius:3px;text-transform:uppercase}.auto-detected-tag.tag-auto{background:#00e5ff1f;color:var(--accent-cyan);border:1px solid rgba(0,229,255,.3)}.auto-detected-tag.tag-manual{background:#ffb3001f;color:var(--accent-amber);border:1px solid rgba(255,179,0,.3)}.btn-rescan-ports{background:#182230;border:1px solid #32435b;color:var(--accent-cyan);padding:.3rem .65rem;border-radius:4px;font-family:var(--font-mono);font-size:.68rem;font-weight:700;letter-spacing:.06em;cursor:pointer;display:flex;align-items:center;gap:.35rem;transition:all .15s ease}.btn-rescan-ports:hover{background:#202d3f;border-color:var(--accent-cyan);color:#fff;box-shadow:0 0 10px var(--accent-cyan-glow)}.btn-rescan-ports:disabled{opacity:.6;cursor:wait}.rescan-icon{display:inline-block;font-size:.85rem;line-height:1;transition:transform .3s ease}.rescan-icon.spin{animation:spin-rescan .6s linear infinite}@keyframes spin-rescan{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.picker-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width: 600px){.picker-grid{grid-template-columns:1fr}}.picker-field{display:flex;flex-direction:column;gap:.35rem}.picker-label-row{display:flex;justify-content:space-between;align-items:center}.picker-label{font-family:var(--font-display);font-size:.78rem;font-weight:700;letter-spacing:.06em;color:var(--plate-titanium)}.port-badge{font-family:var(--font-mono);font-size:.6rem;font-weight:700;letter-spacing:.05em;padding:.1rem .35rem;border-radius:2px}.port-badge.connected{background:#00e6a026;color:var(--accent-emerald);border:1px solid rgba(0,230,160,.4)}.port-badge.disconnected{background:#ff33551f;color:var(--accent-ruby);border:1px solid rgba(255,51,85,.3)}.select-wrapper{position:relative;width:100%}.midi-select{width:100%;background:#080b0f;border:1px solid #2d3e54;border-radius:4px;color:#fff;padding:.5rem .75rem;font-family:var(--font-mono);font-size:.75rem;cursor:pointer;outline:none;box-shadow:inset 0 1px 3px #0009;transition:all .15s ease}.midi-select:focus,.midi-select:hover{border-color:var(--accent-cyan);box-shadow:0 0 8px var(--accent-cyan-glow),inset 0 1px 3px #0009}.midi-select optgroup{background:#0d121a;color:var(--accent-cyan);font-weight:700;font-style:normal}.midi-select option{background:#080b0f;color:var(--text-primary);padding:.3rem}.port-summary{background:#080a0e;border:1px solid #1f2733;border-radius:4px;padding:.5rem .85rem;font-family:var(--font-mono);font-size:.72rem;color:var(--text-secondary);line-height:1.45;display:flex;align-items:center;gap:.5rem}.port-summary code{color:var(--accent-emerald);font-weight:700}.btn-track-nav{background:linear-gradient(180deg,#1f2733,#151a23);border:1px solid var(--border-subtle);color:var(--text-primary);border-radius:4px;font-family:var(--font-display);font-size:.75rem;font-weight:700;letter-spacing:.08em;padding:.35rem .65rem;cursor:pointer;display:inline-flex;align-items:center;gap:.3rem;transition:all .15s ease;box-shadow:0 1px 3px #00000080,inset 0 1px #ffffff0f}.btn-track-nav:hover{border-color:var(--accent-cyan);color:var(--accent-cyan);box-shadow:0 0 8px var(--accent-cyan-glow)}.btn-track-nav:active{transform:translateY(1px);background:#0f131a}.scope-catalog-dropdown{background:#0b0e14;border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-primary);font-family:var(--font-mono);font-size:.72rem;padding:.35rem .6rem;outline:none;cursor:pointer;max-width:240px;transition:all .15s ease}.scope-catalog-dropdown:hover,.scope-catalog-dropdown:focus{border-color:var(--accent-emerald);box-shadow:0 0 8px var(--accent-emerald-glow)}.scope-catalog-dropdown optgroup{background:#121820;color:var(--accent-cyan);font-family:var(--font-sans);font-weight:700}.scope-catalog-dropdown option{background:#0b0e14;color:var(--text-primary);font-family:var(--font-mono)}
