:root{--ink:#F4EFE6;--muted:#B3C6BA;--paper:#001C16;--surface:#082D24;--line:#36574A;--accent:#FF7A00;--accent-dark:#E76B00;--green:#9DCCAC;--stage:#001710;--stage-soft:#06271F;--field:#002219;--button:#133A2D;--button-hover:#214D3B;--diagram-paper:#001C16;--diagram-ink:#F4EFE6;--diagram-muted:#A3BEAD;color-scheme:dark}*{box-sizing:border-box}body,html{min-height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-cantarell),ui-sans-serif,sans-serif;letter-spacing:0}button,input,select{font:inherit;letter-spacing:0}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}button:focus-visible,input[type=checkbox]:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.home-shell,.lobby-shell{min-height:100vh;display:flex;flex-direction:column}.brand-bar,.room-header{min-height:72px;display:flex;align-items:center;border-bottom:1px solid var(--line)}.brand-bar{width:min(1180px,calc(100% - 48px));margin:0 auto;gap:12px}.brand-mark{width:42px;height:42px;display:grid;place-items:center;color:#001C16;background:var(--accent);border-radius:8px}.brand-name,.brand-subtitle{margin:0}.brand-name{font-size:15px;font-weight:750}.brand-subtitle{margin-top:2px}.brand-subtitle,.version-badge{color:var(--muted);font-size:12px}.version-badge{margin-left:auto;padding:5px 8px;border:1px solid var(--line);border-radius:5px;background:var(--surface);font-weight:700}.home-content{width:min(1180px,calc(100% - 48px));margin:auto;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);align-items:center;gap:clamp(48px,8vw,112px);padding:72px 0}.eyebrow{margin:0 0 14px;color:var(--accent-dark);font-size:13px}.eyebrow,.intro-copy h1,.lobby-copy h1{font-weight:800;text-transform:uppercase}.intro-copy h1,.lobby-copy h1{max-width:760px;margin:0;font-family:var(--font-manrope),sans-serif;line-height:1.06}.intro-copy h1{font-size:64px}.intro-text,.lobby-copy>p:last-of-type{max-width:580px;margin:24px 0 0;color:var(--muted);font-size:18px;line-height:1.6}.feature-row{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:40px}.feature-item{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:14px;font-weight:650}.feature-item svg{color:var(--green)}.join-panel,.start-panel{border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:none}.start-panel{padding:32px}.panel-heading{margin-bottom:28px}.panel-step{display:block;margin-bottom:8px;color:var(--green);font-size:12px;font-weight:800;text-transform:uppercase}.panel-heading h2{margin:0;font-size:25px;line-height:1.2}label{display:block;margin-bottom:8px;font-size:13px;font-weight:750}input{width:100%;height:50px;padding:0 14px;border:1px solid var(--line);border-radius:6px;outline:none;color:var(--ink);background:var(--field)}input:focus{border-color:var(--green);box-shadow:none;outline:2px solid var(--accent);outline-offset:2px}.primary-button{width:100%;min-height:50px;display:flex;align-items:center;justify-content:center;gap:10px;margin-top:14px;padding:12px 18px;border:0;border-radius:6px;color:#001C16;background:var(--accent);font-weight:600}.primary-button:hover{background:var(--accent-dark)}.panel-note{margin:14px 0 0;line-height:1.45;text-align:center}.home-footer,.panel-note{color:var(--muted);font-size:12px}.home-footer{width:min(1180px,calc(100% - 48px));margin:0 auto;padding:18px 0 24px;border-top:1px solid var(--line)}.room-header{flex:0 0 auto;padding:0 24px;gap:16px}.lobby-header{background:var(--paper)}.room-brand{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:800}.room-brand svg{color:var(--accent)}.room-code{margin-left:auto;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.icon-button{width:38px;height:38px;display:grid;place-items:center;border:0;border-radius:6px}.icon-button.light{color:var(--ink);background:var(--button)}.lobby-content{width:min(1120px,calc(100% - 48px));margin:auto;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);align-items:center;gap:clamp(48px,8vw,100px);padding:64px 0}.lobby-copy h1{font-size:48px}.share-box{margin-top:36px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.share-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:6px;color:var(--green);background:var(--button)}.share-copy{min-width:0}.share-copy span,.share-copy strong{display:block}.share-copy span{margin-bottom:4px;color:var(--muted);font-size:11px;font-weight:700}.share-copy strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.copy-button,.header-action{min-height:38px;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:var(--surface);font-size:12px;font-weight:750}.join-panel{padding:22px}.device-preview{aspect-ratio:4/3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;margin-bottom:22px;border-radius:6px;color:var(--muted);background:var(--stage-soft);font-size:12px}.preview-ring{width:72px;height:72px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%}.form-error{margin:12px 0 0;color:#ffc5b7;font-size:13px;line-height:1.4}.livekit-root{min-height:100vh;background:var(--stage);--lk-font-family:var(--font-cantarell),sans-serif;font-family:var(--font-cantarell),sans-serif}.call-shell{height:100vh;height:100dvh;min-height:480px;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:64px minmax(0,1fr) auto;color:var(--ink);background:var(--stage)}.call-header{min-height:64px;height:64px;border-color:var(--line);background:var(--paper)}.call-shell.has-lesson-tools{grid-template-rows:64px auto minmax(0,1fr) auto}.score-tools{gap:10px 16px;max-height:34dvh;overflow-y:auto;align-content:start}.score-tools-heading{display:flex;align-items:center;gap:10px;width:100%;min-width:0}.score-tools-heading strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-tools-heading>button{margin-left:auto;flex-shrink:0}.score-field,.score-file-actions,.score-loop,.score-paging,.score-playback{display:flex;align-items:center;gap:8px}.score-field select{max-width:210px}.score-tools select{width:auto;min-width:56px;height:40px;padding:0 8px;margin:0;border:1px solid var(--line);border-radius:6px;background:var(--stage);color:var(--ink)}.score-tools-help{flex-basis:100%;margin:0;line-height:1.4}.score-paging>span,.score-student-status,.score-tools-help{color:var(--muted);font-size:13px}.score-sizing input{width:100px}.score-overlay{display:flex;flex-direction:column;background:#001C16;color:#F4EFE6;border:1px solid var(--line);overflow:hidden;border-radius:0;z-index:12}.score-overlay[hidden]{display:none}.score-overlay .overlay-drag-handle{top:auto;bottom:2px;left:2px;width:28px;height:28px}.score-board-heading{display:flex;gap:10px;align-items:center;flex-shrink:0;min-height:28px;padding:0 6px;font-size:11px}.score-board-heading strong{color:#FF7A00;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-board-heading>span{margin-left:auto;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.score-board-heading>button{flex-shrink:0;display:grid;place-items:center;width:28px;height:28px;border:0;color:#F4EFE6;background:transparent}.score-viewport{position:relative;min-height:0;flex:1 1;width:100%;overflow:hidden}.score-engraving{position:absolute;width:1000px;transform-origin:top left}.score-engraving svg{display:block}.score-visual-marker-space{position:absolute;transform-origin:top left;pointer-events:none}.score-visual-marker{position:absolute;background:rgb(255 122 0/18%);border-left:2px solid #ff7a00}.score-engraving .at-cursor-bar{background:rgb(255 122 0/12%)}.score-engraving .at-cursor-beat{background:#FF7A00;width:3px}.score-engraving .at-highlight *{fill:#FF7A00;stroke:#FF7A00}.score-render-status{position:absolute;inset:0;display:grid;place-items:center;background:#001C16;font-size:13px}.score-waiting{position:absolute;left:5%;right:5%;bottom:5%;padding:12px;background:var(--paper);color:var(--ink);text-align:center;font-size:13px}.score-reader{position:fixed;z-index:80;inset:68px 16px 94px;display:flex;flex-direction:column;padding:16px;border:1px solid var(--line);border-radius:8px;background:#001C16;color:#F4EFE6}.score-reader>header{display:flex;align-items:center;gap:12px}.score-reader>header>strong{color:#FF7A00;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-reader>header>span{margin-left:auto;white-space:nowrap;font-size:13px}.score-reader>footer{display:flex;flex-wrap:wrap;gap:6px;color:var(--muted);font-size:12px}.score-reader>footer>span:last-child{margin-left:auto}@media (max-width:820px){.score-tools{max-height:36dvh;padding:8px 14px}.score-field select{max-width:160px}.score-reader{inset:68px 6px 86px;padding:8px}.score-reader>header{flex-wrap:wrap;gap:6px}.score-reader>header>strong{max-width:calc(100% - 50px)}.score-reader>header>span{order:3;margin-left:0;width:100%}.score-reader>header>button{margin-left:auto}}@media (max-width:480px){.call-header{gap:4px;padding-left:8px;padding-right:8px}.call-header .participant-count,.call-header>.room-brand{display:none}.call-header .header-action{width:34px;min-width:34px;padding:6px;margin-left:0}.call-header .call-meta{margin-right:auto}.score-board-heading{min-height:24px;gap:4px;font-size:8px}.score-board-heading>button{width:28px;height:24px}}.header-action.is-selected{color:var(--accent);border-color:var(--accent)}.lesson-tools{display:flex;align-items:center;flex-wrap:wrap;gap:20px;padding:12px 24px;border-bottom:1px solid var(--line);background:var(--stage-soft);color-scheme:dark}.chord-picker,.chord-sizing{display:flex;align-items:center;gap:12px}.lesson-tools label{margin:0;white-space:nowrap;color:var(--ink)}.chord-picker select{width:86px;height:40px;padding:0 10px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:var(--stage);font-size:16px}.chord-sizing input{width:140px;height:40px;padding:0;border:0;box-shadow:none;accent-color:var(--accent);cursor:pointer}.chord-tool-actions{display:flex;gap:8px;margin-left:auto}.lesson-tool-button{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);border-radius:6px;background:var(--button);color:var(--ink)}.lesson-tool-button:hover{background:var(--button-hover)}.lesson-tool-button[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.chord-sync-error{flex-basis:100%;margin:0;color:#ffc5b7;font-size:13px}.camera-frame{min-width:0;min-height:0;display:grid;place-items:center;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--stage);container-type:size}.camera-scene{position:relative;width:min(100cqw,calc(100cqh * 16 / 9));aspect-ratio:16/9}.camera-scene>.participant-tile{width:100%;height:100%;border:0;border-radius:0}.teaching-overlay{position:absolute;z-index:2;border-radius:0;overflow:hidden}.chord-diagram{font-family:var(--font-montserrat),sans-serif}.chord-diagram,.overlay-drag-handle{display:block;width:100%;height:100%}.overlay-drag-handle{position:absolute;inset:0;padding:0;border:0;color:var(--muted);background:transparent;cursor:grab;touch-action:none}.overlay-drag-handle:active{cursor:grabbing}.overlay-drag-handle svg{position:absolute;top:5px;left:5px}.overlay-drag-handle:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}@media (max-width:580px){.header-action-text{display:none}.call-header .header-action{margin-left:0}.call-header .call-meta{margin-left:auto}.lesson-tools{padding:10px 14px;gap:10px}.chord-picker{gap:8px}.chord-picker select{width:72px}.chord-tool-actions{gap:5px}.chord-sizing{order:1;width:100%}.chord-sizing input{flex:1 1;min-width:0}}.call-meta{display:flex;align-items:center;gap:10px;margin-left:auto}.connection-pill,.participant-count{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;font-weight:700}.status-dot{width:7px;height:7px;border-radius:50%;background:#e3a337}.connection-pill.connected .status-dot{background:#39b982}.header-action{border-color:var(--line);color:var(--ink);background:var(--button)}.room-code.compact{margin-left:0;color:var(--muted)}.video-stage{min-height:0;position:relative;padding:18px}.video-stage.is-sharing{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:12px}.screen-stage{display:grid;grid-auto-rows:minmax(0,1fr);min-width:0;min-height:0;gap:12px}.participant-tile.screen-tile video{object-fit:contain}.screen-tile[data-lk-local-participant=true] video{transform:none}.is-sharing .video-grid{min-height:0;grid-template-columns:1fr;grid-template-rows:repeat(2,minmax(0,1fr));align-content:start}.video-grid{width:100%;height:100%;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.video-grid[data-participants="1"]{grid-template-columns:minmax(0,1fr)}.participant-tile{min-width:0;min-height:0;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--stage-soft)}.call-shell .participant-tile video{width:100%;height:100%;object-fit:contain}.participant-tile[data-lk-local-participant=true][data-lk-source=camera] video{transform:scaleX(-1)}.control-error,.waiting-banner{position:absolute;left:50%;transform:translateX(-50%);z-index:3}.waiting-banner{bottom:34px;display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:var(--surface);font-size:12px;font-weight:700;max-width:calc(100% - 32px)}.control-error{top:30px;margin:0;display:flex;align-items:flex-start;gap:12px;width:max-content;max-width:min(600px,calc(100% - 32px));padding:12px;border-radius:5px;color:#ffe8e3;background:#8e3425;font-size:12px;line-height:1.5;overflow-wrap:anywhere}.error-dismiss{flex:0 0 28px;width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:4px;color:inherit;background:#71291e}.start-audio-button{position:absolute;inset:auto auto 24px 50%;transform:translateX(-50%);z-index:4;padding:12px 18px;border:1px solid var(--accent);border-radius:6px;color:var(--ink);background:var(--accent-dark)}.call-workspace{display:grid;min-height:0;min-width:0}.call-workspace.studio-open{grid-template-columns:minmax(0,1fr) 320px}.studio-scene{inset:0;isolation:isolate;z-index:0;background:var(--stage)}.scene-video,.studio-scene{position:absolute;overflow:hidden}.scene-video{background:var(--stage-soft)}.scene-video>.participant-tile,.scene-video>video{width:100%;height:100%;border:0;border-radius:0}.scene-video>video{display:block;object-fit:cover;transform:scale(calc(var(--video-zoom, 1) * var(--video-mirror, 1)),var(--video-zoom,1));transform-origin:var(--video-x,50%) var(--video-y,50%)}.scene-video[data-fit=contain]>video{object-fit:contain}.studio-zoom-actions{display:flex;flex-wrap:wrap;gap:6px}.studio-zoom-actions button{flex:1 1 105px;min-height:38px;border:1px solid var(--line);border-radius:5px;background:var(--stage);color:var(--ink);font-size:12px}.studio-zoom-actions button:hover,.studio-zoom-actions button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.studio-zoom-range{display:grid;gap:4px;margin:10px 0;font-size:12px}.studio-zoom-range input{width:100%;accent-color:var(--accent)}.studio-scene.is-editing .scene-video{outline:1px solid var(--line);outline-offset:-1px}.studio-scene.is-editing .scene-video.is-selected{outline:2px solid var(--accent);outline-offset:-2px}.scene-no-video{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-size:11px;text-align:center;padding:6px;color:var(--muted)}.scene-source-label{top:3px;left:26px;max-width:calc(100% - 32px);padding:2px 4px;background:var(--paper);font-size:11px;pointer-events:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-drag,.scene-source-label{position:absolute;color:var(--ink)}.scene-drag{inset:0;padding:4px;border:0;background:transparent;text-align:left;display:flex;align-items:flex-start;cursor:grab;touch-action:none}.scene-drag>svg{background:var(--paper)}.scene-drag:active{cursor:grabbing}.scene-drag:disabled{cursor:default}.scene-resize{position:absolute;bottom:0;right:0;width:28px;height:28px;display:grid;place-items:center;padding:0;border:0;background:var(--accent);color:var(--paper);cursor:nwse-resize;touch-action:none}.studio-panel{min-width:0;min-height:0;overflow-y:auto;padding:16px;background:var(--paper);border-left:1px solid var(--line);color-scheme:dark;scrollbar-color:var(--button) var(--paper)}.studio-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.studio-heading h2{font-family:var(--font-manrope),sans-serif;font-size:22px;margin:0}.studio-help{font-size:13px;color:var(--muted);line-height:1.4;margin:8px 0;overflow-wrap:anywhere}.studio-section{border:0;border-top:1px solid var(--line);margin:24px 0 0;padding:12px 0 0;min-width:0}.studio-section legend{font-family:var(--font-montserrat),sans-serif;font-size:14px;font-weight:600;padding:0 8px 0 0}.studio-field{display:grid;gap:6px;margin:0 0 12px}.studio-field>span,.studio-source-heading>label,.studio-source-heading>strong{font-size:13px;font-weight:600;margin:0}.studio-panel select{width:100%;min-width:0;height:38px;border:1px solid var(--line);border-radius:5px;padding:0 8px;background:var(--stage);color:var(--ink);font-size:13px;text-overflow:ellipsis}.studio-source-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.studio-text-button{display:inline-flex;gap:5px;align-items:center;justify-content:center;padding:7px 0;min-height:34px;border:0;background:transparent;color:var(--accent);font-family:var(--font-montserrat),sans-serif;font-size:11px;font-weight:600}.studio-text-button:hover{color:var(--ink)}.studio-device-source{margin:12px 0}.studio-video-slot{padding:12px 0;border-bottom:1px solid var(--line)}.studio-video-slot>.studio-field{margin-bottom:8px}.studio-video-slot .studio-device-source{margin-bottom:0}.studio-channel{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;margin:6px 0;font-size:12px}.studio-source-name{margin:4px 0 8px}.studio-error,.studio-source-name{overflow-wrap:anywhere;font-size:13px}.studio-error{color:#ffc5b7;line-height:1.4;margin:8px 0}.studio-layer-actions{display:flex;gap:6px;margin:12px 0}.studio-layer-actions .lesson-tool-button{flex:1 1;min-width:0;height:36px}.studio-coordinates{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.studio-coordinates label{display:grid;gap:4px;font-size:12px;margin:0}.studio-coordinates input{min-width:0;width:100%;height:36px;padding:6px 8px;background:var(--stage);border:1px solid var(--line);color:var(--ink);border-radius:5px;font-size:14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.studio-audio-source{border-top:1px solid var(--line);padding:10px 0 12px}.studio-audio-source>.studio-device-source{margin:0}.studio-gain{display:flex;align-items:center;gap:8px;margin:8px 0 4px}.studio-gain .lesson-tool-button{width:34px;height:34px;flex:none}.studio-gain input{width:0;flex:1 1;height:28px;padding:0;margin:0;border:0;accent-color:var(--accent)}.studio-gain output{width:40px;flex:none;font-size:12px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.studio-mixer meter{display:block;width:100%;height:9px;accent-color:var(--accent)}.studio-mixer meter::-webkit-meter-bar{background:var(--button);border:0}.studio-mixer meter::-webkit-meter-optimum-value{background:var(--accent)}.studio-file-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.studio-file-actions label{font-size:12px;margin:0;display:flex;align-items:center;gap:5px}.studio-file-actions input{width:16px;height:16px;margin:0;accent-color:var(--accent)}.lesson-notes .homework-heading h2{display:flex;gap:8px;align-items:center}.lesson-messages{max-height:180px;overflow-y:auto;padding:4px 0}.lesson-message{padding:8px 0;border-bottom:1px solid var(--line)}.lesson-message>div{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted)}.lesson-message strong{color:var(--ink);overflow-wrap:anywhere}.lesson-message p{margin:5px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.lesson-checklist{list-style:none;margin:0;padding:0;max-height:180px;overflow-y:auto}.lesson-checklist li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}.lesson-checklist label{display:flex;align-items:flex-start;gap:10px;min-width:0;overflow-wrap:anywhere}.lesson-checklist input{width:18px;height:18px;flex:none;accent-color:var(--accent)}.lesson-notes-form{display:flex;align-items:flex-end;gap:8px;margin:10px 0}.lesson-notes-form input,.lesson-notes-form textarea{min-width:0;flex:1 1;border:1px solid var(--line);border-radius:5px;background:var(--stage);color:var(--ink);padding:9px;font:inherit}.lesson-notes-form textarea{min-height:54px;resize:vertical}.plan-display-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.plan-display-controls label{display:flex;align-items:center;gap:8px}.plan-display-controls input{width:120px;accent-color:var(--accent)}.plan-overlay{z-index:13;container-type:inline-size}.plan-overlay-board{width:100%;height:100%;padding:5% 6%;color:#fff;background:rgb(0 28 22/88%);overflow:auto;font-family:var(--font-cantarell),sans-serif;font-size:clamp(9px,5cqw,20px);line-height:1.25}.plan-overlay-board strong{display:block;margin-bottom:5%;font-family:var(--font-manrope),sans-serif;font-size:1.1em}.plan-overlay-board ul{list-style:none;padding:0;margin:0}.plan-overlay-board li{display:flex;align-items:flex-start;gap:.5em;margin:.3em 0;overflow-wrap:anywhere}.plan-overlay-board p{margin:0}.plan-mark{flex:none;display:inline-grid;place-items:center;width:1em;height:1em;border:1px solid #fff;color:#fff}.plan-overlay .overlay-drag-handle{inset:0 auto auto 0;width:30px;height:30px;background:rgb(0 28 22/75%)}.document-controls{gap:8px;max-height:34dvh;overflow-y:auto}.document-heading{display:flex;align-items:center;gap:8px;width:100%}.document-heading strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.document-heading>button{margin-left:auto}.document-controls label{display:flex;align-items:center;gap:8px}.document-controls input[type=range]{width:100px;accent-color:var(--accent)}.document-overlay{background:rgb(0 28 22/92%);z-index:14}.document-overlay img{width:100%;height:100%;object-fit:contain;display:block}.document-overlay .overlay-drag-handle{inset:0 auto auto 0;width:30px;height:30px;background:rgb(0 28 22/75%)}.document-waiting{display:grid;place-items:center;height:100%;color:#fff;font-size:12px}.exercise-controls{gap:8px;max-height:34dvh;overflow-y:auto}.exercise-controls label{display:flex;gap:8px;align-items:center}.exercise-controls input{width:75px;padding:8px;border:1px solid var(--line);background:var(--stage);color:var(--ink);border-radius:5px}.exercise-time{font-size:22px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700}.exercise-overlay{z-index:15;container-type:inline-size}.exercise-board{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgb(0 28 22/88%);color:#fff}.exercise-board span{font-size:clamp(8px,8cqw,15px)}.exercise-board strong{font-size:clamp(14px,20cqw,44px);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.exercise-overlay .overlay-drag-handle{inset:0 auto auto 0;width:26px;height:26px;background:rgb(0 28 22/75%)}.recording-controls{gap:8px;max-height:40dvh;overflow-y:auto}.recording-controls h2{display:flex;align-items:center;gap:8px}.recording-controls h3{margin:6px 0;font-size:14px}.recording-fields{display:flex;flex-wrap:wrap;gap:10px}.recording-controls label:not(.recording-consent){display:grid;gap:5px;min-width:min(220px,100%);white-space:normal}.recording-controls input:not([type=checkbox]){min-width:0;width:100%;padding:9px;border:1px solid var(--line);border-radius:5px;background:var(--stage);color:var(--ink)}.recording-consent{display:flex;gap:8px;align-items:center;white-space:normal!important}.recording-consent input{width:18px;height:18px;accent-color:var(--accent)}.recording-connect,.recording-storage{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.recording-list{width:100%;padding:0;margin:0;list-style:none;max-height:170px;overflow:auto}.recording-list li{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:6px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.recording-list li>div{display:flex;gap:5px}.recording-live{color:#ffd0c8;font-size:12px;font-weight:700}@media (max-width:1500px){.call-header .header-action-text{display:none}}@media (max-width:760px){.call-workspace.studio-open{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(100px,1fr) minmax(0,1fr)}.studio-panel{border-left:0;border-top:1px solid var(--line);padding:12px 16px}}@media (max-width:400px){.call-header{gap:6px;padding-left:10px;padding-right:10px}.call-header .header-action{width:34px;min-width:34px;padding:0;justify-content:center}.call-header .call-meta{gap:6px}.call-header .room-brand>svg{width:16px}}.call-controls{min-height:86px;display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 20px 18px;border-top:1px solid var(--line);background:var(--paper)}.media-control{flex:0 0 auto;width:52px;height:52px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--ink);background:var(--button)}@media (max-width:360px){.call-controls{gap:10px;padding-inline:12px}.media-control{width:44px;height:44px}}.media-control:hover{background:var(--button-hover)}.media-control.is-off{color:#f2c2b8;background:#4b302b}.media-control.is-active{color:var(--accent);border-color:var(--accent);background:var(--button)}.lobby-music-option{display:flex;align-items:flex-start;gap:10px;margin:18px 0;font-size:13px;line-height:1.5}.lobby-music-option input,.music-switch input{flex:0 0 auto;width:20px;height:20px;margin:0;accent-color:var(--green)}.device-settings{width:min(420px,calc(100% - 28px));max-height:calc(100dvh - 32px);overflow-y:auto;padding:0;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--stage-soft);box-shadow:0 20px 60px #0006;color-scheme:dark}.device-settings::backdrop{background:#0009}.settings-content{padding:24px}.settings-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}.settings-heading h2{margin:0;font-size:21px;line-height:1.3}.settings-heading .icon-button{flex:0 0 auto;color:var(--ink);background:var(--button)}.settings-heading .icon-button:hover{background:var(--button-hover)}.device-field+.device-field{margin-top:20px}.device-field select{width:100%;min-height:46px;padding:10px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:var(--paper);font-size:16px}.device-field select:disabled{color:var(--muted)}.music-setting{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}.music-switch{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0;font-size:15px}.music-switch input{accent-color:var(--accent)}.headphones-note{display:flex;align-items:flex-start;gap:9px;margin:16px 0 0;color:var(--muted);font-size:14px;line-height:1.55}.headphones-note svg{flex:0 0 auto;margin-top:2px}.settings-status{min-height:20px;margin:16px 0 0;color:var(--accent);font-size:13px}.settings-error{margin:12px 0 0;color:#ffc5b7;font-size:14px;line-height:1.5}.media-control.hangup{margin-left:8px;border-color:#d84e39;background:#d84e39}.media-control.hangup:hover{background:#b93c2a}@media (max-width:820px){.home-content,.lobby-content{grid-template-columns:1fr;gap:42px;padding:48px 0}.intro-copy h1{font-size:48px}.join-panel,.start-panel{width:100%;max-width:540px}.video-grid{grid-template-columns:1fr;grid-template-rows:repeat(2,minmax(0,1fr))}.video-grid[data-participants="1"]{grid-template-rows:1fr}.video-stage.is-sharing{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 130px}.is-sharing .video-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:1fr}}@media (max-width:580px){.brand-bar,.home-content,.home-footer,.lobby-content{width:min(100% - 28px,100%)}.brand-subtitle,.connection-pill,.room-code,.version-badge{display:none}.home-content,.lobby-content{padding:36px 0}.intro-copy h1,.lobby-copy h1{font-size:36px}.intro-text,.lobby-copy>p:last-of-type{font-size:16px}.start-panel{padding:24px}.room-header{padding:0 14px}.room-brand span{display:none}.share-box{grid-template-columns:38px minmax(0,1fr)}.share-icon{width:38px;height:38px}.copy-button{grid-column:1/-1}.call-meta{margin-left:0}.header-action{margin-left:auto}.video-stage{padding:8px}.video-grid{gap:8px;min-height:0}.waiting-banner{bottom:20px}}::selection{color:#001C16;background:var(--accent)}body{scrollbar-color:var(--line) var(--paper)}button,label{font-family:var(--font-montserrat),sans-serif;font-weight:600}button{text-transform:uppercase;font-size:12px}input,select{caret-color:var(--accent)}input::placeholder{color:var(--muted);opacity:1}.brand-name,.chord-name,.room-brand{font-family:var(--font-manrope),sans-serif;font-weight:800}.brand-name{font-size:16px}.intro-copy h1 span{color:var(--accent)}.panel-heading h2,.settings-heading h2{font-family:var(--font-montserrat),sans-serif;font-size:22px;font-weight:600;text-transform:uppercase}.start-panel{border-radius:0;border:0;padding:36px;background:var(--surface)}.primary-button{min-height:52px}.brand-mark,.primary-button{border-radius:3px}.room-code{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-tools label{font-size:12px;text-transform:uppercase}.chord-picker select{font-family:var(--font-montserrat),sans-serif;font-weight:600}.overlay-drag-handle{color:var(--diagram-muted)}.teaching-overlay:focus-within{z-index:3}.rhythm-picker select{width:210px}.rhythm-overlay .overlay-drag-handle svg{width:3.81%;height:auto;top:3.57%;left:1.19%}.bass-picker select{width:155px}.rhythm-sizing input{width:110px}.rhythm-tools select{font-family:var(--font-montserrat),sans-serif;font-size:13px;font-weight:600}@media (max-width:580px){.rhythm-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.bass-picker,.rhythm-picker{display:grid;grid-template-columns:70px minmax(0,1fr);grid-column:1/-1;gap:8px}.rhythm-picker{order:0}.bass-picker{order:1}.rhythm-tools select{width:100%;min-width:0;font-size:14px}.rhythm-sizing{display:grid;gap:0;order:2;align-self:end}.rhythm-sizing,.rhythm-sizing input{min-width:0;width:100%}.rhythm-tool-actions{order:3;align-self:end}}.start-audio-button{color:#001C16;background:var(--accent)}@media (max-width:760px){.call-header .header-action-text{display:none}.call-header{gap:12px}}@media (max-width:580px){.lesson-tools{gap:8px}.lesson-tools label{font-size:11px}.chord-picker{gap:6px}.chord-tool-actions{gap:4px}.lesson-tool-button{width:38px;height:40px}}.video-grid[data-view]{position:relative;align-content:stretch}.video-grid[data-view]>.camera-frame{isolation:isolate}.video-grid[data-view=split-vertical]{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr)}.video-grid[data-view=split-horizontal]{grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr))}.video-grid[data-view][data-participants="1"]{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.video-grid[data-view=other-large],.video-grid[data-view=self-large]{display:block}.video-grid[data-view=other-large]>.camera-frame,.video-grid[data-view=self-large]>.camera-frame{position:absolute;inset:0;z-index:0}.video-grid[data-view=other-large][data-participants="2"]>.camera-frame[data-local=true],.video-grid[data-view=self-large][data-participants="2"]>.camera-frame[data-local=false]{inset:auto 12px 12px auto;width:min(30%,320px);min-width:64px;max-width:45%;height:auto;max-height:40%;aspect-ratio:16/9;z-index:1}.participant-view-control{flex:0 0 auto}.participant-view-control>summary{list-style:none;cursor:pointer}.participant-view-control>summary::-webkit-details-marker{display:none}.participant-view-control>summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.participant-view-control[open]>summary{color:var(--accent);border-color:var(--accent)}.participant-view-options{position:fixed;z-index:20;left:50%;bottom:98px;transform:translateX(-50%);width:min(340px,calc(100vw - 24px));max-height:calc(100dvh - 122px);overflow-y:auto;padding:12px;background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 32px #0006}.participant-view-options>p{margin:0 4px 10px;color:var(--muted);font-size:13px}.participant-view-options>button{display:grid;grid-template-columns:24px minmax(0,1fr) 18px;align-items:center;gap:12px;width:100%;padding:10px;border:0;border-radius:5px;color:var(--ink);background:transparent;text-align:left;text-transform:none}.participant-view-options>button:hover{background:var(--button)}.participant-view-options>button[aria-pressed=true]{background:var(--surface);color:var(--accent)}.participant-view-options small,.participant-view-options strong{display:block}.participant-view-options strong{font-size:14px;font-weight:600;line-height:1.35}.participant-view-options small{margin-top:4px;color:var(--muted);font-family:var(--font-cantarell),sans-serif;font-weight:400;font-size:13px}.metronome-tools{gap:14px}.metronome-tempo{display:flex;align-items:center;gap:10px}.metronome-tempo>div{display:flex;align-items:center;gap:6px}.metronome-tempo input{width:66px;height:40px;padding:6px;border:1px solid var(--line);border-radius:5px;background:var(--stage);color:var(--ink);font-size:16px;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.metronome-tempo>div>span{color:var(--muted);font-size:12px}.metronome-tempo .lesson-tool-button{width:32px}.metronome-meter select{width:68px}.metronome-start{height:40px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--accent);border-radius:5px;background:var(--accent);color:var(--paper)}.metronome-start:hover{background:var(--accent-dark)}.metronome-accent{display:flex;align-items:center;gap:6px;font-size:12px}.metronome-accent input{width:16px;height:16px;margin:0;accent-color:var(--accent)}.metronome-readout{font-family:var(--font-montserrat),sans-serif;font-size:16px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.metronome-beats{display:flex;gap:6px}.metronome-beats>span{width:30px;height:32px;display:grid;place-items:center;border:1px solid var(--line);border-radius:4px;color:var(--muted);font-size:15px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.metronome-beats>span[data-accent=true]{border-color:var(--accent)}.metronome-beats>span[data-current=true]{background:var(--accent);border-color:var(--accent);color:var(--paper)}.metronome-sound{display:flex;align-items:center;gap:8px}.metronome-sound input{width:80px;height:32px;padding:0;margin:0;border:0;accent-color:var(--accent)}.metronome-sound output{width:34px;font-size:12px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.metronome-close{margin-left:auto}.metronome-note{flex-basis:100%;margin:0;font-size:12px;line-height:1.4;color:var(--muted)}.tuner-tools{display:block;max-height:42dvh;overflow-y:auto;scrollbar-color:var(--button) var(--stage-soft)}.tuner-heading{display:flex;align-items:center;gap:14px;margin-bottom:14px}.tuner-heading h2{margin:0;font-size:18px}.tuner-heading>span{color:var(--muted);font-size:13px}.tuner-heading>button{margin-left:auto;flex-shrink:0}.tuner-body{display:grid;grid-template-columns:150px minmax(200px,1fr) auto;gap:28px;align-items:center}.tuner-reading{display:flex;flex-direction:column;align-items:center;gap:2px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tuner-note{font-family:var(--font-manrope),sans-serif;font-size:52px;line-height:1.1}.tuner-frequency,.tuner-reading>span{font-size:13px;color:var(--muted)}.tuner-reading[data-tuned=true] .tuner-note{color:var(--accent)}.tuner-feedback{min-width:0;text-align:center}.tuner-guidance{margin:0 0 18px;font-size:16px}.tuner-meter-track{position:relative;height:4px;margin:0 8px;background:var(--line)}.tuner-center{position:absolute;left:50%;top:-8px;width:2px;height:20px;background:var(--ink)}.tuner-needle{position:absolute;top:-6px;width:4px;height:16px;background:var(--accent);transform:translateX(-50%);visibility:hidden}.tuner-meter[data-signal=true] .tuner-needle{visibility:visible}.tuner-meter[data-tuned=true] .tuner-center{background:var(--accent)}.tuner-scale{display:flex;justify-content:space-between;margin-top:12px;font-size:11px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tuner-cents{display:block;margin-top:4px;font-size:12px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tuner-actions{display:flex;flex-direction:column;align-items:stretch;gap:8px}.tuner-auto{min-height:40px;border:1px solid var(--line);border-radius:5px;background:var(--button);color:var(--ink);padding:6px 12px;font-size:12px}.tuner-auto:hover,.tuner-strings>button:hover{background:var(--button-hover)}.tuner-auto[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.tuner-strings{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:16px}.tuner-strings>button{min-width:0;min-height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1px solid var(--line);border-radius:5px;background:var(--button);color:var(--ink)}.tuner-strings>button>span{color:var(--muted);font-size:11px}.tuner-strings>button>strong{font-size:16px}.tuner-strings>button[aria-pressed=true],.tuner-strings>button[data-detected=true]{border-color:var(--accent)}.tuner-strings>button[aria-pressed=true]>strong,.tuner-strings>button[data-detected=true]>strong{color:var(--accent)}.tuner-help{margin:12px 0 0;color:var(--muted);font-size:12px;line-height:1.4;max-width:90ch}.tuner-tools .chord-sync-error{margin-top:10px}.homework-tools{display:block;max-height:48dvh;overflow-y:auto;scrollbar-color:var(--button) var(--stage-soft)}.homework-heading{display:flex;align-items:center;gap:12px;margin-bottom:12px}.homework-heading h2{margin:0;font-size:18px}.homework-heading>button{margin-left:auto;flex-shrink:0}.homework-editor,.homework-reading{max-width:76ch}.homework-editor textarea{display:block;width:100%;min-height:116px;max-height:40dvh;resize:vertical;border:1px solid var(--line);border-radius:6px;padding:12px;background:var(--stage);color:var(--ink);font-family:var(--font-cantarell),sans-serif;font-size:16px;line-height:1.5}.homework-edit-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}.homework-edit-footer>span{font-size:12px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.homework-status{margin:12px 0;color:var(--muted);font-size:13px;line-height:1.5}.homework-reading p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:17px;line-height:1.6}.homework-reading .homework-empty{color:var(--muted);font-size:15px}.homework-conflict,.homework-links{display:flex;flex-wrap:wrap;gap:8px}.homework-conflict{margin-bottom:12px}.homework-secondary{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:5px;padding:8px 10px;background:var(--button);color:var(--ink);font-size:12px;text-decoration:none}.homework-secondary:hover{background:var(--button-hover)}.homework-help{max-width:80ch;margin:10px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.homework-tools .chord-sync-error{margin-top:10px}.lobby-homework-link{display:block;margin-top:16px;color:var(--ink);font-size:14px;line-height:1.5;text-underline-offset:4px}.homework-page{min-height:100dvh;background:var(--paper)}.homework-page-content{width:min(900px,calc(100% - 32px));margin:36px auto}.homework-standalone{max-height:none;padding:24px;border:1px solid var(--line);border-radius:8px}.homework-standalone .homework-heading{margin-bottom:24px}.homework-standalone .homework-heading h2{font-size:26px}.homework-standalone .homework-reading{min-height:120px}@media (max-width:820px){.call-header{gap:6px}.call-header .header-action{width:34px;min-width:34px;padding:0;margin-left:0;justify-content:center}.call-header .room-brand>span{display:none}.tuner-tools{padding:10px 14px}.tuner-body{grid-template-columns:100px minmax(0,1fr);gap:12px}.tuner-actions{grid-column:1/-1;flex-direction:row;flex-wrap:wrap}.tuner-actions>button{flex:1 1}.tuner-note{font-size:42px}.tuner-heading{gap:8px;margin-bottom:10px}.tuner-heading>span{max-width:160px;font-size:11px}.tuner-strings{gap:4px;margin-top:12px}.tuner-guidance{font-size:14px}}@media (max-width:480px){.call-header .connection-pill{font-size:0;gap:0}.call-header{gap:2px}.call-header .call-meta{margin-left:0;margin-right:0}.homework-tools{padding:10px 14px;max-height:52dvh}.homework-heading h2{font-size:16px}.homework-secondary{flex:1 1 auto}.homework-editor textarea{min-height:100px}.homework-standalone{max-height:none;padding:16px}.homework-standalone .homework-heading h2{font-size:22px}.tuner-tools{max-height:52dvh}.tuner-actions>.tuner-auto{flex:0 0 70px}.tuner-strings>button{min-height:52px}}.call-header .room-code.compact{min-width:0;max-width:24ch;overflow:hidden;text-overflow:ellipsis}@media (max-width:580px){.metronome-tools{gap:10px}.metronome-tempo{gap:6px}.metronome-tempo>div{gap:4px}.metronome-accent{order:1}.metronome-note{order:2}.metronome-tools .chord-sync-error{order:3}}@media (max-width:400px){.call-header{gap:2px}}@media (max-width:480px){.call-controls{gap:8px;padding-inline:10px}.media-control{width:44px;height:44px}.media-control.hangup{margin-left:0}}@media (max-width:360px){.call-controls{gap:6px;padding-inline:8px}}