html,body{background:#101815;margin:0}.fs-app{--bg:#101815;--view:#141d18;--panel:#18211c;--panel-2:#202b25;--line:#34423a;--ivory:#efe8d8;--ivory-dim:#b7b09e;--amber:#e2a447;--amber-ink:#1c1408;--green:#86c27e;--danger:#e48a6f;--danger-bg:#2b1d17;--sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--gutter:12px;--radius:8px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;box-sizing:border-box;background:var(--bg);min-height:100dvh;color:var(--ivory);font:15px/1.45 var(--sans);-webkit-text-size-adjust:100%;flex-direction:column;display:flex}.fs-app *,.fs-app :before,.fs-app :after{box-sizing:inherit}.fs-app [hidden]{display:none!important}.fs-app p,.fs-app h1,.fs-app h2,.fs-app dl,.fs-app dd{margin:0}.fs-steering-keys{max-width:220px;color:var(--ivory-dim);font-size:12px}.fs-num{font-family:var(--mono);font-variant-numeric:tabular-nums}.fs-btn,.fs-tab,.fs-select{font:inherit;color:var(--ivory);border-radius:6px;min-height:44px}.fs-btn{border:1px solid var(--line);background:var(--panel-2);cursor:pointer;padding:0 14px;font-size:14px;font-weight:600;transition:background-color .12s,border-color .12s}.fs-btn:hover{border-color:var(--ivory-dim)}.fs-btn-quiet{background:0 0;font-weight:500}.fs-btn-primary{background:var(--amber);border-color:var(--amber);color:var(--amber-ink)}.fs-btn-primary:hover{background:#ecb562;border-color:#ecb562}.fs-btn[aria-pressed=true]{border-color:var(--amber)}.fs-select{border:1px solid var(--line);background:var(--panel-2);width:100%;padding:0 10px}.fs-app input[type=radio],.fs-app input[type=checkbox],.fs-app input[type=range]{accent-color:var(--amber)}.fs-app :focus-visible{outline:2px solid var(--amber);outline-offset:2px}.fs-btn-primary:focus-visible{outline-color:var(--ivory)}.fs-app .fs-gp-focus{outline:2px solid var(--amber);outline-offset:3px;border-radius:6px}.fs-app .fs-btn-primary.fs-gp-focus{outline-color:var(--ivory)}.fs-app .fs-gp-focus :focus-visible{outline:none}.fs-bar{padding:6px var(--gutter);border-bottom:1px solid var(--line);background:var(--bg);flex-wrap:wrap;align-items:center;gap:6px 12px;display:flex}.fs-brand{letter-spacing:.02em;font-weight:650}.fs-settings-toggle{margin-left:auto}.fs-modes{flex:100%;order:2;gap:4px;display:flex}.fs-mode{border:1px solid var(--line);min-height:44px;color:var(--ivory-dim);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;flex:1 1 0;padding:0 12px;font-size:14px;font-weight:600}.fs-mode:hover{color:var(--ivory)}.fs-mode[aria-pressed=true]{color:var(--ivory);background:var(--panel-2);box-shadow:inset 0 -2px 0 var(--amber)}.fs-tabs{scrollbar-width:thin;flex:100%;order:3;gap:4px;min-width:0;display:flex;overflow-x:auto}.fs-tab{color:var(--ivory-dim);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;flex:none;align-items:center;gap:8px;padding:0 12px;display:inline-flex}.fs-tab:hover{color:var(--ivory)}.fs-tab[aria-selected=true]{color:var(--ivory);background:var(--panel-2);border-color:var(--line);box-shadow:inset 0 -2px 0 var(--amber)}.fs-tab-num{font-family:var(--mono);color:var(--amber);font-size:12px}.fs-tab-title{font-size:14px;font-weight:600}.fs-tab-meta{font-family:var(--mono);color:var(--ivory-dim);font-size:12px}.fs-tab-meta:empty{display:none}.fs-alert{margin:8px var(--gutter) 0;border:1px solid var(--danger);border-radius:var(--radius);background:var(--danger-bg);align-items:center;gap:12px;padding:6px 6px 6px 12px;display:flex}.fs-alert-text{flex:1;font-size:14px}.fs-stage{padding:0 var(--gutter) var(--gutter);flex-direction:column;flex:1 0 auto;gap:10px;display:flex;position:relative}.fs-view{height:52svh;min-height:260px;margin:0 calc(-1 * var(--gutter));background:var(--view);position:relative;overflow:hidden}.fs-viewport{position:absolute;inset:0}.fs-viewport>canvas{width:100%;height:100%;display:block}.fs-panel{z-index:1;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:12px;position:relative}.fs-readout{width:152px;padding:8px 10px;font-size:13px;position:absolute;top:8px;right:8px}.fs-phase{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ivory-dim);font-size:11px}[data-phase=practising] .fs-phase,[data-phase=demo] .fs-phase{color:var(--amber)}[data-phase=success] .fs-phase{color:var(--green)}.fs-readings{grid-template-columns:1fr auto;gap:2px 8px;margin-top:4px;display:grid}.fs-readings dt{color:var(--ivory-dim)}.fs-readings dd{text-align:right}.fs-error-value{color:var(--amber)}.fs-holding .fs-error-value,[data-phase=success] .fs-error-value{color:var(--green)}.fs-boosting .fs-speed{color:var(--amber)}.fs-hold{align-items:center;gap:8px;margin-top:6px;display:flex}.fs-hold-label{color:var(--ivory-dim)}.fs-meter{background:var(--panel-2);border:1px solid var(--line);border-radius:4px;flex:1;height:8px;overflow:hidden}.fs-meter-fill{background:var(--green);width:0;height:100%}.fs-touch{z-index:1;border:1px solid var(--line);background:var(--panel);touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;border-radius:50%;place-items:center;width:136px;height:136px;display:grid;position:absolute;bottom:12px;right:12px}.fs-touch-knob{border:2px solid var(--ivory-dim);background:var(--panel-2);pointer-events:none;border-radius:50%;width:44%;height:44%;transition:transform .12s ease-out}.fs-touch-active{cursor:grabbing;border-color:var(--ivory-dim)}.fs-touch-active .fs-touch-knob{border-color:var(--amber);transition:none}@media (pointer:fine){.fs-touch{opacity:.55;width:96px;height:96px;transition:opacity .12s}.fs-touch:hover,.fs-touch-active{opacity:1}}.fs-eyebrow{font-family:var(--mono);color:var(--ivory-dim);font-size:12px}.fs-title{margin-top:2px;font-size:18px;font-weight:650;line-height:1.25}.fs-instruction{margin-top:6px}.fs-target{color:var(--amber);align-items:baseline;gap:8px;margin-top:8px;font-size:14px;font-weight:600;display:flex}.fs-target:before{content:"";border:2px solid var(--amber);flex:none;width:8px;height:8px;transform:rotate(45deg)translateY(-1px)}.fs-field{flex-direction:column;gap:4px;display:flex}.fs-field>label{color:var(--ivory-dim);font-size:13px}.fs-orient,.fs-course>.fs-fieldset{margin-top:10px}.fs-builder{border-top:1px solid var(--line);flex-direction:column;gap:8px;margin-top:8px;padding-top:8px;display:flex}.fs-builder .fs-segments{gap:0 14px}.fs-touch-note{margin:10px 0 0;display:none}@media (pointer:coarse){.fs-touch-note{display:block}}.fs-feedback{min-height:1.45em}.fs-feedback-title{font-weight:650}.fs-feedback-text{color:var(--ivory-dim);font-size:14px}[data-phase=success] .fs-control{border-color:var(--green)}[data-phase=success] .fs-feedback-title{color:var(--green)}.fs-countdown{color:var(--amber);margin-top:6px;font-size:13px}[data-phase=success] .fs-countdown{color:var(--green)}[data-phase=paused] .fs-countdown{color:var(--ivory-dim)}.fs-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.fs-actions .fs-btn{flex:auto}.fs-actions .fs-primary{flex:2 132px}.fs-shortcuts{color:var(--ivory-dim);margin-top:8px;font-size:12px}.fs-pad-legend{color:var(--ivory-dim);flex-wrap:wrap;gap:4px 12px;margin:10px 0 0;padding:0;font-size:12px;list-style:none;display:flex}.fs-pad-legend li{align-items:baseline;gap:6px;display:inline-flex}.fs-pad-key{font-family:var(--mono);color:var(--ivory)}.fs-sticks{align-items:center;gap:12px;display:flex}.fs-pad{border:1px solid var(--line);background:var(--panel-2);border-radius:50%;flex:none;width:72px;height:72px;position:relative}.fs-pad:before,.fs-pad:after{content:"";background:var(--line);position:absolute}.fs-pad:before{width:1px;top:8px;bottom:8px;left:50%}.fs-pad:after{height:1px;top:50%;left:8px;right:8px}.fs-pad-dot,.fs-pad-hint{z-index:1;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.fs-pad-dot{background:var(--ivory);width:12px;height:12px}.fs-pad-hint{border:2px solid var(--amber);width:18px;height:18px}.fs-stick-info{min-width:0;font-size:13px}.fs-source{overflow-wrap:anywhere;font-weight:600}.fs-pad-status{color:var(--ivory-dim);overflow-wrap:anywhere}.fs-legend{color:var(--ivory-dim);gap:12px;margin-top:2px;display:flex}.fs-key-you:before,.fs-key-hint:before{content:"";vertical-align:0;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.fs-key-you:before{background:var(--ivory)}.fs-key-hint:before{border:2px solid var(--amber);vertical-align:-1px;width:10px;height:10px}.fs-roll{color:var(--ivory-dim);margin-top:2px}.fs-stat-list{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px;display:grid}.fs-stat dt{color:var(--ivory-dim);font-size:12px}.fs-stat dd{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:16px}.fs-storage{color:var(--ivory-dim);margin-top:8px;font-size:12px}.fs-app .fs-warn{color:var(--danger);font-size:13px}.fs-warn:empty{display:none}.fs-drawer{z-index:3;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);margin-top:10px}.fs-drawer-head{z-index:1;border-bottom:1px solid var(--line);background:var(--panel);justify-content:space-between;align-items:center;padding:6px 6px 6px 14px;display:flex;position:sticky;top:0}.fs-drawer-title{font-size:16px;font-weight:650}.fs-drawer-body{flex-direction:column;gap:16px;padding:14px;display:flex}.fs-fieldset{border:0;min-width:0;margin:0;padding:0}.fs-fieldset>legend{color:var(--ivory-dim);margin-bottom:6px;padding:0;font-size:13px;font-weight:600}.fs-segments{flex-wrap:wrap;gap:4px 16px;display:flex}.fs-segment,.fs-check{cursor:pointer;align-items:center;gap:8px;min-height:44px;display:inline-flex}.fs-segment input,.fs-check input{width:18px;height:18px;margin:0}.fs-check-help{color:var(--ivory-dim);margin:-6px 0 0 26px;font-size:13px}.fs-drawer-pad-help{margin:0}.fs-range-top{justify-content:space-between;align-items:baseline;display:flex}.fs-range-top label{color:var(--ivory-dim);font-size:13px;font-weight:600}.fs-range output{font-size:13px}.fs-range input{width:100%;height:44px;margin:0}.fs-camera-reset{margin-top:8px}.fs-help{color:var(--ivory-dim);margin-bottom:8px;font-size:13px}.fs-keys{flex-direction:column;gap:4px;display:flex}.fs-key-row{grid-template-columns:1fr auto auto;align-items:center;gap:8px;display:grid}.fs-key-name{font-size:14px}.fs-kbd{border:1px solid var(--line);background:var(--panel-2);min-width:3.5ch;font-family:var(--mono);text-align:center;border-radius:4px;padding:2px 8px;font-size:13px}.fs-kbd-clash{border-color:var(--danger);color:var(--danger)}.fs-listening{border-color:var(--amber)}.fs-fieldset .fs-field+.fs-field{margin-top:8px}.fs-scope{padding:10px var(--gutter);border-top:1px solid var(--line);color:var(--ivory-dim);font-size:12px}@media (width>=760px) and (height>=520px){.fs-bar{flex-wrap:nowrap}.fs-modes{flex:none;order:0}.fs-tabs{flex:auto;order:0;justify-content:center}.fs-stage{padding:var(--gutter);grid-template-rows:auto auto 1fr auto;grid-template-columns:minmax(0,300px) minmax(0,1fr) 120px;gap:12px;min-height:520px;display:grid}.fs-view{height:auto;min-height:0;margin:0;position:absolute;inset:0}.fs-readout{width:176px;top:12px;right:12px}.fs-lesson{grid-area:1/1;align-self:start}.fs-stats{grid-area:2/1;align-self:start;padding:10px 12px}.fs-stats .fs-stat-list{grid-template-columns:1fr 1fr}.fs-sticks{grid-area:4/1;align-self:end}.fs-control{grid-area:4/2;place-self:end center;width:100%;max-width:520px}.fs-drawer{overscroll-behavior:contain;border-width:0 0 0 1px;border-radius:0;width:min(380px,100%);margin:0;position:absolute;top:0;bottom:0;right:0;overflow-y:auto}}@media (prefers-reduced-motion:reduce){.fs-app *,.fs-app :before,.fs-app :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
