@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer theme{:root,:host{--default-font-family:Arial, Helvetica, sans-serif;--default-mono-font-family:"Cascadia Code", Consolas, monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.fixed{position:fixed}.relative{position:relative}.flex{display:flex}.h-full{height:100%}.min-h-full{min-height:100%}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-col{flex-direction:column}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--background:#0a0f18;--surface:#121a27;--surface-raised:#182335;--border:#2c3c54;--foreground:#f2f5f3;--muted:#9eacbd;--accent:#66b7ff;--danger:#ff8585;--master-lab-nav-height:54px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--background);color:var(--foreground);margin:0;font-family:Arial,Helvetica,sans-serif;overflow-x:hidden}button,input,select{font:inherit}.master-lab-nav{z-index:80;height:var(--master-lab-nav-height);border-bottom:1px solid var(--border);padding:7px max(20px, env(safe-area-inset-right)) 7px max(20px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#080d15f2;justify-content:space-between;align-items:center;gap:18px;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 8px 24px #0006}.master-lab-home{color:var(--foreground);flex:none;align-items:center;gap:9px;text-decoration:none;display:inline-flex}.master-lab-home strong{letter-spacing:.04em;text-transform:uppercase;font-size:.82rem}.master-lab-mark{border:1px solid var(--accent);width:30px;height:30px;color:var(--accent);border-radius:4px;place-items:center;font-size:.72rem;font-weight:950;display:grid}.master-lab-nav nav{justify-content:end;align-items:center;gap:6px;min-width:0;display:flex}.master-lab-nav.has-project-menu nav{padding-right:42px}.master-lab-nav nav a{--lab-nav-accent:var(--accent);color:var(--muted);white-space:nowrap;border:1px solid #0000;border-radius:4px;align-items:center;gap:7px;padding:6px 9px;font-size:.72rem;font-weight:800;text-decoration:none;display:inline-flex}.master-lab-nav nav a.is-scales{--lab-nav-accent:#a78bfa}.master-lab-nav nav a.is-theory{--lab-nav-accent:#f59e42}.master-lab-nav nav a.is-progression{--lab-nav-accent:#66b7ff}.master-lab-nav nav a.is-piano-scales{--lab-nav-accent:#f4d35e}.master-lab-nav nav a.is-piano-theory{--lab-nav-accent:#fb7185}.master-lab-nav nav a.is-piano-progressions{--lab-nav-accent:#2dd4bf}.master-lab-nav nav a:hover,.master-lab-nav nav a:focus-visible,.master-lab-nav nav a[aria-current=page]{border-color:var(--lab-nav-accent)}@supports (color:color-mix(in lab, red, red)){.master-lab-nav nav a:hover,.master-lab-nav nav a:focus-visible,.master-lab-nav nav a[aria-current=page]{border-color:color-mix(in srgb, var(--lab-nav-accent) 55%, var(--border))}}.master-lab-nav nav a:hover,.master-lab-nav nav a:focus-visible,.master-lab-nav nav a[aria-current=page]{background:var(--lab-nav-accent)}@supports (color:color-mix(in lab, red, red)){.master-lab-nav nav a:hover,.master-lab-nav nav a:focus-visible,.master-lab-nav nav a[aria-current=page]{background:color-mix(in srgb, var(--lab-nav-accent) 9%, var(--surface))}}.master-lab-nav nav a:hover,.master-lab-nav nav a:focus-visible,.master-lab-nav nav a[aria-current=page]{color:var(--lab-nav-accent);outline:none}.lab-nav-mark{border:1px solid var(--lab-nav-accent);background:var(--lab-nav-accent);border-radius:4px;flex:none;place-items:center;width:22px;height:22px;display:grid}@supports (color:color-mix(in lab, red, red)){.lab-nav-mark{background:color-mix(in srgb, var(--lab-nav-accent) 9%, transparent)}}.lab-nav-mark{color:var(--lab-nav-accent);box-shadow:0 0 8px var(--lab-nav-accent);font-family:Cascadia Code,Consolas,monospace;font-size:.56rem;font-weight:950}@supports (color:color-mix(in lab, red, red)){.lab-nav-mark{box-shadow:0 0 8px color-mix(in srgb, var(--lab-nav-accent) 18%, transparent)}}.lab-nav-label{align-items:center;display:inline-flex}.lab-nav-name-short{display:none}.project-files-menu{z-index:90;top:7px;right:max(20px, env(safe-area-inset-right));position:fixed}.project-files-menu-trigger{border:1px solid var(--accent);width:32px;height:32px;color:var(--accent);cursor:pointer;background:#0d1521;border-radius:4px;place-items:center;padding:6px;display:grid;box-shadow:0 4px 14px #0007}.project-files-menu-trigger:hover,.project-files-menu-trigger:focus-visible,.project-files-menu-trigger[aria-expanded=true]{background:var(--accent);color:#100b1e;outline:none}.project-files-menu-trigger svg{width:18px;height:18px}.project-files-menu-panel{border:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#121a27f7;border-radius:7px;gap:14px;width:min(340px,100vw - 40px);padding:15px;display:grid;position:absolute;top:calc(100% + 9px);right:0;box-shadow:0 18px 42px #000b}.project-files-menu-heading{align-items:center;gap:10px;display:flex}.project-files-menu-heading>div{gap:2px;display:grid}.project-files-menu-heading strong{font-size:.8rem}.project-files-menu-heading small{color:var(--muted);font-size:.62rem}.project-files-name-field{color:var(--muted);text-transform:uppercase;gap:6px;font-size:.62rem;font-weight:850;display:grid}.project-files-name-field input{width:100%;height:40px;color:var(--foreground);text-transform:none;background:#0d1521;padding:8px 10px;font-size:.76rem}.project-files-menu-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.project-files-menu-actions button{border:1px solid var(--accent);min-height:38px;color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;padding:7px 10px;font-size:.68rem;font-weight:850}.project-files-menu-actions button:hover,.project-files-menu-actions button:focus-visible{background:var(--accent);color:#100b1e;outline:none}.project-files-menu-status{min-height:1.2em;color:var(--muted);font-size:.65rem;line-height:1.4}.app-shell{width:min(1440px,100% - 40px);padding:calc(var(--master-lab-nav-height) + 92px) 0 calc(var(--playback-dock-height,360px) + 44px);margin:0 auto}.labs-home{width:min(1440px,100% - 40px);padding:calc(var(--master-lab-nav-height) + 70px) 0 70px;margin:0 auto}.lab-placeholder-page{width:min(1040px,100% - 40px);padding:calc(var(--master-lab-nav-height) + 70px) 0 70px;margin:0 auto}.labs-home-intro{max-width:680px}.labs-home-intro h1,.lab-placeholder-panel h1{letter-spacing:-.055em;margin:7px 0 12px;font-size:clamp(2rem,5vw,4.5rem);line-height:.98}.labs-home-intro>p:last-child,.lab-placeholder-panel p{color:var(--muted);margin:0;font-size:.92rem;line-height:1.6}.lab-instrument-section{margin-top:42px}.lab-instrument-section+.lab-instrument-section{margin-top:34px}.lab-instrument-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:end;gap:16px;padding-bottom:11px;display:flex}.lab-instrument-heading p{margin:0}.lab-instrument-heading h2{color:var(--foreground);letter-spacing:-.025em;margin:0;font-size:1.35rem}.lab-directory{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px;display:grid}.lab-directory.is-piano{grid-template-columns:repeat(3,minmax(0,1fr))}.lab-directory-card{--lab-accent:#66b7ff;--lab-accent-soft:#66b7ff20;border:1px solid var(--border);background:linear-gradient(155deg, var(--lab-accent-soft), transparent 48%), var(--surface);min-width:0;min-height:290px;color:var(--foreground);border-radius:9px;flex-direction:column;padding:20px;text-decoration:none;transition:border-color .15s,background .15s,box-shadow .15s,transform .15s;display:flex;position:relative;overflow:hidden}.lab-directory-card:before{background:linear-gradient(90deg, var(--lab-accent), transparent 88%);content:"";height:3px;position:absolute;top:0;left:0;right:0}.lab-directory-card.is-theory{--lab-accent:#f59e42;--lab-accent-soft:#f59e421b}.lab-directory-card.is-scales{--lab-accent:#a78bfa;--lab-accent-soft:#a78bfa1b}.lab-directory-card.is-progression{--lab-accent:#66b7ff;--lab-accent-soft:#66b7ff1b}.lab-directory-card.is-piano-scales{--lab-accent:#f4d35e;--lab-accent-soft:#f4d35e1b}.lab-directory-card.is-piano-theory{--lab-accent:#fb7185;--lab-accent-soft:#fb71851b}.lab-directory-card.is-piano-progressions{--lab-accent:#2dd4bf;--lab-accent-soft:#2dd4bf1b}.lab-directory-card:hover,.lab-directory-card:focus-visible{border-color:var(--lab-accent);background:linear-gradient(155deg, var(--lab-accent-soft), transparent 56%), var(--surface-raised);box-shadow:0 14px 36px #0007, inset 0 0 28px var(--lab-accent-soft);outline:none;transform:translateY(-4px)}.lab-directory-card-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.lab-directory-mark,.lab-placeholder-mark{border:1px solid var(--lab-accent,var(--accent));background:var(--lab-accent-soft,var(--accent));width:32px;height:32px;color:var(--lab-accent,#07111c);border-radius:5px;place-items:center;font-family:Cascadia Code,Consolas,monospace;font-size:.64rem;font-weight:950;display:grid}.lab-directory-status{border:1px solid var(--lab-accent)}@supports (color:color-mix(in lab, red, red)){.lab-directory-status{border:1px solid color-mix(in srgb, var(--lab-accent) 45%, transparent)}}.lab-directory-status{background:var(--lab-accent-soft);color:var(--lab-accent);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:5px 8px;font-size:.58rem;font-weight:900}.lab-directory-copy{gap:10px;min-width:0;margin-top:22px;display:grid}.lab-directory-copy strong{color:var(--foreground);letter-spacing:-.025em;font-size:clamp(1.1rem,2vw,1.45rem)}.lab-directory-copy>span{color:var(--muted);font-size:.78rem;line-height:1.55}.lab-directory-visual{height:58px;color:var(--lab-accent);justify-content:center;align-items:center;margin-top:auto;display:flex;position:relative;overflow:hidden}.lab-directory-visual.is-theory{background:linear-gradient(90deg, transparent 8%, var(--lab-accent) 8% 92%, transparent 92%) center / 100% 1px no-repeat;justify-content:space-around}.lab-directory-visual.is-theory i{z-index:1;border:2px solid var(--lab-accent);background:var(--surface);width:16px;height:16px;box-shadow:0 0 10px var(--lab-accent-soft);border-radius:50%}.lab-directory-visual.is-theory i:nth-child(2),.lab-directory-visual.is-theory i:nth-child(4){transform:translateY(-13px)}.lab-directory-visual.is-scales i{border:1px solid var(--lab-accent);border-radius:50%;position:absolute}.lab-directory-visual.is-scales i:first-child{width:18px;height:18px}.lab-directory-visual.is-scales i:nth-child(2){opacity:.82;width:32px;height:32px}.lab-directory-visual.is-scales i:nth-child(3){opacity:.65;width:46px;height:46px}.lab-directory-visual.is-scales i:nth-child(4){opacity:.48;border-style:dashed;width:70px;height:70px}.lab-directory-visual.is-scales i:nth-child(5){opacity:.25;width:102px;height:102px}.lab-directory-visual.is-progression{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.lab-directory-visual.is-progression i{border:1px solid var(--lab-accent);background:var(--lab-accent-soft);border-radius:4px;height:30px}.lab-directory-visual.is-progression i:nth-child(2n){transform:translateY(8px)}.lab-directory-visual.is-piano-scales,.lab-directory-visual.is-piano-theory,.lab-directory-visual.is-piano-progressions{grid-template-columns:repeat(5,minmax(22px,42px));justify-content:center;align-items:end;gap:2px;display:grid}.lab-directory-visual.is-piano-scales i,.lab-directory-visual.is-piano-theory i,.lab-directory-visual.is-piano-progressions i{border:1px solid var(--lab-accent);background:var(--lab-accent);border-radius:0 0 3px 3px;height:48px}@supports (color:color-mix(in lab, red, red)){.lab-directory-visual.is-piano-scales i,.lab-directory-visual.is-piano-theory i,.lab-directory-visual.is-piano-progressions i{background:color-mix(in srgb, var(--lab-accent) 14%, var(--surface))}}.lab-directory-visual.is-piano-scales i:nth-child(2),.lab-directory-visual.is-piano-scales i:nth-child(4),.lab-directory-visual.is-piano-theory i:nth-child(2),.lab-directory-visual.is-piano-theory i:nth-child(4),.lab-directory-visual.is-piano-progressions i:nth-child(2),.lab-directory-visual.is-piano-progressions i:nth-child(4){z-index:1;background:#090d14;height:31px;margin:0 -9px 17px}.lab-directory-visual.is-piano-progressions i:first-child{transform:translateY(8px)}.lab-directory-visual.is-piano-progressions i:nth-child(3){transform:translateY(3px)}.lab-directory-visual.is-piano-progressions i:nth-child(5){transform:translateY(11px)}.piano-placeholder{--accent:#f4d58d}.piano-scales-placeholder{--accent:#f4d35e}.piano-theory-placeholder{--accent:#fb7185}.lab-directory-open{border-top:1px solid var(--border);color:var(--lab-accent);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;margin-top:14px;padding-top:13px;font-size:.66rem;font-weight:900;display:flex}.lab-directory-open span{font-size:1rem;transition:transform .15s}.lab-directory-card:hover .lab-directory-open span,.lab-directory-card:focus-visible .lab-directory-open span{transform:translate(4px)}.lab-placeholder-page{place-items:center;min-height:100dvh;display:grid}.lab-placeholder-panel{border:1px solid var(--border);background:var(--surface);border-radius:8px;grid-template-columns:42px minmax(0,1fr);gap:18px;width:min(720px,100%);padding:clamp(24px,5vw,48px);display:grid}.lab-placeholder-panel h1{font-size:clamp(2rem,5vw,3.8rem)}.lab-placeholder-panel a{border:1px solid var(--accent);color:var(--accent);border-radius:4px;margin-top:24px;padding:9px 12px;font-size:.76rem;font-weight:850;text-decoration:none;display:inline-flex}.lab-placeholder-panel a:hover,.lab-placeholder-panel a:focus-visible{background:var(--accent);color:#07111c;outline:none}.theory-theme{--background:#0a0f18;--surface:#121a27;--surface-raised:#182335;--border:#2c3c54;--foreground:#f2f5f3;--muted:#9eacbd;--accent:#f59e42;--theory-inset:#0d1521;--theory-selected:#122137;--circle-accent-soft:#f59e4224;background:var(--background);min-height:100dvh;color:var(--foreground)}.theory-lab-shell{width:min(1440px,100% - 40px);padding:calc(var(--master-lab-nav-height) + 92px) 0 calc(var(--theory-playback-dock-height,270px) + 44px);gap:28px;margin:0 auto;display:grid}.theory-explore-layout{grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);align-items:stretch;gap:14px;height:500px;display:grid}.theory-lab-heading,.progression-lab-heading{gap:8px;max-width:760px;display:grid}.theory-lab-heading>p:last-child,.progression-lab-heading>p:last-child{color:var(--muted);margin:0;font-size:.92rem;line-height:1.6}.progression-lab-heading{margin-bottom:28px}.theory-input-panel,.theory-analysis-panel,.theory-voicing-panel,.theory-melody-panel{border:1px solid var(--border);background:var(--surface-raised);border-radius:7px;min-width:0;padding:18px}.theory-input-panel{grid-template-columns:180px minmax(220px,1fr);align-content:start;align-items:end;gap:14px 18px;display:grid}.theory-input-copy h2,.theory-analysis-heading h2,.theory-voicing-heading h2,.theory-melody-heading h2{margin:4px 0 0;font-size:1.25rem}.theory-chord-field{color:var(--muted);text-transform:uppercase;gap:6px;font-size:.68rem;font-weight:850;display:grid}.theory-chord-field input{height:46px;color:var(--accent);text-transform:none;font-family:Cascadia Code,Consolas,monospace;font-size:1rem;font-weight:800}.theory-chord-field input[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}.theory-chord-error{color:var(--danger);text-transform:none;font-size:.7rem;font-weight:700;line-height:1.4}.theory-example-chords{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:6px;padding-top:4px;display:flex}.theory-example-chords>span{color:var(--muted);text-transform:uppercase;margin-right:3px;font-size:.65rem;font-weight:850}.theory-example-chords button{border:1px solid var(--border);background:var(--theory-inset,#0d1521);color:var(--foreground);cursor:pointer;border-radius:999px;padding:5px 9px;font-family:Cascadia Code,Consolas,monospace;font-size:.68rem}.theory-example-chords button:hover,.theory-example-chords button:focus-visible{border-color:var(--accent);color:var(--accent);outline:none}.theory-input-panel>.caged-chord-fretboard{grid-column:1/-1}.theory-empty-state{border:1px dashed var(--border);min-height:220px;color:var(--muted);text-align:center;border-radius:7px;place-items:center;padding:28px;display:grid}.theory-empty-state p{margin:0}.theory-empty-state span{margin-top:6px;font-size:.76rem}.theory-empty-state.is-error{color:var(--danger);border-color:#ff858566}.theory-analysis-heading,.theory-voicing-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:16px;display:flex}.theory-analysis-heading>span{max-width:50%;color:var(--muted);text-align:right;text-transform:capitalize;font-size:.74rem;line-height:1.4}.theory-facts-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;display:grid}.theory-facts-grid>div{border:1px solid var(--border);background:var(--surface);border-radius:5px;min-width:0;padding:11px}.theory-facts-grid dt{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.6rem;font-weight:850}.theory-facts-grid dd{color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;margin:5px 0 0;font-size:.88rem;font-weight:850;overflow:hidden}.theory-formula-block{border:1px solid var(--border);background:var(--theory-inset,#0d1521);border-radius:5px;grid-template-columns:70px minmax(0,1fr);align-items:center;gap:10px;margin-top:14px;padding:11px;display:grid}.theory-formula-block>span{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.62rem;font-weight:850}.theory-formula-block>div{flex-wrap:wrap;gap:6px;display:flex}.theory-formula-block code{background:var(--accent);color:#07111c;border-radius:4px;place-items:center;min-width:30px;height:30px;padding:0 7px;font-size:.72rem;font-weight:950;display:grid}.theory-note-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-top:14px;display:grid}.theory-note-grid article{border:1px solid var(--border);background:var(--surface);border-radius:5px;gap:4px;min-width:0;padding:11px;display:grid}.theory-note-grid article>span{color:var(--muted);text-transform:uppercase;font-size:.6rem;font-weight:850}.theory-note-grid strong{color:var(--accent);font-size:1.2rem}.theory-note-grid small{color:var(--foreground);font-family:Cascadia Code,Consolas,monospace;font-size:.65rem}.theory-tone-controls{grid-template-columns:repeat(2,110px);gap:7px;display:grid}.theory-tone-controls label{color:var(--muted);text-transform:uppercase;gap:4px;font-size:.58rem;font-weight:850;display:grid}.theory-tone-controls select{height:34px;padding:6px 8px;font-size:.7rem}.theory-caged-grid .caged-tab-card{min-height:176px}.theory-caged-grid .caged-select-button{min-height:174px}.caged-voicing-fretboard{min-width:0;margin-top:8px;font-family:Cascadia Code,Consolas,monospace;display:grid}.caged-voicing-fret-header,.caged-voicing-fret-row{min-width:0;display:grid}.caged-voicing-fret-header{color:var(--muted);text-align:center;font-size:.46rem}.caged-voicing-fret-header>span{height:13px}.caged-voicing-fret-row>span:first-child{color:var(--foreground);place-items:center start;font-size:.48rem;display:grid}.caged-voicing-fret-cell{background:linear-gradient(#0000 calc(50% - .5px),#c6ccd5 50%,#0000 calc(50% + .5px)),#111823;border-right:1px solid #798397;place-items:center;height:17px;display:grid;position:relative}.caged-voicing-fret-cell.is-open{border-right:2px solid #e2d6b8}.caged-voicing-fret-cell b{z-index:1;border:1px solid var(--shape-color);background:var(--shape-color);border-radius:50%;place-items:center;width:14px;height:14px;display:grid}@supports (color:color-mix(in lab, red, red)){.caged-voicing-fret-cell b{background:color-mix(in srgb, var(--shape-color) 68%, #111823)}}.caged-voicing-fret-cell b{color:#fff;box-shadow:0 0 6px var(--shape-color);font-size:.42rem;font-weight:900}@supports (color:color-mix(in lab, red, red)){.caged-voicing-fret-cell b{box-shadow:0 0 6px color-mix(in srgb, var(--shape-color) 45%, transparent)}}.caged-voicing-fret-cell b.is-root{outline-offset:1px;outline:1px solid #fff}.caged-voicing-fretboard.is-shape-c{--shape-color:#f59e42}.caged-voicing-fretboard.is-shape-a{--shape-color:#38bdf8}.caged-voicing-fretboard.is-shape-g{--shape-color:#4ade80}.caged-voicing-fretboard.is-shape-e{--shape-color:#facc15}.caged-voicing-fretboard.is-shape-d{--shape-color:#f472b6}.guitar-tab-fretboard{--shape-color:var(--accent);margin:12px 0}.guitar-tab-fretboard.is-playing .caged-voicing-fret-cell b{z-index:2;outline-offset:1px;box-shadow:0 0 12px var(--accent);outline:2px solid #fff;transform:scale(1.18)}.caged-chord-fretboard{--fretboard-selected:var(--theory-selected)}.caged-chord-fretboard .full-fretboard-grid{grid-template-columns:34px 46px repeat(15,minmax(38px,1fr));min-width:650px}.caged-fretboard-legend{align-items:center;gap:5px;display:flex}.caged-fretboard-legend button{border:1px solid var(--shape-color);width:27px;height:27px;color:var(--shape-color);cursor:pointer;background:0 0;border-radius:50%;place-items:center;padding:0;font-family:Cascadia Code,Consolas,monospace;font-size:.64rem;font-weight:950;display:grid}.caged-fretboard-legend button:hover,.caged-fretboard-legend button:focus-visible,.caged-fretboard-legend button[aria-pressed=true]{background:var(--shape-color);color:#07111c;box-shadow:0 0 8px var(--shape-color);outline:none}.caged-chord-fretboard .full-fretboard-cell b{border-color:var(--shape-color);background:var(--shape-color)}@supports (color:color-mix(in lab, red, red)){.caged-chord-fretboard .full-fretboard-cell b{background:color-mix(in srgb, var(--shape-color) 68%, #111823)}}.caged-chord-fretboard .full-fretboard-cell b{color:#fff;opacity:.58;transition:opacity .12s,transform .12s,box-shadow .12s}.caged-chord-fretboard .full-fretboard-cell b.is-selected{opacity:1;box-shadow:0 0 9px var(--shape-color);transform:scale(1.08)}.caged-chord-fretboard .full-fretboard-cell b.is-root{outline-offset:1px;outline:1px solid #fff}.caged-chord-fretboard .is-shape-c{--shape-color:#f59e42}.caged-chord-fretboard .is-shape-a{--shape-color:#38bdf8}.caged-chord-fretboard .is-shape-g{--shape-color:#4ade80}.caged-chord-fretboard .is-shape-e{--shape-color:#facc15}.caged-chord-fretboard .is-shape-d{--shape-color:#f472b6}.theory-voicing-panel>.error{margin:12px 0 0}.theory-melody-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:16px;display:flex}.theory-melody-heading>span{max-width:50%;color:var(--muted);text-align:right;font-size:.74rem;line-height:1.4}.theory-scale-lanes{gap:14px;display:grid}.theory-scale-lane{border:1px solid var(--border);background:var(--theory-inset,#0d1521);border-radius:6px;min-width:0;padding:14px}.theory-scale-lane-heading{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:12px;display:flex}.theory-scale-lane-heading h3{color:var(--accent);margin:0;font-size:.92rem}.theory-scale-lane-heading p{color:var(--muted);text-align:right;margin:0;font-size:.7rem}.theory-scale-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.theory-scale-card{border:1px solid var(--border);background:var(--surface);border-radius:5px;min-width:0;min-height:215px;padding:11px 11px 44px;position:relative;overflow:hidden}.theory-scale-card.is-selected{border-color:var(--accent);background:var(--theory-selected,#122137);box-shadow:inset 3px 0 var(--accent)}.theory-scale-card.is-playing{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent), 0 0 14px #f59e0b33}.theory-scale-card-heading{gap:3px;margin-bottom:10px;display:grid}.theory-scale-card-heading strong{color:var(--accent);text-transform:uppercase;font-size:.78rem}.theory-scale-card-heading small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.62rem;overflow:hidden}.theory-scale-card .scale-fret-range{margin:0 0 8px;font-size:.62rem}.theory-scale-card .caged-scale-fretboard{margin-top:8px}.theory-scale-card>.error{margin:10px 34px 0 0;font-size:.66rem}.theory-theme .caged-tab-card{background:var(--theory-inset)}.theory-theme .caged-tab-card:hover,.theory-theme .caged-tab-card.is-selected{background:var(--theory-selected)}.playback-dock.theory-playback-dock{width:auto;max-width:none;left:20px;right:20px;transform:none}.theory-playback-display{min-width:0;padding:10px 14px}.theory-playback-heading{grid-template-columns:minmax(0,1fr) auto minmax(150px,1fr);align-items:center;gap:12px;margin-bottom:8px;display:grid}.theory-playback-heading h2{margin:3px 0 0;font-size:1rem}.theory-playback-heading>span{color:var(--accent);text-align:right;justify-self:end;font-size:.68rem;font-weight:850}.theory-playback-voicings{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;display:grid}.theory-playback-voicings>article{border:1px solid var(--border);background:var(--theory-inset);border-radius:5px;min-width:0;transition:border-color .12s,background .12s,box-shadow .12s;position:relative;overflow:hidden}.theory-playback-voicings>article.is-selected{border-color:var(--accent);background:var(--theory-selected);box-shadow:inset 3px 0 var(--accent)}.theory-playback-voicings>article.is-playing{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent), 0 0 12px #f59e4233}.theory-playback-select{width:100%;min-height:128px;color:var(--foreground);text-align:left;cursor:pointer;background:0 0;border:0;padding:7px 34px 7px 8px;display:block}.theory-playback-select>span:first-child{color:var(--accent);text-transform:uppercase;font-size:.66rem;font-weight:900}.theory-playback-select .guitar-tab-fretboard{margin:5px 0 0}.theory-playback-voicings .caged-icon-play{bottom:6px;right:6px}.playback-dock-footer.theory-playback-footer{min-height:64px}.theory-playback-footer .theory-playback-transport{grid-column:2}.theory-playback-footer .playback-dock-right{grid-column:3}.transport-controls.theory-playback-transport{grid-template-columns:repeat(4,minmax(62px,1fr));gap:5px;display:grid}.theory-theme input,.theory-theme select{background:var(--theory-inset)}.theory-theme input:focus,.theory-theme select:focus{box-shadow:0 0 0 3px #f59e4230}.theory-theme .theory-formula-block code,.theory-theme .play-scale-path-icon:hover:not(:disabled){color:#1a0d03}.piano-theory-theme{--accent:#fb7185;--theory-selected:#3a1d2a;--circle-accent-soft:#fb718524}.piano-theory-theme input:focus,.piano-theory-theme select:focus{box-shadow:0 0 0 3px #fb718530}.piano-theory-theme .theory-formula-block code,.piano-theory-theme .play-scale-path-icon:hover:not(:disabled){color:#250810}.piano-explore-keyboard{border-top:1px solid var(--border);grid-column:1/-1;min-width:0;margin-top:4px;padding-top:13px}.piano-keyboard{min-width:0;overflow:hidden}.piano-keyboard svg{width:100%;height:auto;max-height:150px;display:block;overflow:visible}.piano-white-key{fill:#f3eee4;stroke:#293141;stroke-width:1.5px}.piano-black-key{fill:#080d15;stroke:#465164;stroke-width:1.5px}.piano-key-label{fill:#101722;text-anchor:middle;font-family:Cascadia Code,Consolas,monospace;font-size:10px;font-weight:950}.piano-key-label.is-black{fill:#f2f5f3;font-size:8px}.piano-key.is-note.is-left .piano-white-key{fill:#38bdf8}.piano-key.is-note.is-left .piano-black-key{fill:#087fae}.piano-key.is-note.is-right .piano-white-key{fill:#fb7185}.piano-key.is-note.is-right .piano-black-key{fill:#b52f57}.piano-key.is-root .piano-white-key,.piano-key.is-root .piano-black-key{stroke:#f4d35e;stroke-width:4px}.piano-key.is-playing .piano-white-key,.piano-key.is-playing .piano-black-key{fill:#f4d35e;stroke:#fff;stroke-width:5px;filter:drop-shadow(0 0 6px #f4d35e)}.piano-keyboard-legend{color:var(--muted);flex-wrap:wrap;justify-content:end;align-items:center;gap:10px;margin-top:6px;font-size:.58rem;display:flex}.piano-keyboard-legend span{align-items:center;gap:5px;display:inline-flex}.piano-keyboard-legend i{border-radius:2px;width:9px;height:9px}.piano-keyboard-legend .is-left{background:#38bdf8}.piano-keyboard-legend .is-right{background:#fb7185}.piano-keyboard-legend .is-root{border:2px solid #f4d35e}.piano-keyboard.is-compact svg{height:64px}.piano-keyboard.is-compact .piano-keyboard-legend{display:none}.piano-voicing-panel .theory-voicing-heading>span{max-width:460px;color:var(--muted);text-align:right;font-size:.72rem;line-height:1.4}.theory-caged-grid .piano-voicing-card .caged-select-button{min-height:224px}.piano-voicing-card .piano-keyboard{margin-top:12px}.piano-voicing-detail{color:var(--muted);margin-top:12px;font-size:.62rem;line-height:1.45;display:block}.piano-scale-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.piano-scale-card{border:1px solid var(--border);background:var(--theory-inset);border-radius:6px;min-width:0;padding:13px 48px 13px 13px;position:relative}.piano-scale-card.is-playing{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent), 0 0 14px #fb718533}.piano-scale-card>div:first-child{gap:3px;margin-bottom:10px;display:grid}.piano-scale-card>div:first-child strong{color:var(--accent);font-size:.82rem}.piano-scale-card>div:first-child small{color:var(--muted);font-size:.62rem}.piano-scale-card .play-scale-path-icon{bottom:12px;right:10px}.piano-playback-voicings .theory-playback-select{min-height:112px}.piano-playback-voicings .piano-keyboard{margin-top:7px}.piano-voicing-controls button{min-width:42px}.scales-theme{--background:#0a0f18;--surface:#121a27;--surface-raised:#182335;--border:#2c3c54;--foreground:#f2f5f3;--muted:#9eacbd;--accent:#a78bfa;--scales-inset:#0d1521;--scales-selected:#251e3d;--circle-accent-soft:#a78bfa24;background:var(--background);min-height:100dvh;color:var(--foreground)}.scales-lab-shell{width:min(1440px,100% - 40px);padding:calc(var(--master-lab-nav-height) + 92px) 0 calc(var(--playback-dock-height,360px) + 44px);gap:28px;margin:0 auto;display:grid}.scales-lab-heading{gap:8px;max-width:780px;display:grid}.scales-lab-heading>p:last-child{color:var(--muted);margin:0;font-size:.92rem;line-height:1.6}.scales-explore-layout{grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);align-items:stretch;gap:14px;height:500px;display:grid}.scales-origin-layout{grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);align-items:stretch;gap:14px;display:grid}.scales-setup-panel,.scales-anatomy-panel,.scales-origin-panel,.scale-origin-map-panel,.scales-fretboard-panel{border:1px solid var(--border);background:var(--surface-raised);border-radius:7px;min-width:0;padding:18px}.scales-section-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:16px;display:flex}.scales-section-heading h2{margin:4px 0 0;font-size:1.25rem}.scales-section-heading>span{max-width:50%;color:var(--muted);text-align:right;font-size:.74rem;line-height:1.4}.scales-section-heading .scale-interval-key b{color:var(--accent);font-family:Cascadia Code,Consolas,monospace}.scales-control-grid{grid-template-columns:.65fr 1.5fr .7fr 1fr 1fr;gap:9px;display:grid}.scales-explore-layout .scales-section-heading{flex-direction:column;align-items:start;gap:6px}.scales-explore-layout .scales-section-heading>span{text-align:left;max-width:none}.scales-explore-layout .scales-control-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.scales-control-grid label{min-width:0;color:var(--muted);text-transform:uppercase;gap:5px;font-size:.62rem;font-weight:850;display:grid}.scales-control-grid input,.scales-control-grid select{background:var(--scales-inset);height:40px;padding:8px 10px;font-size:.74rem}.full-fretboard-diagram{border-top:1px solid var(--border);min-width:0;margin:18px 0 0;padding-top:14px}.full-fretboard-diagram figcaption{justify-content:space-between;align-items:end;gap:14px;margin-bottom:10px;display:flex}.full-fretboard-diagram figcaption>div:first-child{gap:3px;display:grid}.full-fretboard-diagram figcaption strong{color:var(--foreground);font-size:.78rem}.full-fretboard-diagram figcaption>div:first-child span{color:var(--muted);font-size:.6rem}.full-fretboard-legend{color:var(--muted);white-space:nowrap;align-items:center;gap:11px;font-size:.58rem;display:flex}.full-fretboard-legend span{align-items:center;gap:5px;display:inline-flex}.full-fretboard-legend i{border:1px solid var(--accent);background:var(--scales-selected);border-radius:50%;width:9px;height:9px;display:block}.full-fretboard-legend i.is-tonic{background:var(--accent);box-shadow:0 0 5px var(--accent)}.full-fretboard-scroll{scrollbar-color:var(--border) transparent;scrollbar-width:thin;width:100%;max-width:100%;padding-bottom:4px;overflow:auto hidden}.full-fretboard-grid{width:100%;min-width:740px;color:var(--muted);grid-template-columns:34px 46px repeat(22,minmax(30px,1fr));font-family:Cascadia Code,Consolas,monospace;display:grid}.full-fretboard-corner,.full-fretboard-fret-number{place-items:center;height:19px;font-size:.5rem;font-weight:800;display:grid}.full-fretboard-corner{text-transform:uppercase;justify-items:start;overflow:hidden}.full-fretboard-fret-number.is-open{border-right:3px solid #e2d6b8}.full-fretboard-string-row{display:contents}.full-fretboard-string-row>strong{height:31px;color:var(--foreground);place-items:center start;font-size:.58rem;display:grid}.full-fretboard-cell{background:linear-gradient(#0000 calc(50% - .5px),#c6ccd5 50%,#0000 calc(50% + .5px)),#111823;border-right:1px solid #798397;place-items:center;height:31px;display:grid;position:relative}.full-fretboard-cell.is-open{background:linear-gradient(#0000 calc(50% - .5px),#c6ccd5 50%,#0000 calc(50% + .5px));border-right:3px solid #e2d6b8}.full-fretboard-cell b{z-index:1;border:1px solid var(--accent);background:var(--fretboard-selected,var(--scales-selected));color:#ddd6fe;border-radius:50%;place-items:center;width:22px;height:22px;font-size:.54rem;font-weight:900;display:grid;box-shadow:0 1px 5px #0009}.full-fretboard-cell b.is-tonic{background:var(--accent);color:#100b1e;box-shadow:0 0 8px #a78bfa88}.full-fretboard-marker-label{height:14px}.full-fretboard-marker{place-items:center;height:14px;display:grid}.full-fretboard-marker i{background:var(--muted);opacity:.7;border-radius:50%;width:4px;height:4px;display:block;position:relative}.full-fretboard-marker i.is-double:before,.full-fretboard-marker i.is-double:after{background:var(--muted);content:"";border-radius:50%;width:4px;height:4px;position:absolute;top:0}.full-fretboard-marker i.is-double{background:0 0}.full-fretboard-marker i.is-double:before{left:-4px}.full-fretboard-marker i.is-double:after{right:-4px}.scales-theme input,.scales-theme select{background:var(--scales-inset)}.scales-theme input:focus,.scales-theme select:focus{box-shadow:0 0 0 3px #a78bfa30}.scales-note-grid{grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:8px;display:grid}.scales-note-grid article{border:1px solid var(--border);background:var(--surface);border-radius:5px;gap:4px;min-width:0;padding:11px;display:grid}.scales-note-grid small{color:var(--muted);font-size:.62rem;font-weight:850}.scales-note-grid strong{color:var(--accent);font-size:1.2rem}.scales-note-grid span{color:var(--foreground);font-family:Cascadia Code,Consolas,monospace;font-size:.66rem}.scales-formula-row{border:1px solid var(--border);background:var(--scales-inset);border-radius:5px;grid-template-columns:70px minmax(0,1fr);align-items:center;gap:10px;margin-top:14px;padding:11px;display:grid}.scales-formula-row>span{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.62rem;font-weight:850}.scales-formula-row>div{flex-wrap:wrap;gap:6px;display:flex}.scales-formula-row code{background:var(--accent);color:#100b1e;border-radius:4px;place-items:center;min-width:30px;height:30px;padding:0 7px;font-size:.72rem;font-weight:950;display:grid}.scales-relationship-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.scales-relationship-card{border:1px solid var(--border);background:var(--surface);border-radius:5px;gap:6px;min-width:0;padding:12px;display:grid}.scales-relationship-card>span{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:.62rem;font-weight:850}.scale-origin-flow{grid-template-columns:minmax(160px,.8fr) 24px minmax(240px,1.4fr) 24px minmax(160px,.8fr);align-items:stretch;gap:8px;display:grid}.scale-origin-flow article,.scale-origin-rule{border:1px solid var(--border);background:var(--surface);text-align:center;border-radius:6px;align-content:center;gap:6px;min-width:0;min-height:90px;padding:14px;display:grid}.scale-origin-flow article small{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.62rem;font-weight:850}.scale-origin-flow article strong{color:var(--foreground);font-size:1rem}.scale-origin-flow article.is-result{border-color:var(--accent);background:var(--scales-selected)}.scale-origin-flow article.is-result strong,.scale-origin-rule>strong{color:var(--accent)}.scale-origin-rule>strong{letter-spacing:.06em;text-transform:uppercase;font-size:.78rem}.scale-origin-rule>span{color:var(--muted);font-size:.75rem;line-height:1.45}.scale-origin-arrow{color:var(--accent);place-items:center;font-size:1.35rem;font-weight:950;display:grid}.scale-origin-note-strip{border:1px solid var(--border);background:var(--scales-inset);border-radius:6px;grid-template-columns:118px minmax(0,1fr);align-items:center;gap:12px;margin-top:12px;padding:11px;display:grid}.scale-origin-note-strip>span{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.62rem;font-weight:850}.scale-origin-note-strip>div{grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:6px;display:grid}.scale-origin-note-strip>div>span{border:1px solid var(--border);background:var(--surface);border-radius:5px;place-items:center;gap:2px;min-height:54px;padding:6px;display:grid;position:relative}.scale-origin-note-strip small{color:var(--muted);font-size:.55rem}.scale-origin-note-strip strong{font-size:.82rem}.scale-origin-note-strip em{color:var(--accent);text-transform:uppercase;font-size:.5rem;font-style:normal;font-weight:850}.scale-origin-note-strip .is-origin{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.scale-origin-map-panel{grid-template-rows:auto minmax(0,1fr) auto;display:grid}.scale-origin-map{width:100%;max-height:300px;margin:auto;display:block;overflow:visible}.scale-origin-map>polygon{fill:var(--scales-inset);stroke:var(--border);stroke-width:2px}.scale-origin-map-center{fill:var(--surface);stroke:var(--border);stroke-width:2px}.scale-origin-map-center-label,.scale-origin-map-center-detail,.scale-origin-map-node text{text-anchor:middle}.scale-origin-map-center-label{fill:var(--accent);font-size:17px;font-weight:950}.scale-origin-map-center-detail{fill:var(--muted);font-size:9px}.scale-origin-map-node circle{fill:var(--surface);stroke:var(--border);stroke-width:2px}.scale-origin-map-degree{fill:var(--muted);font-size:8px;font-weight:850}.scale-origin-map-note{fill:var(--foreground);font-size:13px;font-weight:950}.scale-origin-map-node.is-origin circle{fill:var(--scales-selected);stroke:var(--accent);stroke-width:3px}.scale-origin-map-node.is-origin .scale-origin-map-degree,.scale-origin-map-node.is-origin .scale-origin-map-note{fill:var(--accent)}.scale-origin-map-panel>p{color:var(--muted);text-align:center;justify-content:center;align-items:center;gap:7px;margin:8px 0 0;font-size:.68rem;display:flex}.scale-origin-map-panel>p>span{border:2px solid var(--accent);background:var(--scales-selected);border-radius:50%;width:9px;height:9px}.scale-path-unavailable{border:1px dashed var(--border);background:var(--scales-inset);border-radius:6px;gap:7px;padding:16px;display:grid}.scale-path-unavailable strong{color:var(--accent);font-size:.82rem}.scale-path-unavailable p,.scale-practice-unavailable{color:var(--muted);margin:0;font-size:.7rem;line-height:1.5}.scale-practice-unavailable{text-align:center;place-items:center;min-height:68px;padding:8px;display:grid}.scales-relationship-card strong{color:var(--accent);text-transform:capitalize;font-size:.9rem}.scales-relationship-card small{overflow-wrap:anywhere;color:var(--foreground);font-family:Cascadia Code,Consolas,monospace;font-size:.66rem;line-height:1.45}.scales-pattern-lanes{gap:14px;display:grid}.scales-pattern-lane{border:1px solid var(--border);background:var(--scales-inset);border-radius:6px;min-width:0;padding:14px}.scales-pattern-heading{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:12px;display:flex}.scales-pattern-heading h3{color:var(--accent);margin:0;font-size:.92rem}.scales-pattern-heading p{color:var(--muted);text-align:right;margin:0;font-size:.7rem}.scales-pattern-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.scales-pattern-card{border:1px solid var(--border);background:var(--surface);border-radius:5px;min-width:0;min-height:230px;position:relative;overflow:hidden}.scales-pattern-card.is-selected{border-color:var(--accent);background:var(--scales-selected);box-shadow:inset 3px 0 var(--accent)}.scales-pattern-card.is-playing{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent), 0 0 14px #a78bfa33}.scales-pattern-select{width:100%;min-height:228px;color:var(--foreground);text-align:left;cursor:pointer;background:0 0;border:0;padding:11px 11px 44px;display:block}.scales-pattern-select:focus-visible{outline-offset:-3px;outline:3px solid #a78bfa55}.scales-pattern-card-heading{justify-content:space-between;align-items:baseline;gap:7px;margin-bottom:10px;display:flex}.scales-pattern-card-heading strong{color:var(--accent);text-transform:uppercase;font-size:.76rem}.scales-pattern-card-heading small{color:var(--muted);text-transform:uppercase;font-size:.58rem}.scales-pattern-card .scale-fret-range{margin:0 0 8px;font-size:.62rem}.scales-pattern-card .caged-scale-fretboard{margin-top:8px}.scales-pattern-card>.play-scale-path-icon{z-index:2}.scales-pattern-card>.error{margin:0;font-size:.62rem;position:absolute;bottom:9px;left:11px;right:44px}.caged-scale-fretboard .caged-voicing-fret-cell b.is-playing{z-index:2;background:var(--accent);color:#100b1e;outline-offset:1px;box-shadow:0 0 12px var(--accent);outline:2px solid #fff;transform:scale(1.28)}.scales-theme .play-scale-path-icon:hover:not(:disabled){color:#100b1e}.playback-dock.scale-practice-dock{width:auto;max-width:none;left:20px;right:20px;transform:none}.scale-practice-display{min-width:0;padding:10px 14px}.scale-practice-heading{grid-template-columns:minmax(0,1fr) auto minmax(150px,1fr);align-items:center;gap:12px;margin-bottom:8px;display:grid}.scale-practice-heading h2{text-overflow:ellipsis;white-space:nowrap;margin:3px 0 0;font-size:1rem;overflow:hidden}.scale-practice-status{color:var(--accent);text-align:right;justify-self:end;font-size:.68rem;font-weight:850}.scale-practice-position-controls{justify-content:center;align-items:center;gap:4px;display:flex}.scale-practice-position-controls button{border:1px solid var(--border);background:var(--scales-inset);min-width:30px;height:28px;color:var(--muted);cursor:pointer;border-radius:4px;place-items:center;padding:3px 7px;font-size:.66rem;font-weight:900;display:grid}.scale-practice-position-controls button:hover:not(:disabled),.scale-practice-position-controls button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.scale-practice-position-controls button:disabled{cursor:not-allowed;opacity:.5}.scale-practice-tab-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.scale-practice-tab-card{border:1px solid var(--border);background:var(--scales-inset);border-radius:5px;min-width:0;padding:7px 9px;transition:border-color .12s,background .12s,box-shadow .12s;overflow:hidden}.scale-practice-tab-card.is-playing{border-color:var(--accent);background:var(--scales-selected);box-shadow:inset 3px 0 var(--accent)}.scale-practice-tab-card.is-disabled{opacity:.42}.scale-practice-tab-card>header{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:5px;display:flex}.scale-practice-tab-card>header strong{color:var(--accent);font-size:.68rem}.scale-practice-tab-card>header small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.55rem;overflow:hidden}.practice-tab-lines{gap:1px;font-family:Cascadia Code,Consolas,monospace;font-size:.58rem;display:grid;overflow:hidden}.practice-tab-line{grid-template-columns:14px minmax(0,1fr);align-items:center;min-width:0;min-height:11px;display:grid}.practice-tab-line>b,.practice-tab-frets{border-top:1px solid #67768a;justify-content:space-around;align-items:center;min-width:0;display:flex;position:relative}.practice-tab-line b{background:var(--scales-inset);min-width:15px;color:var(--foreground);text-align:center;font-weight:500;position:relative;top:-1px}.scale-practice-tab-card.is-playing .practice-tab-line b{background:var(--scales-selected)}.piano-scales-theme{--accent:#f4d35e;--scales-inset:#121712;--scales-selected:#352f17;--circle-accent-soft:#f4d35e24}.has-compact-project-menu.app-shell,.has-compact-project-menu .theory-lab-shell,.has-compact-project-menu .scales-lab-shell{padding-top:calc(var(--master-lab-nav-height) + 40px)}.has-compact-project-menu .lab-setup-button{top:calc(var(--master-lab-nav-height) + 18px)}.has-compact-project-menu .settings-sidebar{top:calc(var(--master-lab-nav-height) + 68px)}.piano-scales-theme input:focus,.piano-scales-theme select:focus{box-shadow:0 0 0 3px #f4d35e30}.piano-scales-theme .piano-key.is-note.is-right .piano-white-key{fill:#f4d35e}.piano-scales-theme .piano-key.is-note.is-right .piano-black-key{fill:#a38316}.piano-scales-theme .piano-key.is-root .piano-white-key,.piano-scales-theme .piano-key.is-root .piano-black-key{stroke:#2dd4bf}.piano-scales-theme .piano-keyboard-legend .is-right{background:#f4d35e}.piano-scales-theme .piano-keyboard-legend .is-root{border-color:#2dd4bf}.piano-full-keyboard-map{border-top:1px solid var(--border);grid-column:1/-1;gap:10px;min-width:0;margin-top:8px;padding-top:14px;display:grid}.piano-full-keyboard-map>div:first-child{justify-content:space-between;align-items:baseline;gap:14px;display:flex}.piano-full-keyboard-map>div:first-child strong{font-size:.78rem}.piano-full-keyboard-map>div:first-child span{color:var(--muted);font-size:.6rem}.piano-pattern-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.scales-pattern-card.piano-pattern-card{min-height:190px}.piano-pattern-card .scales-pattern-select{min-height:188px}.piano-pattern-card .piano-keyboard{margin-top:14px}.piano-pattern-card .scales-pattern-card-heading{flex-direction:column;align-items:start}.piano-pattern-card .scales-pattern-card-heading small{text-transform:none}.piano-practice-keyboard-grid .piano-keyboard svg{height:58px}.piano-scale-practice-dock .scale-practice-position-controls button{min-width:48px}.piano-scale-practice-dock .scale-practice-status{color:var(--accent)}.piano-scale-practice-dock .scale-practice-tab-card.is-playing{box-shadow:inset 3px 0 var(--accent), 0 0 12px #f4d35e22}.piano-progression-theme{--background:#081311;--surface:#0d1c19;--surface-raised:#12231f;--border:#29453f;--foreground:#f2f7f5;--muted:#9bb7b0;--accent:#2dd4bf;background:var(--background);min-height:100dvh;color:var(--foreground)}.piano-progression-shell{width:min(1440px,100% - 40px);padding:calc(var(--master-lab-nav-height) + 40px) 0 calc(var(--piano-progression-dock-height,320px) + 44px);gap:28px;margin:0 auto;display:grid}.piano-progression-theme input,.piano-progression-theme select{background:#0a1715}.piano-progression-theme input:focus,.piano-progression-theme select:focus{box-shadow:0 0 0 3px #2dd4bf30}.piano-progression-theme .piano-key.is-note.is-left .piano-white-key{fill:#257f86}.piano-progression-theme .piano-key.is-note.is-left .piano-black-key{fill:#15525a}.piano-progression-theme .piano-key.is-note.is-right .piano-white-key{fill:#2dd4bf}.piano-progression-theme .piano-key.is-note.is-right .piano-black-key{fill:#168878}.piano-progression-theme .piano-key.is-root .piano-white-key,.piano-progression-theme .piano-key.is-root .piano-black-key{stroke:#f4d35e}.piano-progression-theme .piano-keyboard-legend .is-right{background:#2dd4bf}.piano-progression-voicing-grid,.piano-melody-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.piano-progression-voicing-card{border:1px solid var(--border);background:var(--surface);border-radius:6px;min-width:0;padding:13px;transition:border-color .15s,box-shadow .15s}.piano-progression-voicing-card.is-playing,.piano-melody-grid>article.is-playing{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent), 0 0 14px #2dd4bf22}.piano-progression-voicing-card>.analysis-position{width:20px;height:20px;margin-bottom:9px;font-size:.62rem}.piano-voicing-card-heading{gap:4px;min-height:52px;display:grid}.piano-voicing-card-heading strong{color:var(--accent);font-size:1rem}.piano-voicing-card-heading small{color:var(--muted);font-size:.62rem;line-height:1.4}.piano-progression-voicing-card>label{color:var(--muted);gap:5px;margin:10px 0;font-size:.62rem;font-weight:800;display:grid}.piano-progression-voicing-card select{min-height:36px;padding:6px 8px}.piano-audition-button{border:1px solid var(--accent);width:100%;min-height:34px;color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;gap:6px;margin-top:10px;font-size:.68rem;font-weight:850;display:inline-flex}.piano-audition-button:hover:not(:disabled){background:var(--accent);color:#071512}.piano-audition-button svg{width:14px;height:14px}.piano-melody-heading{align-items:center}.piano-melody-heading .selected-progression-heading-actions>button{border:1px solid var(--accent);min-height:30px;color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:6px;padding:5px 9px;font-size:.66rem;font-weight:850;display:inline-flex}.piano-melody-heading .selected-progression-heading-actions>button:hover:not(:disabled){background:var(--accent);color:#071512}.piano-melody-heading .selected-progression-heading-actions>button:disabled{opacity:.5;cursor:not-allowed}.piano-melody-heading .selected-progression-heading-actions svg{width:15px;height:15px}.piano-melody-grid>article{border:1px solid var(--border);background:var(--surface);border-radius:6px;min-width:0;padding:13px}.piano-melody-placeholder{grid-column:1/-1;min-height:150px}.piano-melody-card-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.piano-melody-card-heading strong{color:var(--accent)}.piano-melody-card-heading button{border:1px solid var(--border);width:28px;height:28px;color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;place-items:center;display:grid}.piano-melody-card-heading button:hover{border-color:var(--accent)}.piano-melody-card-heading svg{width:15px;height:15px}.piano-melody-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:10px;display:grid}.piano-melody-controls label{color:var(--muted);gap:4px;font-size:.6rem;font-weight:800;display:grid}.piano-melody-controls select{min-width:0;height:34px;padding:5px 7px;font-size:.68rem}.piano-melody-note-row{align-items:center;gap:4px;min-height:27px;margin-top:8px;padding-bottom:2px;display:flex;overflow-x:auto}.piano-melody-note-row span{border:1px solid var(--border);color:var(--muted);border-radius:3px;flex:none;padding:3px 5px;font-family:Cascadia Code,Consolas,monospace;font-size:.58rem}.piano-melody-note-row span.is-playing{border-color:var(--accent);background:var(--accent);color:#071512;font-weight:900;box-shadow:0 0 8px #2dd4bf88}.piano-progression-dock-display{min-width:0;padding:10px 14px}.piano-progression-dock-heading{justify-content:space-between;align-items:center;gap:14px;margin-bottom:8px;display:flex}.piano-progression-dock-heading h2{margin:2px 0 0;font-size:1rem}.piano-progression-dock-heading .midi-download-button{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:5px;padding:5px 8px;font-size:.62rem;font-weight:850;display:inline-flex}.piano-progression-dock-heading .midi-download-button:disabled{opacity:.5;cursor:not-allowed}.piano-progression-dock-chords{grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;display:grid}.piano-progression-dock-chords>.muted{text-align:center;grid-column:1/-1;margin:8px 0}.piano-progression-dock-chords>article{border:1px solid var(--border);background:var(--surface);border-radius:5px;min-width:0;padding:6px;transition:border-color .15s,box-shadow .15s}.piano-progression-dock-chords>article.is-playing{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent)}.piano-progression-card-heading{grid-template-columns:16px minmax(0,1fr);align-items:center;gap:2px 5px;display:grid}.piano-progression-card-heading>span{border:1px solid var(--border);width:16px;height:16px;color:var(--muted);border-radius:50%;grid-row:1/3;place-items:center;font-size:.5rem;display:grid}.piano-progression-card-heading strong,.piano-progression-card-heading small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.piano-progression-card-heading strong{color:var(--accent);font-size:.68rem}.piano-progression-card-heading small{color:var(--muted);font-size:.5rem}.piano-progression-dock-chords .piano-keyboard{margin:4px 0}.piano-progression-dock-chords .piano-keyboard.is-compact svg{height:42px}.piano-progression-dock-chords>article>label{color:var(--muted);grid-template-columns:auto 1fr;align-items:center;gap:5px;font-size:.52rem;display:grid}.piano-progression-dock-chords select{min-width:0;height:25px;padding:2px 4px;font-size:.58rem}.playback-dock-footer.piano-progression-playback-footer{grid-template-columns:minmax(150px,1fr) auto minmax(150px,1fr);min-height:64px}.piano-progression-tempo-controls{grid-template-columns:70px 78px;gap:6px;display:grid}.piano-progression-tempo-controls label{color:var(--muted);text-transform:uppercase;gap:3px;font-size:.55rem;font-weight:850;display:grid}.piano-progression-tempo-controls input,.piano-progression-tempo-controls select{height:32px;padding:4px 6px;font-size:.68rem}.piano-progression-transport{grid-template-columns:repeat(5,minmax(56px,1fr));display:grid}.practice-tab-line b.is-playing{color:var(--accent);text-shadow:0 0 8px var(--accent);font-weight:950}.playback-dock-footer.scale-practice-footer{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;min-height:64px;padding-right:14px}.scale-practice-footer .scale-practice-transport{grid-column:2}.scale-practice-footer .playback-dock-right{grid-column:3}.transport-controls.scale-practice-transport{grid-template-columns:repeat(6,minmax(54px,1fr));gap:5px;display:grid}.scale-practice-transport .transport-button{min-width:0;padding:6px 7px;font-size:.66rem}.scale-practice-footer .playback-dock-right>.error{max-width:180px;font-size:.62rem}.circle-of-fifths-panel{border:1px solid var(--border);background:var(--surface-raised);border-radius:7px;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;padding:18px;display:grid}.circle-of-fifths-heading{justify-content:space-between;align-items:end;gap:12px;display:flex}.circle-of-fifths-heading h2{margin:4px 0 0;font-size:1.25rem}.circle-of-fifths-heading>span{max-width:46%;color:var(--muted);text-align:right;text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap;font-size:.68rem;overflow:hidden}.circle-of-fifths{width:min(330px,100%);height:auto;margin:6px auto;display:block;overflow:visible}.circle-ring{fill:none;stroke:var(--border);stroke-width:1px}.circle-ring-outer{stroke-dasharray:2 5}.circle-ring-inner{stroke:var(--circle-accent-soft)}.circle-tone circle{fill:var(--surface);stroke:var(--border);stroke-width:1.5px;transition:fill .15s,stroke .15s,filter .15s}.circle-tone text{fill:var(--muted);text-anchor:middle;dominant-baseline:middle;font-family:Arial,Helvetica,sans-serif;font-size:8px;font-weight:850}.circle-tone.is-active circle{fill:var(--circle-accent-soft);stroke:var(--accent)}.circle-tone.is-active text{fill:var(--accent)}.circle-tone.is-tonic circle{fill:var(--accent);stroke:var(--foreground);stroke-width:2px;filter:drop-shadow(0 0 6px var(--accent))}.circle-tone.is-tonic text{fill:#100b1e;font-weight:950}.circle-center-label text{fill:var(--accent);text-anchor:middle;font-family:Arial,Helvetica,sans-serif;font-size:20px;font-weight:950}.circle-center-label text:last-child{fill:var(--muted);letter-spacing:1.5px;font-size:7px}.circle-legend{color:var(--muted);justify-content:center;align-items:center;gap:16px;font-size:.64rem;display:flex}.circle-legend span{align-items:center;gap:6px;display:inline-flex}.circle-legend i{border:1px solid var(--accent);background:var(--circle-accent-soft);border-radius:50%;width:9px;height:9px;display:block}.circle-legend i.is-tonic{background:var(--accent);box-shadow:0 0 5px var(--accent)}.section-label{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;font-size:.75rem;font-weight:800}.workbench{gap:44px;display:grid}.lab-project-brand-mark{border:1px solid var(--accent);width:34px;height:34px;color:var(--accent);border-radius:4px;place-items:center;font-size:.72rem;font-weight:950;display:grid}.lab-setup-button{z-index:46;top:calc(var(--master-lab-nav-height) + 78px);border:1px solid var(--accent);background:var(--surface-raised);width:42px;height:42px;color:var(--accent);cursor:pointer;border-radius:5px;place-items:center;padding:0;transition:background .15s,color .15s,transform .15s;display:grid;position:fixed;left:20px;box-shadow:0 8px 22px #0008}.lab-setup-button:hover,.lab-setup-button:focus-visible,.lab-setup-button.is-open{background:var(--accent);color:#07111c;outline:none}.lab-setup-button:focus-visible{box-shadow:0 0 0 3px var(--accent), 0 8px 22px #0008}@supports (color:color-mix(in lab, red, red)){.lab-setup-button:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 32%, transparent), 0 8px 22px #0008}}.lab-setup-button svg{width:21px;height:21px}.visually-hidden{clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;width:1px!important;height:1px!important;position:absolute!important;overflow:hidden!important}.settings-sidebar{z-index:45;top:calc(var(--master-lab-nav-height) + 130px);visibility:hidden;border:1px solid var(--border);background:var(--surface);opacity:0;pointer-events:none;border-radius:6px;flex-direction:column;width:250px;padding:16px;transition:transform .22s,opacity .18s,visibility 0s linear .22s;display:flex;position:fixed;bottom:20px;left:20px;overflow-y:auto;transform:translate(calc(-100% - 24px));box-shadow:12px 16px 36px #0009}.settings-sidebar.is-open{visibility:visible;opacity:1;pointer-events:auto;transition-delay:0s;transform:translate(0)}.settings-sidebar-heading{border-bottom:1px solid var(--border);padding-bottom:18px}.settings-section-name{color:var(--accent);text-transform:uppercase;letter-spacing:.06em;font-size:.68rem;font-weight:800;display:block}.settings-sidebar-heading p,.settings-group-heading p{color:var(--muted);margin:2px 0 0;font-size:.7rem}.settings-nav{gap:8px;margin-top:18px;display:grid}.settings-group-heading{border-top:1px solid var(--border);grid-column:1/-1;margin-top:10px;padding:18px 0 2px}.setting-item{background:#0d1521;border:1px solid #0000;border-radius:4px;grid-template-columns:32px minmax(0,1fr);align-items:start;gap:10px;padding:11px;display:grid}.setting-item:focus-within{border-color:var(--accent)}.setting-icon{border:1px solid var(--border);width:30px;height:30px;color:var(--accent);border-radius:4px;place-items:center;display:grid}.setting-icon svg{width:17px;height:17px}.setting-content{min-width:0}.setting-content label,.setting-name{color:var(--foreground);margin:2px 0 7px;font-size:.76rem;font-weight:850;display:block}.setting-content select,.setting-content input{padding:7px 8px;font-size:.76rem}.setting-content select:disabled{cursor:not-allowed;opacity:.55}.genre-generation-controls{grid-column:1/-1;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;display:grid}.generation-chord-count{background:#0d1521;border:1px solid #0000;border-radius:4px;grid-template-columns:32px 42px;align-items:center;gap:10px;min-width:0;padding:11px;display:grid}.generation-chord-count:focus-within{border-color:var(--accent)}.generation-chord-count .setting-icon{width:30px;height:30px}.generation-chord-count input{text-align:center;min-width:0;padding:7px 8px;font-size:.76rem}.genre-generate{border:1px solid var(--accent);width:100%;min-height:38px;color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;padding:5px 10px;font-size:.7rem;font-weight:850}.genre-generate:hover:not(:disabled){background:var(--accent);color:#07111c}.genre-generate:disabled{border-color:var(--border);color:var(--muted);cursor:not-allowed;opacity:.5}.tone-control-group{grid-column:1/-1;gap:7px;display:grid}.tone-control-group+.tone-control-group{border-top:1px solid var(--border);margin-top:5px;padding-top:13px}.tone-control-group h3{color:var(--foreground);margin:0;padding-left:2px;font-size:.76rem;font-weight:850}.tone-control-panel{background:#0d1521;border:1px solid #0000;border-radius:4px;gap:8px;padding:11px;display:grid}.tone-control-group:focus-within .tone-control-panel{border-color:var(--accent)}.tone-control-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.tone-control{min-width:0;color:var(--muted);gap:6px;font-size:.66rem;font-weight:800;display:grid}.tone-control select{min-width:0;padding:7px 6px;font-size:.7rem}.tone-control select:disabled{cursor:not-allowed;opacity:.55}.setting-range{color:var(--muted);margin-top:5px;font-size:.62rem;display:block}.setting-placeholder{opacity:.62;min-height:62px}.coming-soon{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.68rem}.release-trigger{border:0;border-top:1px solid var(--border);width:100%;color:var(--foreground);text-align:left;cursor:pointer;background:0 0;flex-direction:column;align-items:start;gap:3px;margin-top:auto;padding:18px 11px 2px;font-size:.76rem;font-weight:800;display:flex}.release-trigger span{color:var(--accent);font-size:.68rem;font-weight:700}.release-trigger:hover span{text-decoration:underline}.release-trigger:focus-visible,.release-dialog-close:focus-visible{outline-offset:3px;outline:3px solid #66b7ff52}.release-dialog-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#050912c7;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.release-dialog{border:1px solid var(--border);background:var(--surface-raised);width:min(540px,100%);max-height:min(680px,100dvh - 32px);color:var(--foreground);border-radius:8px;padding:0;overflow:auto;box-shadow:0 24px 80px #000a}.release-dialog-content{padding:24px}.release-dialog-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:start;gap:20px;padding-bottom:18px;display:flex}.release-dialog-header h2{margin:5px 0 0;font-size:1.5rem}.release-dialog-close{border:1px solid var(--border);width:34px;height:34px;color:var(--muted);cursor:pointer;background:#0d1521;border-radius:4px;flex:0 0 34px;place-items:center;font-size:1.4rem;line-height:1;display:grid}.release-dialog-close:hover{border-color:var(--accent);color:var(--accent)}.release-list{display:grid}.release-entry{padding:22px 0}.release-entry+.release-entry{border-top:1px solid var(--border)}.release-entry-heading{justify-content:space-between;align-items:start;gap:18px;display:flex}.release-entry-heading strong{color:var(--accent);font-family:Cascadia Code,Consolas,monospace;font-size:.78rem}.release-entry-heading h3{margin:5px 0 0;font-size:1.12rem}.release-entry-heading time{color:var(--muted);white-space:nowrap;font-size:.72rem}.release-entry ul{color:var(--muted);gap:8px;margin:16px 0 0;padding-left:20px;font-size:.84rem;line-height:1.45;display:grid}.field-label{color:var(--muted);gap:8px;font-size:.82rem;font-weight:700;display:grid}input,select{border:1px solid var(--border);width:100%;color:var(--foreground);background:#0d1521;border-radius:4px;outline:none;padding:11px 12px}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #66b7ff24}input[aria-invalid=true]{border-color:var(--danger)}.section-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:16px;display:flex}.section-heading h2,.section-heading h3{margin:4px 0 0}.section-heading h2{font-size:1.55rem}.section-heading h3{font-size:1.2rem}.section-heading p{margin:0}.chord-grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;display:grid}.empty-state{border:1px dashed var(--border);color:var(--muted);text-align:center;border-radius:5px;margin:0;padding:30px 18px}.progression-empty-state{height:225px;min-height:225px;padding:5px;position:relative}.progression-empty-state>p{z-index:1;text-align:center;pointer-events:none;place-items:center;margin:0;display:grid;position:absolute;inset:0}.progression-chord-placeholder{z-index:0;text-align:left;width:calc(12.5% - 7px);height:100%;position:relative}.progression-empty-state .progression-chord-placeholder{min-height:0}.progression-chord-placeholder .wireframe-line-input{width:100%}.progression-actions{justify-content:center;gap:8px;margin-top:18px;display:flex}.add-chord{touch-action:manipulation;border:1px solid var(--accent);min-height:36px;color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;padding:7px 14px;font-size:.75rem;font-weight:800}.add-chord:active:not(:disabled){background:var(--accent);color:#07111c}.add-chord:focus-visible{outline-offset:3px;outline:3px solid #66b7ff52}.add-chord:disabled{border-color:var(--border);color:var(--muted);cursor:not-allowed}.reset-progression{touch-action:manipulation;border:1px solid var(--border);min-height:36px;color:var(--muted);cursor:pointer;background:0 0;border-radius:4px;padding:7px 14px;font-size:.75rem;font-weight:800}.reset-progression:active:not(:disabled){border-color:var(--danger);color:var(--danger)}.reset-progression:focus-visible{outline-offset:3px;outline:3px solid #ff858552}.reset-progression:disabled{cursor:not-allowed;opacity:.5}.variation-section{border:1px solid var(--border);background:var(--surface-raised);border-radius:6px;padding:14px}.variation-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.variation-card{border:1px solid var(--border);background:var(--surface);border-radius:6px;min-width:0;padding:14px}.variation-card>.analysis-position{width:20px;height:20px;margin-bottom:10px;font-size:.62rem}.variation-card>p{color:var(--muted);margin:10px 0;font-size:.86rem;line-height:1.5}.wireframe-card{border-style:dashed}.wireframe-line,.wireframe-tab,.wireframe-button,.wireframe-voicing{background:#172131;border:1px dashed #52647d;border-radius:4px;display:block}.wireframe-line{width:72%;height:12px;margin-top:10px}.wireframe-line-title{width:48%;height:20px}.wireframe-line-short{width:34%}.wireframe-line-input{width:min(320px,100%);height:39px;margin-top:0}.wireframe-tab{width:100%;height:86px;margin-top:18px}.wireframe-button{width:92px;height:34px;margin-top:14px}.wireframe-voicing-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:18px;display:grid}.wireframe-voicing{min-width:0;height:92px}.variation-heading{flex-wrap:wrap;align-items:baseline;gap:6px 10px;font-size:1.1rem;display:flex}.genre-suggestion-badge{letter-spacing:.04em;text-transform:uppercase;background:#66b7ff14;border:1px solid #66b7ff66;border-radius:999px;align-items:center;min-height:20px;padding:2px 7px;font-weight:850;line-height:1;display:inline-flex;color:var(--accent)!important;font-size:.56rem!important}.variation-selected-name{color:var(--accent);font-size:1.2rem}.variation-notes{font-family:Cascadia Code,Consolas,monospace;color:var(--foreground)!important}.guitar-tab{color:var(--foreground);background:#0d1521;border-radius:4px;margin:14px 0;padding:12px;font-family:Cascadia Code,Consolas,monospace;font-size:.78rem;line-height:1.25;overflow-x:auto}.apply-variation{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;padding:6px 9px;font-size:.72rem;font-weight:900}.apply-variation.is-applied{background:var(--accent);color:#07111c}.variation-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.play-variation{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;padding:6px 9px;font-size:.72rem;font-weight:900}.play-variation:hover:not(:disabled){background:var(--accent);color:#07111c}.play-variation:disabled{color:var(--muted);cursor:not-allowed;opacity:.6}.apply-variation:focus-visible,.play-variation:focus-visible{outline-offset:3px;outline:3px solid #66b7ff52}.variation-accordion{border-top:1px solid var(--border);margin-top:16px;padding-top:12px}.variation-accordion summary{border:1px solid var(--border);min-height:34px;color:var(--foreground);cursor:pointer;background:#0d1521;border-radius:4px;justify-content:space-between;align-items:center;gap:10px;padding:6px 9px;font-size:.72rem;font-weight:850;list-style:none;display:flex}.variation-accordion summary::-webkit-details-marker{display:none}.variation-accordion summary:after{content:"+";color:var(--accent);font-size:1.2rem;line-height:1}.variation-accordion[open] summary{border-color:var(--accent)}.variation-accordion[open] summary:after{content:"−"}.variation-accordion summary:hover{border-color:var(--accent);color:var(--accent)}.variation-choice-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}.variation-choice{border:1px solid var(--border);background:#0d1521;border-radius:6px;grid-template-columns:minmax(0,1fr) 38px;min-width:0;display:grid;overflow:hidden}.variation-choice.is-selected{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent);background:#122137}.variation-choice-select{min-width:0;color:var(--foreground);text-align:left;cursor:pointer;background:0 0;border:0;padding:10px}.variation-choice-copy{gap:4px;min-width:0;display:grid}.variation-choice-title{flex-wrap:wrap;align-items:baseline;gap:4px 7px;display:flex}.variation-choice-title strong{color:var(--accent);overflow-wrap:anywhere;font-size:.92rem}.variation-choice-title small{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:.58rem;font-weight:850}.variation-choice-copy .variation-choice-notes{color:var(--foreground);overflow-wrap:anywhere;font-family:Cascadia Code,Consolas,monospace}.variation-choice-notes{font-size:.68rem;line-height:1.35;color:var(--muted)!important}.choice-play{border:1px solid var(--border);width:30px;height:30px;color:var(--foreground);cursor:pointer;background:0 0;border-radius:50%;align-self:center;place-items:center;padding:0;display:grid}.choice-play svg{width:14px;height:14px;margin-left:2px}.choice-play:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.choice-play:disabled{cursor:wait;opacity:.6}.choice-play.is-playing{border-color:var(--accent);color:var(--accent);animation:.8s ease-in-out infinite alternate audition-pulse}@keyframes audition-pulse{to{box-shadow:0 0 0 4px #66b7ff24}}.variation-accordion-actions{justify-content:end;margin-top:10px;display:flex}.variation-accordion summary:focus-visible,.variation-choice-select:focus-within,.choice-play:focus-visible{outline-offset:3px;outline:3px solid #66b7ff52}.working-variation{border:1px solid var(--border);background:var(--surface-raised);border-radius:6px;padding:14px}.working-variation-list{gap:12px;display:grid}.working-variation-card{border:1px solid var(--border);background:var(--surface);border-radius:6px;min-width:0;padding:16px}.working-chord-heading{gap:6px;max-width:320px;display:grid}.working-chord-heading span{color:var(--muted);font-size:.82rem;font-weight:700}.working-chord-heading strong{color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;font-size:1rem;line-height:1.3;overflow:hidden}.working-notes{overflow-wrap:anywhere;color:var(--accent);margin:12px 0 0;font-family:Cascadia Code,Consolas,monospace;font-size:.76rem;line-height:1.4}.working-hint{margin:12px 0 0;font-size:.76rem;line-height:1.4}.caged-heading{justify-content:space-between;align-items:baseline;gap:12px;margin:20px 0 10px;font-size:.82rem;display:flex}.caged-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.caged-tab-card{border:1px solid var(--border);background:#0d1521;border-radius:4px;min-width:0;position:relative;overflow:hidden}.caged-tab-card:hover,.caged-tab-card.is-selected{border-color:var(--accent);background:#122137}.caged-tab-card.is-selected{box-shadow:inset 3px 0 var(--accent)}.caged-select-button{width:100%;min-width:0;color:var(--foreground);text-align:left;cursor:pointer;background:0 0;border:0;padding:10px 10px 40px;display:block}.caged-select-button:focus-visible,.caged-icon-play:focus-visible{outline-offset:-3px;outline:3px solid #66b7ff52}.caged-shape{color:var(--accent);text-transform:uppercase;margin-bottom:8px;font-size:.75rem;font-weight:900;display:block}.caged-tab-lines{white-space:pre;font-family:Cascadia Code,Consolas,monospace;font-size:.72rem;line-height:1.2;display:block;overflow-x:auto}.caged-selection-label{color:var(--muted);text-transform:uppercase;font-size:.66rem;font-weight:850;position:absolute;bottom:11px;left:10px}.caged-tab-card.is-selected .caged-selection-label{color:var(--accent)}.caged-icon-play{border:1px solid var(--border);width:30px;height:30px;color:var(--foreground);cursor:pointer;background:#0d1521;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;bottom:7px;right:8px}.caged-icon-play svg{width:14px;height:14px;margin-left:2px}.caged-icon-play:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.caged-icon-play:disabled{cursor:wait;opacity:.65}.caged-icon-play.is-playing{border-color:var(--accent);color:var(--accent);animation:.8s ease-in-out infinite alternate audition-pulse}.selected-progression-section{border:1px solid var(--border);background:var(--surface-raised);border-radius:6px;padding:24px}.progression-bar-grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;margin-bottom:14px;display:grid}.progression-bar-card{border:1px solid var(--border);background:var(--surface);border-radius:5px;grid-template-columns:18px minmax(0,1fr);gap:6px;min-width:0;padding:8px;transition:border-color .15s,background .15s,box-shadow .15s;display:grid;position:relative}.progression-bar-card.is-playing{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent);background:#122137}.progression-bar-card.is-empty{opacity:.58;border-style:dashed}.progression-bar-position{background:var(--border);width:18px;height:18px;color:var(--foreground);border-radius:3px;align-self:start;place-items:center;font-size:.58rem;font-weight:900;display:grid}.progression-bar-card.is-playing .progression-bar-position{background:var(--accent);color:#07111c}.progression-bar-chord{min-width:0;padding-right:21px;display:grid}.progression-bar-card:not(.is-empty) .progression-bar-chord{align-content:start;min-height:43px}.progression-bar-chord strong{color:var(--accent);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;overflow:hidden}.progression-bar-chord small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.58rem;overflow:hidden}.progression-bar-card-controls{flex-direction:column;align-items:center;gap:3px;display:flex;position:absolute;top:5px;right:5px}.progression-bar-card-controls select,.progression-bar-card-controls button{border:1px solid var(--border);width:20px;min-width:20px;height:20px;color:var(--accent);cursor:pointer;background:#0d1521;border-radius:3px;place-items:center;padding:0;font-size:.62rem;font-weight:900;line-height:1;display:grid}.progression-bar-card-controls select{appearance:none;text-align:center;text-align-last:center}.progression-bar-card-controls button svg{width:12px;height:12px}.progression-bar-card-controls select:hover,.progression-bar-card-controls button:hover:not(:disabled){border-color:var(--accent)}.progression-bar-card-controls select:focus-visible,.progression-bar-card-controls button:focus-visible{outline-offset:1px;outline:2px solid #66b7ff66}.progression-bar-card-controls button:disabled{color:var(--muted);cursor:not-allowed;opacity:.45}.bar-stepper{border:1px solid var(--border);border-radius:4px;grid-column:1/-1;grid-template-columns:24px minmax(36px,1fr) 24px;align-items:center;display:grid;overflow:hidden}.bar-stepper button{height:26px;color:var(--accent);cursor:pointer;background:#0d1521;border:0;place-items:center;display:grid}.bar-stepper button:hover:not(:disabled){background:var(--accent);color:#07111c}.bar-stepper button:disabled{color:var(--muted);cursor:not-allowed;opacity:.45}.bar-stepper output{color:var(--foreground);text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:.6rem;font-weight:800;overflow:hidden}.bar-stepper.is-empty{border-style:dashed}.transport-controls{flex-wrap:wrap;justify-content:center;gap:7px;display:flex}.transport-button{border:1px solid var(--border);min-height:36px;color:var(--foreground);cursor:pointer;background:#0d1521;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:7px 11px;font-size:.74rem;font-weight:850;display:inline-flex}.transport-button svg{width:15px;height:15px}.transport-button:hover:not(:disabled),.transport-button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.transport-button:disabled{color:var(--muted);cursor:not-allowed;opacity:.5}.transport-start{border-color:var(--accent);color:var(--accent)}.playback-dock{z-index:40;border:1px solid var(--border);background:var(--surface-raised);border-bottom:0;border-radius:6px 6px 0 0;width:auto;display:grid;position:fixed;bottom:0;left:320px;right:24px;overflow:hidden;box-shadow:0 -10px 32px #0008}.playback-dock.progression-playback-dock{width:auto;max-width:none;left:20px;right:20px;transform:none}.playback-dock .selected-progression-section{background:var(--surface-raised);border:0;border-radius:0;padding:12px 14px}.playback-dock .section-heading{align-items:center;margin-bottom:9px}.playback-dock .final-progression-heading{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);display:grid}.final-progression-quick-nav{min-width:0;color:var(--muted);white-space:nowrap;justify-content:center;align-items:center;gap:5px;font-size:.68rem;font-weight:800;display:flex}.final-progression-quick-nav strong{color:var(--foreground);font-size:.68rem}.final-progression-quick-nav a{color:var(--muted);text-decoration:none}.final-progression-quick-nav a:hover,.final-progression-quick-nav a:focus-visible{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.final-progression-quick-nav span{color:var(--border)}.final-progression-quick-nav .quick-nav-divider{margin-right:2px}.final-progression-heading .selected-progression-heading-actions{justify-self:end}#step-1,#step-2,#step-3,#melody,#step-4{scroll-margin-top:calc(var(--master-lab-nav-height) + 92px)}.playback-dock .section-heading h2{font-size:1.05rem}.selected-progression-heading-actions{align-items:center;gap:10px;display:flex}.selected-progression-heading-actions .midi-download-button{border:1px solid var(--accent);min-height:30px;color:var(--accent);white-space:nowrap;cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:6px;padding:5px 9px;font-size:.66rem;font-weight:850;display:inline-flex}.selected-progression-heading-actions .midi-download-button:hover:not(:disabled){background:var(--accent);color:#07111c}.selected-progression-heading-actions .midi-download-button:disabled{border-color:var(--border);color:var(--muted);cursor:not-allowed;opacity:.55}.playback-dock .progression-bar-grid{grid-template-columns:repeat(8,minmax(100px,1fr));margin-bottom:9px;padding-bottom:3px;overflow-x:auto}.playback-dock .selected-progression-tab{padding:7px}.playback-dock .selected-progression-tab pre{max-height:none;padding:8px 9px;font-size:.66rem;line-height:1.2;overflow-y:hidden}.playback-dock-footer{padding:6px 14px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:18px;display:grid;position:relative}.playback-settings{grid-template-columns:72px 86px;gap:7px;display:grid}.playback-settings label{color:var(--muted);text-transform:uppercase;gap:4px;font-size:.62rem;font-weight:850;display:grid}.playback-settings input,.playback-settings select{height:36px;padding:7px 8px;font-size:.74rem}.playback-dock-right{justify-content:end;align-items:end;gap:12px;min-width:0;display:flex}.playback-dock-status{text-align:right;justify-items:end;gap:4px;min-width:0;display:grid}.playback-dock-status .error{max-width:460px;font-size:.68rem}.master-volume-control{color:var(--muted);justify-items:center;gap:2px;display:grid;position:absolute;bottom:5px;right:14px}.master-volume-control>span{display:none}.master-volume-control input{appearance:slider-vertical;writing-mode:vertical-lr;width:20px;height:36px;accent-color:var(--accent);cursor:pointer;direction:rtl;background:0 0;border:0;padding:0}.master-volume-control svg{width:13px;height:13px;color:var(--accent)}.selected-progression-tab{border:1px solid var(--accent);background:#0a1320;border-radius:6px;padding:16px}.selected-progression-tab pre{color:var(--foreground);background:#07101b;border-radius:4px;margin:0;padding:14px;font-family:Cascadia Code,Consolas,monospace;font-size:.78rem;line-height:1.35;overflow-x:auto}.selected-progression-tab>p{margin:8px 0 0;font-size:.8rem;line-height:1.45}.selected-chord-tab{background:#07101b;border-radius:4px;min-width:0;padding:7px 8px 9px;font-family:Cascadia Code,Consolas,monospace;overflow:hidden}.selected-chord-tab-header,.selected-chord-tab-string{align-items:center;min-width:0;display:grid}.selected-chord-tab-header{margin-bottom:4px}.selected-chord-tab-header strong{min-width:0;color:var(--muted);text-align:center;text-overflow:ellipsis;white-space:nowrap;font-family:Arial,Helvetica,sans-serif;font-size:clamp(.5rem,.7vw,.66rem);overflow:hidden}.selected-chord-tab-header small{color:var(--accent);font-size:.8em}.selected-chord-string-label{color:var(--muted);font-size:.62rem;font-weight:800}.selected-chord-tab-cell{min-width:0;min-height:14px;color:var(--foreground);text-align:center;place-items:center;font-size:clamp(.52rem,.7vw,.68rem);line-height:1;display:grid;position:relative;overflow:hidden}.selected-chord-tab-cell:before{content:"";background:#67768a;height:1px;position:absolute;left:0;right:0}.selected-chord-tab-number{z-index:1;background:#07101b;min-width:1.35em;padding:1px 2px;transition:color 80ms,text-shadow 80ms;position:relative}.selected-chord-tab-number.is-playing{color:var(--accent);text-shadow:0 0 8px #66d9ffcc;font-weight:950}.progression-tab-hint{margin-top:10px!important}.tab-sequence{gap:6px;min-width:0;display:flex;overflow-x:auto}.tab-segment{border:1px solid var(--border);background:#07101b;border-radius:4px;flex:1 0 100px;min-width:0;transition:border-color .15s,background .15s,box-shadow .15s;overflow:hidden}.tab-segment>strong{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;padding:7px 8px 5px;font-family:Arial,Helvetica,sans-serif;font-size:.64rem;display:block;overflow:hidden}.selected-progression-tab .tab-segment pre,.suggested-melody-tab .tab-segment pre{color:var(--foreground);background:0 0;border:0;border-radius:0;margin:0;padding:5px 8px 8px;font-family:Cascadia Code,Consolas,monospace;font-size:.66rem;line-height:1.2;overflow:visible}.tab-segment.is-playing{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent);background:#122137}.tab-segment.is-playing>strong{color:var(--accent)}.scale-fret-range{color:var(--muted);margin:-4px 0 8px;font-size:.68rem;font-weight:700;display:block}.chord-card{border:1px solid var(--border);background:var(--surface);border-radius:6px;min-width:0;min-height:225px;padding:12px 12px 44px;position:relative}.delete-chord{border:1px solid var(--border);width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border-radius:4px;place-items:center;display:grid;position:absolute;bottom:10px;right:10px}.delete-chord:hover{border-color:var(--danger);color:var(--danger)}.delete-chord:focus-visible{outline-offset:2px;outline:3px solid #ff858552}.chord-card>.muted,.chord-card>.error{margin-top:26px}.chord-details{gap:9px;margin-top:20px;display:grid}.chord-details p{overflow-wrap:anywhere;margin:0;font-size:.78rem;line-height:1.4}.chord-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 10px;display:flex}.chord-heading strong{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:1.2rem;overflow:hidden}.status{color:var(--accent);text-transform:uppercase;flex:none;font-size:.68rem;font-weight:800}.muted{color:var(--muted)}.error{color:var(--danger);font-size:.85rem;line-height:1.45}.melody-panel{border:1px solid var(--border);background:var(--surface-raised);border-radius:6px;padding:14px}.scale-notes{color:var(--accent);font-family:Cascadia Code,Consolas,monospace}.melody-lanes{gap:18px;display:grid}.melody-lane{border:1px solid var(--border);background:#0d1521;border-radius:6px;min-width:0;padding:16px}.melody-lane-heading{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:12px;display:flex}.melody-lane-heading h3{color:var(--accent);margin:0;font-size:1rem}.melody-lane-heading p{color:var(--muted);margin:0;font-size:.72rem}.melody-scale-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.melody-scale-card{border:1px dashed var(--border);background:var(--surface);border-radius:5px;min-width:0;min-height:152px;padding:11px 11px 44px;position:relative}.melody-scale-card.is-ready{border-style:solid}.melody-scale-card.is-playing{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent), 0 0 14px #66d9ff33}.melody-card-heading{align-items:start;gap:8px;margin-bottom:12px;display:flex}.melody-card-heading>span:last-child{min-width:0;display:grid}.melody-card-heading strong{overflow-wrap:anywhere;font-size:.84rem}.melody-card-heading small{color:var(--muted);text-transform:uppercase;margin-top:2px;font-size:.62rem}.melody-scale-name{overflow-wrap:anywhere;color:var(--accent);margin-bottom:7px;font-size:.7rem;font-weight:800;display:block}.melody-scale-card .scale-fret-range{margin:0 0 8px}.melody-scale-card .caged-tab-lines{font-size:.68rem}.melody-scale-card>p{margin:18px 0 0;font-size:.72rem;line-height:1.4}.play-scale-path-icon{border:1px solid var(--accent);width:28px;height:28px;color:var(--accent);cursor:pointer;background:0 0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;bottom:10px;right:10px}.play-scale-path-icon:hover:not(:disabled){background:var(--accent);color:#07111c}.play-scale-path-icon.is-playing{border-color:var(--accent);color:var(--accent);animation:.8s ease-in-out infinite alternate audition-pulse}.play-scale-path-icon:disabled{border-color:var(--border);color:var(--muted);cursor:wait}.play-scale-path-icon svg{width:14px;height:14px;margin-left:2px}.melody-placeholder-grid{grid-template-columns:minmax(0,1fr);display:grid}.melody-placeholder-grid .melody-scale-card{min-height:190px}.melody-placeholder-grid .wireframe-tab{height:92px}.suggested-melody-section{border:1px solid var(--border);background:var(--surface-raised);border-radius:6px;min-width:0;max-width:100%;padding:14px;overflow:hidden}.suggested-melody-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:14px;display:flex}.suggested-melody-heading h3{margin:4px 0 0;font-size:1.2rem}.suggested-melody-controls{align-items:end;gap:8px;display:flex}.suggested-melody-controls label{color:var(--muted);gap:5px;font-size:.68rem;font-weight:800;display:grid}.suggested-melody-controls select{min-width:105px;padding:8px 9px;font-size:.74rem}.suggested-melody-controls button{border:1px solid var(--accent);min-height:35px;color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;padding:7px 11px;font-size:.74rem;font-weight:850}.midi-download-button svg{flex:0 0 16px;width:16px;height:16px}.suggested-melody-controls .midi-download-button,.suggested-melody-controls .generate-melody-button{justify-content:center;align-items:center;gap:6px;display:inline-flex}.suggested-melody-controls .generate-melody-button svg{width:15px;height:15px}.suggested-melody-controls button:hover:not(:disabled){background:var(--accent);color:#07111c}.suggested-melody-controls button:disabled{border-color:var(--border);color:var(--muted);cursor:not-allowed;opacity:.55}.suggested-melody-controls .reset-melody-settings{border-color:var(--muted);color:var(--foreground)}.suggested-melody-controls .reset-melody-settings:hover:not(:disabled){border-color:var(--foreground);background:var(--foreground);color:#07111c}.suggested-melody-summary{color:var(--accent);white-space:pre;margin:0 0 9px;font-family:Cascadia Code,Consolas,monospace;font-size:.68rem;overflow-x:auto}.suggested-melody-tab{grid-template-columns:repeat(var(--melody-columns), minmax(0, 1fr));border:1px solid var(--border);min-width:0;max-width:100%;color:var(--foreground);background:#07101b;border-radius:4px;gap:8px;margin:0;padding:14px;font-family:Cascadia Code,Consolas,monospace;font-size:.72rem;line-height:1.3;display:grid;overflow:hidden}.suggested-melody-tab .tab-segment{--melody-tab-background:#07101b;width:auto;min-width:0}.suggested-melody-tab .tab-segment.is-playing{--melody-tab-background:#122137}.suggested-melody-placeholder{display:block}.wireframe-melody-tab-row{background:#0d1521;border:1px dashed #52647d;border-radius:4px;min-height:130px;padding:12px}.wireframe-melody-tab-row .wireframe-line{margin-top:0}.wireframe-tab-strings{gap:11px;margin-top:22px;display:grid}.wireframe-tab-strings span{background:#52647d;height:1px;display:block}.melody-phrase-heading{border-bottom:1px solid var(--border);gap:6px;min-width:0;padding:7px 8px 6px;display:grid}.melody-phrase-heading>strong{color:var(--accent);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.melody-phrase-heading>strong small{color:var(--muted);font-size:.8em;font-weight:800}.melody-phrase-heading>strong small .is-selected-shape{color:var(--accent);font-weight:950}.melody-phrase-controls{grid-template-columns:repeat(2,minmax(0,1fr)) 28px;align-items:end;gap:5px;min-width:0;display:grid}.melody-phrase-controls label{min-width:0;color:var(--muted);text-transform:uppercase;gap:3px;font-size:.52rem;font-weight:850;display:grid}.melody-phrase-controls select{width:100%;min-width:0;height:28px;padding:4px 5px;font-size:.6rem}.regenerate-phrase{border:1px solid var(--accent);width:28px;height:28px;color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;place-items:center;padding:5px;display:grid}.regenerate-phrase svg{width:15px;height:15px}.regenerate-phrase:active{background:var(--accent);color:#07111c}.regenerate-phrase:focus-visible{outline-offset:2px;outline:3px solid #66b7ff52}.melody-tab-phrase{min-width:0;padding:5px 8px 8px}.melody-tab-string{align-items:center;min-width:0;display:grid}.melody-string-label{color:var(--muted);font-size:.62rem;font-weight:800}.melody-tab-cell{min-width:0;min-height:14px;color:var(--foreground);text-align:center;place-items:center;font-size:clamp(.48rem,.65vw,.66rem);line-height:1;display:grid;position:relative;overflow:hidden}.melody-tab-cell:before{content:"";background:#67768a;height:1px;position:absolute;left:0;right:0}.melody-tab-number{z-index:1;background:var(--melody-tab-background);min-width:1.35em;padding:1px 2px;transition:color 80ms,text-shadow 80ms;position:relative}.melody-tab-cell.is-playing .melody-tab-number{color:var(--accent);text-shadow:0 0 8px #66d9ffcc;font-weight:950}.suggested-melody-note{margin:10px 0 0;font-size:.7rem}.regenerate-phrase-note{align-items:center;gap:6px;display:flex}.regenerate-phrase-note svg{width:14px;height:14px;color:var(--accent);flex:0 0 14px}.analysis-position{background:var(--accent);color:#07111c;border-radius:4px;flex:0 0 24px;place-items:center;height:24px;font-size:.75rem;font-weight:900;display:grid}@media (hover:hover) and (pointer:fine){.add-chord:hover:not(:disabled){background:var(--accent);color:#07111c}.reset-progression:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.apply-variation:hover{background:var(--accent);color:#07111c}}@media (min-width:1001px){.chord-card input{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}}@media (min-width:2200px){.variation-grid,.working-variation-list,.melody-scale-grid,.suggested-melody-tab{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.piano-progression-voicing-grid,.piano-melody-grid{grid-template-columns:repeat(8,minmax(0,1fr))}}@media (max-width:1564px){#step-1>.section-heading,.scales-lab-heading,.theory-lab-heading,.progression-lab-heading{min-height:42px;padding-left:54px}}@media (max-width:1000px){.settings-sidebar{width:250px;left:12px}.lab-setup-button{left:12px}.app-shell{width:min(1440px,100% - 40px);margin:0 auto}.playback-dock{width:auto;left:302px;right:20px}.playback-dock.progression-playback-dock,.playback-dock.scale-practice-dock,.playback-dock.theory-playback-dock{width:auto;left:12px;right:12px;transform:none}.chord-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.progression-chord-placeholder{width:calc(25% - 6px)}.variation-grid,.variation-choice-list{grid-template-columns:repeat(2,minmax(0,1fr))}.caged-grid,.theory-scale-grid,.scales-pattern-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.progression-bar-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.piano-progression-voicing-grid,.piano-melody-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.piano-progression-dock-chords{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:800px){.desktop-startup-section{display:none}.lab-directory,.lab-directory.is-piano{grid-template-columns:minmax(0,1fr)}.theory-explore-layout,.scales-explore-layout,.scales-origin-layout{grid-template-columns:minmax(0,1fr);height:auto}.scales-explore-layout .scales-control-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.theory-input-panel{grid-template-columns:minmax(0,1fr);align-items:stretch}.theory-example-chords{grid-column:1}.theory-facts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.scales-control-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.scale-practice-heading{grid-template-columns:minmax(0,1fr) auto}.scale-practice-status{grid-column:1/-1;justify-self:start}.playback-dock-footer.scale-practice-footer{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}.transport-controls.scale-practice-transport{grid-column:1/-1;grid-template-columns:repeat(6,minmax(0,1fr))}.scale-practice-footer .playback-dock-right{grid-column:1/-1}.playback-dock-footer.piano-progression-playback-footer{grid-template-columns:minmax(0,1fr)}.piano-progression-tempo-controls,.piano-progression-transport,.piano-progression-playback-footer .playback-dock-right{grid-column:1}.piano-progression-tempo-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-setup-button{top:calc(var(--master-lab-nav-height) + 72px);left:max(8px, env(safe-area-inset-left))}.settings-sidebar{top:calc(var(--master-lab-nav-height) + 122px);bottom:8px;right:auto;left:max(8px, env(safe-area-inset-left));width:min(250px,100vw - 16px);max-width:none;margin:0;padding:14px;position:fixed}.settings-nav{grid-template-columns:1fr}.app-shell{width:calc(100vw - 16px);max-width:none;padding:calc(var(--master-lab-nav-height) + 92px) 0 calc(var(--playback-dock-height,500px) + 44px);margin:0 8px}.playback-dock{right:max(8px, env(safe-area-inset-right));left:max(8px, env(safe-area-inset-left));overscroll-behavior:contain;width:auto;max-width:calc(100vw - 16px);max-height:calc(100dvh - 8px);overflow:hidden auto}.playback-dock.progression-playback-dock,.playback-dock.scale-practice-dock,.playback-dock.theory-playback-dock{right:max(8px, env(safe-area-inset-right));left:max(8px, env(safe-area-inset-left));width:auto;max-width:calc(100vw - 16px);transform:none}.playback-dock .progression-bar-grid{grid-template-columns:repeat(8,minmax(0,1fr));overflow-x:hidden}.playback-dock .progression-bar-card.is-empty{display:none}.playback-dock-footer{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:7px}.playback-settings{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.playback-dock-status{text-align:left;justify-items:start}.master-volume-control{display:none}.suggested-melody-heading{flex-direction:column;align-items:stretch}.suggested-melody-controls{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.suggested-melody-controls button{grid-column:1/-1}.suggested-melody-tab{grid-template-rows:none;grid-template-columns:minmax(0,1fr)}.chord-grid,.melody-scale-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.progression-chord-placeholder{width:calc(50% - 4px)}.chord-card input{font-size:16px}.add-chord,.reset-progression{min-height:44px;padding:10px 16px;font-size:.8rem}.variation-actions .apply-variation,.variation-actions .play-variation,.variation-accordion summary{min-height:44px}.variation-grid,.variation-choice-list,.caged-grid,.theory-scale-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.piano-scale-grid{grid-template-columns:minmax(0,1fr)}.scales-pattern-grid,.progression-bar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.master-lab-nav{padding-right:max(8px, env(safe-area-inset-right));padding-left:max(8px, env(safe-area-inset-left));gap:8px}.master-lab-nav.has-project-menu nav{padding-right:34px}.project-files-menu{right:max(8px, env(safe-area-inset-right))}.project-files-menu-panel{width:calc(100vw - 16px)}.master-lab-home{gap:6px}.master-lab-home strong{font-size:.68rem}.master-lab-nav nav{gap:2px}.master-lab-nav nav a{gap:4px;padding:6px 4px;font-size:.68rem}.lab-nav-mark{width:18px;height:18px;font-size:.5rem}.lab-nav-name-full{display:none}.lab-nav-name-short{display:inline}.labs-home,.lab-placeholder-page{width:calc(100% - 24px);padding-top:calc(var(--master-lab-nav-height) + 42px)}.lab-instrument-section{margin-top:28px}.lab-instrument-section+.lab-instrument-section{margin-top:26px}.lab-directory{margin-top:12px}.lab-directory-card{min-height:170px;padding:16px}.lab-placeholder-panel{grid-template-columns:minmax(0,1fr)}.theory-lab-shell{width:calc(100% - 16px);padding-top:calc(var(--master-lab-nav-height) + 92px)}.theory-playback-heading{grid-template-columns:minmax(0,1fr);align-items:start;gap:5px}.theory-playback-heading .scale-practice-position-controls{justify-content:start}.theory-playback-heading>span{text-align:left;justify-self:start}.theory-playback-voicings{grid-template-columns:repeat(2,minmax(0,1fr))}.theory-playback-voicings>article:last-child{grid-column:1/-1}.theory-playback-select{min-height:122px}.playback-dock-footer.theory-playback-footer{grid-template-columns:minmax(0,1fr)}.theory-playback-footer .theory-playback-transport,.theory-playback-footer .playback-dock-right{grid-column:1}.transport-controls.theory-playback-transport{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.theory-analysis-heading,.theory-voicing-heading,.theory-melody-heading{flex-direction:column;align-items:start;gap:10px}.theory-analysis-heading>span,.theory-melody-heading>span,.piano-voicing-panel .theory-voicing-heading>span{text-align:left;max-width:none}.piano-keyboard{padding-bottom:3px;overflow-x:auto}.piano-keyboard svg{min-width:620px}.piano-keyboard.is-compact svg{min-width:300px}.theory-tone-controls{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.theory-chord-field input{font-size:16px}.theory-input-panel,.theory-analysis-panel,.theory-voicing-panel,.theory-melody-panel{padding:14px}.theory-scale-lane-heading{flex-direction:column;align-items:start;gap:5px}.theory-scale-lane-heading p{text-align:left}.theory-scale-grid{grid-template-columns:1fr}.scales-lab-shell{width:calc(100% - 16px);padding-top:calc(var(--master-lab-nav-height) + 92px)}.piano-progression-shell{width:calc(100% - 16px);padding-top:calc(var(--master-lab-nav-height) + 40px)}.piano-progression-voicing-grid,.piano-melody-grid{grid-template-columns:minmax(0,1fr)}.piano-progression-dock-chords{grid-template-columns:repeat(2,minmax(0,1fr))}.piano-progression-dock-display{padding:8px}.piano-progression-dock-heading{align-items:start}.scales-section-heading,.scales-pattern-heading{flex-direction:column;align-items:start;gap:6px}.scales-section-heading>span{text-align:left;max-width:none}.scales-pattern-heading p{text-align:left}.scales-control-grid,.scales-relationship-grid,.scales-pattern-grid,.scales-explore-layout .scales-control-grid{grid-template-columns:1fr}.scales-control-grid input,.scales-control-grid select{font-size:16px}.circle-of-fifths-panel,.scales-setup-panel,.scales-anatomy-panel,.scales-origin-panel,.scale-origin-map-panel,.scales-fretboard-panel{padding:14px}.scale-origin-flow{grid-template-columns:minmax(0,1fr)}.scale-origin-arrow{min-height:18px;transform:rotate(90deg)}.scale-origin-note-strip{grid-template-columns:minmax(0,1fr)}.scale-practice-display{padding:8px}.scale-practice-heading{grid-template-columns:minmax(0,1fr);gap:5px}.scale-practice-heading h2{font-size:.82rem}.scale-practice-position-controls{grid-row:2;justify-content:start}.scale-practice-status{grid-row:3}.scale-practice-tab-grid{gap:4px}.scale-practice-tab-card{padding:5px}.scale-practice-tab-card>header{gap:2px;display:grid}.scale-practice-tab-card>header small{display:none}.practice-tab-lines{font-size:.48rem}.practice-tab-line{grid-template-columns:11px minmax(0,1fr)}.practice-tab-line b{min-width:11px}.transport-controls.scale-practice-transport{grid-template-columns:repeat(3,minmax(0,1fr))}.variation-section,.working-variation{padding:14px}.panel-grid,.chord-grid,.variation-grid,.melody-scale-grid{grid-template-columns:1fr}.progression-chord-placeholder{width:100%}.caged-grid,.settings-nav{grid-template-columns:1fr}.section-heading{flex-direction:column;align-items:start}.variation-choice-list{grid-template-columns:repeat(2,minmax(0,1fr))}.variation-accordion-actions .apply-variation{width:100%;min-height:44px}.playback-dock .selected-progression-section{padding:8px}.playback-dock .final-progression-heading{grid-template-columns:minmax(0,1fr) auto}.final-progression-quick-nav{grid-area:2/1/auto/-1;justify-self:center;padding-top:2px}.playback-dock .section-heading{flex-direction:row;align-items:center;gap:8px;margin-bottom:6px}.playback-dock .section-heading h2{font-size:.86rem}.playback-dock .section-label{font-size:.58rem}.selected-progression-heading-actions{flex:none}.selected-progression-heading-actions .midi-download-button{min-height:27px;padding:4px 7px;font-size:.58rem}.playback-dock .progression-bar-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin-bottom:6px;padding:0}.playback-dock .progression-bar-card{grid-template-columns:14px minmax(0,1fr);gap:3px;padding:4px}.playback-dock .progression-bar-position{width:14px;height:14px;font-size:.48rem}.playback-dock .progression-bar-chord strong{font-size:.6rem}.playback-dock .progression-bar-chord small{display:none}.playback-dock .bar-stepper{grid-template-columns:19px minmax(0,1fr) 19px}.playback-dock .bar-stepper button{height:22px}.playback-dock .bar-stepper output{font-size:.5rem}.playback-dock .selected-progression-tab{padding:3px}.playback-dock .selected-progression-tab pre{padding:5px;font-size:.54rem;line-height:1.05}.playback-dock .selected-chord-tab{padding:4px 5px 5px}.playback-dock .selected-chord-tab-header{margin-bottom:2px}.playback-dock .selected-chord-tab-header strong{font-size:.48rem}.playback-dock .selected-chord-tab-cell{min-height:11px;font-size:.52rem}.playback-dock-footer{padding:7px 8px calc(7px + env(safe-area-inset-bottom))}.playback-settings{gap:5px}.playback-settings label{gap:2px;font-size:.54rem}.playback-settings input,.playback-settings select{height:32px;padding:5px 7px;font-size:.68rem}.transport-controls{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;width:100%;display:grid}.transport-button{text-overflow:ellipsis;white-space:nowrap;flex-direction:column;gap:2px;min-width:0;min-height:42px;padding:5px 2px;font-size:.58rem;overflow:hidden}.transport-button svg{width:13px;height:13px}.melody-lane-heading{flex-direction:column;align-items:start;gap:4px}.suggested-melody-section{padding:14px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}
