:root{color:#f4ede3;font-synthesis:none;--paper:#f4ede3;--muted:#aa9c91;--line:#40352e;--panel:#211b18;--orange:#e59a5d;--gold:#d8bc7b;--green:#75b89a;background:#15110f;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 8% -10%,#4b2e20 0,#0000 31rem),linear-gradient(135deg,#181310 0%,#100e0d 100%);min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{color:var(--paper);cursor:pointer;background:#3b2d25;border:1px solid #5d4638;border-radius:.65rem;padding:.7rem 1rem;font-weight:750}button:hover:not(:disabled){border-color:var(--orange);background:#493328}button:focus-visible,input:focus-visible,select:focus-visible,tr:focus-visible{outline:2px solid var(--orange);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.45}.app-shell{width:min(100% - 2rem,98rem);margin:0 auto;padding:1.5rem 0 4rem}.masthead{justify-content:space-between;align-items:center;gap:2rem;margin-bottom:1.5rem;display:flex}.brand-lockup,.engine-strip,.panel-heading,.action-row{align-items:center;gap:1rem;display:flex}.brand-mark{aspect-ratio:1;background:linear-gradient(145deg,#e49a5b,#7e472d);border:1px solid #76513b;border-radius:50% 50% 48% 52%;place-items:center;width:3.2rem;display:grid;transform:rotate(-4deg);box-shadow:0 0 0 5px #211713,0 0 2rem #8c482a55}.brand-mark span{font-family:Georgia,serif;font-weight:900;transform:rotate(4deg)}.eyebrow{color:var(--orange);letter-spacing:.19em;margin:0 0 .3rem;font-size:.69rem;font-weight:850}h1,h2{margin:0;font-family:Georgia,Times New Roman,serif;font-weight:500}h1{letter-spacing:-.045em;font-size:clamp(2rem,4vw,3.5rem)}h2{font-size:1.55rem}.engine-strip{border:1px solid var(--line);background:#1e1916cc;border-radius:1rem;padding:.7rem .8rem .7rem 1rem;box-shadow:0 1rem 3rem #0005}.engine-strip div{min-width:13rem;display:grid}.engine-strip small,td small,.job-card small{color:var(--muted)}.status-dot,.job-light{background:#8a7669;border-radius:50%;width:.65rem;height:.65rem;box-shadow:0 0 0 4px #8a76691c}.status-dot.online,.job-light.busy{background:var(--green);box-shadow:0 0 .8rem #75b89a}.quiet-button{background:0 0;padding:.5rem .7rem}.problem-banner,.inline-problem{color:#ffd7d1;background:#47231f;border:1px solid #8c4a42;border-radius:.75rem;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.8rem 1rem;display:flex}.problem-banner button{background:0 0;border:0;padding:0 .3rem;font-size:1.4rem}.state-card{border:1px solid var(--line);background:var(--panel);text-align:left;border-radius:1rem;place-content:center;align-items:center;gap:1.2rem;min-height:17rem;display:flex}.state-card p{color:var(--muted);margin-bottom:0}.problem-card{text-align:center;flex-direction:column}.spinner{border:2px solid var(--line);border-top-color:var(--orange);border-radius:50%;width:1.5rem;height:1.5rem;animation:.8s linear infinite rotate}.summary-grid{grid-template-columns:repeat(4,1fr);gap:.8rem;margin-bottom:.8rem;display:grid}.summary-grid article{border:1px solid var(--line);background:linear-gradient(145deg,#28201c,#1c1715);border-radius:.9rem;align-content:center;min-height:7.3rem;padding:1rem 1.2rem;display:grid;box-shadow:inset 0 1px #ffffff08}.summary-grid span,.summary-grid small{color:var(--muted);font-size:.75rem}.summary-grid strong{color:var(--gold);font-family:Georgia,serif;font-size:2.25rem;font-weight:500}.generation-card{border-color:#704b34!important}.workbench,.detail-panel,.ingest-panel{border:1px solid var(--line);background:#1c1715e8;border-radius:1rem;overflow:hidden;box-shadow:0 1.2rem 3rem #0004}.toolbar{border-bottom:1px solid var(--line);background:#261e1a;grid-template-columns:minmax(15rem,2fr) repeat(3,minmax(8rem,1fr)) auto;align-items:end;gap:.7rem;padding:1rem;display:grid}.toolbar label{color:var(--muted);gap:.35rem;font-size:.72rem;font-weight:750;display:grid}input,select{width:100%;color:var(--paper);background:#161210;border:1px solid #4a3c34;border-radius:.6rem;padding:.7rem .75rem}input::placeholder{color:#776b63}.refresh-button{white-space:nowrap}.spin{animation:.8s linear infinite rotate;display:inline-block}.table-wrap{max-height:35rem;overflow:auto}table{border-collapse:separate;border-spacing:0;width:100%;font-size:.82rem}th{z-index:2;color:#c8b8ac;text-align:left;letter-spacing:.08em;text-transform:uppercase;background:#2b221e;border-bottom:1px solid #59463b;padding:.75rem .8rem;font-size:.68rem;position:sticky;top:0}td{color:#e5dcd3;vertical-align:middle;border-bottom:1px solid #332a25;padding:.72rem .8rem}td strong,td small{display:block}td small{white-space:nowrap;text-overflow:ellipsis;max-width:13rem;margin-top:.2rem;font-size:.68rem;overflow:hidden}tbody tr{cursor:pointer;transition:background .13s,box-shadow .13s}tbody tr:hover{background:#2c211c}tbody tr.selected{box-shadow:inset 3px 0 var(--orange);background:#432b20}tbody tr.row-problem{background-image:linear-gradient(90deg,#642b241e,#0000)}.truncate{white-space:nowrap;text-overflow:ellipsis;max-width:15rem;display:block;overflow:hidden}.source-pill,.status-pill{letter-spacing:.05em;text-transform:uppercase;border:1px solid #675246;border-radius:999px;width:fit-content;padding:.18rem .5rem;font-size:.64rem;font-weight:850;display:inline-flex}.source-pill.local{color:#f1b77e;border-color:#845834}.source-pill.youtube{color:#e79c92;border-color:#75443e}.status-pill.banked,.status-pill.succeeded{color:#9bd5b8;background:#274a3a55;border-color:#3e765d}.status-pill.imported,.status-pill.running{color:#e7c779;background:#4f421d55;border-color:#796334}.status-pill.annotated{color:#b9a5e7;background:#3f335655;border-color:#665487}.status-pill.failed{color:#f1a398;background:#542b2655;border-color:#88493f}.error-ink{color:#f09a8e!important}.empty-row td{text-align:center;color:var(--muted);cursor:default;padding:3rem}.table-footer{color:var(--muted);background:#241d19;justify-content:space-between;gap:1rem;padding:.8rem 1rem;font-size:.75rem;display:flex}.lower-grid{grid-template-columns:1.2fr .8fr;gap:.8rem;margin-top:.8rem;display:grid}.lower-grid.solo{grid-template-columns:1fr}.detail-panel,.ingest-panel{padding:1.2rem;overflow:visible}.panel-heading{justify-content:space-between;margin-bottom:1rem}dl{grid-template-columns:repeat(2,1fr);gap:.7rem;margin:0 0 1rem;display:grid}dl div{background:#171311;border:1px solid #342b26;border-radius:.65rem;padding:.7rem}dl .wide{grid-column:1/-1}dt{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.66rem}dd{overflow-wrap:anywhere;margin:.25rem 0 0}.muted,.ingest-panel>p{color:var(--muted);line-height:1.55}.upload-drop{cursor:pointer;text-align:center;background:#2d201a77;border:1px dashed #80583f;border-radius:.8rem;align-content:center;place-items:center;gap:.25rem;min-height:9rem;display:grid}.upload-drop:hover:not(.disabled){border-color:var(--orange);background:#38251c}.upload-drop.disabled{opacity:.55;cursor:not-allowed}.upload-drop input{opacity:0;width:1px;height:1px;position:absolute}.upload-drop small{color:var(--muted)}.upload-icon{color:var(--orange);font-size:2rem;line-height:1}.job-card{border:1px solid var(--line);background:#171311;border-radius:.7rem;gap:.55rem;margin-top:.8rem;padding:.8rem;display:grid}.job-card>div{align-items:center;gap:.6rem;display:flex}code{color:#e9c38c;overflow-wrap:anywhere;font-family:SFMono-Regular,Consolas,monospace}.progress-log{color:#c4b5aa;background:#0f0d0c;border-radius:.5rem;max-height:9rem;margin:0;padding:.55rem .55rem .55rem 1.8rem;font-family:SFMono-Regular,Consolas,monospace;font-size:.7rem;overflow:auto}.modal-backdrop{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#090706d9;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.json-modal{background:#1b1613;border:1px solid #76513d;border-radius:1rem;grid-template-rows:auto 1fr;width:min(60rem,100%);max-height:88vh;display:grid;overflow:hidden;box-shadow:0 2rem 6rem #000a}.json-modal header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:1rem;display:flex}.json-modal header button{padding:.2rem .6rem;font-size:1.4rem}.json-modal pre{color:#d8c9bd;background:#100d0c;margin:0;padding:1rem;font-size:.76rem;line-height:1.55;overflow:auto}.wall-stage{border:1px solid var(--line);background:radial-gradient(circle at 50% 0,#3c2c2455,#0000 55%),#100e0d;border-radius:1rem;flex-direction:column;min-width:0;height:100%;min-height:0;padding:.8rem;display:flex;overflow:auto}.wall-stage:focus-visible{outline:2px solid var(--orange);outline-offset:-3px}.wall-drawing-box{flex:1;min-width:0;min-height:0}.wall-inline-notice{overflow-wrap:anywhere;color:#f1b4a9;background:#40231f;border:1px solid #765046;border-radius:.65rem;flex:none;margin-bottom:.6rem;padding:.55rem .7rem;font-size:.75rem}.wall-notice{min-height:0;color:var(--muted);text-align:center;overflow-wrap:anywhere;flex:1;place-items:center;display:grid}.practice-wall{max-width:none;display:block}.board-surface{fill:#201a17;stroke:#4a3b33;stroke-width:1px}.halo{fill:none;stroke-width:3px;filter:drop-shadow(0 0 6px)}.next-halo,.second-halo{stroke-width:2px;filter:none}.next-halo.glow,.second-halo.glow{filter:drop-shadow(0 0 6px)}.board-symbol{fill:#f3e9df;font:700 20px Georgia,serif}.board-badge,.board-role,.board-notice{fill:#a9998e;letter-spacing:.08em;font:700 8px Inter,sans-serif}.board-role{fill:#d49a67}.shape-badge{fill:#c2b2a6;font:700 7px Inter,sans-serif}.string-line{stroke:#817065;stroke-width:.65px}.fret-line{stroke:#3f342e;stroke-width:.65px}.fret-line.nut-line{stroke:#c8b7a8;stroke-width:2px}.fret-number{fill:#75675f;font:6px Inter,sans-serif}.shape-mark{fill:#d2bd95;stroke:#191411;stroke-width:1.4px}.role-root{fill:#efaa72}.role-third,.role-major-third,.role-minor-third{fill:#e3cc82}.role-fifth,.role-perfect-fifth{fill:#83bea1}.role-seventh,.role-minor-seventh,.role-major-seventh{fill:#a996da}.mark-label{fill:#17110f;text-anchor:middle;pointer-events:none;font:800 7px Inter,sans-serif}.muted-mark{fill:#76675e;font:12px Inter,sans-serif}.path-mark{fill:#e6bf73}.lick-zone{fill:#8d6cc31a;stroke:#a991d2;stroke-width:1px;stroke-dasharray:4 3}.lick-note{fill:#a991d2}.tier-chord-tone{fill:#e6bf73}.tier-accent{fill:#f18d7c}.lick-entry{fill:none;stroke:#86c9a6;stroke-width:1.5px}.lick-stop{fill:none;stroke:#f18d7c;stroke-width:1.5px}.lick-caption{fill:#b7a6c8;letter-spacing:.05em;font:7px Inter,sans-serif}.web-mark{stroke:none}.anticipation-mark{fill:none;stroke-width:1.5px}.caged-mark{fill:#6f625a;text-anchor:end;font:700 8px Georgia,serif}.refusal,.global-refusal{fill:#f09a8e;font:8px Inter,sans-serif}.global-refusal{font-size:10px}@keyframes rotate{to{transform:rotate(360deg)}}@media (width<=70rem){.summary-grid{grid-template-columns:repeat(2,1fr)}.toolbar{grid-template-columns:2fr 1fr 1fr}.toolbar label:nth-of-type(4){grid-column:1/2}.lower-grid{grid-template-columns:1fr}}@media (width<=45rem){.app-shell{width:min(100% - 1rem,98rem);padding-top:.7rem}.masthead{flex-direction:column;align-items:flex-start}.engine-strip{width:100%}.engine-strip div{flex:1;min-width:0}.summary-grid{grid-template-columns:repeat(2,1fr)}.toolbar{grid-template-columns:1fr 1fr}.search-field{grid-column:1/-1}.refresh-button{width:100%}.table-wrap{max-height:28rem}th,td{padding:.65rem}th:nth-child(4),td:nth-child(4),th:nth-child(6),td:nth-child(6),th:nth-child(8),td:nth-child(8){display:none}.table-footer{flex-direction:column}dl{grid-template-columns:1fr}dl .wide{grid-column:auto}.action-row{flex-direction:column;align-items:flex-start}}.practice-page{display:contents}.practice-notices{gap:8px;display:grid}.practice-notices:empty{display:none}.practice-heading{border:1px solid var(--line);background:#1c1715e8;border-radius:.75rem;align-items:center;gap:8px;min-height:44px;padding:4px 8px;display:flex}.practice-heading .brand-mark{flex:0 0 28px;width:28px;font-size:.7rem;box-shadow:0 0 0 3px #211713}.practice-heading .eyebrow{white-space:nowrap;margin:0}.practice-heading h2{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:1.05rem;overflow:hidden}.practice-heading small{color:var(--muted);white-space:nowrap;font-size:.68rem;display:none}.media-state{color:var(--muted);letter-spacing:.08em;white-space:nowrap;border:1px solid #655248;border-radius:999px;padding:.3rem .6rem;font-size:.66rem;font-weight:850}.media-state.active{color:#a8ddc2;border-color:#47785f;box-shadow:0 0 1rem #75b89a33}.practice-rail{flex-direction:column;gap:8px;min-width:0;min-height:0;display:flex}.practice-rail>*{flex:none}.practice-controls{border:1px solid var(--line);background:#211a17;border-radius:.75rem;grid-template-columns:minmax(0,1fr);gap:8px;padding:8px;display:grid}.practice-controls fieldset{border:1px solid #4c3c33;border-radius:.6rem;min-width:0;margin:0;padding:4px 6px 6px}.practice-controls legend{color:var(--muted);letter-spacing:.09em;text-transform:uppercase;padding:0 .3rem;font-size:.62rem;font-weight:800}.segments{gap:.25rem;display:flex}.segments button{color:#b7a89e;background:#171311;border-color:#3a2f29;flex:1;min-width:0;padding:.45rem .3rem;font-size:.68rem}.segments button[aria-pressed=true]{color:#1b1512;background:var(--gold);border-color:#f5dda3;box-shadow:0 0 .8rem #d8bc7b33}.listen-row{align-items:center;gap:.6rem;min-width:0;margin-top:.4rem;display:flex}.listen-row label{min-width:0;color:var(--muted);align-items:center;gap:.4rem;font-size:.68rem;display:flex}.listen-row select{min-width:0;max-width:11rem;color:inherit;background:#171311;border:1px solid #4c3c33;border-radius:.35rem;padding:.25rem .35rem}.listen-row output{min-width:0;color:var(--muted);overflow-wrap:anywhere;flex:1;font-size:.68rem}.listen-row output.chord-match{color:var(--gold);text-shadow:0 0 .7rem #ff8c42;font-weight:850}.youtube-player-panel{min-width:0;padding:var(--video-padding,.7rem);border:1px solid var(--line);background:#1c1715e8;border-radius:.75rem;gap:.55rem;display:grid}.youtube-player-viewport{aspect-ratio:16/9;background:#090807;border-radius:.6rem;width:100%;min-width:200px;min-height:200px;overflow:hidden}.youtube-player-viewport>div,.youtube-player-viewport iframe{border:0;width:100%;height:100%;display:block}.youtube-player-problem{color:#ffd7d1;background:#47231f;border:1px solid #8c4a42;border-radius:.65rem;padding:.7rem .8rem}.practice-wall-host{min-width:0;min-height:0}.practice-footer{border:1px solid var(--line);min-height:48px;color:var(--muted);background:#1c1715e8;border-radius:.75rem;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:6px 8px;font-size:.7rem;display:flex}.transport-button{color:#1c1511;background:var(--orange);letter-spacing:.06em;white-space:nowrap;text-overflow:ellipsis;border-color:#ffc18e;flex:none;width:7.5rem;min-height:36px;padding:0 .5rem;overflow:hidden}.bar-time{min-width:6.5rem;color:var(--paper);font-variant-numeric:tabular-nums;white-space:nowrap}.transport-meter{background:#382c26;border-radius:999px;flex:8rem;min-width:4rem;height:6px;overflow:hidden}.transport-meter span{background:linear-gradient(90deg, var(--orange), var(--gold));height:100%;transition:width .12s linear;display:block}.bar-wall-status{white-space:nowrap}.bar-metrics{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:10.5rem}.bar-engine{white-space:nowrap;align-items:center;gap:.45rem;display:inline-flex}.settings-popover{position:relative}.settings-popover summary{width:36px;height:36px;color:var(--paper);cursor:pointer;background:#3b2d25;border:1px solid #5d4638;border-radius:.55rem;place-items:center;font-size:1.05rem;list-style:none;display:grid}.settings-popover summary::-webkit-details-marker{display:none}.settings-popover summary:hover{border-color:var(--orange);background:#493328}.settings-popover summary:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.settings-card{z-index:6;width:14rem;max-width:calc(100vw - 32px);color:var(--muted);background:#211916;border:1px solid #77553f;border-radius:.75rem;gap:.5rem;padding:.7rem .8rem;display:grid;position:absolute;bottom:calc(100% + .55rem);right:0;box-shadow:0 1rem 3rem #0009}.settings-card label{grid-template-columns:1fr 2.2rem;align-items:center;gap:.5rem;display:grid}.settings-card input[type=color]{width:2.2rem;height:2.2rem;padding:.15rem}.settings-card code{grid-column:1/-1;font-size:.7rem}.settings-card small{font-size:.66rem}.exit-button{padding:.4rem .6rem}.app-shell.practice-shell{--video-padding:.7rem;--wide-video-width:480px;--rail-width:calc(var(--wide-video-width) + 2 * var(--video-padding) + 2px);grid-template-columns:minmax(0,1fr);gap:8px;width:calc(100% - 1rem);max-width:none;padding:8px 0;display:grid}.practice-shell>*,.practice-shell .practice-page>*{min-width:0}.practice-shell .problem-banner,.practice-shell .inline-problem{overflow-wrap:anywhere;margin:0}@media (width>=90.001rem){.practice-heading small{display:inline}}@media (width>=70.001rem){.app-shell.practice-shell{grid-template-columns:minmax(0, 1fr) var(--rail-width);grid-template-rows:auto auto auto minmax(160px,1fr) auto;gap:0 8px;height:100dvh}.practice-shell .practice-heading{grid-area:1/1/auto/-1;margin-bottom:8px}.practice-shell>.app-problem{grid-area:2/1;margin-bottom:8px}.practice-shell .practice-notices{grid-area:3/1}.practice-shell .practice-notices>*{margin-bottom:8px}.practice-shell .practice-wall-host{grid-area:4/1}.practice-shell .practice-rail{grid-area:2/2/5;overflow:auto}.practice-shell .practice-footer{grid-area:5/1/auto/-1;margin-top:8px}.practice-shell .youtube-player-viewport{min-width:var(--wide-video-width);min-height:270px}}@media (width<=45rem){.practice-heading{flex-wrap:wrap;row-gap:4px}.practice-heading h2{flex:12rem}}@media (width<=70rem){.practice-shell .wall-stage{height:auto}.practice-shell .wall-drawing-box{min-height:var(--wall-min-height)}.bar-wall-status,.bar-metrics,.bar-engine-text{display:none}}@media (prefers-reduced-motion:reduce){.transport-meter span{transition:none}}
