@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;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--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{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.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,)}.resize{resize:both}.flex-col{flex-direction:column}.border{border-style:var(--tw-border-style);border-width:1px}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}: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}.site-announcement{--announcement-color:var(--accent);z-index:70;top:var(--master-lab-nav-height);border-bottom:1px solid var(--announcement-color);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;min-height:46px;display:grid;position:fixed;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.site-announcement{border-bottom:1px solid color-mix(in srgb, var(--announcement-color) 58%, var(--border))}}.site-announcement{background:var(--announcement-color)}@supports (color:color-mix(in lab, red, red)){.site-announcement{background:color-mix(in srgb, var(--announcement-color) 12%, #080d15f5)}}.site-announcement{color:var(--foreground);padding:8px max(14px, env(safe-area-inset-right)) 8px max(18px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 7px 20px #0007}.site-announcement.is-success{--announcement-color:#4ade80}.site-announcement.is-warning{--announcement-color:#f59e42}.site-announcement.is-urgent{--announcement-color:var(--danger)}.site-announcement>svg{fill:none;width:22px;height:22px;stroke:var(--announcement-color);stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}.site-announcement>div{text-align:center;justify-content:center;align-items:baseline;gap:8px;min-width:0;font-size:.75rem;line-height:1.35;display:flex}.site-announcement strong{color:var(--announcement-color);letter-spacing:.035em;text-transform:uppercase;flex:none;font-size:.72rem}.site-announcement span{overflow-wrap:anywhere}.site-announcement>button{border:1px solid var(--announcement-color);place-items:center;width:28px;height:28px;display:grid}@supports (color:color-mix(in lab, red, red)){.site-announcement>button{border:1px solid color-mix(in srgb, var(--announcement-color) 46%, var(--border))}}.site-announcement>button{color:var(--announcement-color);cursor:pointer;background:0 0;border-radius:4px;padding:0}.site-announcement>button span{font-size:1.2rem;line-height:1;transform:translateY(-1px)}.site-announcement>button:hover,.site-announcement>button:focus-visible{background:var(--announcement-color);color:#07111c;outline:none}.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:.95rem}.master-lab-mark{border:1px solid var(--accent);width:34px;height:34px;color:var(--accent);background:0 0;border-radius:4px;place-items:center;font-size:.78rem;font-weight:950;transition:border-color .15s,color .15s,box-shadow .15s;display:grid}.master-lab-home:hover .master-lab-mark,.master-lab-home:focus-visible .master-lab-mark{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.master-lab-home:hover .master-lab-mark,.master-lab-home:focus-visible .master-lab-mark{border-color:color-mix(in srgb, var(--accent) 52%, white)}}.master-lab-home:hover .master-lab-mark,.master-lab-home:focus-visible .master-lab-mark{color:var(--accent);background:0 0}@supports (color:color-mix(in lab, red, red)){.master-lab-home:hover .master-lab-mark,.master-lab-home:focus-visible .master-lab-mark{color:color-mix(in srgb, var(--accent) 52%, white)}}.master-lab-home:hover .master-lab-mark,.master-lab-home:focus-visible .master-lab-mark{box-shadow:0 0 15px var(--accent), inset 0 0 7px var(--accent)}@supports (color:color-mix(in lab, red, red)){.master-lab-home:hover .master-lab-mark,.master-lab-home:focus-visible .master-lab-mark{box-shadow:0 0 15px color-mix(in srgb, var(--accent) 58%, transparent), inset 0 0 7px color-mix(in srgb, var(--accent) 18%, transparent)}}.master-lab-home:hover .master-lab-mark,.master-lab-home:focus-visible .master-lab-mark{text-shadow:0 0 8px var(--accent)}@supports (color:color-mix(in lab, red, red)){.master-lab-home:hover .master-lab-mark,.master-lab-home:focus-visible .master-lab-mark{text-shadow:0 0 8px color-mix(in srgb, var(--accent) 78%, transparent)}}.master-lab-home:focus-visible{outline:none}.master-lab-nav-actions{justify-content:end;align-items:center;gap:10px;min-width:0;margin-left:auto;display:flex}.lab-nav-lock{width:13px;height:13px;color:var(--lab-nav-accent);flex: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)}}.master-labs-menu{flex:none;position:relative}.master-labs-menu-trigger{--labs-menu-accent:#a78bfa;border:1px solid var(--labs-menu-accent);background:var(--labs-menu-accent);border-radius:4px;place-items:center;width:34px;height:34px;display:grid}@supports (color:color-mix(in lab, red, red)){.master-labs-menu-trigger{background:color-mix(in srgb, var(--labs-menu-accent) 7%, #0d1521)}}.master-labs-menu-trigger{color:var(--labs-menu-accent);cursor:pointer;padding:5px}.master-labs-menu-trigger:hover,.master-labs-menu-trigger:focus-visible,.master-labs-menu-trigger[aria-expanded=true]{border-color:var(--labs-menu-accent);background:var(--labs-menu-accent)}@supports (color:color-mix(in lab, red, red)){.master-labs-menu-trigger:hover,.master-labs-menu-trigger:focus-visible,.master-labs-menu-trigger[aria-expanded=true]{background:color-mix(in srgb, var(--labs-menu-accent) 14%, var(--surface-raised))}}.master-labs-menu-trigger:hover,.master-labs-menu-trigger:focus-visible,.master-labs-menu-trigger[aria-expanded=true]{outline:none}.master-labs-menu-trigger svg{fill:none;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px;overflow:visible}.master-labs-menu-trigger svg path{stroke:currentColor;stroke-width:1.65px}.master-labs-menu-trigger:hover svg,.master-labs-menu-trigger:focus-visible svg,.master-labs-menu-trigger[aria-expanded=true] svg{filter:drop-shadow(0 0 3px #a78bfa88)}.master-labs-menu-panel{z-index:90;width:min(600px,100vw - 40px);max-height:calc(100vh - var(--master-lab-nav-height) - 20px);border:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#121a27f7;border-radius:7px;grid-template-columns:repeat(3,minmax(165px,1fr));gap:14px;padding:15px;display:grid;position:absolute;top:calc(100% + 9px);right:0;overflow-y:auto;box-shadow:0 18px 42px #000b}.master-labs-menu-all{border:1px solid #a78bfa;grid-column:1/-1;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:11px;display:grid}@supports (color:color-mix(in lab, red, red)){.master-labs-menu-all{border:1px solid color-mix(in srgb, #a78bfa 38%, var(--border))}}.master-labs-menu-all{color:var(--foreground);background:linear-gradient(90deg,#a78bfa14,#66b7ff08);border-radius:6px;padding:10px 12px;text-decoration:none}.master-labs-menu-all>svg{fill:#a78bfa17;stroke:#a78bfa;stroke-width:1.25px;width:30px;height:30px}.master-labs-menu-all>span:nth-child(2){gap:2px;min-width:0;display:grid}.master-labs-menu-all strong{font-size:.76rem}.master-labs-menu-all small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.58rem;overflow:hidden}.master-labs-menu-all-arrow{color:#a78bfa;font-size:1rem;transition:transform .15s}.master-labs-menu-all:hover,.master-labs-menu-all:focus-visible,.master-labs-menu-all[aria-current=page]{background:linear-gradient(90deg,#a78bfa22,#66b7ff10);border-color:#a78bfa;outline:none}.master-labs-menu-all:hover .master-labs-menu-all-arrow,.master-labs-menu-all:focus-visible .master-labs-menu-all-arrow{transform:translate(3px)}.master-labs-menu-group{align-content:start;gap:8px;display:grid}.master-labs-menu-group h2{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.62rem}.master-labs-menu-links{gap:6px;display:grid}.master-labs-menu-link{--lab-nav-accent:var(--accent);border:1px solid var(--lab-nav-accent);align-items:center;gap:8px;min-width:0;display:flex}@supports (color:color-mix(in lab, red, red)){.master-labs-menu-link{border:1px solid color-mix(in srgb, var(--lab-nav-accent) 18%, var(--border))}}.master-labs-menu-link{background:var(--lab-nav-accent);border-radius:5px}@supports (color:color-mix(in lab, red, red)){.master-labs-menu-link{background:color-mix(in srgb, var(--lab-nav-accent) 5%, #0d1521)}}.master-labs-menu-link{color:var(--foreground);padding:7px;font-size:.68rem;font-weight:800;text-decoration:none}.master-labs-menu-link>span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.master-labs-menu-link.is-scales{--lab-nav-accent:#a78bfa}.master-labs-menu-link.is-theory{--lab-nav-accent:#f59e42}.master-labs-menu-link.is-progression{--lab-nav-accent:#66b7ff}.master-labs-menu-link.is-jam{--lab-nav-accent:#f472b6}.master-labs-menu-link.is-piano-scales{--lab-nav-accent:#f4d35e}.master-labs-menu-link.is-piano-theory{--lab-nav-accent:#fb7185}.master-labs-menu-link.is-piano-progressions{--lab-nav-accent:#2dd4bf}.master-labs-menu-link.is-piano-jam{--lab-nav-accent:#38bdf8}.master-labs-menu-link.is-ukulele-scales{--lab-nav-accent:#a78bfa}.master-labs-menu-link.is-ukulele-theory{--lab-nav-accent:#f59e42}.master-labs-menu-link.is-ukulele-progression{--lab-nav-accent:#66b7ff}.master-labs-menu-link.is-ukulele-jam{--lab-nav-accent:#f472b6}.master-labs-menu-link:hover,.master-labs-menu-link:focus-visible,.master-labs-menu-link[aria-current=page]{border-color:var(--lab-nav-accent)}@supports (color:color-mix(in lab, red, red)){.master-labs-menu-link:hover,.master-labs-menu-link:focus-visible,.master-labs-menu-link[aria-current=page]{border-color:color-mix(in srgb, var(--lab-nav-accent) 60%, var(--border))}}.master-labs-menu-link:hover,.master-labs-menu-link:focus-visible,.master-labs-menu-link[aria-current=page]{background:var(--lab-nav-accent)}@supports (color:color-mix(in lab, red, red)){.master-labs-menu-link:hover,.master-labs-menu-link:focus-visible,.master-labs-menu-link[aria-current=page]{background:color-mix(in srgb, var(--lab-nav-accent) 12%, var(--surface))}}.master-labs-menu-link:hover,.master-labs-menu-link:focus-visible,.master-labs-menu-link[aria-current=page]{color:var(--lab-nav-accent);outline:none}.master-labs-menu-link.is-locked{border-color:var(--lab-nav-accent)}@supports (color:color-mix(in lab, red, red)){.master-labs-menu-link.is-locked{border-color:color-mix(in srgb, var(--lab-nav-accent) 12%, #101722)}}.master-labs-menu-link.is-locked{color:#596473;background:#05080d}.master-labs-menu-link.is-locked:hover,.master-labs-menu-link.is-locked:focus-visible{border-color:var(--lab-nav-accent)}@supports (color:color-mix(in lab, red, red)){.master-labs-menu-link.is-locked:hover,.master-labs-menu-link.is-locked:focus-visible{border-color:color-mix(in srgb, var(--lab-nav-accent) 28%, #17202d)}}.master-labs-menu-link.is-locked:hover,.master-labs-menu-link.is-locked:focus-visible{color:#778493;background:#080c13}.master-labs-menu-link.is-locked .lab-nav-mark{border-color:var(--lab-nav-accent)}@supports (color:color-mix(in lab, red, red)){.master-labs-menu-link.is-locked .lab-nav-mark{border-color:color-mix(in srgb, var(--lab-nav-accent) 24%, #17202d)}}.master-labs-menu-link.is-locked .lab-nav-mark{color:var(--lab-nav-accent);background:#070b11}@supports (color:color-mix(in lab, red, red)){.master-labs-menu-link.is-locked .lab-nav-mark{color:color-mix(in srgb, var(--lab-nav-accent) 42%, #66717f)}}.master-labs-menu-link.is-locked .lab-nav-mark{box-shadow:none}.master-labs-menu-link.is-locked .lab-nav-lock{color:var(--lab-nav-accent)}@supports (color:color-mix(in lab, red, red)){.master-labs-menu-link.is-locked .lab-nav-lock{color:color-mix(in srgb, var(--lab-nav-accent) 52%, #66717f)}}.master-labs-menu-link .lab-nav-lock{margin-left:auto}.master-account-menu{flex:none;position:relative}.master-repo-link{--repo-icon-bg:#0d1521;background:var(--repo-icon-bg);color:#f472b6;border:1px solid #f472b6;border-radius:4px;flex:0 0 34px;place-items:center;width:34px;height:34px;text-decoration:none;display:grid}.master-labs-menu+.master-repo-link{margin-left:14px;position:relative}.master-labs-menu+.master-repo-link:before{background:var(--foreground);width:1px;height:26px;position:absolute;top:50%;left:-14px}@supports (color:color-mix(in lab, red, red)){.master-labs-menu+.master-repo-link:before{background:color-mix(in srgb, var(--foreground) 28%, transparent)}}.master-labs-menu+.master-repo-link:before{content:"";transform:translate(-50%,-50%)}.master-repo-link:hover,.master-repo-link:focus-visible,.master-repo-link.is-active{--repo-icon-bg:#f472b6;background:var(--repo-icon-bg);color:#07111c;outline:none}.master-repo-link svg{fill:none;stroke:currentColor;stroke-width:1.05px;stroke-linecap:round;stroke-linejoin:round;width:28px;height:28px}.master-repo-link .repo-figure-fill{fill:var(--repo-icon-bg);stroke:currentColor;stroke-width:1.35px}.master-repo-link .repo-figure-front{stroke-width:1.55px}.master-account-link{border:1px solid var(--accent);width:34px;min-width:34px;height:34px;color:var(--accent);cursor:pointer;background:#0d1521;border-radius:4px;justify-content:center;align-items:center;padding:6px;display:inline-flex}.master-account-link:hover,.master-account-link:focus-visible,.master-account-link.is-active,.master-account-link[aria-expanded=true]{background:var(--accent);color:#07111c;outline:none}.master-account-link svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.account-project-menu-panel{z-index:90;width:min(286px,100vw - 40px);max-height:calc(100vh - var(--master-lab-nav-height) - 20px);border:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#121a27f7;border-radius:7px;gap:14px;padding:15px;display:grid;position:absolute;top:calc(100% + 9px);right:0;overflow-y:auto;box-shadow:0 18px 42px #000b}.account-project-menu-heading{align-items:center;gap:10px;display:flex}.account-project-menu-heading>svg{border:1px solid var(--accent);width:30px;height:30px;color:var(--accent);fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;border-radius:50%;flex:none;padding:6px}.account-project-menu-heading>div{gap:2px;min-width:0;display:grid}.account-project-menu-heading strong{font-size:.82rem}.account-project-menu-heading small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.62rem;overflow:hidden}.account-project-auth-actions{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.account-project-auth-actions a,.account-project-auth-actions button,.account-project-section>button,.account-project-section>a{border:1px solid var(--accent);min-height:36px;color:var(--accent);text-align:center;cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:7px 10px;font-size:.67rem;font-weight:850;text-decoration:none;display:inline-flex}.account-project-auth-actions a:hover,.account-project-auth-actions a:focus-visible,.account-project-auth-actions button:hover,.account-project-auth-actions button:focus-visible,.account-project-section>button:hover:not(:disabled),.account-project-section>button:focus-visible,.account-project-section>a:hover,.account-project-section>a:focus-visible{background:var(--accent);color:#07111c;outline:none}.account-project-auth-actions .is-danger{border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.account-project-auth-actions .is-danger{border-color:color-mix(in srgb, var(--danger) 70%, var(--border))}}.account-project-auth-actions .is-danger{color:var(--danger)}.account-project-auth-actions .is-danger:hover,.account-project-auth-actions .is-danger:focus-visible{border-color:var(--danger);background:var(--danger);color:#190606}.account-project-controls{border-top:1px solid var(--border);gap:13px;padding-top:14px;display:grid}.account-project-section{border-top:1px solid var(--border);gap:8px;display:grid}@supports (color:color-mix(in lab, red, red)){.account-project-section{border-top:1px solid color-mix(in srgb, var(--border) 70%, transparent)}}.account-project-section{padding-top:11px}.account-project-section>strong{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.62rem}.account-project-section select{border:1px solid var(--border);width:100%;min-height:38px;color:var(--foreground);background:#0d1521;border-radius:4px;padding:7px 9px;font-size:.7rem}.jam-repo-publish-section p{color:var(--muted);margin:0;font-size:.65rem;line-height:1.4}.jam-repo-publish-section label{color:var(--muted);text-transform:uppercase;gap:5px;font-size:.58rem;font-weight:850;display:grid}.jam-repo-publish-section textarea{resize:vertical;border:1px solid var(--border);width:100%;color:var(--foreground);text-transform:none;background:#0d1521;border-radius:4px;padding:8px 9px;font-size:.7rem;line-height:1.4}.jam-repo-publish-section textarea:focus{border-color:var(--accent);outline:none}.jam-repo-send-button{gap:7px}.jam-repo-send-button svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.jam-repo-send-button.is-sent:disabled{color:#06160f;opacity:1;background:#66d6a2;border-color:#66d6a2}.account-project-section button:disabled,.project-files-menu-actions button:disabled{cursor:not-allowed;opacity:.45}.account-project-section .project-files-menu-actions{grid-template-columns:minmax(0,1fr)}.account-project-action{text-align:left;justify-content:flex-start;align-items:center;gap:9px;width:100%;display:inline-flex}.account-project-action svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.account-project-action.is-danger{border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.account-project-action.is-danger{border-color:color-mix(in srgb, var(--danger) 70%, var(--border))}}.account-project-action.is-danger{color:var(--danger)}.project-files-menu-actions .account-project-action.is-danger:hover:not(:disabled),.project-files-menu-actions .account-project-action.is-danger:focus-visible{background:var(--danger);color:#190606}.account-project-section .cloud-save-action.is-saving:disabled{opacity:.72}.account-project-section .cloud-save-action.is-saved{color:#06160f;background:#66d6a2;border-color:#66d6a2}.account-project-section .cloud-save-action.is-error{border-color:var(--danger);color:var(--danger)}.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:not(:disabled),.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}.account-version-link{border:0;border-top:1px solid var(--border);width:100%;color:var(--muted);text-underline-offset:3px;cursor:pointer;background:0 0;margin-top:2px;padding:12px 8px 0;font-family:Cascadia Code,Consolas,monospace;font-size:.65rem;font-weight:800;text-decoration:underline}.account-version-link:hover{color:var(--accent)}.account-version-link:focus-visible{color:var(--accent);outline:2px solid var(--accent);outline-offset:3px}.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 54px;margin:0 auto}.lab-placeholder-page{width:min(1040px,100% - 40px);padding:calc(var(--master-lab-nav-height) + 70px) 0 70px;margin:0 auto}.account-shell{width:min(980px,100% - 40px);padding:calc(var(--master-lab-nav-height) + 64px) 0 80px;gap:22px;margin:0 auto;display:grid}.site-footer{border-top:1px solid var(--border);width:min(1440px,100% - 40px);color:var(--muted);letter-spacing:.04em;text-transform:uppercase;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;gap:20px;margin:auto auto 0;padding:20px 0 28px;font-size:.68rem;font-weight:800;display:grid}.site-footer nav{display:contents}.site-footer nav a:first-child{justify-self:start}.site-footer nav a:not(:first-child):not(:last-child){justify-self:center}.site-footer nav a:last-child{justify-self:end}.site-footer a{color:var(--muted);text-decoration:none;transition:color .15s}.site-footer a:hover,.site-footer a:focus-visible{color:var(--accent);outline:none}.landing-back-to-top{z-index:61;right:max(18px, env(safe-area-inset-right));visibility:hidden;border:1px solid var(--accent);width:42px;height:42px;color:var(--accent);opacity:0;pointer-events:none;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0d1521f2;border-radius:50%;place-items:center;padding:0;transition:bottom .18s,visibility 0s linear .18s,opacity .18s,transform .18s,background .15s,color .15s;display:grid;position:fixed;transform:translateY(12px);box-shadow:0 10px 28px #0009}.landing-back-to-top.is-visible{visibility:visible;opacity:1;pointer-events:auto;transition-delay:0s;transform:translateY(0)}.landing-back-to-top:hover,.landing-back-to-top:focus-visible{background:var(--accent);color:#07111c;outline:none}.landing-back-to-top svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.info-page-shell{width:min(900px,100% - 40px);padding:calc(var(--master-lab-nav-height) + 64px) 0 80px;gap:24px;margin:0 auto;display:grid}.route-loading{min-height:48vh;color:var(--muted);place-content:center;justify-items:center;gap:12px;display:grid}.route-loading-indicator{border:3px solid var(--muted);width:28px;height:28px}@supports (color:color-mix(in lab, red, red)){.route-loading-indicator{border:3px solid color-mix(in srgb, var(--muted) 35%, transparent)}}.route-loading-indicator{border-top-color:var(--accent);border-radius:50%;animation:.8s linear infinite route-loading-spin}@keyframes route-loading-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.route-loading-indicator{animation:none}}.info-page-heading h1{letter-spacing:-.05em;margin:7px 0 12px;font-size:clamp(2rem,5vw,3.5rem);line-height:1}.info-page-heading>p:last-child{color:var(--muted);margin:0;font-size:.86rem;line-height:1.6}.info-page-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:clamp(20px,4vw,34px)}.pricing-page{width:min(1180px,100% - 40px)}.pricing-page .info-page-heading h1{font-size:clamp(2.15rem,5.2vw,3.7rem)}.pricing-page .info-page-heading>p:last-child{font-size:.96rem}.pricing-page .section-label{font-size:.82rem}.pricing-comparison{border:1px solid var(--border);background:var(--surface);border-radius:8px;min-width:0;overflow:hidden}.pricing-access-notice{border:1px solid var(--accent);margin:0}@supports (color:color-mix(in lab, red, red)){.pricing-access-notice{border:1px solid color-mix(in srgb, var(--accent) 55%, var(--border))}}.pricing-access-notice{background:var(--accent);border-radius:7px}@supports (color:color-mix(in lab, red, red)){.pricing-access-notice{background:color-mix(in srgb, var(--accent) 9%, var(--surface))}}.pricing-access-notice{color:var(--foreground);padding:13px 15px;font-size:.84rem;line-height:1.5}.pricing-comparison-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:end;gap:24px;padding:24px 26px;display:flex}.pricing-comparison-heading h2{color:var(--foreground);margin:5px 0 0;font-size:1.4rem}.pricing-comparison-heading>p{max-width:410px;color:var(--muted);text-align:right;margin:0;font-size:.82rem;line-height:1.55}.pricing-table-scroll{scrollbar-color:var(--border) transparent;scrollbar-width:thin;-webkit-overflow-scrolling:touch;outline:none;max-width:100%;overflow-x:auto}.pricing-table-scroll:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.pricing-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:720px}.pricing-table th,.pricing-table td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:15px 12px}.pricing-table tr>:last-child{border-right:0}.pricing-table tbody tr:last-child>*{border-bottom:0}.pricing-table thead th:first-child{width:230px;color:var(--muted);letter-spacing:.08em;text-align:left;text-transform:uppercase;font-size:.74rem}.pricing-tier{background:var(--surface-raised);text-align:center}.pricing-tier.is-monthly,.pricing-tier.is-yearly{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.pricing-tier.is-monthly,.pricing-tier.is-yearly{background:color-mix(in srgb, var(--accent) 8%, var(--surface-raised))}}.pricing-tier strong,.pricing-tier small,.pricing-tier span{display:block}.pricing-tier strong{color:var(--foreground);font-size:1.02rem}.pricing-tier small{min-height:2.6em;color:var(--muted);margin-top:5px;font-size:1.1rem;font-weight:700;line-height:1.3}.pricing-tier span{letter-spacing:.05em;text-transform:uppercase;border:1px solid;border-radius:999px;width:fit-content;margin:9px auto 0;padding:3px 7px;font-size:.58rem;font-weight:900}.pricing-tier .is-available{color:#4ade80}.pricing-tier .is-coming-soon{color:var(--accent)}.pricing-table tbody th{background:var(--surface-raised)}@supports (color:color-mix(in lab, red, red)){.pricing-table tbody th{background:color-mix(in srgb, var(--surface-raised) 78%, transparent)}}.pricing-table tbody th{color:var(--foreground);text-align:left;font-size:.84rem;line-height:1.35}.pricing-table tbody td{text-align:center}.pricing-included,.pricing-excluded{justify-items:center;gap:3px;display:inline-grid}.pricing-included b,.pricing-excluded b{border-radius:50%;place-items:center;width:26px;height:26px;font-size:.88rem;display:grid}.pricing-included b{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.pricing-included b{background:color-mix(in srgb, var(--accent) 16%, transparent)}}.pricing-included b{color:var(--accent)}.pricing-excluded b{color:var(--muted)}.pricing-included small,.pricing-excluded small{color:var(--muted);font-size:.62rem;font-weight:750}.pricing-login{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:24px 26px}.pricing-login h2{color:var(--foreground);margin:6px 0 8px;font-size:1.25rem}.pricing-login>div>p:not(.section-label){color:var(--muted);margin:0 0 10px;font-size:.82rem;line-height:1.5}.pricing-login>div>a{color:var(--accent);font-size:.78rem;font-weight:800;text-decoration:none}.pricing-login>div>a:hover,.pricing-login>div>a:focus-visible{outline:none;text-decoration:underline}.legal-copy{gap:25px;display:grid}.legal-copy section{gap:8px;display:grid}.legal-copy h2{color:var(--foreground);margin:0;font-size:1rem}.legal-copy p,.contact-card p{color:var(--muted);margin:0;font-size:.78rem;line-height:1.7}.legal-copy a,.contact-card a{color:var(--accent)}.faq-list{gap:0;display:grid}.faq-item{border-bottom:1px solid var(--border)}.faq-item:first-child{border-top:1px solid var(--border)}.faq-item>summary{min-height:62px;color:var(--foreground);cursor:pointer;justify-content:space-between;align-items:center;gap:20px;padding:14px 4px;font-size:1rem;font-weight:850;line-height:1.4;list-style:none;display:flex}.faq-item>summary::-webkit-details-marker{display:none}.faq-item>summary:hover,.faq-item>summary:focus-visible{color:var(--accent);outline:none}.faq-item>summary svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;flex:none;width:18px;height:18px;transition:transform .15s}.faq-item[open]>summary svg{transform:rotate(180deg)}.faq-answer{padding:0 36px 18px 4px}.faq-answer p{color:var(--muted);margin:0;font-size:.9rem;line-height:1.7}.faq-answer a{color:var(--accent)}.contact-card{gap:22px;display:grid}.contact-card>div{gap:6px;display:grid}.contact-card span{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.62rem;font-weight:850}.contact-card a{width:fit-content;font-size:1.05rem;font-weight:850;text-decoration:none}.contact-card-heading{border-bottom:1px solid var(--border);padding-bottom:18px}.contact-card-heading h2{color:var(--foreground);margin:0;font-size:1.1rem}.contact-card-heading p{margin-top:6px}.contact-card .contact-success-banner{border:1px solid #4ade80;margin:0}@supports (color:color-mix(in lab, red, red)){.contact-card .contact-success-banner{border:1px solid color-mix(in srgb, #4ade80 45%, var(--border))}}.contact-card .contact-success-banner{color:#86efac;background:linear-gradient(90deg,#4ade8024,#0000 72%),#0a1813b8;border-radius:7px;padding:12px 16px 12px 18px;font-size:.78rem;font-weight:850;line-height:1.5;box-shadow:inset 3px 0 #4ade80}.contact-form{gap:16px;display:grid}.contact-form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.contact-form label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;gap:7px;font-size:.64rem;font-weight:850;display:grid}.contact-form input,.contact-form textarea{border:1px solid var(--border);width:100%;color:var(--foreground);text-transform:none;background:#0d1521;border-radius:4px;padding:10px 11px;font-size:.8rem;line-height:1.5}.contact-form input{min-height:42px}.contact-form textarea{resize:vertical;min-height:180px}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent);outline:none}@supports (color:color-mix(in lab, red, red)){.contact-form input:focus,.contact-form textarea:focus{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 16%, transparent)}}.contact-form button{border:1px solid var(--accent);min-height:40px;color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;justify-self:start;padding:8px 16px;font-size:.72rem;font-weight:850}.contact-form button:hover:not(:disabled),.contact-form button:focus-visible{background:var(--accent);color:#07111c;outline:none}.contact-form button:disabled{cursor:wait;opacity:.6}.contact-verification{border:1px solid var(--border);background:linear-gradient(145deg,#111c2b,#0b131f);border-radius:6px;gap:12px;width:min(100%,440px);padding:13px;transition:border-color .18s,box-shadow .18s;display:grid}.contact-verification.is-verified{border-color:#4ade80}@supports (color:color-mix(in lab, red, red)){.contact-verification.is-verified{border-color:color-mix(in srgb, #4ade80 55%, var(--border))}}.contact-verification.is-verified{box-shadow:0 0 0 1px #4ade8014,inset 0 1px #ffffff08}.contact-verification-heading{align-items:center;gap:10px;display:flex}.contact-verification-heading>div{gap:2px;display:grid}.contact-verification-heading strong{color:var(--foreground);letter-spacing:.025em;font-size:.72rem}.contact-verification-heading small{color:var(--muted);font-size:.61rem}.contact-verification-icon{border:1px solid var(--accent);flex:0 0 28px;place-items:center;width:28px;height:28px;display:grid}@supports (color:color-mix(in lab, red, red)){.contact-verification-icon{border:1px solid color-mix(in srgb, var(--accent) 42%, var(--border))}}.contact-verification-icon{background:var(--accent);border-radius:5px}@supports (color:color-mix(in lab, red, red)){.contact-verification-icon{background:color-mix(in srgb, var(--accent) 9%, transparent)}}.contact-verification-icon{color:var(--accent)}.contact-verification-icon svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.contact-turnstile{width:100%;min-height:65px;overflow:hidden}.contact-turnstile iframe{max-width:100%}.contact-form-status{margin:0;font-size:.72rem;line-height:1.5}.contact-form-status.is-success{color:#4ade80}.contact-form-status.is-error{color:var(--danger)}.contact-email-address{border-top:1px solid var(--border);padding-top:20px}.contact-reporting-note{border-left:2px solid var(--accent);padding-left:12px}.account-heading{max-width:720px}.account-heading h1{letter-spacing:-.045em;margin:7px 0 12px;font-size:clamp(2rem,5vw,3.4rem);line-height:1}.account-heading>p:last-child{color:var(--muted);margin:0;font-size:.9rem;line-height:1.6}.account-setup-notice{border:1px dashed var(--accent);background:#66b7ff0d;border-radius:6px;justify-content:space-between;align-items:center;gap:18px;padding:13px 15px;display:flex}.account-setup-notice strong{color:var(--accent);font-size:.78rem}.account-setup-notice span{color:var(--muted);font-size:.7rem}.account-auth-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.account-auth-card,.account-profile-card,.account-membership-card{border:1px solid var(--border);background:var(--surface-raised);border-radius:7px;gap:15px;min-width:0;padding:20px;display:grid}.account-auth-card header h2{color:var(--foreground);margin:0;font-size:1.1rem}.account-auth-card header p,.account-profile-card p{color:var(--muted);margin:6px 0 0;font-size:.76rem;line-height:1.45}.account-auth-card label{color:var(--muted);text-transform:uppercase;gap:6px;font-size:.65rem;font-weight:850;display:grid}.account-auth-card input{text-transform:none;height:42px;font-size:.8rem}.account-auth-card button,.account-profile-card button,.account-profile-card .account-change-password{border:1px solid var(--accent);min-height:40px;color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;padding:8px 12px;font-size:.72rem;font-weight:850}.account-auth-card button:hover:not(:disabled),.account-auth-card button:focus-visible,.account-profile-card button:hover,.account-profile-card button:focus-visible,.account-profile-card .account-change-password:hover,.account-profile-card .account-change-password:focus-visible{background:var(--accent);color:#07111c;outline:none}.account-auth-card button:disabled{border-color:var(--border);color:var(--muted);cursor:not-allowed;opacity:.6}.account-forgot-password,.account-auth-back-link{color:var(--accent);justify-self:start;font-size:.7rem;font-weight:750;text-decoration:none}.account-forgot-password:hover,.account-forgot-password:focus-visible,.account-auth-back-link:hover,.account-auth-back-link:focus-visible{outline:none;text-decoration:underline}.account-recovery-card{max-width:520px}.account-auth-error,.account-auth-success{margin:0;font-size:.7rem;line-height:1.4}.account-auth-error{color:var(--danger)}.account-auth-success{color:#4ade80}.account-password-requirements{color:var(--muted);font-size:.68rem;line-height:1.5}.account-password-requirements p{margin:0 0 4px;font-weight:800}.account-password-requirements ul{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:2px 18px;margin:0;padding-left:18px;display:grid}.account-route-message{border:1px solid;border-radius:5px;margin:0;padding:11px 13px;font-size:.74rem;line-height:1.45}.account-route-message.is-success{color:#4ade80;background:#4ade800d}.account-route-message.is-error{color:var(--danger);background:#ff85850d}.account-profile-card{max-width:620px}.account-overview-grid{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);align-items:stretch;gap:14px;display:grid}.account-overview-grid .account-profile-card{max-width:none}.account-profile-card>div{gap:5px;display:grid}.account-profile-card span{color:var(--muted);text-transform:uppercase;font-size:.62rem;font-weight:850}.account-profile-card strong{overflow-wrap:anywhere;color:var(--accent);font-size:1.05rem}.account-profile-card>.account-profile-actions{justify-content:space-between;align-items:center;gap:12px;margin-top:auto;display:flex}.account-profile-actions form{margin:0}.account-profile-card .account-change-password{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.account-profile-actions button,.account-profile-card .account-profile-actions .account-change-password{border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.account-profile-actions button,.account-profile-card .account-profile-actions .account-change-password{border-color:color-mix(in srgb, var(--danger) 70%, var(--border))}}.account-profile-actions button,.account-profile-card .account-profile-actions .account-change-password{color:var(--danger)}.account-profile-actions button:hover,.account-profile-actions button:focus-visible,.account-profile-card .account-profile-actions .account-change-password:hover,.account-profile-card .account-profile-actions .account-change-password:focus-visible{border-color:var(--danger);background:var(--danger);color:#190606}.account-profile-card .account-profile-name-form{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;justify-self:stretch;align-items:end;gap:8px;width:100%;padding-top:14px;display:grid}.account-profile-name-form label{gap:6px;display:grid}.account-profile-name-form input{border:1px solid var(--border);width:100%;height:42px;color:var(--foreground);background:#0d1521;border-radius:4px;padding:8px 10px;font-size:.8rem}.account-profile-name-form input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent);outline:none}@supports (color:color-mix(in lab, red, red)){.account-profile-name-form input:focus{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 16%, transparent)}}.account-profile-name-form button:disabled{cursor:not-allowed;opacity:.45}.account-profile-name-status{grid-column:1/-1;min-height:1.2em;text-transform:none!important}.account-membership-card header{justify-content:space-between;align-items:start;gap:12px;display:flex}.account-membership-card header>div{gap:5px;display:grid}.account-membership-card header span,.account-membership-plan span{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.62rem;font-weight:850}.account-membership-card h2{margin:0;font-size:1.1rem}.account-membership-card header small{border:1px solid var(--accent)}@supports (color:color-mix(in lab, red, red)){.account-membership-card header small{border:1px solid color-mix(in srgb, var(--accent) 48%, var(--border))}}.account-membership-card header small{background:var(--accent);border-radius:999px}@supports (color:color-mix(in lab, red, red)){.account-membership-card header small{background:color-mix(in srgb, var(--accent) 8%, transparent)}}.account-membership-card header small{color:var(--accent);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;padding:4px 7px;font-size:.55rem;font-weight:850}.account-membership-plan{border-block:1px solid var(--border);gap:4px;padding:16px 0;display:grid}.account-membership-plan strong{color:var(--accent);font-size:1.45rem}.account-membership-details{gap:0;margin:0;display:grid}.account-membership-details>div{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:14px;min-height:39px;display:flex}@supports (color:color-mix(in lab, red, red)){.account-membership-details>div{border-bottom:1px solid color-mix(in srgb, var(--border) 72%, transparent)}}.account-membership-details dt{color:var(--muted);text-transform:uppercase;font-size:.65rem;font-weight:800}.account-membership-details dd{text-align:right;margin:0;font-size:.72rem;font-weight:800}.account-membership-status{color:#4ade80;align-items:center;gap:5px;display:inline-flex}.account-membership-status:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px;box-shadow:0 0 7px}@supports (color:color-mix(in lab, red, red)){.account-membership-status:before{box-shadow:0 0 7px color-mix(in srgb, currentColor 58%, transparent)}}.account-membership-usage{border-top:1px solid var(--border);gap:12px;padding-top:15px;display:grid}.account-membership-usage h3{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;margin:0;font-size:.65rem}.account-membership-usage-row{--usage-color:var(--accent);gap:6px;display:grid}.account-membership-usage-row>div{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.account-membership-usage-row span{font-size:.7rem;font-weight:800}.account-membership-usage-row strong{color:var(--usage-color);font-variant-numeric:tabular-nums;font-size:.68rem}.account-membership-usage-row progress{appearance:none;background:var(--border);border:0;border-radius:999px;width:100%;height:6px;overflow:hidden}.account-membership-usage-row progress::-webkit-progress-bar{border-radius:inherit;background:var(--border)}.account-membership-usage-row progress::-webkit-progress-value{border-radius:inherit;background:var(--usage-color)}.account-membership-usage-row progress::-moz-progress-bar{border-radius:inherit;background:var(--usage-color)}.account-membership-usage-row.is-warning{--usage-color:#f59e42}.account-membership-usage-row.is-reached{--usage-color:var(--danger)}.account-membership-usage-row.is-unavailable{--usage-color:var(--muted);opacity:.72}.account-membership-usage-row>small{color:var(--danger);text-align:right;text-transform:uppercase;font-size:.58rem;font-weight:850}.account-membership-card>button{border:1px solid var(--border);min-height:40px;color:var(--muted);cursor:not-allowed;opacity:.65;background:0 0;border-radius:4px;padding:8px 12px;font-size:.72rem;font-weight:850}.account-membership-card>p{color:var(--muted);margin:-3px 0 0;font-size:.68rem;line-height:1.45}.jam-repo-shell{width:min(1440px,100% - 40px);padding:calc(var(--master-lab-nav-height) + 58px) 0 64px;gap:24px;margin:0 auto;display:grid}.jam-repo-hero{border-bottom:1px solid var(--border);justify-content:space-between;align-items:end;gap:24px;padding-bottom:22px;display:flex}.jam-repo-hero h1,.jam-repo-detail-heading h1{letter-spacing:-.055em;margin:6px 0 10px;font-size:clamp(2.2rem,6vw,4.4rem);line-height:.95}.jam-repo-hero p:last-child{max-width:690px;color:var(--muted);margin:0;font-size:.9rem;line-height:1.55}.jam-repo-hero-marks{gap:8px;display:flex}.jam-repo-hero-marks a,.jam-repo-detail-heading>span{border:1px solid var(--repo-accent,var(--accent));background:var(--repo-accent,var(--accent));border-radius:7px;place-items:center;width:48px;height:48px;display:grid}@supports (color:color-mix(in lab, red, red)){.jam-repo-hero-marks a,.jam-repo-detail-heading>span{background:color-mix(in srgb, var(--repo-accent,var(--accent)) 9%, transparent)}}.jam-repo-hero-marks a,.jam-repo-detail-heading>span{color:var(--repo-accent,var(--accent));font-family:Cascadia Code,Consolas,monospace;font-size:.72rem;font-weight:950;text-decoration:none}.jam-repo-hero-marks a:hover,.jam-repo-hero-marks a:focus-visible{background:var(--repo-accent);color:#07111c;outline:none;transform:translateY(-2px)}.jam-repo-hero-marks .is-guitar-jam-lab{--repo-accent:#f472b6}.jam-repo-hero-marks .is-piano-jam-lab{--repo-accent:#38bdf8}.jam-repo-hero-marks .is-guitar-chord-progression-lab{--repo-accent:#66b7ff}.jam-repo-hero-marks .is-piano-chord-progression-lab{--repo-accent:#2dd4bf}.jam-repo-hero-marks .is-ukulele-jam-lab{--repo-accent:#f472b6}.jam-repo-hero-marks .is-ukulele-chord-progression-lab{--repo-accent:#66b7ff}.jam-repo-filters{border:1px solid var(--border);background:var(--surface-raised);border-radius:7px;grid-template-columns:minmax(220px,1fr) repeat(2,minmax(140px,190px)) minmax(190px,230px) auto;align-items:end;gap:10px;padding:14px;display:grid}.jam-repo-filters label,.jam-repo-report label{color:var(--muted);text-transform:uppercase;gap:5px;font-size:.6rem;font-weight:850;display:grid}.jam-repo-filters input,.jam-repo-filters select,.jam-repo-report select,.jam-repo-report textarea{border:1px solid var(--border);width:100%;min-height:40px;color:var(--foreground);text-transform:none;background:#0d1521;border-radius:4px;padding:8px 10px;font-size:.74rem}.jam-repo-filters button,.jam-repo-report button,.jam-repo-owner-tools button{border:1px solid var(--accent);min-height:40px;color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;padding:8px 13px;font-size:.7rem;font-weight:850}.jam-repo-filters button:hover,.jam-repo-filters button:focus-visible,.jam-repo-report button:hover:not(:disabled),.jam-repo-report button:focus-visible{background:var(--accent);color:#07111c;outline:none}.jam-repo-empty{border:1px dashed var(--border);background:var(--surface);text-align:center;border-radius:8px;place-content:center;justify-items:center;gap:7px;min-height:220px;padding:24px;display:grid}.jam-repo-empty strong{font-size:1.05rem}.jam-repo-empty p{max-width:520px;color:var(--muted);margin:0;font-size:.78rem;line-height:1.5}.jam-repo-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:14px;display:grid}.jam-repo-card{--repo-accent:#f472b6;border:1px solid var(--border);border-top:3px solid var(--repo-accent);background:linear-gradient(150deg, var(--repo-accent), transparent 45%), var(--surface-raised);border-radius:8px;gap:12px;min-width:0;display:grid;position:relative}@supports (color:color-mix(in lab, red, red)){.jam-repo-card{background:linear-gradient(150deg, color-mix(in srgb, var(--repo-accent) 9%, transparent), transparent 45%), var(--surface-raised)}}.jam-repo-card{padding:16px;transition:border-color .14s,transform .14s,box-shadow .14s}.jam-repo-card:hover{border-color:var(--repo-accent)}.jam-repo-card:has(.jam-repo-card-link:focus-visible){border-color:var(--repo-accent)}@supports (color:color-mix(in lab, red, red)){.jam-repo-card:hover{border-color:color-mix(in srgb, var(--repo-accent) 72%, var(--border))}.jam-repo-card:has(.jam-repo-card-link:focus-visible){border-color:color-mix(in srgb, var(--repo-accent) 72%, var(--border))}}.jam-repo-card:hover{transform:translateY(-2px);box-shadow:0 9px 24px #0004}.jam-repo-card:has(.jam-repo-card-link:focus-visible){transform:translateY(-2px);box-shadow:0 9px 24px #0004}.jam-repo-card-link{z-index:1;border-radius:7px;position:absolute;inset:0}.jam-repo-card-link:focus-visible{outline:2px solid var(--repo-accent);outline-offset:3px}.jam-repo-card.is-guitar-jam-lab,.jam-repo-detail.is-guitar-jam-lab{--repo-accent:#f472b6}.jam-repo-card.is-piano-jam-lab,.jam-repo-detail.is-piano-jam-lab{--repo-accent:#38bdf8}.jam-repo-card.is-guitar-chord-progression-lab,.jam-repo-detail.is-guitar-chord-progression-lab{--repo-accent:#66b7ff}.jam-repo-card.is-piano-chord-progression-lab,.jam-repo-detail.is-piano-chord-progression-lab{--repo-accent:#2dd4bf}.jam-repo-card.is-ukulele-jam-lab,.jam-repo-detail.is-ukulele-jam-lab{--repo-accent:#f472b6}.jam-repo-card.is-ukulele-chord-progression-lab,.jam-repo-detail.is-ukulele-chord-progression-lab{--repo-accent:#66b7ff}.jam-repo-card>header{align-items:center;gap:10px;min-width:0;display:flex}.jam-repo-card>header>span{border:1px solid var(--repo-accent);width:36px;height:36px;color:var(--repo-accent);border-radius:5px;flex:0 0 36px;place-items:center;font-size:.62rem;font-weight:950;display:grid}.jam-repo-card>header>div{min-width:0}.jam-repo-card small{color:var(--repo-accent);text-transform:uppercase;font-size:.56rem;font-weight:850}.jam-repo-card h2{text-overflow:ellipsis;white-space:nowrap;margin:3px 0 0;font-size:1rem;overflow:hidden}.jam-repo-author{color:var(--muted);align-items:center;gap:6px;margin:-6px 0 0;font-size:.65rem;display:flex}.jam-repo-detail-author{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.jam-repo-official-badge{border:1px solid var(--accent);align-items:center;gap:3px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.jam-repo-official-badge{border:1px solid color-mix(in srgb, var(--accent) 62%, var(--border))}}.jam-repo-official-badge{background:var(--accent);border-radius:999px}@supports (color:color-mix(in lab, red, red)){.jam-repo-official-badge{background:color-mix(in srgb, var(--accent) 10%, transparent)}}.jam-repo-official-badge{color:var(--accent);letter-spacing:.04em;text-transform:uppercase;padding:2px 5px;font-size:.48rem;font-weight:900;line-height:1}.jam-repo-official-badge svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2px;width:10px;height:10px}.jam-repo-description{min-height:3em;color:var(--foreground);margin:0;font-size:.74rem;line-height:1.5}.jam-repo-stats,.jam-repo-detail-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0;display:grid}.jam-repo-stats>div,.jam-repo-detail-stats>div{border:1px solid var(--border);min-width:0}@supports (color:color-mix(in lab, red, red)){.jam-repo-stats>div,.jam-repo-detail-stats>div{border:1px solid color-mix(in srgb, var(--border) 75%, transparent)}}.jam-repo-stats>div,.jam-repo-detail-stats>div{background:#0d152180;border-radius:4px;padding:7px 8px}.jam-repo-stats dt,.jam-repo-detail-stats dt{color:var(--muted);text-transform:uppercase;font-size:.52rem;font-weight:850}.jam-repo-stats dd,.jam-repo-detail-stats dd{color:var(--repo-accent);text-overflow:ellipsis;white-space:nowrap;margin:3px 0 0;font-size:.66rem;font-weight:800;overflow:hidden}.jam-repo-card>footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding-top:11px;display:flex}.jam-repo-card time{color:var(--muted);font-size:.56rem}.jam-repo-card-audio{z-index:2;gap:5px;display:flex;position:relative}.jam-repo-card-audio button{border:1px solid var(--repo-accent);width:30px;height:30px;color:var(--repo-accent);cursor:pointer;background:0 0;border-radius:4px;place-items:center;padding:0;display:grid}.jam-repo-card-audio button:hover:not(:disabled),.jam-repo-card-audio button:focus-visible{background:var(--repo-accent);color:#07111c;outline:none}.jam-repo-card-audio button:disabled{cursor:default;opacity:.32}.jam-repo-card-audio svg{fill:currentColor;width:14px;height:14px}.audition-controls{z-index:2;gap:5px;width:max-content;display:flex;position:relative}.audition-controls.is-overlay{position:absolute;bottom:10px;right:10px}.audition-controls button{border:1px solid var(--accent);width:30px;height:30px;color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;place-items:center;padding:0;display:grid}.audition-controls button:hover:not(:disabled),.audition-controls button:focus-visible{background:var(--accent);color:#07111c;outline:none}.audition-controls button:disabled{cursor:default;opacity:.32}.audition-controls svg{fill:currentColor;width:14px;height:14px}.jam-repo-detail-actions>a{color:var(--repo-accent);font-size:.66rem;font-weight:850;text-decoration:none}.jam-repo-detail-actions>a:hover,.jam-repo-detail-actions>a:focus-visible{outline:none;text-decoration:underline}.jam-repo-detail-shell{width:min(1000px,100% - 40px)}.jam-repo-detail{--repo-accent:#f472b6;border:1px solid var(--border);border-top:3px solid var(--repo-accent);background:linear-gradient(150deg, var(--repo-accent), transparent 34%), var(--surface-raised);border-radius:9px;gap:22px;display:grid}@supports (color:color-mix(in lab, red, red)){.jam-repo-detail{background:linear-gradient(150deg, color-mix(in srgb, var(--repo-accent) 8%, transparent), transparent 34%), var(--surface-raised)}}.jam-repo-detail{padding:24px}.jam-repo-detail-heading{align-items:center;gap:15px;display:flex}.jam-repo-detail-heading>span{border-color:var(--repo-accent);width:54px;height:54px;color:var(--repo-accent);flex:0 0 54px}.jam-repo-detail-heading>div{min-width:0}.jam-repo-detail-heading h1{overflow-wrap:anywhere;font-size:clamp(2rem,6vw,3.8rem)}.jam-repo-detail-heading>div>p:last-child{color:var(--muted);margin:0;font-size:.68rem}.jam-repo-detail-heading strong{color:var(--repo-accent)}.jam-repo-detail-description{max-width:760px;margin:0;font-size:.84rem;line-height:1.6}.jam-repo-detail-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.jam-repo-detail-stats dd{color:var(--repo-accent)}.jam-repo-audio-preview{border:1px solid var(--repo-accent);gap:13px;display:grid}@supports (color:color-mix(in lab, red, red)){.jam-repo-audio-preview{border:1px solid color-mix(in srgb, var(--repo-accent) 45%, var(--border))}}.jam-repo-audio-preview{background:var(--repo-accent);border-radius:7px}@supports (color:color-mix(in lab, red, red)){.jam-repo-audio-preview{background:color-mix(in srgb, var(--repo-accent) 7%, var(--surface))}}.jam-repo-audio-preview{padding:14px}.jam-repo-audio-heading{justify-content:space-between;align-items:end;gap:12px;display:flex}.jam-repo-audio-heading h2,.jam-repo-audio-preview.is-unavailable h2{margin:3px 0 0;font-size:1.05rem}.jam-repo-audio-heading>span{color:var(--repo-accent);white-space:nowrap;font-size:.62rem;font-weight:850}.jam-repo-audio-controls{align-items:center;gap:12px;display:flex}.jam-repo-audio-controls button{border:1px solid var(--repo-accent);background:var(--repo-accent);color:#07111c;cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:7px;min-width:150px;min-height:40px;padding:8px 13px;font-size:.68rem;font-weight:900;display:inline-flex}.jam-repo-audio-controls button:hover,.jam-repo-audio-controls button:focus-visible{color:var(--repo-accent);background:0 0;outline:none}.jam-repo-audio-controls button svg{fill:currentColor;width:15px;height:15px}.jam-repo-audio-controls>p{align-items:baseline;gap:8px;min-width:0;margin:0;display:flex}.jam-repo-audio-controls strong{color:var(--repo-accent);text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;overflow:hidden}.jam-repo-audio-controls span{color:var(--muted);white-space:nowrap;font-size:.6rem}.jam-repo-audio-error,.jam-repo-audio-preview.is-unavailable>p{color:var(--danger);margin:0;font-size:.64rem;line-height:1.4}.jam-repo-audio-preview.is-unavailable>p{color:var(--muted)}.jam-repo-form-preview{border-top:1px solid var(--border);gap:12px;padding-top:20px;display:grid}.jam-repo-form-preview h2{margin:3px 0 0;font-size:1.2rem}.jam-repo-section-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:9px;display:grid}.jam-repo-section-list>article{border:1px solid var(--border);background:var(--surface);border-radius:6px;align-content:start;gap:10px;padding:11px;display:grid}.jam-repo-section-list article>header{align-items:center;gap:8px;display:flex}.jam-repo-section-list article>header>span{border:1px solid var(--repo-accent);width:25px;height:25px;color:var(--repo-accent);border-radius:50%;flex:0 0 25px;place-items:center;font-size:.55rem;font-weight:900;display:grid}.jam-repo-section-list article>header>div{gap:2px;min-width:0;display:grid}.jam-repo-section-list strong{text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;overflow:hidden}.jam-repo-section-list small{color:var(--muted);text-transform:capitalize;font-size:.54rem}.jam-repo-chord-list{flex-wrap:wrap;gap:5px;display:flex}.jam-repo-chord-list span{border:1px solid var(--repo-accent)}@supports (color:color-mix(in lab, red, red)){.jam-repo-chord-list span{border:1px solid color-mix(in srgb, var(--repo-accent) 48%, var(--border))}}.jam-repo-chord-list span{color:var(--repo-accent);border-radius:4px;padding:4px 6px;font-size:.62rem;font-weight:800}.jam-repo-progression-list{flex-wrap:wrap;gap:8px;display:flex}.jam-repo-progression-list>span{border:1px solid var(--repo-accent);align-items:center;gap:7px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.jam-repo-progression-list>span{border:1px solid color-mix(in srgb, var(--repo-accent) 55%, var(--border))}}.jam-repo-progression-list>span{background:var(--repo-accent);border-radius:5px}@supports (color:color-mix(in lab, red, red)){.jam-repo-progression-list>span{background:color-mix(in srgb, var(--repo-accent) 7%, var(--surface))}}.jam-repo-progression-list>span{color:var(--repo-accent);padding:8px 10px;font-size:.74rem;font-weight:850}.jam-repo-progression-list small{color:var(--muted);font-size:.52rem}.jam-repo-detail-actions{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding-top:20px;display:flex}.jam-repo-detail-actions .jam-repo-import-button{border:1px solid var(--repo-accent);background:var(--repo-accent);color:#07111c;border-radius:4px;justify-content:center;align-items:center;min-height:42px;padding:8px 14px;text-decoration:none;display:inline-flex}.jam-repo-report{width:100%;color:var(--muted);font-size:.66rem}.jam-repo-report summary,.jam-repo-owner-tools summary{width:fit-content;color:var(--muted);cursor:pointer;font-size:.65rem;font-weight:800}.jam-repo-report form{gap:9px;max-width:500px;margin-top:11px;display:grid}.jam-repo-report textarea{resize:vertical}.jam-repo-report p{margin:8px 0 0}.jam-repo-owner-tools{border-top:1px solid var(--border);padding-top:14px}.jam-repo-owner-tools p{color:var(--muted);font-size:.68rem;line-height:1.45}.jam-repo-owner-tools button{border-color:var(--danger);color:var(--danger)}.jam-repo-owner-tools button:hover,.jam-repo-owner-tools button:focus-visible{background:var(--danger);color:#190606;outline:none}.landing-page{--landing-width:min(1320px, calc(100% - 40px));overflow:hidden}.landing-hero{width:var(--landing-width);min-height:min(820px,92dvh);padding:calc(var(--master-lab-nav-height) + 72px) 0 72px;grid-template-columns:minmax(0,.92fr) minmax(460px,1.08fr);align-items:center;gap:clamp(46px,7vw,110px);margin:0 auto;display:grid;position:relative}.landing-hero:before{z-index:-1;content:"";filter:blur(8px);background:radial-gradient(circle,#66b7ff18,#a78bfa0c 42%,#0000 70%);border-radius:50%;width:620px;height:620px;position:absolute;top:14%;right:-10%}.landing-hero-copy{z-index:1;position:relative}.landing-eyebrow{color:#b8c4d2;letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:9px;margin:0 0 20px;font-size:.68rem;font-weight:900;display:flex}.landing-eyebrow>span{background:linear-gradient(90deg,#a78bfa,#f59e42,#66b7ff,#f472b6);width:24px;height:2px;box-shadow:0 0 9px #66b7ff66}.landing-hero h1{letter-spacing:-.072em;max-width:760px;margin:0;font-size:clamp(3.4rem,6.5vw,6.9rem);line-height:.88}.landing-hero h1 em{color:#0000;background:linear-gradient(90deg,#a78bfa 0%,#66b7ff 46%,#2dd4bf 100%);-webkit-background-clip:text;background-clip:text;font-style:normal}.landing-hero-lede{color:#b4c0cf;max-width:640px;margin:28px 0 0;font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.65}.landing-hero-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:30px;display:flex}.landing-primary-action,.landing-secondary-action{border:1px solid var(--accent);letter-spacing:.03em;border-radius:5px;justify-content:center;align-items:center;gap:18px;min-height:44px;padding:10px 16px;font-size:.72rem;font-weight:900;text-decoration:none;display:inline-flex}.landing-primary-action{background:var(--accent);color:#07111c;box-shadow:0 10px 28px #66b7ff20}.landing-secondary-action{color:var(--accent);background:#0d1521}.landing-primary-action:hover,.landing-primary-action:focus-visible{background:#8ac8ff;outline:none;transform:translateY(-1px)}.landing-secondary-action:hover,.landing-secondary-action:focus-visible{background:var(--surface-raised);outline:none}.landing-proof{color:#8493a5;flex-wrap:wrap;gap:12px 22px;margin:25px 0 0;padding:0;font-size:.65rem;font-weight:800;list-style:none;display:flex}.landing-proof li{align-items:center;gap:8px;display:flex}.landing-proof li:before{content:"";background:#66d6a2;border-radius:50%;width:5px;height:5px;box-shadow:0 0 7px #66d6a288}.landing-hero-workbench{background:linear-gradient(145deg,#182335e8,#0b111be8 68%);border:1px solid #33465f;border-radius:14px;min-height:500px;padding:54px 28px 28px;position:relative;transform:perspective(1200px)rotateY(-3deg)rotateX(1deg);box-shadow:0 34px 80px #0009,inset 0 1px #ffffff0c}.landing-workbench-topline{color:#728196;letter-spacing:.1em;border-bottom:1px solid #2c3c54;justify-content:space-between;padding-bottom:12px;font-family:Cascadia Code,Consolas,monospace;font-size:.54rem;font-weight:800;display:flex;position:absolute;top:18px;left:22px;right:22px}.landing-hero-visual-card{--lab-accent:#a78bfa;--lab-accent-soft:#a78bfa24;z-index:1;border:1px solid var(--lab-accent);width:88%;min-height:158px;position:relative}@supports (color:color-mix(in lab, red, red)){.landing-hero-visual-card{border:1px solid color-mix(in srgb, var(--lab-accent) 45%, var(--border))}}.landing-hero-visual-card{background:linear-gradient(155deg, var(--lab-accent-soft), transparent 60%), #101824;border-radius:8px;padding:15px;box-shadow:0 16px 34px #0007}.landing-hero-visual-card.is-piano{--lab-accent:#fb7185;--lab-accent-soft:#fb718520;z-index:2;margin:-14px 0 0 auto}.landing-hero-visual-card>div,.landing-stage-card>div{align-items:center;gap:9px;display:flex}.landing-hero-visual-card>div>span,.landing-stage-card>div>span{border:1px solid var(--lab-accent);width:25px;height:25px;color:var(--lab-accent);border-radius:4px;flex:none;place-items:center;font-family:Cascadia Code,Consolas,monospace;font-size:.52rem;font-weight:950;display:grid}.landing-hero-visual-card strong,.landing-stage-card strong{color:var(--foreground);font-size:.72rem}.landing-hero-visual-card small{color:var(--lab-accent);text-transform:uppercase;margin-left:auto;font-size:.55rem;font-weight:800}.landing-hero-visual-card .lab-directory-visual{height:94px;margin-top:10px}.landing-workbench-formula{z-index:3;color:#66b7ff;background:#080d15ed;border:1px solid #2c3c54;border-radius:6px;justify-content:center;align-items:center;gap:8px;width:84%;margin:-4px auto 0;padding:10px 13px;font-family:Cascadia Code,Consolas,monospace;font-size:.68rem;font-weight:900;display:flex;position:relative;box-shadow:0 9px 24px #0008}.landing-workbench-formula i{background:#40516a;width:clamp(16px,4vw,46px);height:1px}.landing-workbench-status{color:#7e8da0;align-items:center;gap:7px;font-size:.56rem;font-weight:800;display:flex;position:absolute;bottom:15px;right:23px}.landing-workbench-status .is-live{background:#66d6a2;border-radius:50%;width:6px;height:6px;box-shadow:0 0 7px #66d6a2}.landing-theory-path,.landing-instruments,.landing-projects,.landing-final-cta{width:var(--landing-width);margin:0 auto}.landing-theory-path{padding:110px 0}.landing-section-heading{gap:13px;max-width:790px;display:grid}.landing-section-heading.is-centered{text-align:center;justify-items:center;margin:0 auto}.landing-section-heading>*{margin:0}.landing-section-heading h2,.landing-project-copy h2,.landing-final-cta h2{letter-spacing:-.058em;font-size:clamp(2.25rem,4.5vw,4.7rem);line-height:.98}.landing-section-heading>p:last-child,.landing-project-copy>p,.landing-final-cta>p{color:var(--muted);font-size:.92rem;line-height:1.65}.landing-theory-steps{border:1px solid var(--border);background:var(--border);border-radius:10px;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:45px;display:grid;overflow:hidden}.landing-theory-step{--step-accent:#a78bfa;background:linear-gradient(160deg, var(--step-accent), #0b111a 62%);min-height:230px}@supports (color:color-mix(in lab, red, red)){.landing-theory-step{background:linear-gradient(160deg, color-mix(in srgb, var(--step-accent) 9%, #101722), #0b111a 62%)}}.landing-theory-step{padding:24px}.landing-theory-step.is-theory{--step-accent:#f59e42}.landing-theory-step.is-progression{--step-accent:#66b7ff}.landing-theory-step.is-jam{--step-accent:#f472b6}.landing-theory-step>span{color:var(--step-accent);letter-spacing:-.1em;text-shadow:0 0 24px var(--step-accent);font-family:Cascadia Code,Consolas,monospace;font-size:2.5rem;font-weight:950;line-height:.82;display:block}@supports (color:color-mix(in lab, red, red)){.landing-theory-step>span{text-shadow:0 0 24px color-mix(in srgb, var(--step-accent) 24%, transparent)}}.landing-theory-step h3{letter-spacing:-.025em;margin:38px 0 10px;font-size:1.12rem}.landing-theory-step p{color:var(--muted);margin:0;font-size:.72rem;line-height:1.55}.landing-instruments{padding:100px 0}.landing-instrument-stories{gap:130px;margin-top:100px;display:grid}.landing-instrument-story{--instrument-accent:#a78bfa;grid-template-columns:minmax(0,.9fr) minmax(440px,1.1fr);align-items:center;gap:clamp(60px,8vw,130px);display:grid}.landing-instrument-story.is-piano{--instrument-accent:#f4d35e}.landing-instrument-story.is-ukulele{--instrument-accent:#f59e42}.landing-instrument-story:nth-child(2n) .landing-instrument-copy{order:2}.landing-instrument-title{align-items:start;gap:18px;display:flex}.landing-instrument-title>span{border:1px solid var(--instrument-accent);background:var(--instrument-accent);border-radius:7px;flex:none;place-items:center;width:48px;height:48px;display:grid}@supports (color:color-mix(in lab, red, red)){.landing-instrument-title>span{background:color-mix(in srgb, var(--instrument-accent) 9%, transparent)}}.landing-instrument-title>span{color:var(--instrument-accent);box-shadow:0 0 22px var(--instrument-accent);font-size:1rem;font-weight:950}@supports (color:color-mix(in lab, red, red)){.landing-instrument-title>span{box-shadow:0 0 22px color-mix(in srgb, var(--instrument-accent) 13%, transparent)}}.landing-instrument-title p,.landing-instrument-title h3{margin:0}.landing-instrument-title h3{letter-spacing:-.052em;max-width:620px;margin-top:6px;font-size:clamp(1.8rem,3.5vw,3.35rem);line-height:1}.landing-instrument-copy>p{color:var(--muted);margin:24px 0 0;line-height:1.7}.landing-lab-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:30px;display:grid}.landing-lab-list-item{--landing-lab-accent:var(--accent);background:#0d141f;border:1px solid #253449;border-radius:6px;gap:10px;padding:12px;display:flex}.landing-lab-list-item.is-scales,.landing-lab-list-item.is-ukulele-scales{--landing-lab-accent:#a78bfa}.landing-lab-list-item.is-theory,.landing-lab-list-item.is-ukulele-theory{--landing-lab-accent:#f59e42}.landing-lab-list-item.is-progression,.landing-lab-list-item.is-ukulele-progression{--landing-lab-accent:#66b7ff}.landing-lab-list-item.is-jam,.landing-lab-list-item.is-ukulele-jam{--landing-lab-accent:#f472b6}.landing-lab-list-item.is-piano-scales{--landing-lab-accent:#f4d35e}.landing-lab-list-item.is-piano-theory{--landing-lab-accent:#fb7185}.landing-lab-list-item.is-piano-progressions{--landing-lab-accent:#2dd4bf}.landing-lab-list-item.is-piano-jam{--landing-lab-accent:#38bdf8}.landing-lab-list-item>span{border:1px solid var(--landing-lab-accent);flex:none;place-items:center;width:27px;height:27px;display:grid}@supports (color:color-mix(in lab, red, red)){.landing-lab-list-item>span{border:1px solid color-mix(in srgb, var(--landing-lab-accent) 65%, var(--border))}}.landing-lab-list-item>span{background:var(--landing-lab-accent);border-radius:4px}@supports (color:color-mix(in lab, red, red)){.landing-lab-list-item>span{background:color-mix(in srgb, var(--landing-lab-accent) 8%, transparent)}}.landing-lab-list-item>span{color:var(--landing-lab-accent);box-shadow:0 0 8px var(--landing-lab-accent);font-family:Cascadia Code,Consolas,monospace;font-size:.52rem;font-weight:950}@supports (color:color-mix(in lab, red, red)){.landing-lab-list-item>span{box-shadow:0 0 8px color-mix(in srgb, var(--landing-lab-accent) 14%, transparent)}}.landing-lab-list-item h4{margin:1px 0 5px;font-size:.72rem}.landing-lab-list-item p{color:#8391a3;margin:0;font-size:.62rem;line-height:1.45}.landing-instrument-stage{min-height:470px;position:relative}.landing-instrument-stage:before{background:radial-gradient(circle, var(--instrument-accent), transparent 70%);border-radius:50%;position:absolute;inset:8% 5%}@supports (color:color-mix(in lab, red, red)){.landing-instrument-stage:before{background:radial-gradient(circle, color-mix(in srgb, var(--instrument-accent) 14%, transparent), transparent 70%)}}.landing-instrument-stage:before{content:"";filter:blur(20px)}.landing-stage-card{--lab-accent:#a78bfa;--lab-accent-soft:#a78bfa20;border:1px solid var(--lab-accent);width:84%;min-height:215px;position:absolute}@supports (color:color-mix(in lab, red, red)){.landing-stage-card{border:1px solid color-mix(in srgb, var(--lab-accent) 42%, var(--border))}}.landing-stage-card{background:linear-gradient(150deg, var(--lab-accent-soft), transparent 60%), #111a27;border-radius:10px;padding:18px;box-shadow:0 22px 50px #0008}.landing-stage-card:first-child{top:15px;left:0;transform:rotate(-1.5deg)}.landing-stage-card:nth-child(2){z-index:2;bottom:20px;right:0;transform:rotate(1.2deg)}.landing-stage-card.is-theory,.landing-stage-card.is-ukulele-theory{--lab-accent:#f59e42;--lab-accent-soft:#f59e4220}.landing-stage-card.is-piano-theory{--lab-accent:#fb7185;--lab-accent-soft:#fb718520}.landing-stage-card.is-piano-progressions{--lab-accent:#2dd4bf;--lab-accent-soft:#2dd4bf20}.landing-stage-card.is-ukulele-scales{--lab-accent:#a78bfa;--lab-accent-soft:#a78bfa20}.landing-stage-card.is-ukulele-progression{--lab-accent:#66b7ff;--lab-accent-soft:#66b7ff20}.landing-stage-card .lab-directory-visual{height:145px;margin-top:15px}.landing-stage-theory-note{z-index:3;border:1px solid var(--instrument-accent);background:#080d15ee;border-radius:6px;grid-template-columns:auto auto;align-items:center;gap:4px 9px;padding:10px 12px;display:grid;position:absolute;top:45%;left:43%;box-shadow:0 10px 28px #000b}.landing-stage-theory-note span{color:#78879a;font-size:.47rem;font-weight:900}.landing-stage-theory-note strong{color:var(--instrument-accent);font-family:Cascadia Code,Consolas,monospace;font-size:.62rem}.landing-projects{grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);align-items:center;gap:clamp(55px,8vw,120px);padding:120px 0;display:grid}.landing-project-visual{background:linear-gradient(145deg,#182335,#0b111a 70%);border:1px solid #304158;border-radius:12px;min-height:390px;padding:60px 40px 35px;position:relative;overflow:hidden;box-shadow:0 25px 65px #0008}.landing-project-rail{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.landing-project-rail span{color:#66b7ff;background:#66b7ff12;border:1px solid #66b7ff80;border-radius:6px;place-items:center;min-height:80px;font-family:Cascadia Code,Consolas,monospace;font-size:1.15rem;font-weight:900;display:grid}.landing-melody-line{border-top:1px solid #26364b;border-bottom:1px solid #26364b;justify-content:space-around;align-items:center;gap:10px;height:130px;margin-top:30px;display:flex}.landing-melody-line i{background:#f472b6;border-radius:9px;width:2px;position:relative;box-shadow:0 0 8px #f472b666}.landing-melody-line i:after{content:"";background:#121a27;border:2px solid #f472b6;border-radius:50%;width:10px;height:10px;position:absolute;top:-5px;left:-4px}.landing-project-playhead{background:linear-gradient(#0000,#66d6a2 12% 88%,#0000);width:1px;position:absolute;top:42px;bottom:33px;left:46%;box-shadow:0 0 9px #66d6a288}.landing-project-caption{color:#77869a;letter-spacing:.07em;text-transform:uppercase;font-size:.54rem;font-weight:850;position:absolute;bottom:18px;right:25px}.landing-project-copy>*{margin-left:0;margin-right:0}.landing-project-copy h2{margin-top:10px;margin-bottom:22px}.landing-project-copy>p{margin-bottom:24px}.landing-project-copy>.landing-repo-action{color:#170812;letter-spacing:.02em;background:#f472b6;border:1px solid #f472b6;border-radius:5px;justify-content:center;align-items:center;gap:18px;width:fit-content;min-height:44px;padding:10px 16px;font-size:.72rem;font-weight:900;text-decoration:none;display:inline-flex;box-shadow:0 10px 28px #f472b620}.landing-project-copy>.landing-repo-action:hover,.landing-project-copy>.landing-repo-action:focus-visible{color:#170812;background:#f9a8d4;border-color:#f9a8d4;outline:none;transform:translateY(-1px)}.landing-final-cta{text-align:center;background:linear-gradient(145deg,#182335,#0a1019 68%);border:1px solid #33465f;border-radius:14px;justify-items:center;margin-top:70px;margin-bottom:90px;padding:clamp(50px,8vw,100px) 24px;display:grid;position:relative;overflow:hidden}.landing-final-cta:before{content:"";background:radial-gradient(circle,#66b7ff22,#a78bfa10 45%,#0000 70%);border-radius:50%;width:700px;height:500px;position:absolute;top:-260px}.landing-final-cta>*{position:relative}.landing-final-cta h2{max-width:900px;margin:12px 0 18px}.landing-final-cta>p{max-width:700px;margin:0}.landing-final-cta .landing-hero-actions{justify-content:center}.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-learning-path{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:34px 0 0;padding:0;list-style:none;display:grid}.lab-learning-path li{--lab-accent:#66b7ff;--lab-accent-soft:#66b7ff1b;border:1px solid var(--border);background:linear-gradient(155deg, var(--lab-accent-soft), transparent 58%), var(--surface);min-width:0;min-height:52px;color:var(--lab-accent);letter-spacing:.025em;border-radius:9px;align-items:center;padding:12px 17px;font-size:clamp(.72rem,1vw,.88rem);font-weight:900;display:flex;position:relative;overflow:hidden;transform:scale(.96)}.lab-learning-path li.is-scales{--lab-accent:#a78bfa;--lab-accent-soft:#a78bfa1b}.lab-learning-path li.is-theory{--lab-accent:#f59e42;--lab-accent-soft:#f59e421b}.lab-learning-path li.is-progression{--lab-accent:#66b7ff;--lab-accent-soft:#66b7ff1b}.lab-learning-path li.is-jam{--lab-accent:#f472b6;--lab-accent-soft:#f472b61b}.lab-learning-path-separator{color:var(--lab-accent);font-size:1.05rem;line-height:0;position:absolute;top:50%;right:16.5%;transform:translate(50%,-50%)}.lab-learning-path-icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:31px;height:31px}.scales-directory-page{--path-accent:#a78bfa;width:min(1440px,100% - 40px);padding:calc(var(--master-lab-nav-height) + 70px) 0 80px;margin:0 auto;position:relative}.labs-directory-back-link,.scale-workbench-back-link,.scale-exercises-hero>a{border:1px solid var(--back-link-accent);align-items:center;gap:9px;min-height:38px}@supports (color:color-mix(in lab, red, red)){.labs-directory-back-link,.scale-workbench-back-link,.scale-exercises-hero>a{border:1px solid color-mix(in srgb, var(--back-link-accent) 45%, var(--border))}}.labs-directory-back-link,.scale-workbench-back-link,.scale-exercises-hero>a{background:var(--back-link-accent);border-radius:5px}@supports (color:color-mix(in lab, red, red)){.labs-directory-back-link,.scale-workbench-back-link,.scale-exercises-hero>a{background:color-mix(in srgb, var(--back-link-accent) 6%, transparent)}}.labs-directory-back-link,.scale-workbench-back-link,.scale-exercises-hero>a{color:var(--back-link-accent);padding:8px 11px;font-size:.67rem;font-weight:850;text-decoration:none}.labs-directory-back-link:hover,.labs-directory-back-link:focus-visible,.scale-workbench-back-link:hover,.scale-workbench-back-link:focus-visible,.scale-exercises-hero>a:hover,.scale-exercises-hero>a:focus-visible{border-color:var(--back-link-accent);background:var(--back-link-accent)}@supports (color:color-mix(in lab, red, red)){.labs-directory-back-link:hover,.labs-directory-back-link:focus-visible,.scale-workbench-back-link:hover,.scale-workbench-back-link:focus-visible,.scale-exercises-hero>a:hover,.scale-exercises-hero>a:focus-visible{background:color-mix(in srgb, var(--back-link-accent) 14%, var(--surface))}}.labs-directory-back-link:hover,.labs-directory-back-link:focus-visible,.scale-workbench-back-link:hover,.scale-workbench-back-link:focus-visible,.scale-exercises-hero>a:hover,.scale-exercises-hero>a:focus-visible{outline:none}.labs-directory-back-link{--back-link-accent:var(--path-accent);top:calc(var(--master-lab-nav-height) + 70px);width:fit-content;margin:0;display:flex;position:absolute;right:0}.scales-directory-hero{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:40px;padding-bottom:34px;display:grid}.scales-directory-hero>div{max-width:780px}.scales-directory-hero h1{letter-spacing:-.06em;margin:7px 0 16px;font-size:clamp(2.5rem,6vw,5.3rem);line-height:.94}.scales-directory-hero>div>p:last-child{max-width:680px;color:var(--muted);margin:0;font-size:1rem;line-height:1.65}.scales-directory-route{color:var(--path-accent);align-items:center;gap:10px;padding-bottom:4px;display:flex}.scales-directory-route i{border:1px solid var(--path-accent)}@supports (color:color-mix(in lab, red, red)){.scales-directory-route i{border:1px solid color-mix(in srgb, var(--path-accent) 45%, var(--border))}}.scales-directory-route i{background:var(--path-accent);border-radius:999px}@supports (color:color-mix(in lab, red, red)){.scales-directory-route i{background:color-mix(in srgb, var(--path-accent) 8%, transparent)}}.scales-directory-route i{letter-spacing:.07em;text-transform:uppercase;padding:7px 10px;font-size:.6rem;font-style:normal;font-weight:900}.scales-directory-route b{color:var(--path-accent)}@supports (color:color-mix(in lab, red, red)){.scales-directory-route b{color:color-mix(in srgb, var(--path-accent) 55%, var(--muted))}}.scales-directory-route b{font-size:.8rem}.scales-path-directory{gap:0;display:grid}.scales-path-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(270px,360px) minmax(0,1fr);align-items:stretch;gap:clamp(32px,6vw,88px);padding:34px 0;display:grid}.scales-path-row:last-child{border-bottom:0}.scales-path-card{--lab-accent:var(--path-accent);--lab-accent-soft:#a78bfa1b;border:1px solid var(--lab-accent);flex-direction:column;min-height:186px;display:flex;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.scales-path-card{border:1px solid color-mix(in srgb, var(--lab-accent) 38%, var(--border))}}.scales-path-card{background:linear-gradient(155deg, var(--lab-accent-soft), transparent 52%), var(--surface);color:var(--foreground);border-radius:9px;padding:14px 17px;text-decoration:none;transition:border-color .15s,background .15s,box-shadow .15s,transform .15s}.scales-path-card:before{background:linear-gradient(90deg, var(--lab-accent), transparent 88%);content:"";height:3px;position:absolute;top:0;left:0;right:0}.scales-path-card:hover,.scales-path-card:focus-visible{border-color:var(--lab-accent);background:linear-gradient(155deg, var(--lab-accent-soft), transparent 60%), var(--surface-raised);box-shadow:0 14px 36px #0007, inset 0 0 28px var(--lab-accent-soft);outline:none;transform:translateY(-3px)}.scales-path-card.is-locked{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.scales-path-card.is-locked{border-color:color-mix(in srgb, var(--border) 80%, #000)}}.scales-path-card.is-locked{background:linear-gradient(#04070bb8, #04070bb8), linear-gradient(155deg, var(--lab-accent-soft), transparent 52%), var(--surface);filter:saturate(.4)brightness(.76)}.scales-path-card.is-locked:hover,.scales-path-card.is-locked:focus-visible{border-color:var(--lab-accent)}@supports (color:color-mix(in lab, red, red)){.scales-path-card.is-locked:hover,.scales-path-card.is-locked:focus-visible{border-color:color-mix(in srgb, var(--lab-accent) 55%, var(--border))}}.scales-path-card.is-locked:hover,.scales-path-card.is-locked:focus-visible{background:linear-gradient(#04070b9e, #04070b9e), linear-gradient(155deg, var(--lab-accent-soft), transparent 60%), var(--surface-raised);filter:saturate(.58)brightness(.88)}.scales-path-card-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.scales-path-mark{border:1px solid var(--lab-accent);background:var(--lab-accent-soft);width:34px;height:34px;color:var(--lab-accent);border-radius:5px;place-items:center;font-family:Cascadia Code,Consolas,monospace;font-size:.65rem;font-weight:950;display:grid}.scales-path-status{border:1px solid var(--lab-accent)}@supports (color:color-mix(in lab, red, red)){.scales-path-status{border:1px solid color-mix(in srgb, var(--lab-accent) 45%, transparent)}}.scales-path-status{background:var(--lab-accent-soft);color:var(--lab-accent);letter-spacing:.07em;text-transform:uppercase;border-radius:999px;padding:5px 8px;font-size:.56rem;font-weight:900}.scales-path-card.is-locked .scales-path-status{border-radius:999px;place-items:center;width:31px;height:31px;padding:0;display:grid}.scales-path-lock-icon{width:15px;height:15px}.scales-path-card-copy{gap:4px;margin-top:10px;display:grid}.scales-path-card-copy small{color:var(--lab-accent);letter-spacing:.1em;text-transform:uppercase;font-size:.57rem;font-weight:900}.scales-path-card-copy strong{letter-spacing:-.025em;font-size:clamp(1.05rem,2vw,1.35rem)}.scales-path-card .lab-directory-visual.has-instrument-graphic{height:48px}.scales-path-action{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:8px;padding-top:8px;font-size:.64rem;font-weight:900;display:flex}.scales-path-action span{font-size:1rem;transition:transform .15s}.scales-path-card:hover .scales-path-action span,.scales-path-card:focus-visible .scales-path-action span{transform:translate(4px)}.scales-path-description{align-content:center;max-width:680px;padding:12px 0;display:grid}.scales-path-description .section-label{margin:0 0 6px}.scales-path-description h2{letter-spacing:-.04em;margin:0 0 10px;font-size:clamp(1.45rem,3vw,2.2rem)}.scales-path-description>p:not(.section-label){color:var(--muted);margin:0;font-size:.9rem;line-height:1.6}.scales-path-description ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 22px;margin:18px 0 0;padding:0;list-style:none;display:grid}.scales-path-description li{color:#c6d0dc;padding-left:15px;font-size:.7rem;line-height:1.45;position:relative}.scales-path-description li:before{background:var(--path-accent);content:"";width:5px;height:5px;box-shadow:0 0 7px var(--path-accent);border-radius:50%;position:absolute;top:.5em;left:0}@supports (color:color-mix(in lab, red, red)){.scales-path-description li:before{box-shadow:0 0 7px color-mix(in srgb, var(--path-accent) 75%, transparent)}}.scales-placeholder{--accent:#a78bfa}.theory-directory-page{--path-accent:#f59e42}.theory-directory-page .scales-path-card{--lab-accent-soft:#f59e421b}.ukulele-scales-directory-page{--path-accent:#a78bfa}.ukulele-scales-directory-page .scales-directory-hero h1{white-space:nowrap}.ukulele-theory-directory-page{--path-accent:#f59e42}.piano-scales-directory-page{--path-accent:#f4d35e}.piano-scales-directory-page .scales-path-card{--lab-accent-soft:#f4d35e1b}.piano-theory-directory-page{--path-accent:#fb7185}.piano-theory-directory-page .scales-path-card{--lab-accent-soft:#fb71851b}.ukulele-scale-challenges-page{--exercise-accent:#a78bfa}.ukulele-theory-challenges-page{--exercise-accent:#f59e42}.scale-exercises-page.piano-scale-challenges-page{--exercise-accent:#f4d35e}.scale-exercises-page.theory-path-placeholder.piano-theory-challenges-page{--exercise-accent:#fb7185}.piano-challenge-keyboard-scroll{border:1px solid var(--border);scrollbar-color:var(--exercise-accent) transparent;scrollbar-width:thin;background:#0e1623;border-radius:5px;padding:18px;overflow-x:auto}.piano-challenge-keyboard{width:max(100%, var(--piano-challenge-width));min-width:var(--piano-challenge-width);height:210px;display:block}.piano-challenge-key{cursor:pointer;outline:none}.piano-challenge-key rect{stroke:#27364b;stroke-width:1.3px;transition:fill .12s,stroke .12s,filter .12s}.piano-challenge-key .piano-challenge-white-key{fill:#eef2f7}.piano-challenge-key .piano-challenge-black-key{fill:#111827}.piano-challenge-key:hover rect,.piano-challenge-key:focus-visible rect{stroke:var(--exercise-accent);stroke-width:2.5px}.piano-challenge-key.is-selected rect{fill:var(--exercise-accent)}@supports (color:color-mix(in lab, red, red)){.piano-challenge-key.is-selected rect{fill:color-mix(in srgb, var(--exercise-accent) 72%, #182334)}}.piano-challenge-key.is-selected rect{stroke:var(--exercise-accent);stroke-width:2.5px}.piano-challenge-key.is-hinted rect{fill:#38bdf8;stroke:#e0f2fe;stroke-width:2.5px}.piano-challenge-key.is-correct rect{fill:#22c55e;stroke:#dcfce7}.piano-challenge-key.is-incorrect rect{fill:#ef4444;stroke:#fee2e2}.piano-challenge-key.is-missed rect{fill:#facc15;stroke:#fef9c3}.piano-challenge-key.is-root rect{filter:drop-shadow(0 0 5px var(--exercise-accent));stroke-width:4px}.piano-challenge-key text{fill:#fff;text-anchor:middle;pointer-events:none;font-size:10px;font-weight:900}.piano-challenge-key text.is-black{font-size:8px}.challenge-progress-grid.piano-challenge-progress-grid{grid-template-columns:repeat(8,minmax(68px,1fr));min-width:640px}.scale-exercises-page.theory-path-placeholder{--exercise-accent:#f59e42}.scale-exercises-page{--exercise-accent:#a78bfa;width:min(1440px,100% - 40px);padding:calc(var(--master-lab-nav-height) + 70px) 0 80px;margin:0 auto}.scale-exercises-hero{border-bottom:1px solid var(--border);justify-content:space-between;align-items:end;gap:30px;padding-bottom:30px;display:flex}.scale-exercises-hero>div{max-width:780px}.scale-exercises-hero h1{letter-spacing:-.06em;margin:7px 0 14px;font-size:clamp(2.5rem,6vw,5rem);line-height:.95}.scale-exercises-hero p:last-child{max-width:680px;color:var(--muted);margin:0;font-size:.96rem;line-height:1.65}.scale-exercises-hero>a{--back-link-accent:var(--exercise-accent);flex:none;align-self:flex-start;display:inline-flex}.guitar-scale-exercises{gap:28px;margin-top:28px;display:grid}.challenge-progress-overview{border:1px solid var(--exercise-accent);grid-template-columns:minmax(0,1fr);gap:18px;display:grid}@supports (color:color-mix(in lab, red, red)){.challenge-progress-overview{border:1px solid color-mix(in srgb, var(--exercise-accent) 24%, var(--border))}}.challenge-progress-overview{background:linear-gradient(110deg, var(--exercise-accent), transparent 42%), var(--surface);border-radius:9px}@supports (color:color-mix(in lab, red, red)){.challenge-progress-overview{background:linear-gradient(110deg, color-mix(in srgb, var(--exercise-accent) 6%, transparent), transparent 42%), var(--surface)}}.challenge-progress-overview{padding:18px}.challenge-sync-status{color:var(--muted);letter-spacing:.02em;justify-self:end;margin:-8px 0 0;font-size:.68rem}.challenge-sync-status.is-saving{color:var(--exercise-accent)}.challenge-sync-status.is-error{color:#fda4af}.challenge-progress-heading{min-width:0}.challenge-progress-heading h2{letter-spacing:-.025em;margin:5px 0 0;font-size:1rem}.challenge-progress-scroll{scrollbar-color:var(--border) transparent;scrollbar-width:thin;min-width:0;padding:2px 0 5px;overflow-x:auto}.challenge-progress-grid{grid-template-columns:repeat(12,minmax(68px,1fr));gap:12px;min-width:960px;margin:0;padding:0;list-style:none;display:grid}.challenge-progress-grid.is-chord-theory{grid-template-columns:repeat(7,minmax(68px,1fr));min-width:560px}.challenge-progress-item{justify-items:center;gap:5px;display:grid}.challenge-progress-item small{color:var(--muted);letter-spacing:.07em;font-family:Cascadia Code,Consolas,monospace;font-size:.56rem;font-weight:900}.challenge-progress-pie{--challenge-progress:0%;background:conic-gradient(var(--exercise-accent) var(--challenge-progress), #202c3d 0);border-radius:50%;place-items:center;width:68px;height:68px;display:grid;position:relative;box-shadow:0 0 0 1px #ffffff0a}.challenge-progress-pie:after{border-radius:inherit;content:"";background:#0d141f;border:1px solid #ffffff0a;position:absolute;inset:7px}.challenge-progress-pie strong{z-index:1;color:var(--foreground);font-family:Cascadia Code,Consolas,monospace;font-size:.58rem;font-weight:900;position:relative}.challenge-progress-pie.is-complete{background:#4ade80;box-shadow:0 0 13px #4ade8038}.challenge-progress-item.is-unavailable{opacity:.38}.challenge-progress-item.is-unavailable .challenge-progress-pie{background:repeating-conic-gradient(#394456 0 8deg, #202c3d 8deg 16deg)}.scale-exercise-setup{border:1px solid var(--exercise-accent);grid-template-columns:minmax(260px,1fr) minmax(360px,1fr) auto;align-items:center;gap:28px;display:grid}@supports (color:color-mix(in lab, red, red)){.scale-exercise-setup{border:1px solid color-mix(in srgb, var(--exercise-accent) 30%, var(--border))}}.scale-exercise-setup{background:linear-gradient(135deg, var(--exercise-accent), transparent 55%), var(--surface);border-radius:9px}@supports (color:color-mix(in lab, red, red)){.scale-exercise-setup{background:linear-gradient(135deg, color-mix(in srgb, var(--exercise-accent) 7%, transparent), transparent 55%), var(--surface)}}.scale-exercise-setup{padding:20px}.scale-exercise-setup h2{letter-spacing:-.03em;margin:5px 0 7px;font-size:1.35rem}.scale-exercise-setup>div:first-child>p:last-child{max-width:520px;color:var(--muted);margin:0;font-size:.7rem;line-height:1.5}.scale-exercise-global-controls{grid-template-columns:minmax(100px,.45fr) minmax(190px,1fr);gap:10px;display:grid}.scale-exercise-global-controls label,.scale-exercise-local-control{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;gap:5px;font-size:.58rem;font-weight:850;display:grid}.scale-exercise-global-controls select,.scale-exercise-local-control select{border:1px solid var(--border);width:100%;min-height:38px;color:var(--foreground);text-transform:none;background:#0d1521;border-radius:4px;padding:7px 9px;font-size:.72rem}.scale-exercise-global-controls select:focus,.scale-exercise-local-control select:focus{border-color:var(--exercise-accent);box-shadow:0 0 0 2px var(--exercise-accent);outline:none}@supports (color:color-mix(in lab, red, red)){.scale-exercise-global-controls select:focus,.scale-exercise-local-control select:focus{box-shadow:0 0 0 2px color-mix(in srgb, var(--exercise-accent) 14%, transparent)}}.scale-exercise-selection-summary{border-left:1px solid var(--border);gap:5px;min-width:180px;padding-left:22px;display:grid}.scale-exercise-selection-summary span{color:var(--exercise-accent);font-size:.72rem;font-weight:900}.scale-exercise-selection-summary strong{max-width:250px;color:var(--foreground);font-family:Cascadia Code,Consolas,monospace;font-size:.68rem;line-height:1.5}.scale-exercise-list{gap:10px;display:grid}.scale-exercise-row{border:1px solid var(--border);background:var(--surface);border-radius:8px;overflow:clip}.scale-exercise-row[open]{border-color:var(--exercise-accent)}@supports (color:color-mix(in lab, red, red)){.scale-exercise-row[open]{border-color:color-mix(in srgb, var(--exercise-accent) 38%, var(--border))}}.scale-exercise-row[open]{background:linear-gradient(140deg, var(--exercise-accent), transparent 40%), var(--surface)}@supports (color:color-mix(in lab, red, red)){.scale-exercise-row[open]{background:linear-gradient(140deg, color-mix(in srgb, var(--exercise-accent) 4%, transparent), transparent 40%), var(--surface)}}.scale-exercise-row>summary{cursor:pointer;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:74px;padding:12px 16px;list-style:none;display:grid}.scale-exercise-row>summary::-webkit-details-marker{display:none}.scale-exercise-row>summary:hover,.scale-exercise-row>summary:focus-visible{background:var(--exercise-accent)}@supports (color:color-mix(in lab, red, red)){.scale-exercise-row>summary:hover,.scale-exercise-row>summary:focus-visible{background:color-mix(in srgb, var(--exercise-accent) 7%, transparent)}}.scale-exercise-row>summary:hover,.scale-exercise-row>summary:focus-visible{outline:none}.scale-exercise-number{border:1px solid var(--exercise-accent);place-items:center;width:38px;height:38px;display:grid}@supports (color:color-mix(in lab, red, red)){.scale-exercise-number{border:1px solid color-mix(in srgb, var(--exercise-accent) 50%, var(--border))}}.scale-exercise-number{color:var(--exercise-accent);border-radius:5px;font-family:Cascadia Code,Consolas,monospace;font-size:.63rem;font-weight:950}.scale-exercise-summary-copy{gap:4px;min-width:0;display:grid}.scale-exercise-summary-copy strong{font-size:.9rem}.scale-exercise-summary-copy small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.65rem;line-height:1.35;overflow:hidden}.scale-exercise-summary-action{color:var(--exercise-accent);letter-spacing:.07em;text-transform:uppercase;align-items:center;gap:7px;font-size:.58rem;font-weight:900;display:inline-flex}.scale-exercise-summary-action svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:16px;height:16px;transition:transform .15s}.scale-exercise-row[open] .scale-exercise-summary-action svg{transform:rotate(180deg)}.scale-exercise-body{border-top:1px solid var(--border);gap:16px;padding:18px 16px 16px;display:grid}.scale-exercise-heading{justify-content:space-between;align-items:end;gap:22px;display:flex}.scale-exercise-heading h3{letter-spacing:-.025em;margin:5px 0 6px;font-size:1.15rem}.scale-exercise-heading>div>p:last-child{color:var(--muted);margin:0;font-size:.7rem;line-height:1.5}.scale-exercise-local-control{flex:none;min-width:150px}.interactive-scale-exercise{border:1px solid var(--border);background:#0d141f;border-radius:7px;gap:11px;padding:12px;display:grid}.interactive-scale-exercise.is-complete{border-color:#4ade80;box-shadow:inset 0 0 28px #4ade800d}.scale-exercise-toolbar{justify-content:space-between;align-items:center;gap:18px;display:flex}.scale-exercise-progress{width:min(480px,100%);color:var(--muted);gap:6px;font-size:.64rem;display:grid}.scale-exercise-progress progress{width:100%;height:5px;accent-color:var(--exercise-accent);background:#202c3d;border:0;border-radius:999px;overflow:hidden}.scale-exercise-progress progress::-webkit-progress-bar{background:#202c3d;border-radius:999px}.scale-exercise-progress progress::-webkit-progress-value{background:var(--exercise-accent);border-radius:999px}.scale-exercise-actions{flex:none;gap:7px;display:flex}.scale-exercise-actions button{border:1px solid var(--border);min-height:34px;color:var(--muted);cursor:pointer;background:0 0;border-radius:4px;padding:6px 10px;font-size:.62rem;font-weight:850}.scale-exercise-actions button:hover:not(:disabled),.scale-exercise-actions button:focus-visible{border-color:var(--exercise-accent);color:var(--exercise-accent);outline:none}.scale-exercise-actions button.is-primary{border-color:var(--exercise-accent);background:var(--exercise-accent);color:#110b1d}.scale-exercise-actions button.is-primary:hover,.scale-exercise-actions button.is-primary:focus-visible{background:var(--exercise-accent)}@supports (color:color-mix(in lab, red, red)){.scale-exercise-actions button.is-primary:hover,.scale-exercise-actions button.is-primary:focus-visible{background:color-mix(in srgb, var(--exercise-accent) 78%, white)}}.scale-exercise-actions button.is-primary:hover,.scale-exercise-actions button.is-primary:focus-visible{color:#110b1d}.scale-exercise-actions button:disabled{opacity:.38;cursor:not-allowed}.scale-exercise-fretboard-scroll{scrollbar-color:var(--border) transparent;scrollbar-width:thin;width:100%;padding-bottom:4px;overflow:auto hidden}.scale-exercise-fretboard{width:100%;color:var(--muted);font-family:Cascadia Code,Consolas,monospace}.scale-exercise-fret-header,.scale-exercise-fret-row,.scale-exercise-fret-markers{display:grid}.scale-exercise-fret-header>span{place-items:center;height:19px;font-size:.48rem;font-weight:800;display:grid}.scale-exercise-fret-header>span:first-child{text-transform:uppercase;justify-items:start;overflow:hidden}.scale-exercise-fret-header>span.is-open{border-right:3px solid #e2d6b8}.scale-exercise-fret-row>strong{height:34px;color:var(--foreground);place-items:center start;font-size:.52rem;display:grid}.scale-exercise-fret-cell{background:#111823;border-right:1px solid #798397;place-items:center;height:34px;display:grid;position:relative}.scale-exercise-fret-cell:before{z-index:0;height:var(--exercise-string-width,1px);content:"";opacity:.9;background:#d4d9e1;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.scale-exercise-fret-cell.is-open{background:#0d141f;border-right:3px solid #e2d6b8}.scale-exercise-fret-cell button{z-index:1;color:inherit;cursor:crosshair;background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;inset:2px}.scale-exercise-fret-cell button:focus-visible{outline-offset:-2px;border-radius:3px;outline:2px solid #fff}.scale-exercise-fret-cell b{border:1px solid var(--exercise-accent);color:#ede9fe;background:#34274d;border-radius:50%;place-items:center;width:23px;height:23px;font-size:.52rem;font-weight:950;display:grid;box-shadow:0 1px 5px #0009}.scale-exercise-fret-cell.is-root b{outline-offset:1px;outline:1px solid #fff}.scale-exercise-fret-cell.is-hinted b{color:#facc15;opacity:.9;background:0 0;border-style:dashed}.scale-exercise-fret-cell.is-correct b{color:#07150c;background:#4ade80;border-color:#4ade80}.scale-exercise-fret-cell.is-incorrect b{color:#21070c;background:#fb7185;border-color:#fb7185}.scale-exercise-fret-cell.is-missed b{color:#facc15;background:0 0;border:1px dashed #facc15}.scale-exercise-fret-markers>span{place-items:center;height:13px;display:grid}.scale-exercise-fret-markers i{background:var(--muted);opacity:.7;border-radius:50%;width:4px;height:4px;display:block;position:relative}.scale-exercise-fret-markers i.is-double{background:0 0}.scale-exercise-fret-markers i.is-double:before,.scale-exercise-fret-markers i.is-double:after{background:var(--muted);content:"";border-radius:50%;width:4px;height:4px;position:absolute;top:0}.scale-exercise-fret-markers i.is-double:before{left:-4px}.scale-exercise-fret-markers i.is-double:after{right:-4px}.scale-exercise-legend{color:var(--muted);flex-wrap:wrap;justify-content:flex-end;gap:11px;font-size:.56rem;display:flex}.scale-exercise-legend span{align-items:center;gap:5px;display:inline-flex}.scale-exercise-legend i{border:1px solid var(--exercise-accent);background:#34274d;border-radius:50%;width:9px;height:9px}.scale-exercise-legend i.is-hint,.scale-exercise-legend i.is-missed{background:0 0;border-style:dashed;border-color:#facc15}.scale-exercise-legend i.is-correct{background:#4ade80;border-color:#4ade80}.scale-exercise-legend i.is-incorrect{background:#fb7185;border-color:#fb7185}.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,.lab-directory.is-piano{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.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:186px;color:var(--foreground);border-radius:9px;flex-direction:column;padding:14px 17px;text-decoration:none;transition:border-color .15s,background .15s,box-shadow .15s,transform .15s;display:flex;position:relative;overflow:hidden;transform:scale(.96)}.lab-learning-path li:first-child,.lab-directory-card:first-child{transform-origin:0 0}.lab-learning-path li:nth-child(2),.lab-directory-card:nth-child(2){transform-origin:33.333% 0}.lab-learning-path li:nth-child(3),.lab-directory-card:nth-child(3){transform-origin:66.667% 0}.lab-learning-path li:nth-child(4),.lab-directory-card:nth-child(4){transform-origin:100% 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-jam{--lab-accent:#f472b6;--lab-accent-soft:#f472b61b}.lab-directory-card.is-piano-scales{--lab-accent:#f4d35e;--lab-accent-soft:#f4d35e1b}.lab-directory-card.is-ukulele-scales{--lab-accent:#a78bfa;--lab-accent-soft:#a78bfa1b}.lab-directory-card.is-piano-theory{--lab-accent:#fb7185;--lab-accent-soft:#fb71851b}.lab-directory-card.is-ukulele-theory{--lab-accent:#f59e42;--lab-accent-soft:#f59e421b}.lab-directory-card.is-piano-progressions{--lab-accent:#2dd4bf;--lab-accent-soft:#2dd4bf1b}.lab-directory-card.is-ukulele-progression{--lab-accent:#66b7ff;--lab-accent-soft:#66b7ff1b}.lab-directory-card.is-piano-jam{--lab-accent:#38bdf8;--lab-accent-soft:#38bdf81b}.lab-directory-card.is-ukulele-jam{--lab-accent:#f472b6;--lab-accent-soft:#f472b61b}.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)scale(.96)}.lab-directory-card.is-locked{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.lab-directory-card.is-locked{border-color:color-mix(in srgb, var(--border) 80%, #000)}}.lab-directory-card.is-locked{background:linear-gradient(#04070bb8, #04070bb8), linear-gradient(155deg, var(--lab-accent-soft), transparent 48%), var(--surface);filter:saturate(.4)brightness(.76)}.lab-directory-card.is-locked:hover,.lab-directory-card.is-locked:focus-visible{border-color:var(--lab-accent)}@supports (color:color-mix(in lab, red, red)){.lab-directory-card.is-locked:hover,.lab-directory-card.is-locked:focus-visible{border-color:color-mix(in srgb, var(--lab-accent) 55%, var(--border))}}.lab-directory-card.is-locked:hover,.lab-directory-card.is-locked:focus-visible{background:linear-gradient(#04070b9e, #04070b9e), linear-gradient(155deg, var(--lab-accent-soft), transparent 56%), var(--surface-raised);filter:saturate(.58)brightness(.88)}.lab-directory-card.is-locked .lab-directory-status{border-color:var(--lab-accent);place-items:center;width:31px;height:31px;display:grid}@supports (color:color-mix(in lab, red, red)){.lab-directory-card.is-locked .lab-directory-status{border-color:color-mix(in srgb, var(--lab-accent) 55%, transparent)}}.lab-directory-card.is-locked .lab-directory-status{color:var(--lab-accent);padding:0}.lab-directory-lock-icon{width:17px;height:17px}.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:5px;min-width:0;margin-top:10px;display:grid}.lab-directory-copy strong{color:var(--foreground);letter-spacing:-.025em;font-size:clamp(1rem,1.55vw,1.28rem)}.lab-directory-copy>span{color:var(--muted);font-size:.72rem;line-height:1.5}.lab-directory-visual{height:48px;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,.lab-directory-visual.is-ukulele-progression{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.lab-directory-visual.is-ukulele-progression i{border:1px solid var(--lab-accent);background:var(--lab-accent-soft);border-radius:4px;height:30px}.lab-directory-visual.is-ukulele-progression i:nth-child(2n){transform:translateY(8px)}.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-jam{justify-content:space-around;align-items:end;gap:5px}.lab-directory-visual.is-jam i{background:var(--lab-accent);width:4px;box-shadow:0 0 9px var(--lab-accent-soft);border-radius:999px}.lab-directory-visual.is-jam i:first-child,.lab-directory-visual.is-jam i:nth-child(5){height:14px}.lab-directory-visual.is-jam i:nth-child(2),.lab-directory-visual.is-jam i:nth-child(4){height:29px}.lab-directory-visual.is-jam i:nth-child(3){height:42px}.lab-directory-visual.is-piano-scales,.lab-directory-visual.is-piano-theory,.lab-directory-visual.is-piano-progressions,.lab-directory-visual.is-piano-jam{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,.lab-directory-visual.is-piano-jam i{border:1px solid var(--lab-accent);background:var(--lab-accent);border-radius:0 0 3px 3px;height:45px}@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,.lab-directory-visual.is-piano-jam 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),.lab-directory-visual.is-piano-jam i:nth-child(2),.lab-directory-visual.is-piano-jam i:nth-child(4){z-index:1;background:#090d14;height:29px;margin:0 -9px 16px}.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)}.lab-directory-visual.is-ukulele-scales{grid-template-rows:repeat(4,1fr);gap:8px;padding:6px 0;display:grid}.lab-directory-visual.is-ukulele-scales i{background:var(--lab-accent);width:100%;height:1px;display:block;position:relative}.lab-directory-visual.is-ukulele-scales i:after{border:1px solid var(--lab-accent);background:var(--surface);content:"";border-radius:50%;width:10px;height:10px;position:absolute;top:-5px}.lab-directory-visual.is-ukulele-scales i:first-child:after{left:18%}.lab-directory-visual.is-ukulele-scales i:nth-child(2):after{left:36%}.lab-directory-visual.is-ukulele-scales i:nth-child(3):after{left:54%}.lab-directory-visual.is-ukulele-scales i:nth-child(4):after{left:72%}.lab-directory-visual.is-ukulele-scales i:nth-child(5){display:none}.lab-directory-visual.is-ukulele-theory{grid-template-rows:repeat(4,1fr);gap:8px;padding:6px 0;display:grid}.lab-directory-visual.is-ukulele-theory i{background:var(--lab-accent);width:100%;height:1px;display:block;position:relative}.lab-directory-visual.is-ukulele-theory i:after{border:1px solid var(--lab-accent);background:var(--surface);content:"";border-radius:50%;width:10px;height:10px;position:absolute;top:-5px}.lab-directory-visual.is-ukulele-theory i:first-child:after{left:24%}.lab-directory-visual.is-ukulele-theory i:nth-child(2):after{left:45%}.lab-directory-visual.is-ukulele-theory i:nth-child(3):after{left:62%}.lab-directory-visual.is-ukulele-theory i:nth-child(4):after{left:79%}.lab-directory-visual.is-ukulele-theory i:nth-child(5){display:none}.lab-directory-visual.is-ukulele-jam{justify-content:space-around;align-items:end;gap:5px}.lab-directory-visual.is-ukulele-jam i{background:var(--lab-accent);width:4px;box-shadow:0 0 9px var(--lab-accent-soft);border-radius:999px}.lab-directory-visual.is-ukulele-jam i:first-child,.lab-directory-visual.is-ukulele-jam i:nth-child(5){height:14px}.lab-directory-visual.is-ukulele-jam i:nth-child(2),.lab-directory-visual.is-ukulele-jam i:nth-child(4){height:29px}.lab-directory-visual.is-ukulele-jam i:nth-child(3){height:42px}.lab-directory-visual.has-instrument-graphic{background:0 0;width:100%;height:68px;margin-top:auto;padding:0;display:block}.lab-directory-card .lab-directory-visual.has-instrument-graphic{height:48px}.lab-card-graphic{width:100%;height:100%;color:var(--lab-accent);display:block;overflow:visible}.lab-graphic-grid{fill:none;stroke:currentColor;stroke-width:.8px;opacity:.42;vector-effect:non-scaling-stroke}.lab-graphic-grid.is-nut{stroke-width:2.2px;opacity:.72}.lab-graphic-string-label,.lab-graphic-caption,.lab-graphic-marker,.lab-graphic-mini-title,.lab-graphic-chord-title,.lab-graphic-note text,.lab-graphic-key text,.lab-graphic-beats text{font-family:Cascadia Code,Consolas,monospace}.lab-graphic-string-label{fill:currentColor;opacity:.75;font-size:6px;font-weight:900}.lab-graphic-caption{fill:currentColor;letter-spacing:.04em;opacity:.72;text-transform:uppercase;font-size:6.5px;font-weight:800}.lab-graphic-note circle{fill:var(--surface);stroke:currentColor;stroke-width:1.4px}.lab-graphic-note text{fill:var(--foreground);text-anchor:middle;font-size:6px;font-weight:900}.lab-card-graphic.is-scale-map .lab-graphic-note text{font-size:5px}.lab-graphic-note.is-root circle{fill:currentColor;filter:drop-shadow(0 0 4px var(--lab-accent))}.lab-graphic-note.is-root text{fill:#07111c}.lab-graphic-chord-title{fill:currentColor;letter-spacing:-.04em;font-size:12px;font-weight:900}.lab-graphic-mini-title{fill:currentColor;font-size:7px;font-weight:900}.lab-graphic-marker{fill:currentColor;font-size:9px;font-weight:900}.lab-graphic-open{fill:var(--surface);stroke:currentColor;stroke-width:1.2px}.lab-graphic-dot{fill:currentColor;stroke:var(--lab-accent)}@supports (color:color-mix(in lab, red, red)){.lab-graphic-dot{stroke:color-mix(in srgb, var(--lab-accent) 45%, white)}}.lab-graphic-dot{stroke-width:.7px;filter:drop-shadow(0 0 3px var(--lab-accent-soft))}.lab-graphic-connector{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1px;opacity:.55}.lab-graphic-key rect,.lab-graphic-mini-key{fill:var(--surface);stroke:currentColor;stroke-width:.75px}.lab-graphic-key.is-active rect,.lab-graphic-mini-key.is-active{fill:var(--lab-accent)}@supports (color:color-mix(in lab, red, red)){.lab-graphic-key.is-active rect,.lab-graphic-mini-key.is-active{fill:color-mix(in srgb, var(--lab-accent) 35%, var(--surface))}}.lab-graphic-key.is-root rect{fill:currentColor}.lab-graphic-key text{fill:var(--foreground);font-size:6px;font-weight:900}.lab-graphic-key.is-root text{fill:#07111c}.lab-graphic-black-key{fill:#080d15;stroke:currentColor;stroke-width:.65px}.lab-graphic-beats circle{fill:var(--surface);stroke:currentColor;stroke-width:1px}.lab-graphic-beats text{fill:currentColor;font-size:5px;font-weight:900}.lab-graphic-beats .is-active circle{fill:currentColor;filter:drop-shadow(0 0 4px var(--lab-accent))}.lab-graphic-beats .is-active text{fill:#07111c}.lab-graphic-playhead{fill:currentColor;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.4px;transform-box:fill-box;transform-origin:50%}.lab-graphic-playhead:not(.is-pick){fill:none}.lab-graphic-strum-arrows{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}.lab-directory-card:hover .is-jam-graphic .lab-graphic-playhead,.lab-directory-card:focus-visible .is-jam-graphic .lab-graphic-playhead{animation:1.15s ease-in-out infinite alternate lab-card-playhead}.lab-directory-card:hover .is-jam-graphic .lab-graphic-beats .is-active,.lab-directory-card:focus-visible .is-jam-graphic .lab-graphic-beats .is-active{transform-box:fill-box;transform-origin:50%;animation:.72s ease-in-out infinite alternate lab-card-beat}@keyframes lab-card-playhead{0%{transform:translate(-12px)}to{transform:translate(12px)}}@keyframes lab-card-beat{0%{opacity:.72;transform:scale(.86)}to{opacity:1;transform:scale(1.12)}}@media (prefers-reduced-motion:reduce){.lab-directory-card:hover .is-jam-graphic .lab-graphic-playhead,.lab-directory-card:focus-visible .is-jam-graphic .lab-graphic-playhead,.lab-directory-card:hover .is-jam-graphic .lab-graphic-beats .is-active,.lab-directory-card:focus-visible .is-jam-graphic .lab-graphic-beats .is-active{animation:none}}.piano-placeholder{--accent:#f4d58d}.piano-scales-placeholder{--accent:#f4d35e}.ukulele-scales-placeholder{--accent:#a78bfa}.piano-theory-placeholder{--accent:#fb7185}.jam-placeholder{--accent:#f472b6}.piano-jam-placeholder{--accent:#38bdf8}.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:8px;padding-top:8px;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}.no-theory-playback-dock .theory-lab-shell{padding-bottom:70px}.theory-exercises-workbench .theory-lab-shell{padding-top:calc(var(--master-lab-nav-height) + 18px)}.theory-exercises-lab-heading{grid-template-columns:minmax(0,1fr) auto;align-items:end}.theory-exercises-lab-heading>div{gap:8px;display:grid}.theory-exercises-lab-heading>div>p{color:var(--muted);margin:0;font-size:.92rem;line-height:1.6}.theory-exercise-controls{grid-template-columns:repeat(2,minmax(140px,1fr));gap:10px;display:grid}.theory-exercise-controls label{color:var(--muted);text-transform:uppercase;gap:6px;font-size:.68rem;font-weight:850;display:grid}.theory-exercise-controls select{width:100%;height:46px;color:var(--accent);text-transform:none;font-family:Cascadia Code,Consolas,monospace;font-size:.82rem;font-weight:800}.theory-exercise-input-panel{align-content:start}.theory-exercise-input-panel .theory-exercise-controls{align-self:end}.theory-exercises-workbench .theory-voicing-heading>span{color:var(--accent);font-size:.7rem;font-weight:850}.theory-exercises-workbench .caged-tab-card.is-playing{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent), 0 0 14px #f59e4233}.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:none;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}.chord-scale-relationships{border:1px solid var(--border);background:var(--surface);border-radius:7px;min-width:0;padding:18px}.chord-scale-relationships-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:14px;display:flex}.chord-scale-relationships.is-collapsed .chord-scale-relationships-heading{margin-bottom:0}.chord-scale-relationships-heading h2{margin:3px 0 0}.chord-scale-relationships-actions{justify-content:end;align-items:center;gap:12px;display:flex}.chord-scale-relationships-actions>span{max-width:340px;color:var(--muted);text-align:right;font-size:.7rem;line-height:1.45}.chord-scale-relationships-toggle{border:1px solid var(--border);background:var(--theory-inset);min-width:96px;height:34px;color:var(--accent);cursor:pointer;border-radius:5px;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:.65rem;font-weight:850;display:inline-flex}.chord-scale-relationships-toggle:hover,.chord-scale-relationships-toggle:focus-visible{border-color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.chord-scale-relationships-toggle:hover,.chord-scale-relationships-toggle:focus-visible{background:color-mix(in srgb, var(--accent) 10%, var(--theory-inset))}}.chord-scale-relationships-toggle:hover,.chord-scale-relationships-toggle:focus-visible{outline:none}.chord-scale-relationships-toggle svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px;transition:transform .15s}.chord-scale-relationships-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.chord-scale-relationship-grid{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.chord-scale-relationship-card{border:1px solid var(--border);background:var(--theory-inset);border-radius:6px;min-width:0;padding:12px;transition:border-color .15s,box-shadow .15s;position:relative;overflow:hidden}.chord-scale-relationship-card-heading{display:block}.chord-scale-relationship-card-heading>div{gap:2px;display:grid}.chord-scale-relationship-card-heading span{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font-size:.57rem;font-weight:900}.chord-scale-relationship-card-heading h3{margin:0;font-size:.9rem}.chord-scale-origin{min-height:2em;color:var(--muted);margin:7px 0;font-size:.64rem;line-height:1.4}.chord-scale-formula,.chord-scale-notes{flex-wrap:wrap;gap:4px;display:flex}.chord-scale-formula{margin-bottom:5px}.chord-scale-formula code,.chord-scale-notes span{border:1px solid var(--border);background:var(--surface);min-width:25px;height:23px;color:var(--muted);border-radius:3px;place-items:center;padding:0 5px;font-family:Cascadia Code,Consolas,monospace;font-size:.56rem;display:grid}.chord-scale-notes span.is-chord-tone{border-color:var(--accent);color:var(--foreground);box-shadow:inset 0 -2px var(--accent)}.chord-scale-relationship-card .full-fretboard-diagram{margin-top:11px;padding-top:10px}.ukulele-chord-scale-relationships .full-fretboard-grid{min-width:620px}.piano-chord-scale-relationships .chord-scale-relationship-card .piano-keyboard{border-top:1px solid var(--border);margin-top:12px;padding-top:10px}.piano-chord-scale-relationships .piano-key.is-note .piano-white-key{fill:#cfbeef}.piano-chord-scale-relationships .piano-key.is-note .piano-black-key{fill:#4c3a70}.piano-chord-scale-relationships .piano-key.is-playing-chord .piano-white-key{fill:#fb7185;stroke:#ffd4df;stroke-width:2.5px}.piano-chord-scale-relationships .piano-key.is-playing-chord .piano-black-key{fill:#b52f57;stroke:#ffd4df;stroke-width:2.5px}.piano-chord-scale-relationships .piano-key.is-root .piano-white-key,.piano-chord-scale-relationships .piano-key.is-root .piano-black-key{stroke:#f4d35e;stroke-width:4px}.piano-chord-scale-relationships .piano-keyboard-legend .is-scale-tone{background:#a78bfa}.piano-chord-scale-relationships .piano-keyboard-legend .is-chord-tone{background:#fb7185}.chord-scale-empty{border:1px dashed var(--border);color:var(--muted);border-radius:5px;margin:0;padding:16px;font-size:.72rem}.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.is-dock-playing{border-color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.theory-scale-card.is-dock-playing{background:color-mix(in srgb, var(--accent) 11%, var(--surface))}}.theory-scale-card.is-dock-playing{box-shadow:inset 4px 0 var(--accent), 0 0 18px var(--accent)}@supports (color:color-mix(in lab, red, red)){.theory-scale-card.is-dock-playing{box-shadow:inset 4px 0 var(--accent), 0 0 18px color-mix(in srgb, var(--accent) 35%, transparent)}}.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}.guitar-theory-theme .theory-caged-grid .caged-tab-card,.guitar-theory-theme .theory-caged-grid .caged-select-button{min-height:230px}.guitar-theory-theme .theory-scale-card{min-height:270px}.guitar-theory-theme .theory-playback-select{min-height:198px}.guitar-theory-theme .theory-caged-grid .caged-voicing-fret-cell,.guitar-theory-theme .theory-scale-card .caged-voicing-fret-cell,.guitar-theory-theme .theory-playback-voicings .caged-voicing-fret-cell{height:25px}.guitar-theory-theme .theory-caged-grid .caged-voicing-fret-cell b,.guitar-theory-theme .theory-scale-card .caged-voicing-fret-cell b,.guitar-theory-theme .theory-playback-voicings .caged-voicing-fret-cell b{width:20px;height:20px;font-size:.55rem}.guitar-progression-theme .guitar-tab-fretboard .caged-voicing-fret-cell,.guitar-jam-theme .guitar-tab-fretboard .caged-voicing-fret-cell{height:25px}.guitar-progression-theme .guitar-tab-fretboard .caged-voicing-fret-cell b,.guitar-jam-theme .guitar-tab-fretboard .caged-voicing-fret-cell b{width:20px;height:20px;font-size:.55rem}.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-theory-theme .piano-key.is-note.is-right .piano-white-key{fill:#fb7185}.piano-theory-theme .piano-key.is-note.is-right .piano-black-key{fill:#b52f57}.piano-theory-theme .piano-keyboard-legend .is-right{background:#fb7185}.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}.caged-grid.piano-voicing-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.piano-voicing-grid .piano-voicing-card.is-root,.piano-voicing-grid .piano-voicing-card.is-split{grid-column:1/-1;min-height:270px}.theory-caged-grid .piano-voicing-card.is-root .caged-select-button,.theory-caged-grid .piano-voicing-card.is-split .caged-select-button{min-height:268px;padding:15px 15px 44px}.piano-voicing-card.is-root .piano-keyboard,.piano-voicing-card.is-split .piano-keyboard{margin-top:16px}.piano-voicing-card.is-root .piano-keyboard svg,.piano-voicing-card.is-split .piano-keyboard svg{max-height:150px}.piano-voicing-card .piano-key.is-playing-chord .piano-white-key,.piano-voicing-card .piano-key.is-playing-chord .piano-black-key,.piano-playback-voicings .piano-key.is-playing-chord .piano-white-key,.piano-playback-voicings .piano-key.is-playing-chord .piano-black-key{stroke:#fff;stroke-width:4px;animation:.72s ease-in-out infinite alternate piano-chord-key-pulse}.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}.theory-playback-voicings.piano-playback-voicings{grid-template-columns:minmax(0,1fr)}.piano-playback-voicing-carousel{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;min-width:0;display:grid}.piano-playback-voicing-carousel>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}.piano-playback-voicing-carousel>article.is-selected{border-color:var(--accent);background:var(--theory-selected);box-shadow:inset 3px 0 var(--accent)}.piano-playback-voicing-carousel>article.is-playing{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent), 0 0 12px #f59e4233}.piano-playback-voicings>article.is-root,.piano-playback-voicings>article.is-split{grid-column:1/-1}.piano-playback-voicings>article.is-root .theory-playback-select,.piano-playback-voicings>article.is-split .theory-playback-select{min-height:140px}.piano-playback-voicings>article.is-root .piano-keyboard.is-compact svg,.piano-playback-voicings>article.is-split .piano-keyboard.is-compact svg{height:92px;max-height:92px}.piano-playback-voicings .piano-keyboard{margin-top:7px}.piano-voicing-controls button{min-width:42px}.jam-theme{--background:#0a0f18;--surface:#121a27;--surface-raised:#182335;--border:#2c3c54;--foreground:#f2f5f3;--muted:#9eacbd;--accent:#f472b6;--scales-selected:#3a1e31;background:var(--background);min-height:100dvh;color:var(--foreground)}.jam-lab-shell{width:min(1440px,100% - 40px);padding:calc(var(--master-lab-nav-height) + 92px) 0 calc(var(--jam-playback-dock-height,350px) + 44px);gap:28px;margin:0 auto;display:grid}.jam-lab-heading{gap:8px;max-width:none;display:grid}.jam-lab-heading>p:last-child{color:var(--muted);margin:0;font-size:.92rem;line-height:1.6}.jam-builder-panel{border:1px solid var(--border);background:var(--surface);border-radius:8px;min-width:0;padding:18px}.jam-builder-heading{justify-content:space-between;align-items:end;gap:24px;display:flex}.jam-builder-heading h1{color:var(--foreground);letter-spacing:-.04em;margin:5px 0 6px;font-size:clamp(1.5rem,3vw,2.2rem)}.jam-builder-heading>div:first-child>p:last-child{color:var(--muted);margin:0;font-size:.78rem;line-height:1.5}.jam-add-section-controls{border-top:1px solid var(--border);justify-content:end;align-items:end;gap:8px;margin-top:18px;padding-top:14px;display:flex}.jam-add-section-controls label{color:var(--muted);text-transform:uppercase;gap:5px;font-size:.62rem;font-weight:850;display:grid}.jam-add-section-controls select{min-width:150px;height:40px}.jam-add-section-controls button{border:1px solid var(--accent);background:var(--accent);color:#210b18;cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:7px;height:40px;padding:0 13px;font-size:.7rem;font-weight:900;display:inline-flex}.jam-add-section-controls button:disabled{border-color:var(--border);color:var(--muted);cursor:not-allowed;opacity:.7;background:0 0}.jam-add-section-controls button svg{width:15px;height:15px}.jam-empty-state{border:1px dashed var(--border);min-height:220px;color:var(--muted);text-align:center;border-radius:7px;place-content:center;justify-items:center;margin-top:18px;padding:24px;display:grid}.jam-empty-state>span{border:1px solid var(--accent);width:38px;height:38px;color:var(--accent);border-radius:50%;place-items:center;margin-bottom:11px;display:grid}.jam-empty-state svg{width:19px;height:19px}.jam-empty-state strong{color:var(--foreground);font-size:.95rem}.jam-empty-state p{max-width:440px;margin:7px 0 0;font-size:.72rem;line-height:1.5}.jam-section-list{gap:12px;margin-top:18px;display:grid}.jam-section-card{min-width:0;scroll-margin-top:calc(var(--master-lab-nav-height) + 18px);border:1px solid var(--border);background:var(--surface-raised);border-radius:7px;padding:14px}.jam-section-card>header{justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;display:flex}.jam-section-card>header>div{align-items:center;gap:10px;display:flex}.jam-section-card>header>div>span{border:1px solid var(--accent);width:30px;height:30px;color:var(--accent);border-radius:4px;place-items:center;font-family:Cascadia Code,Consolas,monospace;font-size:.62rem;font-weight:900;display:grid}.jam-section-card h2{color:var(--foreground);margin:2px 0 0;font-size:1rem}.jam-section-card .section-label{font-size:.55rem}.jam-section-actions{justify-content:end;align-items:center;gap:10px;display:flex}.jam-section-actions>label{color:var(--muted);text-transform:uppercase;grid-template-columns:auto 34px auto;align-items:center;gap:5px;font-size:.55rem;font-weight:850;display:grid}.jam-section-actions input{border:1px solid var(--border);width:34px;height:29px;color:var(--foreground);text-align:center;background:#0d1521;border-radius:3px;padding:3px 5px;font-size:.68rem;font-weight:850}.jam-section-actions b{color:var(--accent);font-size:.62rem}.jam-remove-section{width:30px;height:30px;color:var(--danger);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;place-items:center;padding:5px;display:grid}.jam-remove-section:hover,.jam-remove-section:focus-visible{border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.jam-remove-section:hover,.jam-remove-section:focus-visible{border-color:color-mix(in srgb, var(--danger) 55%, transparent)}}.jam-remove-section:hover,.jam-remove-section:focus-visible{background:var(--danger)}@supports (color:color-mix(in lab, red, red)){.jam-remove-section:hover,.jam-remove-section:focus-visible{background:color-mix(in srgb, var(--danger) 10%, transparent)}}.jam-remove-section:hover,.jam-remove-section:focus-visible{outline:none}.jam-remove-section svg{width:17px;height:17px}.jam-chord-grid{grid-template-columns:repeat(8,minmax(0,1fr));align-items:stretch;gap:7px;display:grid}.guitar-jam-theme .jam-chord-grid,.ukulele-jam-theme .jam-chord-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.jam-melody-editor{border:1px solid var(--accent);grid-column:1/-1;min-width:0;margin:3px 0 8px}@supports (color:color-mix(in lab, red, red)){.jam-melody-editor{border:1px solid color-mix(in srgb, var(--accent) 30%, var(--border))}}.jam-melody-editor{background:var(--surface);border-radius:6px}@supports (color:color-mix(in lab, red, red)){.jam-melody-editor{background:color-mix(in srgb, var(--surface) 88%, var(--accent) 12%)}}.jam-melody-editor{overflow:hidden}.jam-melody-editor>summary{min-height:42px;color:var(--foreground);letter-spacing:.04em;cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:9px 12px;font-size:.68rem;font-weight:850;list-style:none;display:flex}.jam-melody-editor>summary::-webkit-details-marker{display:none}.jam-melody-editor>summary:hover,.jam-melody-editor>summary:focus-visible{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.jam-melody-editor>summary:hover,.jam-melody-editor>summary:focus-visible{background:color-mix(in srgb, var(--accent) 10%, transparent)}}.jam-melody-editor>summary:hover,.jam-melody-editor>summary:focus-visible{outline:none}.jam-melody-editor>summary small{color:var(--muted);font-size:.57rem;font-weight:750}.jam-melody-toggle{align-items:center;gap:7px;display:inline-flex}.jam-melody-toggle svg{border:1px solid var(--accent);width:18px;height:18px}@supports (color:color-mix(in lab, red, red)){.jam-melody-toggle svg{border:1px solid color-mix(in srgb, var(--accent) 55%, var(--border))}}.jam-melody-toggle svg{color:var(--accent);border-radius:50%;padding:3px;transition:transform .18s}.jam-melody-editor[open] .jam-melody-toggle svg{transform:rotate(180deg)}.jam-melody-editor-body{border-top:1px solid var(--accent);gap:10px;padding:10px 12px 12px;display:grid}@supports (color:color-mix(in lab, red, red)){.jam-melody-editor-body{border-top:1px solid color-mix(in srgb, var(--accent) 20%, var(--border))}}.jam-melody-editor-intro{justify-content:space-between;align-items:center;gap:14px;display:flex}.jam-melody-editor-intro p,.jam-melody-help{color:var(--muted);margin:0;font-size:.6rem;line-height:1.4}.jam-melody-editor-intro button,.jam-melody-phrase-controls>button{border:1px solid var(--border);min-height:28px;color:var(--foreground);cursor:pointer;background:0 0;border-radius:4px;flex:none;padding:4px 8px;font-size:.52rem;font-weight:850}.jam-melody-editor-intro button:disabled,.jam-melody-phrase-controls>button:disabled{opacity:.4;cursor:default}.jam-melody-editor-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.jam-melody-editor-intro .jam-melody-section-toggle{border-color:var(--accent);align-items:center;gap:6px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.jam-melody-editor-intro .jam-melody-section-toggle{border-color:color-mix(in srgb, var(--accent) 50%, var(--border))}}.jam-melody-editor-intro .jam-melody-section-toggle{color:var(--accent)}.jam-melody-section-toggle>span{border:1px solid var(--muted);background:var(--surface);border-radius:999px;width:25px;height:14px;transition:background .15s,border-color .15s;position:relative}.jam-melody-section-toggle i{background:var(--muted);border-radius:50%;width:8px;height:8px;transition:transform .15s,background .15s;position:absolute;top:2px;left:2px}.jam-melody-section-toggle[aria-pressed=true]>span{border-color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.jam-melody-section-toggle[aria-pressed=true]>span{background:color-mix(in srgb, var(--accent) 28%, var(--surface))}}.jam-melody-section-toggle[aria-pressed=true] i{background:var(--accent);transform:translate(11px)}.jam-melody-editor-intro .jam-melody-generate-all{border-color:var(--accent);color:var(--accent);align-items:center;gap:5px;display:inline-flex}.jam-melody-generate-all svg{width:14px;height:14px}.jam-melody-phrase-grid{grid-template-columns:repeat(var(--jam-melody-columns), minmax(0, 1fr));gap:7px;min-width:0;display:grid}.jam-melody-phrase-grid.is-muted{opacity:.58;filter:saturate(.45)}.piano-jam-melody-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0;display:grid}.piano-jam-melody-grid.is-muted{opacity:.58;filter:saturate(.45)}.piano-jam-melody-card{border:1px solid var(--border);background:#0d1521;border-radius:5px;min-width:0;overflow:hidden}.piano-jam-melody-card>header{border-bottom:1px solid var(--border);gap:7px;min-height:38px;padding:7px 9px;display:grid}.piano-jam-melody-title{justify-content:space-between;align-items:baseline;gap:8px;min-width:0;display:flex}.piano-jam-melody-card>header strong{color:var(--accent);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.piano-jam-melody-card>header small{color:var(--muted);flex:none;font-size:.5rem;font-weight:750}.piano-jam-melody-card>header button{border:1px solid var(--border);min-height:27px;color:var(--foreground);cursor:pointer;background:0 0;border-radius:4px;padding:4px 8px;font-size:.52rem;font-weight:850}.piano-jam-melody-card>header button:disabled{opacity:.4;cursor:default}.piano-jam-melody-controls{grid-template-columns:minmax(72px,1fr) minmax(78px,1fr) 28px auto;align-items:end;gap:4px;min-width:0;display:grid}.piano-jam-melody-controls label{min-width:0;color:var(--muted);text-transform:uppercase;gap:3px;font-size:.45rem;font-weight:850;display:grid}.piano-jam-melody-controls select{border:1px solid var(--border);background:var(--surface);width:100%;min-width:0;height:28px;color:var(--foreground);text-transform:none;border-radius:4px;padding:3px 5px;font-size:.55rem}.piano-jam-melody-controls .jam-melody-generate{border-color:var(--accent);width:28px;color:var(--accent);place-items:center;padding:5px;display:grid}.piano-jam-interactive-staff{background:#111823;min-width:300px;height:148px;position:relative;overflow:hidden}.piano-jam-staff-render{z-index:3;pointer-events:none;position:relative}.piano-jam-staff-render,.piano-jam-staff-render svg{width:100%;height:148px;display:block}.piano-jam-staff-render .piano-jam-rendered-melody-note{pointer-events:auto;cursor:pointer;transition:filter .12s}.piano-jam-staff-render .piano-jam-rendered-melody-note:hover{filter:brightness(1.35) drop-shadow(0 0 3px var(--accent))}.piano-jam-staff-render .piano-jam-rendered-melody-note:focus{filter:brightness(1.35) drop-shadow(0 0 4px var(--accent));outline:none}.piano-jam-staff-hit-grid{z-index:2;grid-template-rows:repeat(15,minmax(0,1fr));grid-template-columns:repeat(16,minmax(0,1fr));display:grid;position:absolute;inset:39px 18px 34px 62px}.piano-jam-staff-hit-grid button{cursor:crosshair;background:0 0;border:0;min-width:0;min-height:0;padding:0;position:relative}.piano-jam-staff-hit-grid button:hover:after,.piano-jam-staff-hit-grid button:focus-visible:after{border:1px solid var(--accent);background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:50%;left:50%}@supports (color:color-mix(in lab, red, red)){.piano-jam-staff-hit-grid button:hover:after,.piano-jam-staff-hit-grid button:focus-visible:after{background:color-mix(in srgb, var(--accent) 36%, transparent)}}.piano-jam-staff-hit-grid button:hover:after,.piano-jam-staff-hit-grid button:focus-visible:after{content:"";transform:translate(-50%,-50%)}.piano-jam-staff-hit-grid button:focus-visible{outline:1px solid var(--accent)}@supports (color:color-mix(in lab, red, red)){.piano-jam-staff-hit-grid button:focus-visible{outline:1px solid color-mix(in srgb, var(--accent) 55%, transparent)}}.piano-jam-staff-hit-grid button:focus-visible{outline-offset:-1px}.piano-jam-staff-hit-grid button.has-note{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.piano-jam-staff-hit-grid button.has-note{background:color-mix(in srgb, var(--accent) 7%, transparent)}}.piano-jam-staff-hit-grid button.has-note{pointer-events:none}.piano-jam-staff-hit-grid button.is-playing{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.piano-jam-staff-hit-grid button.is-playing{background:color-mix(in srgb, var(--accent) 24%, transparent)}}.jam-melody-phrase-card{--shape-color:var(--accent);border:1px solid var(--border);background:#0d1521;border-radius:5px;min-width:0;overflow:hidden}.jam-melody-phrase-card.is-shape-c{--shape-color:#f59e42}.jam-melody-phrase-card.is-shape-a{--shape-color:#38bdf8}.jam-melody-phrase-card.is-shape-g{--shape-color:#4ade80}.jam-melody-phrase-card.is-shape-e,.jam-melody-phrase-card.is-shape-f{--shape-color:#facc15}.jam-melody-phrase-card.is-shape-d{--shape-color:#f472b6}.jam-melody-phrase-card>header{border-bottom:1px solid var(--border);gap:7px;padding:7px 8px 6px;display:grid}.jam-melody-phrase-title{justify-content:space-between;align-items:baseline;gap:8px;min-width:0;display:flex}.jam-melody-phrase-title strong{color:var(--shape-color);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.jam-melody-phrase-title small{color:var(--muted);flex:none;font-size:.48rem;font-weight:750}.jam-melody-phrase-controls{grid-template-columns:45px minmax(58px,1fr) minmax(64px,1fr) 28px auto;align-items:end;gap:4px;min-width:0;display:grid}.jam-melody-phrase-controls label{min-width:0;color:var(--muted);text-transform:uppercase;gap:3px;font-size:.45rem;font-weight:850;display:grid}.jam-melody-phrase-controls select{border:1px solid var(--border);background:var(--surface);width:100%;min-width:0;height:28px;color:var(--foreground);text-transform:none;border-radius:4px;padding:3px 3px 3px 5px;font-size:.55rem}.jam-melody-phrase-controls .jam-melody-generate{border-color:var(--shape-color);width:28px;color:var(--shape-color);place-items:center;padding:5px;display:grid}.jam-melody-generate svg{width:15px;height:15px}.jam-melody-phrase-controls>button:last-child{padding-left:6px;padding-right:6px}.jam-melody-phrase-scroller{scrollbar-color:var(--border) transparent;scrollbar-width:thin;min-width:0;padding:6px 8px 9px;overflow-x:auto}.jam-melody-phrase-card .melody-sequence-fretboard{--shape-color:inherit}.jam-melody-phrase-card .melody-sequence-cell.is-current-step{background:var(--shape-color)}@supports (color:color-mix(in lab, red, red)){.jam-melody-phrase-card .melody-sequence-cell.is-current-step{background:color-mix(in srgb, var(--shape-color) 16%, #111823)}}.jam-melody-phrase-card .melody-sequence-cell>button{z-index:1;width:100%;color:inherit;cursor:pointer;background:0 0;border:0;place-items:center;display:grid;position:absolute;inset:0}.jam-melody-phrase-card .melody-sequence-cell>button:focus-visible{outline:2px solid var(--shape-color);outline-offset:-2px}.jam-melody-phrase-card .melody-sequence-cell>button:hover:not(:disabled):after{border:1px solid var(--shape-color);background:var(--shape-color);border-radius:50%;width:8px;height:8px}@supports (color:color-mix(in lab, red, red)){.jam-melody-phrase-card .melody-sequence-cell>button:hover:not(:disabled):after{background:color-mix(in srgb, var(--shape-color) 35%, transparent)}}.jam-melody-phrase-card .melody-sequence-cell>button:hover:not(:disabled):after{content:""}.jam-melody-phrase-card .melody-sequence-cell>button:disabled{cursor:not-allowed;opacity:.35}.jam-melody-phrase-card .melody-sequence-cell b{width:17px;height:17px;font-size:.45rem}.jam-chord-field{border:1px solid var(--border);background:#0d1521;border-radius:5px;grid-template-columns:minmax(0,1fr) 27px;min-width:0;transition:border-color .15s,box-shadow .15s;display:grid;position:relative}.jam-chord-field>label{min-width:0;display:grid}.jam-chord-field>label>span{color:var(--muted);text-transform:uppercase;padding:6px 8px 1px;font-size:.52rem;font-weight:850}.jam-chord-field input{width:100%;min-width:0;height:34px;color:var(--foreground);background:0 0;border:0;outline:none;padding:5px 2px 7px 8px;font-size:.74rem;font-weight:800}.guitar-jam-theme .jam-chord-field>label:first-child input,.ukulele-jam-theme .jam-chord-field>label:first-child input{border:1px solid var(--accent);width:calc(100% - 12px);height:31px;margin:3px 6px 7px}@supports (color:color-mix(in lab, red, red)){.guitar-jam-theme .jam-chord-field>label:first-child input,.ukulele-jam-theme .jam-chord-field>label:first-child input{border:1px solid color-mix(in srgb, var(--accent) 38%, var(--border))}}.guitar-jam-theme .jam-chord-field>label:first-child input,.ukulele-jam-theme .jam-chord-field>label:first-child input{background:#162131;border-radius:4px;padding:5px 7px;transition:border-color .15s,background .15s,box-shadow .15s;box-shadow:inset 0 1px 2px #0005}.guitar-jam-theme .jam-chord-field>label:first-child input:hover,.ukulele-jam-theme .jam-chord-field>label:first-child input:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.guitar-jam-theme .jam-chord-field>label:first-child input:hover,.ukulele-jam-theme .jam-chord-field>label:first-child input:hover{border-color:color-mix(in srgb, var(--accent) 65%, var(--border))}}.guitar-jam-theme .jam-chord-field>label:first-child input:hover,.ukulele-jam-theme .jam-chord-field>label:first-child input:hover{background:#1a283b}.guitar-jam-theme .jam-chord-field>label:first-child input:focus,.ukulele-jam-theme .jam-chord-field>label:first-child input:focus{border-color:var(--accent);box-shadow:inset 0 1px 2px #0005, 0 0 0 2px var(--accent);background:#1a283b}@supports (color:color-mix(in lab, red, red)){.guitar-jam-theme .jam-chord-field>label:first-child input:focus,.ukulele-jam-theme .jam-chord-field>label:first-child input:focus{box-shadow:inset 0 1px 2px #0005, 0 0 0 2px color-mix(in srgb, var(--accent) 24%, transparent)}}.guitar-jam-theme .jam-chord-field>label:first-child input::placeholder,.ukulele-jam-theme .jam-chord-field>label:first-child input::placeholder{color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.guitar-jam-theme .jam-chord-field>label:first-child input::placeholder,.ukulele-jam-theme .jam-chord-field>label:first-child input::placeholder{color:color-mix(in srgb, var(--muted) 58%, transparent)}}.guitar-jam-theme .jam-chord-field>label:first-child input::placeholder,.ukulele-jam-theme .jam-chord-field>label:first-child input::placeholder{opacity:1;font-weight:650}.jam-remove-chord{width:25px;height:25px;color:var(--danger);cursor:pointer;background:0 0;border:0;border-radius:3px;align-self:center;place-items:center;padding:3px;display:grid}.jam-remove-chord:hover,.jam-remove-chord:focus-visible{background:var(--danger)}@supports (color:color-mix(in lab, red, red)){.jam-remove-chord:hover,.jam-remove-chord:focus-visible{background:color-mix(in srgb, var(--danger) 10%, transparent)}}.jam-remove-chord:hover,.jam-remove-chord:focus-visible{outline:none}.jam-remove-chord svg{width:17px;height:17px}.jam-chord-field small{color:var(--danger);grid-column:1/-1;padding:0 8px 6px;font-size:.52rem}.jam-chord-diagram{border-top:1px solid var(--border);background:#09111c;grid-column:1/-1;align-content:center;min-width:0;min-height:126px;padding:4px 5px;display:grid;overflow:hidden}.jam-chord-diagram-notes{min-width:0;color:var(--muted);justify-content:center;align-items:baseline;gap:6px;margin:0 2px 3px;font-size:.48rem;display:flex}.jam-chord-diagram-notes span{text-transform:uppercase;flex:none;font-weight:850}.jam-chord-diagram-notes strong{min-width:0;color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;font-family:Cascadia Code,Consolas,monospace;font-size:.53rem;overflow:hidden}.jam-chord-diagram .guitar-tab-fretboard{width:100%;margin:2px 0}.jam-chord-diagram .guitar-tab-fretboard .caged-voicing-fret-cell b{width:16px;height:16px;font-size:.43rem}.jam-chord-diagram.is-empty{color:var(--muted);place-items:center;font-size:.52rem;font-weight:750}.jam-chord-tools{border-top:1px solid var(--border);grid-column:1/-1;grid-template-columns:minmax(0,1fr);gap:7px;padding:6px;display:grid}.jam-chord-tools>button{border:1px solid var(--accent);justify-content:center;align-items:center;gap:3px;min-width:0;height:28px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.jam-chord-tools>button{border:1px solid color-mix(in srgb, var(--accent) 55%, var(--border))}}.jam-chord-tools>button{color:var(--accent);cursor:pointer;background:0 0;border-radius:3px;padding:0 5px;font-size:.5rem;font-weight:850}.jam-chord-tools>button:hover:not(:disabled),.jam-chord-tools>button:focus-visible{background:#f472b616;outline:none}.jam-chord-tools>button:disabled{border-color:var(--border);color:var(--muted);cursor:not-allowed;opacity:.5}.jam-chord-tools>button svg{flex:none;width:12px;height:12px}.jam-chord-tools>label{min-width:0;color:var(--muted);text-transform:uppercase;gap:3px;font-size:.46rem;font-weight:850;display:grid}.jam-chord-tools select{text-transform:none;border-radius:3px;width:100%;min-width:0;height:28px;padding:2px 4px;font-size:.58rem}.jam-chord-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px #f472b620}.jam-chord-field.is-invalid{border-color:var(--danger)}.jam-chord-field.is-playing{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent), 0 0 12px #f472b62b;background:#3a1e31}.jam-add-chord{border:1px dashed var(--accent);place-content:center;justify-items:center;gap:4px;min-height:128px;display:grid}@supports (color:color-mix(in lab, red, red)){.jam-add-chord{border:1px dashed color-mix(in srgb, var(--accent) 55%, var(--border))}}.jam-add-chord{color:var(--accent);cursor:pointer;background:0 0;border-radius:5px;font-size:.58rem;font-weight:850}.jam-add-chord:hover,.jam-add-chord:focus-visible{background:#f472b60d;outline:none}.jam-add-chord svg{width:17px;height:17px}.jam-chord-wireframe-placeholder{text-align:left;align-self:stretch;width:100%;min-height:225px}.jam-section-add-row{justify-content:flex-start;margin-top:9px;display:flex}.jam-section-add-chord{border:1px solid var(--accent);justify-content:center;align-items:center;gap:5px;min-height:31px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.jam-section-add-chord{border:1px solid color-mix(in srgb, var(--accent) 58%, var(--border))}}.jam-section-add-chord{color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;padding:5px 10px;font-size:.58rem;font-weight:850}.jam-section-add-chord:hover,.jam-section-add-chord:focus-visible{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.jam-section-add-chord:hover,.jam-section-add-chord:focus-visible{background:color-mix(in srgb, var(--accent) 10%, transparent)}}.jam-section-add-chord:hover,.jam-section-add-chord:focus-visible{outline:none}.jam-section-add-chord svg{width:14px;height:14px}.jam-section-card>footer{color:var(--muted);text-align:right;margin-top:8px;font-size:.55rem}.jam-settings-sidebar input,.jam-settings-sidebar select{background:#0d1521}.jam-song-setup-grid{gap:6px;display:grid}.jam-song-setup-grid>label{color:var(--muted);grid-template-columns:minmax(0,1fr) 38px 24px;align-items:center;gap:5px;font-size:.62rem;font-weight:800;display:grid}.jam-song-setup-grid input{border:1px solid var(--border);width:38px;height:31px;color:var(--foreground);text-align:center;border-radius:3px;padding:3px 5px;font-size:.68rem;font-weight:850}.jam-song-setup-grid small{color:var(--muted);font-size:.5rem;font-weight:750}.jam-song-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7px;margin-top:10px;display:grid}.jam-generate-song,.jam-reset-song{cursor:pointer;border-radius:4px;width:100%;min-height:36px;padding:7px 8px;font-size:.65rem;font-weight:900}.jam-generate-song{border:1px solid var(--accent);background:var(--accent);color:#210b18}.jam-generate-song:hover:not(:disabled),.jam-generate-song:focus-visible{filter:brightness(1.08);outline:none}.jam-generate-song:disabled{border-color:var(--border);color:var(--muted);cursor:not-allowed;opacity:.55;background:0 0}.jam-reset-song{border:1px solid var(--border);color:var(--muted);background:0 0}.jam-reset-song:hover:not(:disabled),.jam-reset-song:focus-visible{border-color:var(--danger);color:var(--danger);outline:none}.jam-reset-song:disabled{cursor:not-allowed;opacity:.45}.jam-tone-heading{margin-top:2px}.playback-dock.jam-playback-dock{width:auto;max-width:none;left:20px;right:20px;transform:none}.jam-fretboard-display{background:var(--surface-raised);min-width:0;padding:10px 14px 8px}.jam-playback-heading{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:18px;display:grid}.jam-playback-heading h2{color:var(--foreground);margin:3px 0 0;font-size:1.05rem}.jam-playback-heading>span{color:var(--muted);text-align:right;justify-self:end;font-size:.64rem;font-weight:750}.jam-playback-scale-notes{color:var(--accent);justify-content:center;align-items:center;gap:5px;font-family:Cascadia Code,Consolas,monospace;font-size:.7rem;font-weight:900;display:flex}.jam-playback-scale-notes span{border:1px solid var(--accent);place-items:center;min-width:23px;height:23px;display:grid}@supports (color:color-mix(in lab, red, red)){.jam-playback-scale-notes span{border:1px solid color-mix(in srgb, var(--accent) 55%, transparent)}}.jam-playback-scale-notes span{background:var(--accent);border-radius:50%}@supports (color:color-mix(in lab, red, red)){.jam-playback-scale-notes span{background:color-mix(in srgb, var(--accent) 10%, transparent)}}.jam-fretboard-display .full-fretboard-diagram{margin-top:7px;padding-top:7px}.jam-fretboard-display .full-fretboard-diagram figcaption{margin-bottom:5px}.jam-fretboard-display .full-fretboard-cell,.jam-fretboard-display .full-fretboard-string-row>strong{height:25px}.jam-fretboard-display .full-fretboard-cell b{width:19px;height:19px;font-size:.48rem}.guitar-jam-theme .jam-fretboard-display .full-fretboard-cell,.guitar-jam-theme .jam-fretboard-display .full-fretboard-string-row>strong{height:31px}.guitar-jam-theme .jam-fretboard-display .full-fretboard-cell b{width:22px;height:22px;font-size:.54rem}.jam-fretboard-display .is-shape-c{--caged-playback-color:#f59e42}.jam-fretboard-display .is-shape-a{--caged-playback-color:#38bdf8}.jam-fretboard-display .is-shape-g{--caged-playback-color:#4ade80}.jam-fretboard-display .is-shape-e,.jam-fretboard-display .is-shape-f{--caged-playback-color:#facc15}.jam-fretboard-display .is-shape-d{--caged-playback-color:#f472b6}.jam-fretboard-display .full-fretboard-cell b.is-playing-chord{border-color:var(--caged-playback-color)}@supports (color:color-mix(in lab, red, red)){.jam-fretboard-display .full-fretboard-cell b.is-playing-chord{border-color:color-mix(in srgb, var(--caged-playback-color) 72%, white)}}.jam-fretboard-display .full-fretboard-cell b.is-playing-chord{background:var(--caged-playback-color);color:#10141b;outline:1px solid var(--caged-playback-color)}@supports (color:color-mix(in lab, red, red)){.jam-fretboard-display .full-fretboard-cell b.is-playing-chord{outline:1px solid color-mix(in srgb, var(--caged-playback-color) 48%, white)}}.jam-fretboard-display .full-fretboard-cell b.is-playing-chord{outline-offset:1px;box-shadow:0 0 11px var(--caged-playback-color)}@supports (color:color-mix(in lab, red, red)){.jam-fretboard-display .full-fretboard-cell b.is-playing-chord{box-shadow:0 0 11px color-mix(in srgb, var(--caged-playback-color) 78%, transparent)}}.jam-fretboard-display .full-fretboard-cell b.is-playing-chord{transform:scale(1.08)}.jam-fretboard-display .full-fretboard-cell b.is-melody-note{color:#1d0c2b;outline-offset:1px;background:#c084fc;border-color:#e9d5ff;outline:1px solid #f3e8ff;transform:scale(1.08);box-shadow:0 0 11px #c084fccc}.jam-fretboard-display .full-fretboard-cell b.is-playing-chord.is-melody-note{border-color:var(--caged-playback-color);background:var(--caged-playback-color);outline-offset:2px;box-shadow:0 0 8px var(--caged-playback-color), 0 0 15px #c084fccc;outline:2px solid #d8b4fe}@supports (color:color-mix(in lab, red, red)){.jam-fretboard-display .full-fretboard-cell b.is-playing-chord.is-melody-note{box-shadow:0 0 8px color-mix(in srgb, var(--caged-playback-color) 80%, transparent), 0 0 15px #c084fccc}}.playback-dock-footer.jam-playback-footer{min-height:62px}.jam-playback-footer .jam-playback-status{grid-area:1/1;justify-self:start}.jam-playback-footer .jam-transport{grid-area:1/2;justify-self:center}.jam-playback-footer .playback-dock-right{grid-area:1/3}.jam-playback-status{color:var(--muted);text-align:left;justify-items:start;gap:2px;font-size:.58rem;display:grid}.jam-playback-status strong{color:var(--accent);font-size:.7rem}.piano-jam-theme{--accent:#38bdf8;--scales-selected:#17364a}.piano-jam-lab-shell{padding-bottom:calc(var(--piano-jam-playback-dock-height,300px) + 44px)}.piano-jam-theme .jam-chord-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.piano-jam-chord-diagram{min-height:112px;padding:7px}.piano-jam-chord-diagram .piano-keyboard{width:100%}.piano-jam-chord-diagram .piano-keyboard.is-compact svg{width:100%;min-width:100%;height:72px;max-height:72px}.piano-jam-chord-field.is-playing{box-shadow:inset 3px 0 var(--accent), 0 0 12px #38bdf82b;background:#17364a}.piano-jam-playback-dock{max-height:90dvh;overflow:hidden auto}.piano-jam-staff-display{background:var(--surface-raised);min-width:0;padding:10px 14px 2px}.piano-jam-staff-display .piano-progression-score{margin:7px 0 8px}.piano-jam-score .piano-score-page{position:relative}.piano-jam-score .piano-score-page:before{z-index:2;color:var(--accent);letter-spacing:.06em;text-transform:uppercase;content:attr(data-section-label);pointer-events:none;font-size:.56rem;font-weight:900;position:absolute;top:7px;right:12px}.piano-jam-keyboard-display .piano-keyboard{border-top:1px solid var(--border);margin-top:7px;padding-top:7px}.piano-jam-keyboard-display .piano-keyboard svg{max-height:132px}.piano-jam-keyboard-display .piano-key.is-playing-chord .piano-white-key{fill:#38bdf8;stroke:#d7f3ff;stroke-width:3px;filter:drop-shadow(0 0 5px #38bdf899)}.piano-jam-keyboard-display .piano-key.is-playing-chord .piano-black-key{fill:#087fae;stroke:#d7f3ff;stroke-width:3px;filter:drop-shadow(0 0 5px #38bdf899)}.piano-jam-keyboard-display .piano-key.is-playing-melody .piano-white-key{fill:#c084fc;stroke:#f3e8ff;stroke-width:4px;filter:drop-shadow(0 0 7px #c084fccc)}.piano-jam-keyboard-display .piano-key.is-playing-melody .piano-black-key{fill:#7e22ce;stroke:#f3e8ff;stroke-width:4px;filter:drop-shadow(0 0 7px #c084fccc)}.piano-jam-keyboard-display .piano-key.is-playing-chord.is-playing-melody .piano-white-key,.piano-jam-keyboard-display .piano-key.is-playing-chord.is-playing-melody .piano-black-key{fill:#38bdf8;stroke:#d8b4fe;stroke-width:6px;filter:drop-shadow(0 0 5px #38bdf899)drop-shadow(0 0 8px #c084fccc)}.piano-jam-keyboard-display .piano-keyboard-legend .is-playing-chord{background:#38bdf8}.piano-jam-keyboard-display .piano-keyboard-legend .is-playing-melody{background:#c084fc}.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}.no-playback-dock .scales-lab-shell{padding-bottom:70px}.scale-exercises-workbench .scales-lab-shell{padding-top:calc(var(--master-lab-nav-height) + 18px)}.scale-exercises-lab-heading{grid-template-columns:minmax(0,1fr) auto;align-items:end}.scale-exercises-lab-heading>div{gap:8px;display:grid}.scale-exercises-lab-heading>div>p{color:var(--muted);margin:0;font-size:.92rem;line-height:1.6}.scale-workbench-back-link{--back-link-accent:var(--accent);display:inline-flex}.scales-lab-heading{gap:8px;max-width:none;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,.scale-chord-relationships,.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}.scale-chord-relationships-heading{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px 20px;margin-bottom:16px;display:grid}.scale-chord-relationships.is-collapsed .scale-chord-relationships-heading{margin-bottom:0}.scale-chord-relationships-heading h2{margin:4px 0 0;font-size:1.25rem}.scale-chord-relationships-heading>span{color:var(--muted);grid-column:1/-1;font-size:.74rem;line-height:1.4}.scale-chord-relationships .chord-scale-relationships-toggle{background:var(--scales-inset);align-self:start}.scale-chord-relationships .chord-scale-relationships-toggle:hover,.scale-chord-relationships .chord-scale-relationships-toggle:focus-visible{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.scale-chord-relationships .chord-scale-relationships-toggle:hover,.scale-chord-relationships .chord-scale-relationships-toggle:focus-visible{background:color-mix(in srgb, var(--accent) 10%, var(--scales-inset))}}.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-legend i.is-playing-chord{border-color:var(--caged-playback-color);background:var(--caged-playback-color);box-shadow:0 0 7px var(--caged-playback-color)}.chord-scale-relationships .is-shape-c{--chord-overlay-color:#f59e42}.chord-scale-relationships .is-shape-a{--chord-overlay-color:#38bdf8}.chord-scale-relationships .is-shape-g{--chord-overlay-color:#4ade80}.chord-scale-relationships .is-shape-e,.chord-scale-relationships .is-shape-f{--chord-overlay-color:#facc15}.chord-scale-relationships .is-shape-d{--chord-overlay-color:#f472b6}.chord-scale-relationships .full-fretboard-legend i.is-chord-overlay{border-color:var(--chord-overlay-color);background:var(--chord-overlay-color);box-shadow:0 0 7px var(--chord-overlay-color)}@supports (color:color-mix(in lab, red, red)){.chord-scale-relationships .full-fretboard-legend i.is-chord-overlay{box-shadow:0 0 7px color-mix(in srgb, var(--chord-overlay-color) 72%, transparent)}}.chord-scale-relationships .full-fretboard-legend i:not(.is-chord-overlay){background:#251e3d;border-color:#a78bfa}.chord-scale-relationships .full-fretboard-legend i.is-tonic:not(.is-chord-overlay){background:#a78bfa;box-shadow:0 0 5px #a78bfa88}.chord-scale-relationships .full-fretboard-cell b:not(.is-chord-overlay){color:#ddd6fe;opacity:.52;box-shadow:none;filter:none;background:#251e3d;border-color:#a78bfa}.chord-scale-relationships .full-fretboard-cell b.is-tonic:not(.is-chord-overlay){color:#100b1e;background:#a78bfa}.chord-scale-relationships .full-fretboard-cell b.is-chord-overlay{border-color:var(--chord-overlay-color)}@supports (color:color-mix(in lab, red, red)){.chord-scale-relationships .full-fretboard-cell b.is-chord-overlay{border-color:color-mix(in srgb, var(--chord-overlay-color) 72%, white)}}.chord-scale-relationships .full-fretboard-cell b.is-chord-overlay{background:var(--chord-overlay-color);color:#10141b;outline:1px solid var(--chord-overlay-color)}@supports (color:color-mix(in lab, red, red)){.chord-scale-relationships .full-fretboard-cell b.is-chord-overlay{outline:1px solid color-mix(in srgb, var(--chord-overlay-color) 45%, white)}}.chord-scale-relationships .full-fretboard-cell b.is-chord-overlay{outline-offset:1px;box-shadow:0 0 9px var(--chord-overlay-color)}@supports (color:color-mix(in lab, red, red)){.chord-scale-relationships .full-fretboard-cell b.is-chord-overlay{box-shadow:0 0 9px color-mix(in srgb, var(--chord-overlay-color) 68%, transparent)}}.chord-scale-relationships .full-fretboard-cell b.is-chord-overlay{transform:scale(1.06)}.full-fretboard-legend i.is-melody-note{background:#c084fc;border-color:#c084fc;box-shadow:0 0 7px #c084fc}.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,.scale-origin-note-strip>div>button{border:1px solid var(--border);background:var(--surface);min-width:0;min-height:54px;color:var(--foreground);border-radius:5px;place-items:center;gap:2px;padding:6px;display:grid;position:relative}.scale-origin-note-strip>div>button{cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s,transform .15s}.scale-origin-note-strip>div>button:hover,.scale-origin-note-strip>div>button:focus-visible{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.scale-origin-note-strip>div>button:hover,.scale-origin-note-strip>div>button:focus-visible{border-color:color-mix(in srgb, var(--accent) 68%, var(--border))}}.scale-origin-note-strip>div>button:hover,.scale-origin-note-strip>div>button:focus-visible{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.scale-origin-note-strip>div>button:hover,.scale-origin-note-strip>div>button:focus-visible{background:color-mix(in srgb, var(--accent) 8%, var(--surface))}}.scale-origin-note-strip>div>button:hover,.scale-origin-note-strip>div>button:focus-visible{outline:none;transform:translateY(-1px)}.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-note-strip>div>button.is-selected{border-color:var(--accent);background:var(--scales-selected);box-shadow:inset 0 0 0 1px var(--accent), 0 0 12px var(--accent)}@supports (color:color-mix(in lab, red, red)){.scale-origin-note-strip>div>button.is-selected{box-shadow:inset 0 0 0 1px var(--accent), 0 0 12px color-mix(in srgb, var(--accent) 22%, transparent)}}.scale-origin-mode-description{border:1px solid var(--accent);gap:10px;margin-top:10px;display:grid}@supports (color:color-mix(in lab, red, red)){.scale-origin-mode-description{border:1px solid color-mix(in srgb, var(--accent) 40%, var(--border))}}.scale-origin-mode-description{background:var(--accent);border-radius:6px}@supports (color:color-mix(in lab, red, red)){.scale-origin-mode-description{background:color-mix(in srgb, var(--accent) 6%, var(--scales-inset))}}.scale-origin-mode-description{padding:14px}.scale-origin-mode-description>header{gap:3px;display:grid}.scale-origin-mode-description>header span,.scale-origin-mode-description small{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.57rem;font-weight:850}.scale-origin-mode-description>header strong{color:var(--accent);font-size:1rem}.scale-origin-mode-description>p{color:var(--foreground);margin:0;font-size:.72rem;line-height:1.55}.scale-origin-mode-description>p strong{color:var(--accent)}.scale-origin-mode-description>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.scale-origin-mode-description>div>span{border:1px solid var(--border);background:var(--surface);border-radius:5px;gap:5px;min-width:0;padding:9px;display:grid}.scale-origin-mode-description b{overflow-wrap:anywhere;font-family:Cascadia Code,Consolas,monospace;font-size:.64rem;line-height:1.45}.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}.scale-chord-relationship-list{gap:10px;display:grid}.scale-chord-relationship-row{border:1px solid var(--border);background:var(--scales-inset);border-radius:6px;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:10px;min-width:0;padding:10px;display:grid}.scale-chord-relationship-row>header{border-bottom:1px solid var(--border);grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;padding:4px 4px 10px;display:grid}.scale-chord-relationship-row>header>span,.scale-chord-relationship-row>header>small{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:.57rem;font-weight:850}.scale-chord-relationship-row>header h3{color:var(--accent);margin:0;font-size:1.15rem}.scale-chord-relationship-row>header p{color:var(--foreground);margin:0;font-family:Cascadia Code,Consolas,monospace;font-size:.66rem;line-height:1.45}.scale-chord-caged-scroll{scrollbar-color:var(--border) transparent;scrollbar-width:thin;min-width:0;padding-bottom:2px;overflow:auto hidden}.scale-chord-caged-grid{grid-template-columns:repeat(5,minmax(170px,1fr));gap:8px;min-width:900px;height:100%;display:grid}.scale-chord-caged-card{border:1px solid var(--border);background:var(--surface);border-radius:5px;min-width:0;padding:9px}.scale-chord-caged-card>strong{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;font-size:.64rem}.scale-chord-caged-card .caged-voicing-fret-header>span{height:13px;font-size:.48rem}.scale-chord-caged-card .caged-voicing-fret-cell{height:25px}.scale-chord-caged-card .caged-voicing-fret-cell b{width:20px;height:20px;font-size:.55rem}.ukulele-scale-chord-relationships .scale-chord-caged-card .ukulele-fretboard{margin-top:8px}.ukulele-scale-chord-relationships .scale-chord-caged-card .ukulele-fret-numbers span{height:14px;font-size:.5rem}.ukulele-scale-chord-relationships .scale-chord-caged-card .ukulele-string-row>span{height:27px}.ukulele-scale-chord-relationships .scale-chord-caged-card .ukulele-string-row b{width:21px;height:21px;font-size:.52rem;font-weight:850}.piano-scale-chord-voicing-rows{gap:8px;min-width:0;display:grid}.piano-scale-chord-voicing-row{grid-template-columns:minmax(0,1fr);gap:8px;min-width:0;display:grid}.piano-scale-chord-voicing-row.is-inversions{scrollbar-color:var(--border) transparent;scrollbar-width:thin;grid-template-columns:repeat(3,minmax(220px,1fr));padding-bottom:2px;overflow:auto hidden}.piano-scale-chord-relationships .scale-chord-caged-card{min-height:160px}.piano-scale-chord-voicing-row.is-root .scale-chord-caged-card,.piano-scale-chord-voicing-row.is-split .scale-chord-caged-card{min-height:245px;padding:15px}.piano-scale-chord-voicing-row.is-root .scale-chord-caged-card>strong,.piano-scale-chord-voicing-row.is-split .scale-chord-caged-card>strong{font-size:.78rem}.piano-scale-chord-voicing-row.is-root .scale-chord-caged-card .piano-keyboard,.piano-scale-chord-voicing-row.is-split .scale-chord-caged-card .piano-keyboard{margin-top:16px}.piano-scale-chord-voicing-row.is-root .scale-chord-caged-card .piano-keyboard svg,.piano-scale-chord-voicing-row.is-split .scale-chord-caged-card .piano-keyboard svg{max-height:150px}.piano-scale-chord-voicing-row.is-root .scale-chord-caged-card>small,.piano-scale-chord-voicing-row.is-split .scale-chord-caged-card>small{font-size:.64rem}.piano-scale-chord-relationships .scale-chord-caged-card .piano-keyboard{margin-top:12px}.piano-scale-chord-relationships .scale-chord-caged-card .piano-keyboard.is-compact svg{width:100%;min-width:100%;height:76px;max-height:76px}.piano-scale-chord-relationships .scale-chord-caged-card>small{color:var(--muted);margin-top:10px;font-size:.57rem;line-height:1.4;display:block}.scale-chord-relationship-empty{border:1px dashed var(--border);background:var(--scales-inset);color:var(--muted);text-align:center;border-radius:6px;margin:0;padding:18px;font-size:.72rem;line-height:1.5}.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)}.guitar-scales-theme .scales-pattern-card{min-height:270px}.guitar-scales-theme .scales-pattern-select{min-height:268px}.guitar-scales-theme .scales-pattern-card .caged-voicing-fret-cell,.guitar-scales-theme .scale-practice-tab-card .caged-voicing-fret-cell{height:25px}.guitar-scales-theme .scales-pattern-card .caged-voicing-fret-cell b,.guitar-scales-theme .scale-practice-tab-card .caged-voicing-fret-cell b{width:20px;height:20px;font-size:.55rem}.guitar-scales-theme .scale-practice-tab-card{min-height:178px}.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:6px;display:flex}.scale-practice-position-controls button{border:1px solid var(--border);background:var(--scales-inset);min-width:40px;height:36px;color:var(--muted);cursor:pointer;border-radius:4px;place-items:center;padding:5px 10px;font-size:.76rem;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-position-controls button[aria-current=true]{border-color:var(--accent);background:var(--accent);color:#07111c;box-shadow:0 0 12px var(--accent)}@supports (color:color-mix(in lab, red, red)){.scale-practice-position-controls button[aria-current=true]{box-shadow:0 0 12px color-mix(in srgb, var(--accent) 42%, transparent)}}.scale-practice-position-controls button[aria-current=true]{opacity:1}.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}.ukulele-scales-theme{--accent:#a78bfa;--scales-inset:#0d1521;--scales-selected:#251e3d;--circle-accent-soft:#a78bfa24}.ukulele-scales-lab-shell{padding-bottom:calc(var(--playback-dock-height,360px) + 44px)}.ukulele-scales-theme input:focus,.ukulele-scales-theme select:focus{box-shadow:0 0 0 3px #a78bfa30}.ukulele-pattern-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.ukulele-pattern-card{min-height:240px}.ukulele-pattern-card .scales-pattern-select{min-height:238px}.ukulele-pattern-card .scales-pattern-card-heading{flex-direction:column;align-items:start}.ukulele-pattern-card .scales-pattern-card-heading small{text-transform:none}.ukulele-fretboard{min-width:0;color:var(--muted);gap:0;margin-top:18px;font-family:Cascadia Code,Consolas,monospace;display:grid}.ukulele-fretboard.is-shape-c{--shape-color:#f59e42}.ukulele-fretboard.is-shape-a{--shape-color:#38bdf8}.ukulele-fretboard.is-shape-g{--shape-color:#4ade80}.ukulele-fretboard.is-shape-f{--shape-color:#facc15}.ukulele-fretboard.is-shape-d{--shape-color:#f472b6}.ukulele-fret-numbers,.ukulele-string-row{min-width:0;display:grid}.ukulele-fret-numbers span{place-items:center;height:18px;font-size:.5rem;display:grid}.ukulele-string-row>strong{color:var(--foreground);place-items:center start;font-size:.58rem;display:grid}.ukulele-string-row>span{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}.ukulele-string-row>span.is-open{border-right:3px solid #e2d6b8}.ukulele-string-row b{z-index:1;border:1px solid var(--accent);background:var(--scales-selected);color:#fed7aa;border-radius:50%;place-items:center;width:22px;height:22px;font-size:.52rem;display:grid}.ukulele-string-row b.is-tonic{background:var(--accent);color:#211006}.ukulele-string-row b.is-active{outline-offset:1px;box-shadow:0 0 12px var(--accent);outline:2px solid #fff;transform:scale(1.16)}.ukulele-scales-theme .ukulele-string-row b{border-color:var(--shape-color,var(--accent));background:var(--shape-color,var(--accent))}@supports (color:color-mix(in lab, red, red)){.ukulele-scales-theme .ukulele-string-row b{background:color-mix(in srgb, var(--shape-color,var(--accent)) 68%, #111823)}}.ukulele-scales-theme .ukulele-string-row b{color:#fff;box-shadow:0 0 6px var(--shape-color,var(--accent))}@supports (color:color-mix(in lab, red, red)){.ukulele-scales-theme .ukulele-string-row b{box-shadow:0 0 6px color-mix(in srgb, var(--shape-color,var(--accent)) 45%, transparent)}}.ukulele-scales-theme .ukulele-string-row b.is-tonic{background:var(--shape-color,var(--accent));box-shadow:0 0 8px var(--shape-color,var(--accent))}@supports (color:color-mix(in lab, red, red)){.ukulele-scales-theme .ukulele-string-row b.is-tonic{box-shadow:0 0 8px color-mix(in srgb, var(--shape-color,var(--accent)) 68%, transparent)}}.ukulele-scales-theme .ukulele-string-row b.is-tonic{color:#100b1e}.ukulele-theory-theme .ukulele-string-row b{color:#fed7aa}.ukulele-theory-theme .ukulele-string-row b.is-tonic{color:#1a0d03}.ukulele-progression-theme .ukulele-string-row b{color:#cfe9ff}.ukulele-progression-theme .ukulele-string-row b.is-tonic{color:#07111c}.ukulele-jam-theme .ukulele-string-row b{color:#fbcfe8}.ukulele-jam-theme .ukulele-string-row b.is-tonic{color:#210817}.ukulele-audio-note{color:var(--muted);margin:14px 0 0;font-size:.66rem}.ukulele-practice-grid .ukulele-fretboard{margin-top:2px}.ukulele-scale-practice-dock .scale-practice-tab-card{min-height:170px}.ukulele-practice-grid .ukulele-fret-numbers span{height:14px;font-size:.54rem}.ukulele-practice-grid .ukulele-string-row>span{height:27px}.ukulele-scale-practice-dock .ukulele-string-row>span:before{z-index:0;content:"";opacity:.82;background:#c6ccd5;height:1px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.ukulele-practice-grid .ukulele-string-row b{width:21px;height:21px;font-size:.52rem;font-weight:850}.ukulele-scale-practice-dock .scale-practice-position-controls button{min-width:46px}.ukulele-scale-practice-dock .scale-practice-position-controls{flex-wrap:wrap}.ukulele-scale-practice-dock .scale-practice-tab-card.is-playing{box-shadow:inset 3px 0 var(--accent), 0 0 12px #a78bfa22}.ukulele-theory-theme{--accent:#f59e42;--theory-inset:#0d1521;--theory-selected:#122137;--scales-selected:#122137;--circle-accent-soft:#f59e4224}.ukulele-progression-theme{--accent:#66b7ff;--scales-inset:#0d1521;--scales-selected:#122137;--circle-accent-soft:#66b7ff24}.ukulele-progression-theme input:focus,.ukulele-progression-theme select:focus{box-shadow:0 0 0 3px #66b7ff30}.ukulele-progression-theme .ukulele-fretboard{margin-top:8px}.ukulele-progression-theme .melody-scale-card .ukulele-fretboard{margin-top:4px}.ukulele-progression-playback-dock .progression-fretboard-card .ukulele-fret-numbers span{height:14px}.ukulele-progression-playback-dock .progression-fretboard-card .ukulele-string-row>span{height:27px}.ukulele-progression-playback-dock .progression-fretboard-card .ukulele-string-row b{width:21px;height:21px;font-size:.52rem;font-weight:850}.ukulele-jam-chord-diagram{min-height:116px;padding:5px}.ukulele-jam-chord-diagram .ukulele-fretboard{width:100%;margin-top:0}.ukulele-jam-chord-diagram .ukulele-fret-numbers span{height:14px}.ukulele-jam-chord-diagram .ukulele-string-row>span{height:27px}.ukulele-jam-chord-diagram .ukulele-string-row>span:before{z-index:0;content:"";opacity:.9;background:#c6ccd5;height:1px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.ukulele-jam-chord-diagram .ukulele-string-row b{width:21px;height:21px;font-size:.52rem;font-weight:850}.ukulele-jam-playback-dock .full-fretboard-grid{min-width:620px}.ukulele-jam-theme .jam-fretboard-display .full-fretboard-cell,.ukulele-jam-theme .jam-fretboard-display .full-fretboard-cell strong{height:31px}.ukulele-jam-theme .jam-fretboard-display .full-fretboard-cell b{width:22px;height:22px;font-size:.54rem}.ukulele-theory-theme input:focus,.ukulele-theory-theme select:focus{box-shadow:0 0 0 3px #f59e4230}.ukulele-theory-theme .theory-formula-block code,.ukulele-theory-theme .play-scale-path-icon:hover:not(:disabled){color:#1a0d03}.ukulele-theory-theme .caged-chord-fretboard .is-shape-f,.ukulele-theory-theme .caged-voicing-fretboard.is-shape-f{--shape-color:#facc15}.ukulele-chord-fretboard .full-fretboard-grid{grid-template-columns:34px 46px repeat(15,minmax(38px,1fr));min-width:650px}.ukulele-theory-cagfd-grid .caged-tab-card,.ukulele-theory-cagfd-grid .caged-select-button{min-height:250px}.ukulele-theory-cagfd-grid .ukulele-fretboard{margin-top:8px}.ukulele-theory-scale-grid .theory-scale-card{min-height:265px}.ukulele-theory-scale-grid .ukulele-fretboard{margin-top:8px}.ukulele-theory-playback-dock .theory-playback-select{min-height:170px}.ukulele-theory-playback-dock .theory-playback-select .ukulele-fretboard{margin-top:4px}.ukulele-theory-playback-dock .ukulele-fret-numbers span{height:14px;font-size:.54rem}.ukulele-theory-playback-dock .ukulele-string-row>span{height:27px}.ukulele-theory-playback-dock .ukulele-string-row>span:before{z-index:0;content:"";opacity:.9;background:#c6ccd5;height:1px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.ukulele-theory-playback-dock .ukulele-string-row b{width:21px;height:21px;font-size:.52rem;font-weight:850}.has-compact-project-menu.app-shell,.has-compact-project-menu .theory-lab-shell,.has-compact-project-menu .scales-lab-shell,.has-compact-project-menu .jam-lab-shell,.has-compact-project-menu .piano-progression-shell{padding-top:calc(var(--master-lab-nav-height) + 18px)}.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(2,minmax(0,1fr))}.scales-pattern-card.piano-pattern-card{min-height:270px}.piano-pattern-card .scales-pattern-select{min-height:268px;padding:15px 15px 46px}.piano-pattern-card .piano-keyboard{margin-top:14px}.piano-pattern-card .piano-keyboard svg{width:100%;min-width:100%;max-height:150px}.piano-pattern-card .scales-pattern-card-heading{flex-direction:column;align-items:start}.piano-pattern-card .scales-pattern-card-heading small{text-transform:none}.scales-pattern-card.piano-pattern-card.is-both-hands{grid-column:1/-1;min-height:270px}.piano-pattern-card.is-both-hands .scales-pattern-select{min-height:268px}.piano-pattern-card.is-both-hands .scales-pattern-card-heading{flex-direction:row;align-items:baseline}.piano-pattern-card.is-both-hands .scales-pattern-card-heading strong{font-size:.9rem}.piano-pattern-card.is-both-hands .scales-pattern-card-heading small{font-size:.64rem}.piano-pattern-card.is-both-hands .piano-keyboard{margin-top:16px}.piano-pattern-card.is-both-hands .piano-keyboard svg{max-height:150px}.piano-practice-keyboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.piano-practice-keyboard-grid .scale-practice-tab-card.is-chord{grid-column:1/-1}.piano-practice-keyboard-grid .piano-keyboard svg{width:100%;min-width:100%;height:auto;max-height:160px}.piano-practice-keyboard-grid .scale-practice-tab-card.is-chord .piano-keyboard svg{max-height:175px}.piano-scale-practice-dock .scale-practice-tab-card.is-chord .piano-key.is-playing-chord .piano-white-key,.piano-scale-practice-dock .scale-practice-tab-card.is-chord .piano-key.is-playing-chord .piano-black-key{stroke:#fff;stroke-width:4px;animation:.72s ease-in-out infinite alternate piano-chord-key-pulse}@keyframes piano-chord-key-pulse{0%{filter:drop-shadow(0 0 2px #fff5)}to{filter:drop-shadow(0 0 9px #fffc)}}.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:#080d15;--surface:#0d1521;--surface-raised:#121a27;--border:#293747;--foreground:#f2f5f3;--muted:#9eacbd;--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:#0b121d}.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-score{border:1px solid var(--border);background:#111615;border-radius:6px;min-width:0;margin:0 0 8px;overflow:hidden}.piano-score-loading{min-height:220px}.piano-score-legend{border-bottom:1px solid var(--border);min-height:24px;color:var(--muted);letter-spacing:.05em;text-transform:uppercase;justify-content:center;align-items:center;gap:16px;font-size:.55rem;font-weight:850;display:flex}.piano-score-legend span{align-items:center;gap:5px;display:inline-flex}.piano-score-legend span:before{background:var(--accent);content:"";border-radius:50%;width:6px;height:6px}.piano-score-legend span:last-child:before{background:var(--muted)}.piano-score-pages{scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch;min-width:0;display:flex;overflow:auto hidden}.piano-score-pages::-webkit-scrollbar{display:none}.piano-score-page{scroll-snap-align:start;scroll-snap-stop:always;flex:0 0 100%;min-width:760px;height:236px}.piano-score-page svg{width:100%;height:236px;display:block}.piano-progression-dock-chords{grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;display:grid}.piano-progression-dock-chords[data-chord-count="1"]{grid-template-columns:minmax(0,1fr)}.piano-progression-dock-chords[data-chord-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}.piano-progression-dock-chords[data-chord-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}.piano-progression-dock-chords[data-chord-count="4"]{grid-template-columns:repeat(4,minmax(0,1fr))}.piano-progression-dock-chords[data-chord-count="5"]{grid-template-columns:repeat(5,minmax(0,1fr))}.piano-progression-dock-chords[data-chord-count="6"]{grid-template-columns:repeat(6,minmax(0,1fr))}.piano-progression-dock-chords[data-chord-count="7"]{grid-template-columns:repeat(7,minmax(0,1fr))}.piano-progression-dock-chunk{display:contents}.piano-progression-dock-chords>.muted{text-align:center;grid-column:1/-1;margin:8px 0}.piano-progression-dock-chunk>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-chunk>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-chunk>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:112px 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}.lab-brand-label{align-items:center;gap:12px;display:flex}.lab-brand-label .section-label{margin:0}.lab-heading-brand-mark{border:1px solid var(--accent);background:var(--accent);border-radius:5px;flex:0 0 64px;place-items:center;width:64px;height:64px;display:grid}@supports (color:color-mix(in lab, red, red)){.lab-heading-brand-mark{background:color-mix(in srgb, var(--accent) 7%, var(--surface-raised))}}.lab-heading-brand-mark{color:var(--accent);box-shadow:inset 0 0 15px var(--accent)}@supports (color:color-mix(in lab, red, red)){.lab-heading-brand-mark{box-shadow:inset 0 0 15px color-mix(in srgb, var(--accent) 10%, transparent)}}.lab-heading-brand-mark{letter-spacing:.04em;font-size:.9rem;font-weight:950}.workbench{gap:44px;display:grid}.lab-project-brand-mark{--project-brand-accent:var(--accent);border:1px solid var(--project-brand-accent);background:var(--project-brand-accent);border-radius:4px;place-items:center;width:34px;height:34px;display:grid}@supports (color:color-mix(in lab, red, red)){.lab-project-brand-mark{background:color-mix(in srgb, var(--project-brand-accent) 7%, transparent)}}.lab-project-brand-mark{color:var(--project-brand-accent);font-size:.72rem;font-weight:950}.lab-project-brand-mark[data-brand-mark=GS],.lab-project-brand-mark[data-brand-mark=US]{--project-brand-accent:#a78bfa}.lab-project-brand-mark[data-brand-mark=GT],.lab-project-brand-mark[data-brand-mark=UT]{--project-brand-accent:#f59e42}.lab-project-brand-mark[data-brand-mark=GP],.lab-project-brand-mark[data-brand-mark=UP]{--project-brand-accent:#66b7ff}.lab-project-brand-mark[data-brand-mark=GJ],.lab-project-brand-mark[data-brand-mark=UJ]{--project-brand-accent:#f472b6}.lab-project-brand-mark[data-brand-mark=PS]{--project-brand-accent:#f4d35e}.lab-project-brand-mark[data-brand-mark=PT]{--project-brand-accent:#fb7185}.lab-project-brand-mark[data-brand-mark=PP]{--project-brand-accent:#2dd4bf}.lab-project-brand-mark[data-brand-mark=PJ]{--project-brand-accent:#38bdf8}.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-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}.chord-grid>.progression-chord-placeholder{width:auto;height:auto}.progression-empty-state .progression-chord-placeholder{min-height:0}.progression-chord-placeholder .wireframe-line-input{width:100%}.progression-chord-placeholder-mobile{display:none}.progression-add-placeholder{color:var(--accent);cursor:pointer;display:block}.progression-add-placeholder>:not(.progression-placeholder-plus){opacity:.52}.progression-placeholder-plus{z-index:2;place-items:center;font-size:2.2rem;font-weight:300;line-height:1;display:grid;position:absolute;inset:0}.progression-add-placeholder:hover{border-color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.progression-add-placeholder:hover{background:color-mix(in srgb, var(--accent) 7%, var(--surface))}}.progression-add-placeholder:focus-visible{border-color:var(--accent);outline-offset:3px;outline:3px solid #66b7ff52}.progression-actions{justify-content:center;gap:8px;margin-top:18px;display:flex}.progression-song-form{border:1px solid var(--border);background:var(--surface-raised);border-radius:6px;padding:14px}.progression-builder-heading{margin-bottom:16px}.progression-builder-heading h3{margin:4px 0 0;font-size:1.2rem}.progression-builder-heading>div>p:last-child{color:var(--muted);margin:5px 0 0;font-size:.72rem}.progression-builder-section{margin:0}.progression-builder-chord-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.progression-builder-card>label:first-child input{border:1px solid var(--accent);width:calc(100% - 12px);height:31px;margin:3px 6px 7px}@supports (color:color-mix(in lab, red, red)){.progression-builder-card>label:first-child input{border:1px solid color-mix(in srgb, var(--accent) 38%, var(--border))}}.progression-builder-card>label:first-child input{background:#162131;border-radius:4px;padding:5px 7px;box-shadow:inset 0 1px 2px #0005}.progression-builder-diagram{min-height:116px}.ukulele-progression-builder-diagram .ukulele-fretboard{width:100%;margin-top:0}.ukulele-progression-builder-diagram .ukulele-fret-numbers span{height:14px}.ukulele-progression-builder-diagram .ukulele-string-row>span{height:27px}.ukulele-progression-builder-diagram .ukulele-string-row b{width:21px;height:21px;font-size:.52rem;font-weight:850}.piano-progression-builder-diagram{min-height:112px;padding:7px}.piano-progression-builder-diagram .piano-keyboard{width:100%}.piano-progression-builder-diagram .piano-keyboard.is-compact svg{width:100%;min-width:100%;height:72px;max-height:72px}.progression-builder-empty{grid-template-columns:minmax(0,1fr);place-content:stretch;width:100%;height:225px;min-height:225px;margin-bottom:8px;padding:5px;position:relative}.progression-builder-empty-copy{z-index:1;text-align:center;pointer-events:none;place-content:center;justify-items:center;padding:24px;display:grid;position:absolute;inset:0}.progression-builder-empty-copy strong{color:var(--foreground);font-size:.95rem}.progression-builder-empty-copy p{max-width:440px;margin:7px 0 0;font-size:.72rem;line-height:1.5}.progression-builder-add{min-height:210px}.progression-builder-add .progression-placeholder-plus{font-size:2.2rem}.progression-builder-empty-grid{place-self:start stretch;align-items:stretch;width:100%;height:100%;margin-top:0}.progression-builder-empty .progression-builder-add{align-self:start;height:100%;min-height:0}.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) 65px;min-width:0;display:grid;overflow:hidden}.variation-choice>.audition-controls{align-self:center}.piano-progression-voicing-card>.audition-controls{margin-top:10px}.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:31px;display:grid}.progression-bar-card:not(.is-empty) .progression-bar-chord{align-content:start;min-height:59px}.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:28px;min-width:28px;height:28px;color:var(--accent);cursor:pointer;background:#0d1521;border-radius:4px;place-items:center;padding:0;font-size:.74rem;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:17px;height:17px}.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}.progression-bar-notes{min-width:0;color:var(--foreground);white-space:nowrap;scrollbar-width:none;grid-column:1/-1;align-items:center;gap:4px;font-size:.55rem;font-weight:800;display:flex;overflow-x:auto}.progression-bar-notes::-webkit-scrollbar{display:none}.progression-bar-notes>span{border:1px solid var(--accent);justify-content:center;min-width:20px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.progression-bar-notes>span{border:1px solid color-mix(in srgb, var(--accent) 30%, var(--border))}}.progression-bar-notes>span{background:var(--accent);border-radius:3px}@supports (color:color-mix(in lab, red, red)){.progression-bar-notes>span{background:color-mix(in srgb, var(--accent) 8%, transparent)}}.progression-bar-notes>span{padding:3px 4px}.progression-bar-notes.is-empty{border:1px dashed var(--border);min-height:22px;color:var(--muted);border-radius:3px;justify-content:center}.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):not([aria-pressed=false]),.transport-button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.transport-button[aria-pressed=false],.transport-button[aria-pressed=false]:hover:not(:disabled),.transport-button[aria-pressed=false]:focus-visible{border-color:var(--border);color:var(--foreground)}.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;min-width:0;transition:transform .24s;display:grid;position:fixed;bottom:0;left:320px;right:24px;overflow:hidden;box-shadow:0 -10px 32px #0008}.playback-dock-nav-strip{z-index:6;border-bottom:1px solid var(--border);background:#101824;justify-content:space-between;align-items:center;gap:16px;min-width:0;min-height:38px;padding:4px 6px 4px 14px;display:flex;position:relative}.playback-dock-nav-strip nav{min-width:0;color:var(--muted);white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch;align-items:center;gap:6px;font-size:.62rem;font-weight:800;display:flex;overflow-x:auto}.playback-dock-nav-strip nav::-webkit-scrollbar{display:none}.playback-dock-nav-strip nav strong{color:var(--foreground)}.playback-dock-nav-strip nav>span:not(.playback-dock-nav-link){color:var(--border)}.playback-dock-nav-link{align-items:center;gap:6px;display:inline-flex}.playback-dock-nav-link i{color:var(--border);font-style:normal}.playback-dock-nav-link a{color:var(--muted);text-decoration:none}.playback-dock-nav-link a:hover,.playback-dock-nav-link a:focus-visible{color:var(--accent);text-underline-offset:3px;outline:none;text-decoration:underline}.playback-dock-mobile-label{color:var(--foreground);letter-spacing:.04em;text-transform:uppercase;font-size:.68rem;display:none}.playback-dock-collapse{border:1px solid var(--border);background:var(--surface);width:30px;height:30px;color:var(--accent);cursor:pointer;touch-action:manipulation;border-radius:5px;flex:none;place-items:center;padding:0;display:grid}.playback-dock-collapse:hover,.playback-dock-collapse:focus-visible{border-color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.playback-dock-collapse:hover,.playback-dock-collapse:focus-visible{background:color-mix(in srgb, var(--accent) 10%, var(--surface))}}.playback-dock-collapse:hover,.playback-dock-collapse:focus-visible{outline:none}.playback-dock-collapse svg{fill:none;stroke:currentColor;stroke-width:2.25px;stroke-linecap:round;stroke-linejoin:round;width:19px;height:19px}.playback-dock.playback-dock:has(.playback-dock-collapse[aria-expanded=false]){overflow:hidden;transform:translateY(calc(100% - 38px))}.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;min-width: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;display:grid}.final-progression-heading>div:first-child{min-width:0}.final-progression-heading h2{overflow-wrap:anywhere;line-height:1.25}.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)}#scales-setup-title,#scale-anatomy-title,#scale-fretboard-title,#piano-scales-setup-title,#piano-scale-anatomy-title,#piano-keyboard-paths-title,#ukulele-scales-setup-title,#ukulele-scale-anatomy-title,#ukulele-paths-title,#theory-input-title,#chord-anatomy-title,#theory-caged-title,#theory-melody-title,#piano-theory-input-title,#piano-chord-anatomy-title,#piano-voicings-title,#piano-melody-title,#ukulele-theory-input-title,#ukulele-chord-anatomy-title,#ukulele-cagfd-title,#ukulele-theory-melody-title{scroll-margin-top:calc(var(--master-lab-nav-height) + 18px)}.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{min-width:0;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:112px 86px;gap:7px;display:grid}.playback-settings.playback-settings-bpm-only{grid-template-columns:112px;justify-self:start}.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-bpm-control{grid-template-columns:72px 34px;align-items:end;gap:6px;min-width:0;display:grid}.playback-bpm-control label{min-width:0}.playback-bpm-control input{text-align:center;width:100%}.standalone-metronome-button{border:1px solid var(--border);background:var(--surface-raised);width:34px;height:36px;color:var(--muted);cursor:pointer;border-radius:4px;place-items:center;padding:6px;display:grid;position:relative;overflow:hidden}.standalone-metronome-button:hover:not(:disabled):not([aria-pressed=false]),.standalone-metronome-button:focus-visible:not([aria-pressed=false]),.standalone-metronome-button.is-active{border-color:var(--accent);color:var(--accent);outline:none}.standalone-metronome-button[aria-pressed=false],.standalone-metronome-button[aria-pressed=false]:hover:not(:disabled),.standalone-metronome-button[aria-pressed=false]:focus-visible{border-color:var(--border);color:var(--foreground)}.standalone-metronome-button:disabled{cursor:not-allowed;opacity:.45}.standalone-metronome-button svg{z-index:1;width:20px;height:20px;position:relative}.standalone-metronome-pulse{border-radius:inherit;background:var(--accent);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.standalone-metronome-pulse{background:color-mix(in srgb, var(--accent) 28%, transparent)}}.standalone-metronome-pulse{animation:.22s ease-out both standalone-metronome-pulse}.standalone-metronome-button.is-downbeat .standalone-metronome-pulse{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.standalone-metronome-button.is-downbeat .standalone-metronome-pulse{background:color-mix(in srgb, var(--accent) 48%, transparent)}}@keyframes standalone-metronome-pulse{0%{opacity:1;transform:scale(.72)}to{opacity:0;transform:scale(1.25)}}.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}.progression-fretboard-row{grid-template-columns:repeat(var(--progression-fretboard-columns), minmax(0, 1fr));gap:7px;min-width:0;display:grid}.progression-fretboard-card{border:1px solid var(--border);background:#07101b;border-radius:5px;min-width:0;padding:7px 8px;transition:border-color .15s,background .15s,box-shadow .15s;overflow:hidden}.progression-fretboard-card.is-playing{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent);background:#122137}.progression-fretboard-card>header{justify-content:space-between;align-items:baseline;gap:7px;min-width:0;display:flex}.progression-fretboard-card>header strong{color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;font-size:.64rem;overflow:hidden}.progression-fretboard-card>header small{color:var(--accent);flex:none;font-size:.52rem;font-weight:850}.progression-fretboard-card .guitar-tab-fretboard{margin:4px 0 0}.progression-fretboard-empty{border:1px dashed var(--border);width:25%;min-width:150px;min-height:112px;color:var(--muted);background:#07101b;border-radius:5px;place-items:center;font-size:.65rem;display:grid}.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(3,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-fretboard-phrase{scrollbar-color:var(--border) transparent;scrollbar-width:thin;min-width:0;padding:6px 8px 10px;overflow-x:auto}.melody-sequence-fretboard{--shape-color:var(--accent);width:100%;min-width:max-content;font-family:Cascadia Code,Consolas,monospace}.melody-sequence-fretboard.is-shape-c{--shape-color:#f59e42}.melody-sequence-fretboard.is-shape-a{--shape-color:#38bdf8}.melody-sequence-fretboard.is-shape-g{--shape-color:#4ade80}.melody-sequence-fretboard.is-shape-e,.melody-sequence-fretboard.is-shape-f{--shape-color:#facc15}.melody-sequence-fretboard.is-shape-d{--shape-color:#f472b6}.melody-sequence-header,.melody-sequence-string{min-width:max-content;display:grid}.melody-sequence-header{color:var(--muted);text-align:center;font-size:.42rem}.melody-sequence-header>span{height:13px}.melody-sequence-string-label{color:var(--foreground);place-items:center start;font-size:.48rem;display:grid}.melody-sequence-string{--melody-string-thickness:1px}.melody-sequence-string:nth-of-type(5){--melody-string-thickness:1.25px}.melody-sequence-string:nth-of-type(6){--melody-string-thickness:1.5px}.melody-sequence-string:nth-of-type(7){--melody-string-thickness:2px}.melody-sequence-cell{background:#111823;border-right:1px solid #798397;place-items:center;height:22px;display:grid;position:relative}.melody-sequence-cell:before{z-index:0;height:var(--melody-string-thickness);content:"";background:#d9dee7;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);box-shadow:0 0 2px #f8fafc66}.melody-sequence-cell b{z-index:1;border:1px solid var(--shape-color);background:var(--shape-color);border-radius:50%;place-items:center;width:18px;height:18px;display:grid}@supports (color:color-mix(in lab, red, red)){.melody-sequence-cell b{background:color-mix(in srgb, var(--shape-color) 68%, #111823)}}.melody-sequence-cell b{color:#fff;box-shadow:0 0 6px var(--shape-color);font-size:.48rem;font-weight:900}@supports (color:color-mix(in lab, red, red)){.melody-sequence-cell b{box-shadow:0 0 6px color-mix(in srgb, var(--shape-color) 45%, transparent)}}.melody-sequence-cell b.is-playing{background:var(--shape-color);color:#100b1e;outline-offset:1px;box-shadow:0 0 12px var(--shape-color);outline:2px solid #fff;transform:scale(1.2)}.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}.jam-repo-grid[data-project-count="1"],.jam-repo-grid[data-project-count="2"],.jam-repo-grid[data-project-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1200px){.scales-lab-heading>p:last-child,.theory-lab-heading>p:last-child,.progression-lab-heading>p:last-child,.jam-lab-heading>p:last-child{white-space:nowrap}}@media (min-width:2200px){.variation-grid,.melody-scale-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.working-variation-list{grid-template-columns:minmax(0,1fr)}.suggested-melody-tab{grid-template-columns:repeat(var(--melody-columns), minmax(0, 1fr))}.piano-progression-voicing-grid,.piano-melody-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:1564px){#step-1>.section-heading,.scales-lab-heading,.theory-lab-heading,.progression-lab-heading,.jam-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[data-chord-count="1"]{grid-template-columns:minmax(0,1fr)}.piano-progression-dock-chords[data-chord-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}.piano-progression-dock-chords[data-chord-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}.piano-progression-dock-chords[data-chord-count="4"],.piano-progression-dock-chords[data-chord-count="5"],.piano-progression-dock-chords[data-chord-count="6"],.piano-progression-dock-chords[data-chord-count="7"],.piano-progression-dock-chords[data-chord-count="8"]{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:801px){.piano-progression-playback-dock .piano-progression-dock-chords{scroll-snap-type:x mandatory;scrollbar-width:none;gap:0;display:flex;overflow:auto hidden}.piano-progression-playback-dock .piano-progression-dock-chords::-webkit-scrollbar{display:none}.piano-progression-playback-dock .piano-progression-dock-chunk{scroll-snap-align:start;scroll-snap-stop:always;flex:0 0 100%;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:100%;display:grid}.piano-progression-playback-dock .piano-progression-dock-chunk[data-chord-count="1"]{grid-template-columns:minmax(0,1fr)}.piano-progression-playback-dock .piano-progression-dock-chunk[data-chord-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}.piano-progression-playback-dock .piano-progression-dock-chunk[data-chord-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}.piano-progression-playback-dock .piano-progression-dock-chunk>article{padding:10px}.piano-progression-playback-dock .piano-progression-card-heading{grid-template-columns:22px minmax(0,1fr);gap:3px 8px}.piano-progression-playback-dock .piano-progression-card-heading>span{width:22px;height:22px;font-size:.62rem}.piano-progression-playback-dock .piano-progression-card-heading strong{font-size:1rem}.piano-progression-playback-dock .piano-progression-card-heading small{font-size:.62rem}.piano-progression-playback-dock .piano-progression-dock-chords .piano-keyboard{width:100%;margin:8px 0;overflow:hidden}.piano-progression-playback-dock .piano-progression-dock-chords .piano-keyboard.is-compact svg{width:100%;min-width:100%;height:72px;max-height:72px}}@media (max-width:800px){.desktop-startup-section{display:none}.labs-directory-back-link{top:calc(var(--master-lab-nav-height) + 42px)}.lab-learning-path li,.lab-directory-card{transform-origin:top}.lab-learning-path{grid-template-columns:minmax(0,1fr);gap:8px}.lab-directory,.lab-directory.is-piano{grid-template-columns:minmax(0,1fr)}.scales-directory-page{width:calc(100% - 24px);padding-top:calc(var(--master-lab-nav-height) + 42px)}.scales-directory-hero{grid-template-columns:minmax(0,1fr);gap:24px;padding-bottom:28px}.scales-directory-route{flex-wrap:wrap}.scales-path-row{grid-template-columns:minmax(0,1fr);gap:20px;padding:26px 0 30px}.scales-path-card{min-height:186px}.scales-path-description{padding:0 4px}.scales-path-description ul{grid-template-columns:minmax(0,1fr)}.scale-exercises-page{width:calc(100% - 24px);padding-top:calc(var(--master-lab-nav-height) + 42px)}.scale-exercises-lab-heading,.theory-exercises-lab-heading{grid-template-columns:minmax(0,1fr);align-items:start}.scale-workbench-back-link{width:fit-content}.scale-exercises-hero{flex-direction:column;align-items:start;gap:20px}.challenge-progress-overview{gap:13px}.scale-exercise-setup{grid-template-columns:minmax(0,1fr);gap:18px}.scale-exercise-selection-summary{border-top:1px solid var(--border);border-left:0;padding-top:15px;padding-left:0}.scale-exercise-heading{flex-direction:column;align-items:stretch;gap:14px}.scale-exercise-local-control{width:min(240px,100%)}.scale-exercise-toolbar{flex-direction:column;align-items:stretch}.scale-exercise-actions{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.scale-exercise-actions button{padding-left:5px;padding-right:5px}.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,.playback-dock-footer.scale-practice-footer,.playback-dock-footer.piano-progression-playback-footer{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:5px}.playback-dock-footer>.playback-settings,.playback-dock-footer>.piano-progression-tempo-controls{grid-area:1/1}.playback-dock-footer>.transport-controls{grid-area:2/1;grid-template-rows:auto;grid-template-columns:none;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;width:100%;display:grid}.playback-dock-footer>.playback-dock-right{background:var(--surface);border-radius:4px;grid-area:auto;max-width:min(320px,100% - 16px);position:absolute;bottom:calc(100% + 6px);right:8px}.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,.playback-dock.jam-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-nav-strip{justify-content:space-between;padding-left:12px;position:sticky;top:0}.playback-dock-nav-strip nav{display:none}.playback-dock-mobile-label{display:block}.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{align-items:stretch;gap:5px}.playback-settings{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.playback-settings.playback-settings-bpm-only{grid-template-columns:112px;width:auto}.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,.jam-repo-detail-stats,.jam-repo-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.jam-repo-filters>label:first-child,.jam-repo-filters>button{grid-column:1/-1}}@media (max-width:520px){.site-announcement{padding-right:max(8px, env(safe-area-inset-right));padding-left:max(10px, env(safe-area-inset-left));gap:8px}.site-announcement>svg{width:20px;height:20px}.site-announcement>div{text-align:left;justify-content:start;gap:1px;font-size:.68rem;display:grid}.site-announcement strong{font-size:.62rem}.master-lab-nav{padding-right:max(8px, env(safe-area-inset-right));padding-left:max(8px, env(safe-area-inset-left));gap:8px}.account-project-menu-panel{top:calc(var(--master-lab-nav-height) + 4px);width:calc(100vw - 16px);max-height:calc(100vh - var(--master-lab-nav-height) - 12px);position:fixed;right:8px}.master-lab-home{gap:6px}.master-lab-mark{width:34px;height:34px;font-size:.78rem}.master-lab-home strong{font-size:.74rem}.lab-nav-mark{width:26px;height:26px;font-size:.58rem}.master-lab-nav-actions{gap:12px}.master-labs-menu-trigger{width:36px;height:36px}.master-repo-link{flex-basis:36px;width:36px;height:36px}.master-labs-menu-panel{top:calc(var(--master-lab-nav-height) + 4px);width:calc(100vw - 16px);max-height:calc(100vh - var(--master-lab-nav-height) - 12px);grid-template-columns:minmax(0,1fr);position:fixed;right:8px}.master-labs-menu-links{grid-template-columns:repeat(2,minmax(0,1fr))}.master-labs-menu+.master-repo-link{margin-left:8px}.master-labs-menu+.master-repo-link:before{height:24px;left:-12px}.master-account-link{width:36px;min-width:36px;height:36px;padding:6px}.master-account-link span{display:none}.master-account-link svg{width:20px;height:20px}.account-shell{width:calc(100% - 24px);padding-top:calc(var(--master-lab-nav-height) + 42px)}.account-auth-grid,.account-overview-grid{grid-template-columns:minmax(0,1fr)}.account-overview-grid{align-items:start}.account-auth-card,.account-profile-card,.account-membership-card{padding:16px}.account-auth-card input{font-size:16px}.account-profile-card .account-profile-name-form{grid-template-columns:minmax(0,1fr)}.account-profile-name-form input{font-size:16px}.account-profile-name-status{grid-column:1}.account-setup-notice{flex-direction:column;align-items:start;gap:5px}.jam-repo-shell,.jam-repo-detail-shell{width:calc(100% - 24px);padding-top:calc(var(--master-lab-nav-height) + 42px);gap:18px}.jam-repo-hero{flex-direction:column;align-items:start;gap:16px}.jam-repo-hero-marks a{width:40px;height:40px}.jam-repo-filters{grid-template-columns:minmax(0,1fr)}.jam-repo-filters input,.jam-repo-filters select{font-size:16px}.jam-repo-detail{gap:18px;padding:15px}.jam-repo-detail-heading{align-items:start}.jam-repo-detail-heading>span{flex-basis:44px;width:44px;height:44px}.jam-repo-detail-stats{grid-template-columns:minmax(0,1fr)}.jam-repo-audio-heading{align-items:start}.jam-repo-audio-controls{flex-direction:column;align-items:stretch}.jam-repo-audio-controls button{width:100%}.jam-repo-detail-actions{flex-direction:column;align-items:stretch}.jam-repo-detail-actions>a{text-align:center;width:100%}.labs-home,.lab-placeholder-page{width:calc(100% - 24px);padding-top:calc(var(--master-lab-nav-height) + 42px)}.scale-exercise-global-controls,.theory-exercise-controls{grid-template-columns:minmax(0,1fr)}.theory-exercise-controls select,.scale-exercise-global-controls select,.scale-exercise-local-control select{font-size:16px}.scale-exercise-row>summary{grid-template-columns:38px minmax(0,1fr) auto;gap:9px;padding-left:11px;padding-right:11px}.scale-exercise-summary-copy small{display:none}.scale-exercise-summary-action{font-size:0}.scale-exercise-summary-action svg{width:18px;height:18px}.scale-exercise-body{padding-left:10px;padding-right:10px}.jam-lab-shell{width:calc(100% - 16px);padding-top:calc(var(--master-lab-nav-height) + 40px);gap:18px}.jam-builder-panel{padding:14px}.jam-builder-heading{flex-direction:column;align-items:stretch;gap:14px}.jam-add-section-controls{width:100%}.jam-add-section-controls label{flex:1;min-width:0}.jam-add-section-controls select{width:100%;min-width:0;font-size:16px}.jam-add-section-controls button{flex:none}.jam-section-card{padding:11px}.jam-chord-grid,.guitar-jam-theme .jam-chord-grid,.ukulele-jam-theme .jam-chord-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.jam-melody-phrase-grid,.piano-jam-melody-grid{grid-template-columns:minmax(0,1fr)}.jam-melody-editor-intro{align-items:flex-start}.piano-jam-theme .jam-chord-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.jam-chord-field input{font-size:16px}.playback-dock.jam-playback-dock{max-height:84dvh}.jam-playback-dock .playback-dock-nav-strip{flex:0 0 38px}.jam-playback-heading{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:5px 8px}.jam-playback-heading>div{min-width:0}.jam-playback-heading h2{text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;overflow:hidden}.jam-playback-heading>span{text-overflow:ellipsis;white-space:nowrap;grid-area:1/2;max-width:100%;overflow:hidden}.jam-playback-scale-notes{flex-wrap:wrap;grid-area:2/1/auto/-1;gap:4px;padding-top:2px}.jam-playback-scale-notes span{min-width:21px;height:21px;font-size:.62rem}.jam-fretboard-display{min-width:0;padding:8px}.piano-jam-staff-display{padding:8px 8px 0}.piano-jam-playback-dock .piano-score-legend{display:none}.piano-jam-playback-dock .piano-score-page,.piano-jam-playback-dock .piano-score-page svg{height:174px}.jam-fretboard-display .full-fretboard-diagram{margin-top:6px;padding-top:5px}.jam-fretboard-display .full-fretboard-diagram figcaption{margin-bottom:4px}.jam-fretboard-display .full-fretboard-diagram figcaption>div:first-child{display:none}.jam-fretboard-display .full-fretboard-legend{justify-content:flex-end;width:100%}.jam-fretboard-display .full-fretboard-scroll{overscroll-behavior-x:contain;scroll-behavior:smooth;scrollbar-width:none;touch-action:pan-x;-webkit-overflow-scrolling:touch;padding-bottom:3px}.jam-fretboard-display .full-fretboard-scroll::-webkit-scrollbar{display:none}.jam-fretboard-display .full-fretboard-grid{width:max-content;min-width:900px}.jam-playback-footer .jam-playback-status{grid-area:1/1}.jam-playback-footer .jam-transport{grid-area:2/1;justify-self:stretch}.site-footer{width:calc(100% - 24px);padding-bottom:calc(24px + env(safe-area-inset-bottom));grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;gap:8px;display:grid}.site-footer nav{display:contents}.site-footer nav a:first-child{justify-self:start}.site-footer nav a:not(:first-child):not(:last-child){justify-self:center}.site-footer nav a:last-child{justify-self:end}.landing-back-to-top{right:max(12px, env(safe-area-inset-right));width:40px;height:40px}.info-page-shell{width:calc(100% - 24px);padding-top:calc(var(--master-lab-nav-height) + 42px)}.pricing-comparison-heading{flex-direction:column;align-items:start;gap:8px;padding:18px}.pricing-comparison-heading>p{text-align:left;max-width:none}.pricing-table{min-width:680px}.pricing-login{padding:18px}.contact-form-row{grid-template-columns:minmax(0,1fr)}.lab-instrument-section{margin-top:28px}.lab-instrument-section+.lab-instrument-section{margin-top:26px}.lab-learning-path{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:26px}.lab-learning-path li{min-height:46px;padding:10px 11px}.lab-learning-path-separator{right:10px;transform:translateY(-50%)}.lab-learning-path-icon{width:28px;height:28px}.lab-directory,.lab-directory.is-piano{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.lab-learning-path li:nth-child(odd),.lab-directory-card:nth-child(odd){transform-origin:0 0}.lab-learning-path li:nth-child(2n),.lab-directory-card:nth-child(2n){transform-origin:100% 0}.lab-directory-card{min-height:174px;padding:11px}.lab-directory-card-header{gap:6px}.lab-directory-mark{width:28px;height:28px;font-size:.57rem}.lab-directory-status{letter-spacing:.04em;padding:4px 6px;font-size:.48rem}.lab-directory-card.is-locked .lab-directory-status{width:28px;height:28px}.lab-directory-copy{gap:0;margin-top:10px}.lab-directory-copy strong{font-size:.86rem;line-height:1.18}.lab-directory-copy>span{display:none}.lab-directory-visual{height:34px}.lab-directory-visual.has-instrument-graphic{height:46px}.lab-directory-open{letter-spacing:.045em;margin-top:8px;padding-top:8px;font-size:.53rem}.lab-directory-open span{font-size:.8rem}.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}.piano-playback-voicing-carousel{scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;gap:7px;padding-bottom:3px;display:flex;overflow:auto hidden}.piano-playback-voicing-carousel::-webkit-scrollbar{display:none}.piano-playback-voicing-carousel>article{scroll-snap-align:start;scroll-snap-stop:always;flex:0 0 100%;width:100%}.theory-playback-dock:not(.piano-theory-playback-dock) .theory-playback-voicings{scroll-snap-type:x proximity;scrollbar-color:var(--border) transparent;scrollbar-width:thin;-webkit-overflow-scrolling:touch;padding-bottom:4px;display:flex;overflow:auto hidden}.theory-playback-dock:not(.piano-theory-playback-dock) .theory-playback-voicings>article{scroll-snap-align:start;flex:0 0 min(78vw,300px)}.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,.chord-scale-relationships-heading{flex-direction:column;align-items:start;gap:10px}.theory-analysis-heading>span,.theory-melody-heading>span{text-align:left;max-width:none}.chord-scale-relationships-actions{justify-content:space-between;width:100%}.chord-scale-relationships-actions>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,.chord-scale-relationships{padding:14px}.chord-scale-relationship-grid{grid-template-columns:minmax(0,1fr)}.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,.piano-progression-dock-chords[data-chord-count="1"]{grid-template-columns:minmax(0,1fr)}.piano-progression-dock-chords[data-chord-count="2"],.piano-progression-dock-chords[data-chord-count="3"],.piano-progression-dock-chords[data-chord-count="4"],.piano-progression-dock-chords[data-chord-count="5"],.piano-progression-dock-chords[data-chord-count="6"],.piano-progression-dock-chords[data-chord-count="7"],.piano-progression-dock-chords[data-chord-count="8"]{grid-template-columns:repeat(2,minmax(0,1fr))}.piano-progression-dock-chunk>article:last-child:nth-child(odd){grid-column:1/-1}.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,.scale-chord-relationships,.scales-origin-panel,.scale-origin-map-panel,.scales-fretboard-panel{padding:14px}.scale-chord-relationship-row>header{grid-template-columns:auto minmax(0,1fr);gap:5px 10px}.scale-chord-relationship-row>header p,.scale-chord-relationship-row>header small{grid-column:1/-1}.scale-origin-flow{grid-template-columns:minmax(0,1fr)}.scale-origin-arrow{min-height:18px;transform:rotate(90deg)}.scale-origin-note-strip,.scale-origin-mode-description>div{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}.piano-scale-practice-dock .piano-practice-keyboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.piano-scale-practice-dock .piano-practice-keyboard-grid .scale-practice-tab-card.is-chord{grid-column:1/-1}.piano-scale-practice-dock .piano-practice-keyboard-grid .piano-keyboard{padding-bottom:0;overflow:hidden}.piano-scale-practice-dock .piano-practice-keyboard-grid .piano-keyboard.is-compact svg{width:100%;min-width:100%}.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}#step-1>.chord-grid,#step-2>.variation-grid,#step-3>.working-variation-list{grid-template-columns:repeat(2,minmax(0,1fr))}.progression-chord-placeholder{width:calc(50% - 4px)}.progression-add-placeholder{display:none}.progression-chord-placeholder-mobile{display:block}.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}.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}.piano-progression-playback-dock .piano-progression-dock-chords{scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:8px;padding-bottom:3px;display:flex;overflow:auto hidden}.piano-progression-playback-dock .piano-progression-dock-chords::-webkit-scrollbar{display:none}.piano-progression-playback-dock .piano-progression-dock-chunk>article{scroll-snap-align:center;scroll-snap-stop:always;flex:0 0 100%;width:100%;padding:10px}.piano-progression-playback-dock .piano-progression-dock-chunk>article:last-child:nth-child(odd){grid-column:auto}.piano-progression-playback-dock .piano-progression-card-heading{grid-template-columns:22px minmax(0,1fr);gap:3px 8px}.piano-progression-playback-dock .piano-progression-card-heading>span{width:22px;height:22px;font-size:.62rem}.piano-progression-playback-dock .piano-progression-card-heading strong{font-size:1rem}.piano-progression-playback-dock .piano-progression-card-heading small{font-size:.62rem}.piano-progression-playback-dock .piano-progression-dock-chords .piano-keyboard{width:100%;margin:8px 0;overflow:hidden}.piano-progression-playback-dock .piano-progression-dock-chords .piano-keyboard.is-compact svg{width:100%;min-width:100%;height:88px;max-height:88px}.piano-progression-playback-dock{max-height:84dvh}.piano-progression-playback-dock .piano-score-legend{display:none}.piano-progression-playback-dock .piano-score-page,.piano-progression-playback-dock .piano-score-page svg{height:174px}.piano-progression-playback-dock .piano-progression-dock-chords .piano-keyboard.is-compact svg{height:58px;max-height:58px}.piano-progression-playback-dock .piano-progression-dock-chunk>article{padding:7px}.piano-progression-playback-dock .piano-progression-dock-chords .piano-keyboard{margin:4px 0}.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 .progression-bar-notes{gap:2px;font-size:.48rem}.playback-dock .progression-bar-notes>span{min-width:17px;padding:2px 3px}.playback-dock .selected-progression-tab{padding:3px}.playback-dock .selected-progression-tab pre{padding:5px;font-size:.54rem;line-height:1.05}.progression-playback-dock:not(.piano-progression-playback-dock) .progression-fretboard-row{scroll-snap-type:x proximity;scrollbar-color:var(--border) transparent;scrollbar-width:thin;-webkit-overflow-scrolling:touch;padding-bottom:4px;display:flex;overflow:auto hidden}.progression-playback-dock:not(.piano-progression-playback-dock) .progression-fretboard-card{scroll-snap-align:center;flex:0 0 min(78vw,300px)}.progression-playback-dock:not(.piano-progression-playback-dock) .progression-fretboard-empty{width:min(78vw,300px);min-width:0}.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}.playback-bpm-control input{font-size:16px}.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}.playback-dock-footer>.transport-controls,.playback-dock-footer>.transport-controls.theory-playback-transport,.playback-dock-footer>.transport-controls.scale-practice-transport,.playback-dock-footer>.transport-controls.piano-progression-transport{grid-template-columns:none;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column}.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}.landing-back-to-top{transition:none}}@media (max-width:1000px){.landing-hero{min-height:0;padding-top:calc(var(--master-lab-nav-height) + 82px);grid-template-columns:minmax(0,1fr)}.landing-hero-copy{max-width:760px}.landing-hero-workbench{width:min(680px,100%);margin:10px auto 0;transform:none}.landing-theory-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.landing-instrument-story{grid-template-columns:minmax(0,1fr)}.landing-instrument-story:nth-child(2n) .landing-instrument-copy{order:initial}.landing-instrument-stage{width:min(680px,100%);margin:0 auto}.landing-projects{grid-template-columns:minmax(0,1fr)}.landing-project-copy{max-width:720px}}@media (max-width:800px){.landing-page{--landing-width:calc(100% - 24px)}.landing-hero{gap:44px;padding-bottom:42px}.landing-hero h1{font-size:clamp(3.15rem,14vw,5.6rem)}.landing-theory-path,.landing-instruments,.landing-projects{padding-top:78px;padding-bottom:78px}.landing-instrument-stories{gap:90px;margin-top:70px}.landing-lab-list{grid-template-columns:minmax(0,1fr)}.landing-project-visual{min-height:340px}}@media (max-width:520px){.landing-hero{padding-top:calc(var(--master-lab-nav-height) + 54px)}.landing-hero h1{font-size:clamp(2.85rem,14.4vw,4.5rem)}.landing-hero-lede{margin-top:22px;font-size:.94rem}.landing-hero-actions{flex-direction:column;align-items:stretch}.landing-primary-action,.landing-secondary-action{width:100%}.landing-proof{gap:9px;display:grid}.landing-hero-workbench{min-height:410px;padding:48px 12px 24px}.landing-workbench-topline{top:15px;left:12px;right:12px}.landing-hero-visual-card{width:94%;min-height:128px;padding:10px}.landing-hero-visual-card .lab-directory-visual{height:73px}.landing-hero-visual-card small{display:none}.landing-workbench-formula{width:91%}.landing-workbench-status{right:14px}.landing-section-heading h2,.landing-project-copy h2,.landing-final-cta h2{font-size:clamp(2rem,11vw,3.3rem)}.landing-theory-steps{grid-template-columns:minmax(0,1fr)}.landing-theory-step{min-height:210px;padding:20px}.landing-theory-step h3{margin-top:28px}.landing-instrument-title{gap:12px}.landing-instrument-title>span{width:40px;height:40px}.landing-instrument-title h3{font-size:1.85rem}.landing-instrument-stage{min-height:380px}.landing-stage-card{width:92%;min-height:175px;padding:12px}.landing-stage-card .lab-directory-visual{height:110px;margin-top:10px}.landing-stage-theory-note{left:37%}.landing-project-visual{min-height:300px;padding:50px 14px 30px}.landing-project-rail{gap:5px}.landing-project-rail span{min-height:62px;font-size:.9rem}.landing-melody-line{height:110px}.landing-final-cta{width:calc(100% - 24px);margin-top:35px;margin-bottom:60px;padding-left:18px;padding-right:18px}}@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}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
