:root{color-scheme:dark;--bg-deep: #08050e;--glass-surface: rgba(20, 14, 34, .78);--glass-surface-hover: rgba(34, 24, 56, .9);--glass-border: rgba(168, 85, 247, .22);--glass-border-focus: rgba(192, 132, 252, .7);--text-primary: #faf5ff;--text-muted: #a89bb8;--accent-purple: #a855f7;--accent-violet: #c084fc;--accent-amethyst: #8b5cf6;--accent-fuchsia: #d946ef;--accent-magenta: #ec4899;--accent-yellow: #fbbf24;--font-display: "DM Serif Display", "Playfair Display", Georgia, serif;--font-body: "DM Sans", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body.fullscreen-stage{font-family:var(--font-body);background-color:var(--bg-deep);color:var(--text-primary);width:100vw;height:100vh;overflow:hidden;position:relative;-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased}.stage-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:1;background-color:#050308;overflow:hidden}#webcam-video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}#skeleton-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1);pointer-events:none}.stage-vignette{display:none}.floating-nav{position:fixed;top:1.25rem;left:1.5rem;right:1.5rem;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:1rem;pointer-events:auto}.nav-brand{display:flex;align-items:center;gap:.6rem;background:var(--glass-surface);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border);padding:.55rem 1.15rem;border-radius:40px;box-shadow:0 8px 32px #00000080}.brand-glyph{color:var(--accent-violet);display:inline-flex;align-items:center;justify-content:center;filter:drop-shadow(0 0 10px rgba(192,132,252,.8))}.brand-text-group{display:flex;flex-direction:column;gap:0;line-height:1}.brand-title{font-family:Playfair Display,"DM Serif Display",Georgia,serif;font-weight:800;font-style:italic;letter-spacing:-.5px;font-size:1.1rem;background:linear-gradient(135deg,#f5d0fe,#c084fc,#e879f9);-webkit-background-clip:text;-webkit-text-fill-color:transparent;line-height:1.1}.brand-byline{font-size:.6rem;font-weight:500;color:#fff9;letter-spacing:.3px;font-family:var(--font-body);line-height:1.2;padding-left:1px}.nav-pills{display:flex;align-items:center;gap:.6rem;background:var(--glass-surface);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border);padding:.4rem .65rem;border-radius:40px;box-shadow:0 8px 32px #00000080}.pill-btn{display:inline-flex;align-items:center;gap:.45rem;background:transparent;color:var(--text-primary);border:none;padding:.45rem .95rem;border-radius:30px;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:var(--font-body)}.pill-btn:hover{background:#a855f726}.pill-btn.active{background:#a855f740;color:var(--accent-violet);box-shadow:0 0 18px #a855f766}.pill-btn-primary{background:linear-gradient(135deg,#a855f7,#7c3aed);color:#fff;box-shadow:0 0 20px #a855f759}.pill-btn-primary:hover{filter:brightness(1.15);box-shadow:0 0 25px #c084fc8c}.pill-select-wrapper select{background-color:#140d22;color:var(--text-primary);border:1px solid var(--glass-border);padding:.45rem .75rem;border-radius:30px;font-size:.8rem;font-weight:600;outline:none;cursor:pointer;color-scheme:dark;font-family:var(--font-body)}.hud-gesture-pill{display:flex;align-items:center;gap:.5rem;background:var(--glass-surface);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border);padding:.55rem 1.15rem;border-radius:40px;font-size:.85rem;font-weight:700;box-shadow:0 8px 32px #00000080;color:#f3e8ff}.hud-gesture-pill .hud-emoji{font-size:1.2rem}.stage-lower-half{position:fixed;bottom:0;left:0;right:0;height:48vh;z-index:10;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:2.5rem;pointer-events:none}.waveform-container{position:absolute;bottom:0;left:0;right:0;height:160px;pointer-events:none;opacity:.9}#waveform-canvas{width:100%;height:100%;display:block}.active-chord-hud{position:relative;z-index:15;background:#100a1ccc;backdrop-filter:blur(28px) saturate(200%);-webkit-backdrop-filter:blur(28px) saturate(200%);border:2px solid var(--accent-violet);border-radius:32px;padding:1.35rem 3.25rem;text-align:center;box-shadow:0 16px 50px #000000bf,0 0 40px #a855f766;transition:all .25s ease;min-width:300px;pointer-events:auto}.active-chord-hud.empty{border-color:#a855f740;box-shadow:0 12px 35px #0009}.hud-eyebrow{font-size:.72rem;font-weight:800;letter-spacing:2.5px;color:var(--accent-violet);margin-bottom:.2rem;text-transform:uppercase;font-family:var(--font-body)}.hud-main-chord{font-family:"Playfair Display",var(--font-display);font-size:3.6rem;font-weight:900;font-style:italic;letter-spacing:-1px;color:#fff;line-height:1;text-shadow:0 0 35px rgba(192,132,252,.5)}.hud-notes{font-size:.9rem;color:var(--text-muted);font-family:monospace;margin-top:.45rem}.hud-expression-row{display:flex;align-items:center;gap:.6rem;margin-top:.85rem}.expr-label{font-size:.68rem;font-weight:700;text-transform:uppercase;color:var(--text-muted)}.expr-track{flex:1;height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden}.expr-fill{width:50%;height:100%;background:linear-gradient(90deg,#a855f7,#ec4899);transition:width .08s ease-out}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b8;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:45;transition:opacity .3s ease}.drawer-backdrop.hidden{opacity:0;pointer-events:none}.glass-drawer{position:fixed;bottom:0;left:0;right:0;max-height:80vh;z-index:50;background:#0e0919e0;backdrop-filter:blur(35px) saturate(210%);-webkit-backdrop-filter:blur(35px) saturate(210%);border-top:1px solid var(--glass-border);border-radius:28px 28px 0 0;box-shadow:0 -20px 60px #000000d9;padding:1.5rem 2rem 2.5rem;display:flex;flex-direction:column;gap:1.25rem;overflow-y:auto;transition:transform .35s cubic-bezier(.16,1,.3,1)}.glass-drawer.hidden{transform:translateY(105%);pointer-events:none}.drawer-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;padding-bottom:.85rem;border-bottom:1px solid var(--glass-border)}.drawer-title-group h3{font-family:"Playfair Display",var(--font-display);font-size:1.35rem;font-weight:800;font-style:italic;color:#fff;letter-spacing:-.3px}.drawer-title-group p{font-size:.82rem;color:var(--text-muted)}.drawer-header-actions{display:flex;align-items:center;gap:.6rem}.glass-select{background-color:#170f27;color:var(--text-primary);border:1px solid var(--glass-border);padding:.45rem .85rem;border-radius:20px;font-size:.82rem;font-weight:600;outline:none;cursor:pointer;color-scheme:dark;font-family:var(--font-body)}.glass-btn-sm{background:#a855f72e;color:var(--accent-violet);border:1px solid var(--accent-purple);padding:.45rem .95rem;border-radius:20px;font-size:.82rem;font-weight:700;cursor:pointer;transition:all .2s ease;font-family:var(--font-body)}.glass-btn-sm:hover{background:#a855f759;box-shadow:0 0 15px #a855f74d}.drawer-close-btn{background:#ffffff14;border:none;color:var(--text-primary);width:34px;height:34px;border-radius:50%;font-size:1.4rem;display:flex;align-items:center;justify-content:center;cursor:pointer;line-height:1}.drawer-close-btn:hover{background:#ec489966;color:#fff}.drawer-slots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:1.1rem}.slot-card{background:#19102a73;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--glass-border);border-radius:22px;padding:1.15rem;display:flex;flex-direction:column;gap:.85rem;transition:all .25s ease;overflow:visible;position:relative;box-sizing:border-box}.slot-card:hover{background:#23173a99;border-color:#c084fc66}.slot-card.has-open-dropdown{z-index:50!important}.slot-card.active-slot{border-color:var(--accent-violet);background:#a855f729;box-shadow:0 0 30px #a855f761;transform:translateY(-2px)}.slot-header{display:flex;justify-content:space-between;align-items:center}.slot-tag{font-size:.72rem;font-weight:800;text-transform:uppercase;color:var(--accent-violet);background:#a855f733;padding:.2rem .65rem;border-radius:20px}.btn-remove-slot{background:none;border:none;color:var(--text-muted);font-size:1.2rem;cursor:pointer}.btn-remove-slot:hover{color:var(--accent-magenta)}.slot-chord-control{display:flex;gap:.5rem;background:#0a061280;padding:.45rem .65rem;border-radius:12px;border:1px solid rgba(168,85,247,.12);width:100%;box-sizing:border-box;overflow:visible;position:relative}.slot-chord-control.voicing-row{background:#a855f714;border-color:#a855f733}.chord-select-group{display:flex;align-items:center;gap:.35rem;flex:1;min-width:0;position:relative}.chord-select-group.oct-group{flex:0 0 40%;min-width:0}.chord-select-group.scale-group{flex:1;min-width:0}.control-label{font-size:.7rem;color:var(--text-muted);font-weight:700;text-transform:uppercase;white-space:nowrap;flex-shrink:0}.custom-dropdown{position:relative;flex:1;min-width:0;-webkit-user-select:none;user-select:none}.custom-dropdown.open{z-index:100}.custom-dropdown-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.35rem;background-color:#170f28;color:#faf5ff;border:1px solid rgba(168,85,247,.28);border-radius:8px;padding:.32rem .5rem;font-size:.8rem;font-weight:700;outline:none;cursor:pointer;transition:all .2s ease;font-family:var(--font-body);text-align:left}.custom-dropdown-trigger:hover,.custom-dropdown.open .custom-dropdown-trigger{border-color:var(--accent-violet);background-color:#24163d;box-shadow:0 0 12px #c084fc4d}.dropdown-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.dropdown-arrow{display:inline-flex;align-items:center;justify-content:center;color:var(--accent-violet);transition:transform .2s ease;flex-shrink:0}.custom-dropdown.open .dropdown-arrow{transform:rotate(180deg)}.custom-dropdown-menu{position:absolute;top:calc(100% + 5px);left:0;min-width:100%;max-height:190px;overflow-y:auto;overflow-x:hidden;background:#170f2b;border:1px solid rgba(192,132,252,.45);border-radius:12px;padding:.3rem;box-shadow:0 14px 40px #000000d9,0 0 20px #a855f733;backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);z-index:200}.custom-dropdown-menu.hidden{display:none!important}.custom-dropdown-menu::-webkit-scrollbar{width:5px}.custom-dropdown-menu::-webkit-scrollbar-track{background:#140e2280;border-radius:4px}.custom-dropdown-menu::-webkit-scrollbar-thumb{background:#a855f773;border-radius:4px}.custom-dropdown-menu::-webkit-scrollbar-thumb:hover{background:var(--accent-violet)}.custom-dropdown-item{padding:.45rem .65rem;font-size:.8rem;font-weight:600;color:#f3e8ff;border-radius:7px;cursor:pointer;white-space:nowrap;transition:all .15s ease;font-family:var(--font-body)}.custom-dropdown-item:hover{background:#a855f740;color:#fff;padding-left:.85rem}.custom-dropdown-item.selected{background:linear-gradient(135deg,#a855f7,#7c3aed);color:#fff;font-weight:800;box-shadow:0 2px 10px #a855f759}.dropdown-nav-preset .custom-dropdown-trigger{background:transparent;border:1px solid transparent;padding:.4rem .75rem;border-radius:30px;font-size:.82rem;color:var(--text-primary)}.dropdown-nav-preset .custom-dropdown-trigger:hover,.dropdown-nav-preset.open .custom-dropdown-trigger{background:#a855f726;border-color:var(--glass-border)}.dropdown-nav-preset .custom-dropdown-menu{min-width:190px;top:calc(100% + 8px)}.dropdown-header-progression .custom-dropdown-trigger{background:#170f27;border:1px solid var(--glass-border);padding:.45rem .85rem;border-radius:20px;font-size:.82rem;color:var(--text-primary)}.dropdown-header-progression .custom-dropdown-trigger:hover,.dropdown-header-progression.open .custom-dropdown-trigger{border-color:var(--accent-violet);box-shadow:0 0 12px #c084fc4d}.dropdown-header-progression .custom-dropdown-menu{min-width:250px}.custom-feed-row{display:flex;gap:.5rem;align-items:center;margin-top:-.25rem}.custom-notes-input{flex:1;background:#120b20;color:#fff;border:1px solid rgba(168,85,247,.25);border-radius:8px;padding:.4rem .65rem;font-size:.8rem;font-family:monospace;outline:none}.custom-notes-input:focus{border-color:var(--accent-violet)}.btn-apply-feed{padding:.4rem .75rem;white-space:nowrap}.slot-chord-hero{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.chord-hero-left{display:flex;flex-direction:column}.chord-name{font-family:"Playfair Display",var(--font-display);font-size:1.9rem;font-weight:800;font-style:italic;color:#fff;letter-spacing:-.5px}.voicing-subtitle{font-size:.7rem;color:var(--accent-violet);font-weight:700;text-transform:uppercase;letter-spacing:.5px}.scale-note-badges{display:flex;flex-wrap:wrap;gap:.3rem;justify-content:flex-end;max-width:55%}.scale-badge{background:#a855f71f;border:1px solid rgba(168,85,247,.25);color:#f3e8ff;padding:.15rem .45rem;border-radius:6px;font-size:.72rem;font-family:monospace;font-weight:700}.slot-gesture-row{display:flex;align-items:center;justify-content:space-between;background:#0a061280;padding:.65rem .85rem;border-radius:12px;border:1px dashed rgba(168,85,247,.28)}.slot-gesture-row.custom-active{border:1px solid var(--accent-violet);background:#a855f733}.gesture-info{display:flex;align-items:center;gap:.6rem}.gesture-emoji{font-size:1.5rem}.gesture-title{font-size:.85rem;font-weight:700;color:#faf5ff}.gesture-subtitle{font-size:.7rem;color:var(--text-muted)}.capture-progress-bar{width:100%;height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden}.capture-progress-bar.hidden{display:none}.capture-fill{width:0%;height:100%;background:linear-gradient(90deg,#a855f7,#ec4899);transition:width .05s linear}.slot-actions{display:flex;gap:.4rem}.slot-actions button{flex:1;padding:.5rem;border-radius:10px;font-size:.8rem;font-weight:700;cursor:pointer;border:none;transition:all .2s ease;font-family:var(--font-body)}.btn-record-pose{background:linear-gradient(135deg,#a855f7,#7c3aed);color:#fff;box-shadow:0 4px 15px #a855f740}.btn-record-pose:hover{filter:brightness(1.15);box-shadow:0 0 18px #c084fc73}.btn-hum-note{background:#a855f729;color:var(--accent-violet);border:1px solid var(--accent-purple)}.btn-hum-note:hover{background:#a855f752}.btn-test-chord{background:#ffffff12;color:var(--text-primary);border:1px solid var(--glass-border)}.btn-test-chord:hover{background:#ffffff24}.glass-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);z-index:60;display:flex;align-items:center;justify-content:center}.glass-modal-overlay.hidden{display:none}.glass-modal-card{background:#120c1eeb;backdrop-filter:blur(35px);-webkit-backdrop-filter:blur(35px);border:1px solid rgba(168,85,247,.3);border-radius:28px;padding:1.75rem;width:90%;max-width:480px;display:flex;flex-direction:column;gap:1.25rem;box-shadow:0 20px 60px #000000d9}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head h3{font-family:var(--font-display);font-size:1.25rem;font-weight:800;color:var(--accent-violet)}.modal-close{background:none;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer}.modal-close:hover{color:#fff}.modal-subtitle{font-size:.82rem;color:var(--text-muted)}.tuner-core{display:flex;flex-direction:column;align-items:center;gap:.75rem}.tuner-pitch-display{display:flex;align-items:baseline;gap:.2rem}.pitch-letter{font-family:var(--font-display);font-size:4.2rem;font-weight:900;color:var(--accent-yellow);text-shadow:0 0 25px rgba(251,191,36,.5);line-height:1}.pitch-octave{font-size:1.8rem;color:var(--text-muted)}.pitch-hz{font-size:.9rem;color:var(--text-muted);font-family:monospace}.tuner-meter-track{width:100%;height:8px;background:#ffffff1a;border-radius:4px;position:relative;margin:.5rem 0}.meter-center-line{position:absolute;left:50%;top:-4px;bottom:-4px;width:2px;background:#fff;transform:translate(-50%)}.meter-needle{position:absolute;top:-6px;bottom:-6px;width:6px;border-radius:3px;background:var(--accent-magenta);left:50%;transform:translate(-50%);transition:left .1s ease-out}.meter-needle.in-tune{background:var(--accent-violet);box-shadow:0 0 14px var(--accent-violet)}.pitch-cents{font-size:.85rem;color:var(--text-muted)}.chord-type-chips-section{width:100%;display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.chip-container{display:flex;flex-wrap:wrap;gap:.4rem}.glass-chip{background:#ffffff14;border:1px solid var(--glass-border);color:var(--text-primary);padding:.35rem .75rem;border-radius:20px;font-size:.8rem;cursor:pointer;transition:all .2s ease;font-family:var(--font-body)}.glass-chip.active{background:var(--accent-violet);color:#08050e;font-weight:800;border-color:var(--accent-violet);box-shadow:0 0 15px #c084fc73}.glow-btn{width:100%;background:linear-gradient(135deg,#a855f7,#ec4899);color:#fff;border:none;padding:.75rem;border-radius:12px;font-weight:800;font-size:.95rem;cursor:pointer;transition:all .2s ease;font-family:var(--font-body);box-shadow:0 0 20px #a855f74d}.glow-btn:hover{filter:brightness(1.15);box-shadow:0 0 25px #c084fc80}.glow-btn:disabled{opacity:.4;cursor:not-allowed;filter:none;box-shadow:none}.gesture-picker-tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.gesture-tile{background:#ffffff0d;border:1px solid var(--glass-border);border-radius:14px;padding:.85rem;display:flex;align-items:center;gap:.75rem;cursor:pointer;color:var(--text-primary);transition:all .2s ease;font-family:var(--font-body)}.gesture-tile:hover{background:#a855f72e;border-color:var(--accent-violet);transform:translateY(-2px)}.tile-emoji{font-size:1.8rem}.tile-name{font-size:.9rem;font-weight:700}.tutorial-fab{position:fixed;bottom:1.5rem;right:1.5rem;z-index:40;width:44px;height:44px;border-radius:50%;background:#140e22d1;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1.5px solid rgba(192,132,252,.45);color:var(--accent-violet);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .25s ease;box-shadow:0 4px 20px #00000080,0 0 18px #a855f733}.tutorial-fab:hover{background:#a855f738;border-color:var(--accent-violet);color:#fff;transform:scale(1.1);box-shadow:0 6px 28px #0000008c,0 0 25px #c084fc66}.tutorial-panel{position:fixed;bottom:0;right:0;width:380px;max-width:95vw;max-height:85vh;z-index:55;background:#0d0818f0;backdrop-filter:blur(36px);-webkit-backdrop-filter:blur(36px);border:1px solid rgba(192,132,252,.28);border-bottom:none;border-right:none;border-radius:24px 0 0;display:flex;flex-direction:column;gap:0;overflow:hidden;transform:translateY(0) translate(0);transition:transform .38s cubic-bezier(.4,0,.2,1),opacity .3s ease;box-shadow:-8px -8px 40px #0009,0 0 30px #a855f71f}.tutorial-panel.hidden{transform:translateY(100%) translate(20px);opacity:0;pointer-events:none}.tutorial-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.5rem 1.5rem 1rem;border-bottom:1px solid rgba(168,85,247,.18);flex-shrink:0}.tutorial-title{font-family:"Playfair Display",var(--font-display);font-size:1.3rem;font-weight:800;font-style:italic;background:linear-gradient(135deg,#f5d0fe,#c084fc);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.2rem}.tutorial-sub{font-size:.75rem;color:var(--text-muted);font-style:italic}.tutorial-steps{flex:1;overflow-y:auto;padding:1rem 1.5rem;display:flex;flex-direction:column;gap:0}.tutorial-steps::-webkit-scrollbar{width:4px}.tutorial-steps::-webkit-scrollbar-track{background:transparent}.tutorial-steps::-webkit-scrollbar-thumb{background:#a855f766;border-radius:4px}.tutorial-step{display:flex;gap:1rem;align-items:flex-start;padding:.9rem 0;border-bottom:1px solid rgba(168,85,247,.1);position:relative}.tutorial-step:last-child{border-bottom:none}.tutorial-step:before{content:"";position:absolute;left:1.5rem;top:2.8rem;bottom:-.5rem;width:1px;background:linear-gradient(to bottom,rgba(168,85,247,.4),transparent)}.tutorial-step:last-child:before{display:none}.step-num{font-family:"Playfair Display",var(--font-display);font-size:1rem;font-weight:900;font-style:italic;color:var(--accent-violet);opacity:.75;min-width:2rem;flex-shrink:0;line-height:1.4;margin-top:.1rem}.step-body{display:flex;flex-direction:column;gap:.3rem}.step-title{font-size:.88rem;font-weight:700;color:#f5d0fe;line-height:1.3}.step-desc{font-size:.78rem;color:var(--text-muted);line-height:1.6}.step-desc strong{color:var(--accent-violet);font-weight:700}.tutorial-footer{padding:.85rem 1.5rem;border-top:1px solid rgba(168,85,247,.15);font-size:.75rem;color:var(--text-muted);background:#a855f70f;flex-shrink:0;line-height:1.5}.tutorial-footer em{color:var(--accent-violet);font-style:normal;font-weight:600}
