:root{--bg:#fff;--bg-subtle:#f7f6f2;--bg-card:#fff;--border:#e8e6e1;--border-strong:#d6d3cc;--text-primary:#0f0e0c;--text-secondary:#6b6760;--text-muted:#78746d;--accent:#1a1a1a;--accent-hover:#333;--accent-text:#fff;--accent-overlay:#ffffff24;--accent-overlay-border:#ffffff3d;--selected:#57534c;--selected-hover:#453f3a;--selected-text:#fff;--focus:#0f0e0c;--focus-wash:#0f0e0c1f;--state:#2743c4;--state-hover:#1e35a0;--state-text:#fff;--state-wash:#2743c41a;--state-edge:#2743c473;--backdrop:#00000073;--danger:#b91c1c;--notation:#000;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-pill:100px;--shadow-card:0 1px 3px #0f0e0c0d, 0 1px 2px #0f0e0c0a;--shadow-lift:0 6px 20px #0f0e0c14;--shadow-panel:0 -1px 0 var(--border), 0 -8px 30px #0f0e0c0d;--ease:cubic-bezier(.4, 0, .2, 1);--t-fast:.18s;--t-mid:.3s;--font-display:"Geist", "Geist Sans", "DM Sans", sans-serif;--font-body:"DM Sans", "Geist", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font:400 16px/1.65 var(--font-body);color:var(--text-primary);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-synthesis-weight:none}:root[data-theme=dark]{--bg:#11100e;--bg-subtle:#1a1916;--bg-card:#21211f;--border:#373530;--border-strong:#4b4943;--text-primary:#ebeae7;--text-secondary:#afaca5;--text-muted:#97948e;--accent:#ebeae7;--accent-hover:#d1cfcb;--accent-text:#11100e;--accent-overlay:#11100e24;--accent-overlay-border:#11100e3d;--selected:#86837c;--selected-hover:#716f69;--selected-text:#11100e;--focus:#ebeae7;--focus-wash:#ebeae724;--state:#93a4ff;--state-hover:#aab7ff;--state-text:#11100e;--state-wash:#93a4ff29;--state-edge:#93a4ff80;--danger:#f28b82;--notation:#ebeae7;--shadow-card:0 1px 3px #00000073, 0 1px 2px #00000059;--shadow-lift:0 6px 20px #00000080;--shadow-panel:0 -1px 0 var(--border), 0 -8px 30px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{margin:0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.app{max-width:880px;margin:0 auto;padding:56px 24px 160px}.app.app-wide{max-width:1200px}.app-header{flex-direction:column;align-items:flex-start;margin-bottom:32px;display:flex}.app-header h1{font-family:var(--font-display);letter-spacing:-.025em;color:var(--text-primary);margin:0;font-size:clamp(34px,5.5vw,46px);font-weight:700;line-height:1.05}.score-sizer{width:100%;display:block}.score-frame{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-card);justify-content:safe center;padding:28px 24px;display:flex;overflow-x:auto}.score-wrap{flex:none;line-height:0;display:inline-block;position:relative}.score-canvas{cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.score-loop-handle{background:var(--state-edge);cursor:ew-resize;touch-action:none;border-radius:2px;width:3px;margin-left:-1.5px;position:absolute}.score-loop-handle:before{content:"";position:absolute;inset:-6px -12px}.score-loop-handle:after{content:"";border-radius:var(--r-sm);background:var(--state-edge);width:13px;height:13px;margin-left:-6.5px;position:absolute;bottom:-5px;left:50%}.score-canvas svg{fill:var(--notation);stroke:var(--notation);display:block}.score-chevron{color:var(--state);pointer-events:none;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;line-height:0;transition:left 40ms linear;display:flex;position:absolute;transform:translate(-50%)}.score-selected{border:1.5px solid var(--state-edge);background:var(--state-wash);border-radius:var(--r-sm);pointer-events:none;position:absolute}.score-range{border-radius:var(--r-sm)}.hint-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-card);text-align:left;margin:0 0 32px;padding:4px 24px 20px}.hint-card.is-folded{padding-bottom:4px}.fold-toggle{font-family:var(--font-body);width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;font-size:14px;font-weight:500;display:flex}.fold-toggle:hover{color:var(--text-secondary)}.fold-toggle:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-sm)}.fold-toggle svg{color:var(--text-muted);transition:transform var(--t-fast) var(--ease);flex-shrink:0}.fold-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.hint{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.7}.hint strong{color:var(--text-primary);font-weight:600}.hint em{color:var(--text-primary);font-style:normal;font-weight:500}.hint ul{margin:0;padding:0 0 0 18px;list-style:outside}.hint li+li{margin-top:8px}.btn{font-family:var(--font-body);border-radius:var(--r-md);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;white-space:nowrap;transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease), transform 80ms var(--ease);background:0 0;justify-content:center;align-items:center;gap:7px;padding:11px 18px;font-size:14px;font-weight:500;line-height:1.2;display:inline-flex}.btn svg{flex-shrink:0}.btn:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--border-strong)}.btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-text)}.btn-icon{min-width:40px;padding:10px}.btn-loop{padding:10px 14px}.btn-loop-active{background:var(--selected);border-color:var(--selected);color:var(--selected-text)}.btn-loop-active:hover:not(:disabled){background:var(--selected-hover);border-color:var(--selected-hover);color:var(--selected-text)}.btn-generate{background:var(--accent);border-color:var(--accent);color:var(--accent-text);padding:12px 28px;font-weight:500}.btn-generate:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-text)}.config-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-card);flex-direction:column;align-items:center;gap:20px;margin-bottom:28px;padding:8px 28px 24px;display:flex}.config-panel.is-folded{gap:12px;padding-bottom:8px}.config-panel.is-folded.has-footer{padding-bottom:20px}.foldable-body{width:100%}.config-panel>.foldable-body:not([hidden]){flex-direction:column;align-items:center;gap:20px;display:flex}.config-grid{text-align:left;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px 18px;width:100%;max-width:420px;display:grid}@media (width>=720px){.config-grid{grid-template-columns:auto minmax(150px,1fr) auto minmax(150px,1fr);gap:14px 20px;max-width:100%}}.config-grid label:not(.cfg-checkbox-label){color:var(--text-secondary);white-space:nowrap;font-size:13px;font-weight:500}.config-grid select,.config-grid input,.dictation-source-row select{font-family:var(--font-body);border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg);color:var(--text-primary);cursor:pointer;width:100%;min-width:0;transition:border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);padding:8px 11px;font-size:14px;font-weight:400}.config-grid select:hover,.config-grid input:hover,.dictation-source-row select:hover{border-color:var(--border-strong)}.config-grid select:focus-visible,.config-grid input:focus-visible,.dictation-source-row select:focus-visible{border-color:var(--focus);box-shadow:0 0 0 3px var(--focus-wash);outline:none}.cfg-bars-input{width:80px!important}.cfg-inline-row{align-items:center;gap:12px;display:flex}.cfg-inline-row select{flex:1}.cfg-checkbox-label{min-width:0;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:13px;font-weight:400;display:flex}.cfg-checkbox-label.is-disabled{color:var(--text-muted);cursor:default;opacity:.55}.cfg-checkbox-label.is-disabled input[type=checkbox]{cursor:inherit}.cfg-checkbox-label input[type=checkbox]{cursor:pointer;width:15px;height:15px;accent-color:var(--accent);flex:none;align-self:flex-start;margin-top:2px}.dictation-source-row{border-bottom:1px solid var(--border);flex-wrap:wrap;align-self:stretch;align-items:center;gap:10px 12px;margin-bottom:16px;padding-bottom:16px;display:flex}.dictation-source-row label{color:var(--text-secondary);white-space:nowrap;font-size:13px;font-weight:500}.dictation-apply-row{border-top:1px solid var(--border);flex-wrap:wrap;align-self:stretch;align-items:center;gap:10px 12px;margin-top:16px;padding-top:16px;display:flex}.cfg-pending{color:var(--text-muted);min-width:0;margin:0;font-size:13px}.cfg-pending.is-pending{color:var(--text-secondary);font-weight:500}.dictation-source-row select{min-width:150px;width:auto!important}.grade-range{flex-direction:column;gap:2px;min-width:0;display:flex}.grade-range-row{align-items:center;gap:8px;display:flex}.grade-range-end{font-variant-numeric:tabular-nums;color:var(--text-muted);flex:none;font-size:12px;font-weight:500}.grade-range-slider{flex:1;min-width:0;height:24px;position:relative}.grade-range-rail{background:var(--border);border-radius:2px;height:4px;position:absolute;top:50%;left:10px;right:10px;transform:translateY(-50%)}.grade-range-fill{background:var(--accent);border-radius:2px;position:absolute;top:0;bottom:0}.grade-range .grade-range-input{width:100%;height:24px;box-shadow:none;appearance:none;pointer-events:none;background:0 0;border:none;border-radius:0;margin:0;padding:0;position:absolute;inset:0}.grade-range .grade-range-input:hover{border:none}.grade-range .grade-range-input::-webkit-slider-runnable-track{background:0 0;border:none}.grade-range .grade-range-input::-moz-range-track{background:0 0;border:none}.grade-range .grade-range-input::-webkit-slider-thumb{appearance:none;pointer-events:auto;background:var(--bg);border:2px solid var(--accent);width:20px;height:20px;box-shadow:var(--shadow-card);cursor:pointer;border-radius:50%}.grade-range .grade-range-input::-moz-range-thumb{pointer-events:auto;background:var(--bg);border:2px solid var(--accent);width:20px;height:20px;box-shadow:var(--shadow-card);cursor:pointer;border-radius:50%}.grade-range .grade-range-input:focus-visible{box-shadow:none;border:none;outline:none}.grade-range .grade-range-input:focus-visible::-webkit-slider-thumb{outline:2px solid var(--focus);outline-offset:2px}.grade-range .grade-range-input:focus-visible::-moz-range-thumb{outline:2px solid var(--focus);outline-offset:2px}@media (pointer:coarse){.grade-range-slider,.grade-range .grade-range-input{height:32px}.grade-range .grade-range-input::-webkit-slider-thumb{width:28px;height:28px}.grade-range .grade-range-input::-moz-range-thumb{width:28px;height:28px}.grade-range-rail{left:14px;right:14px}}.grade-range-readout{color:var(--text-secondary);min-height:16px;margin:0;font-size:12px;font-weight:400}.bottom-panel{background:var(--bg);border-top:1px solid var(--border);padding:16px 24px calc(20px + env(safe-area-inset-bottom,0px));z-index:100;box-shadow:var(--shadow-panel);flex-direction:column;align-items:center;gap:14px;display:flex;position:fixed;bottom:0;left:0;right:0}.controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.control-track{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--r-lg);align-items:center;gap:8px;padding:7px 9px;display:flex}.control-track .btn{background:var(--bg-card)}.control-track .btn:hover:not(:disabled){background:var(--bg);border-color:var(--border-strong)}.control-track .btn-primary{background:var(--accent)}.control-track .btn-primary:hover:not(:disabled){background:var(--accent-hover)}.control-track .btn-loop-active{background:var(--selected);border-color:var(--selected)}.control-track .btn-loop-active:hover:not(:disabled){background:var(--selected-hover);border-color:var(--selected-hover)}.controls-reference{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.drone-group{touch-action:manipulation}.level-stepper{align-items:center;gap:4px;display:flex}.btn-step{min-width:40px;min-height:40px;color:var(--text-secondary);padding:0}.btn-step:hover:not(:disabled){color:var(--text-primary)}@media (pointer:coarse){.btn-step{min-width:44px;min-height:44px}}.level-meter{flex:none;margin:0 2px;display:block}.level-bar{fill:var(--border-strong);transition:fill var(--t-fast) var(--ease)}.level-bar.is-on{fill:var(--text-primary)}.segmented-group{background:var(--bg-subtle);border:1px solid var(--border);border-radius:24px;flex-wrap:wrap;align-items:center;gap:4px;padding:4px;display:flex}.segmented-group .btn-segment{flex:auto}.btn-segment{border-radius:var(--r-pill);color:var(--text-secondary);background:0 0;border-color:#0000;padding:8px 14px;font-size:13px}.btn-segment:hover:not(:disabled){color:var(--text-primary);background:0 0;border-color:#0000}.btn-segment-active,.btn-segment-active:hover:not(:disabled){background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow-card);border-color:#0000;font-weight:500}.gesture-bar{justify-content:center;margin:0 0 14px;display:flex}.gesture-bar .mode-switch{flex-wrap:wrap;justify-content:center}.tempo-bar{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.tempo-label{text-transform:uppercase;letter-spacing:.09em;color:var(--text-muted);white-space:nowrap;font-size:11px;font-weight:500}.tempo-bar input[type=range]{cursor:pointer;width:160px;accent-color:var(--accent);background:0 0;border:none;padding:0}.tempo-bar input[type=range]:focus-visible{outline:2px solid var(--focus);outline-offset:4px;border-radius:var(--r-pill)}.tempo-value{font-variant-numeric:tabular-nums;color:var(--text-primary);white-space:nowrap;text-align:left;min-width:58px;font-size:13px;font-weight:500}.kit-select,.tempo-bar-select{font-family:var(--font-body);border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);padding:7px 10px;font-size:13px;font-weight:400}.kit-select:hover,.tempo-bar-select:hover{border-color:var(--border-strong)}.kit-select:focus-visible,.tempo-bar-select:focus-visible{border-color:var(--focus);box-shadow:0 0 0 3px var(--focus-wash);outline:none}.tempo-bar-select.is-sounding{background:var(--selected);border-color:var(--selected);color:var(--selected-text)}.tempo-field{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.tempo-checkbox-label{color:var(--text-secondary);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:13px;font-weight:400;display:flex}.tempo-checkbox-label.is-disabled{color:var(--text-muted);cursor:default;opacity:.55}.tempo-checkbox-label input[type=checkbox]{width:15px;height:15px;cursor:inherit;accent-color:var(--accent);flex:none;margin:0}.transpose-controls{align-items:center;gap:6px;margin-left:8px;display:flex}.btn-transpose{font-family:var(--font-body);font-variant-numeric:lining-nums;border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-card);min-width:34px;color:var(--text-primary);cursor:pointer;transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), transform 80ms var(--ease);padding:7px 10px;font-size:14px;font-weight:500;line-height:1.2}.btn-transpose:hover{background:var(--bg-subtle);border-color:var(--border-strong)}.btn-transpose:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.btn-transpose:active{transform:scale(.98)}.instrument-spinner{border:2px solid var(--border);border-top-color:var(--accent);vertical-align:middle;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.instrument-spinner{border-color:var(--accent);animation:spinner-pulse 1.4s var(--ease) infinite!important}}@keyframes spinner-pulse{50%{opacity:.3}}@keyframes fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.metronome-page button,.metronome-page select{touch-action:manipulation}.metronome-sections{grid-template-columns:minmax(0,1fr);gap:16px;margin-bottom:32px;display:grid}@media (width>=720px){.metronome-sections{grid-template-columns:repeat(4,minmax(0,1fr))}.metronome-section[data-size=s]{grid-column:span 2}.metronome-section[data-size=m]{grid-column:span 3}.metronome-section[data-size=l],.metronome-section[data-size=xl]{grid-column:span 4}.metronome-add{grid-column:span 2}}@media (width>=1000px){.metronome-sections{grid-template-columns:repeat(6,minmax(0,1fr))}.metronome-section[data-size=l]{grid-column:span 4}.metronome-section[data-size=xl]{grid-column:span 6}}.metronome-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);min-width:0;box-shadow:var(--shadow-card);flex-direction:column;gap:16px;padding:20px;display:flex}.metronome-section.is-active{border-color:var(--selected)}.metronome-section-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.metronome-section-head h2{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin:0;font-size:12px;font-weight:600;line-height:1}.metronome-section-foot{flex-wrap:wrap;justify-content:flex-end;gap:6px;margin-top:-8px;display:flex}.metronome-section-tool{letter-spacing:.04em;color:var(--text-muted);box-shadow:none;background:0 0;border-color:#0000;padding:4px 8px;font-size:11px}.metronome-section-tool:hover:not(:disabled){color:var(--text-primary);background:var(--bg-subtle);border-color:var(--border)}.metronome-section-tool:disabled{opacity:.45}.metronome-section-clear{margin-left:4px}.metronome-section-remove{color:var(--text-muted);box-shadow:none;background:0 0;border-color:#0000;padding:6px}.metronome-section-remove:hover:not(:disabled){color:var(--text-primary);background:var(--bg-subtle);border-color:var(--border)}.bpm-field,.metronome-fields{max-width:340px}.bpm-field{justify-content:center;align-items:center;gap:12px;display:flex}.metronome-fields label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);font-size:12px;font-weight:500}.bpm-stepper{grid-template-columns:auto auto auto;grid-template-areas:"dec1 num inc1""dec5 num inc5";gap:4px 8px;padding:6px;display:grid}.bpm-dec-1{grid-area:dec1}.bpm-dec-5{grid-area:dec5}.bpm-inc-1{grid-area:inc1}.bpm-inc-5{grid-area:inc5}.bpm-stepper .btn-step{min-width:56px}@media (pointer:coarse){.bpm-stepper{flex:1;grid-template-columns:minmax(0,1fr) max-content minmax(0,1fr)}.bpm-stepper .btn-step{min-height:48px}}.bpm-input{width:72px;font-family:var(--font-display);font-variant-numeric:tabular-nums;text-align:center;color:var(--text-primary);border-radius:var(--r-sm);appearance:textfield;background:0 0;border:none;grid-area:num;padding:4px 0;font-size:28px;font-weight:600}.bpm-input::-webkit-outer-spin-button{appearance:none;margin:0}.bpm-input::-webkit-inner-spin-button{appearance:none;margin:0}.bpm-input:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.metronome-fields{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px 12px;display:grid}.metronome-fields select{min-width:0;font-family:var(--font-body);color:var(--text-primary);background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:7px 8px;font-size:14px}.metronome-fields select:hover{border-color:var(--text-muted)}.metronome-fields select:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.pattern-scroll{overscroll-behavior-x:contain;flex-direction:column;gap:14px;margin:0 -4px;padding:0 4px 4px;display:flex;overflow-x:auto}.pattern-grid{--step-track:minmax(var(--cell-min,18px), var(--cell-max,30px));--step-track-beat:minmax(calc(var(--cell-min,18px) + var(--beat-rule,5px)), calc(var(--cell-max,30px) + var(--beat-rule,5px)));grid-template-columns:var(--label-w,0px) var(--step-columns);justify-content:start;align-items:center;gap:var(--grid-gap,3px);min-width:min-content;display:grid}.pattern-row-label{z-index:1;width:var(--label-w,0px);letter-spacing:.02em;text-align:right;white-space:nowrap;color:var(--text-muted);background:var(--bg-card);padding-right:8px;font-size:11px;line-height:1;position:sticky;left:0}.step-lane-dot{background:var(--border-strong);width:5px;height:5px;transition:background var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);border-radius:50%;justify-self:center}.step-lane-dot.is-now{background:var(--accent);transform:scale(1.6)}.step-cell{min-width:var(--cell-min,18px);height:var(--cell-h,26px);border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--bg-card);cursor:pointer;transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);justify-content:center;align-items:center;padding:0;display:flex}.step-cell:hover{border-color:var(--text-muted)}.step-cell:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.pattern-grid.is-drums .step-cell{touch-action:pan-y pinch-zoom}.pattern-grid.is-drums{-webkit-user-select:none;user-select:none}.step-cell.is-accent,.step-cell.is-on{background:var(--selected);border-color:var(--selected)}.step-cell.is-accent:hover,.step-cell.is-on:hover{background:var(--selected-hover);border-color:var(--selected-hover)}.step-dot{background:var(--text-secondary);border-radius:50%;width:5px;height:5px}.step-cell.is-silent{background:var(--bg-subtle);border-style:dashed;border-color:var(--border)}.pattern-ruler-cell{font-variant-numeric:tabular-nums;color:var(--text-muted);justify-self:center;font-size:10px;line-height:1}.step-cell.is-beat-start,.step-lane-dot.is-beat-start,.pattern-ruler-cell.is-beat-start{margin-left:var(--beat-rule,5px)}.step-lane-dot.is-beat-start,.pattern-ruler-cell.is-beat-start{box-shadow:-4px 0 0 -3px var(--border-strong)}.step-cell.is-beat-start{position:relative}.step-cell.is-beat-start:before{content:"";top:0;bottom:0;left:calc(-1 * var(--beat-rule,5px));background:var(--border-strong);width:1.5px;position:absolute}.metronome-add{min-height:96px;font-family:var(--font-body);color:var(--text-muted);border:1px dashed var(--border-strong);border-radius:var(--r-lg);cursor:pointer;transition:color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:20px;font-size:13px;font-weight:500;display:flex}.metronome-add:hover{color:var(--text-primary);border-color:var(--text-muted);background:var(--bg-subtle)}.metronome-add:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.metronome-transport{justify-content:center;margin-bottom:20px;display:flex}.metronome-play{width:min(320px,100%);min-height:52px}.metronome-bar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:32px;display:flex}.mode-switch,.metronome-sound{align-items:center;gap:8px;display:flex}.mode-switch-label,.metronome-sound>span{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);font-size:12px;font-weight:500}.metronome-sound select:disabled{opacity:.45;cursor:not-allowed}.sample-credits{max-width:880px;color:var(--text-muted);text-align:center;margin:0 auto;font-size:12px;line-height:1.6}.site-nav{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:32px;display:flex}.site-brand{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text-primary);margin-right:auto;font-size:18px;font-weight:700;text-decoration:none}.site-brand:hover{color:var(--text-secondary)}.site-brand:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:var(--r-sm)}.site-nav-group{background:var(--bg-subtle);border:1px solid var(--border);border-radius:24px;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;padding:4px;display:flex}.site-nav-switch{border:1px solid var(--border);border-radius:24px;align-items:center;gap:2px;margin-right:4px;padding:2px;display:flex}.site-nav-switch .btn-segment{border-width:0;padding:6px 12px;font-size:12px;line-height:1}.site-nav-linkstack{flex:1;justify-content:flex-end;min-width:0;display:flex;position:relative}.site-nav-links{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;min-width:0;display:flex}.site-nav-links.is-leaving{pointer-events:none;width:max-content;animation:nav-chips-out var(--t-fast) var(--ease) both;flex-wrap:nowrap;position:absolute;top:0;right:0}.site-nav-group[data-swapping]{flex-wrap:nowrap;justify-content:flex-start;overflow:hidden}.site-nav-group[data-swapping] .site-nav-linkstack{overflow:hidden}.site-nav-group[data-swapping] .site-nav-switch{flex:none}.site-nav-group[data-swapping] .site-nav-links:not(.is-leaving){flex-wrap:nowrap;width:max-content}@keyframes nav-chips-in{0%{opacity:0;transform:translateX(var(--nav-swap-from))}to{opacity:1;transform:none}}@keyframes nav-chips-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateX(calc(-1 * var(--nav-swap-from)))}}.site-nav-group[data-swap] .site-nav-link{--nav-swap-from:8px;animation:nav-chips-in var(--t-fast) var(--ease) var(--t-fast) both}.site-nav-group[data-swap=back] .site-nav-link{--nav-swap-from:-8px}.site-nav-links.is-leaving .site-nav-link{animation:none}.site-nav-link{text-transform:uppercase;letter-spacing:.07em;white-space:nowrap;border-radius:var(--r-pill);color:var(--text-secondary);transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);padding:9px 14px;font-size:12px;font-weight:500;line-height:1;text-decoration:none}.site-nav-link:hover{color:var(--text-primary)}.site-nav-link:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.site-nav-link-active,.site-nav-link-active:hover{background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow-card)}.site-nav-utility{color:var(--text-muted);flex:none;font-size:13px;text-decoration:none}.site-nav-utility:hover{color:var(--text-secondary)}.site-nav-settings{color:var(--text-secondary);flex:none}.site-nav-settings:hover:not(:disabled){color:var(--text-primary)}.settings-dialog{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow-lift);width:min(420px,100vw - 32px);padding:0}.settings-dialog::backdrop{background:var(--backdrop)}.settings-body{padding:24px}.settings-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.settings-title{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:20px;font-weight:600}.settings-close{color:var(--text-secondary);margin:-10px -10px -10px 0}.settings-close:hover:not(:disabled){color:var(--text-primary)}.settings-field{flex-direction:column;gap:8px;display:flex}.settings-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:11px;font-weight:500}.settings-field+.settings-field{margin-top:24px}.settings-field-header{align-items:center;gap:8px;display:flex}.settings-note{color:var(--text-muted);margin:0;font-size:12px;line-height:1.5}.settings-segments{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--r-pill);gap:4px;padding:4px;display:flex}.settings-segments .btn-segment{flex:1}.app-plain{padding-bottom:64px}.hub-intro{max-width:62ch;color:var(--text-secondary);margin:0 0 40px;font-size:17px}.hub-section{margin-bottom:48px}.hub-section:last-child{margin-bottom:0}.hub-section-label{text-transform:uppercase;letter-spacing:.09em;color:var(--text-muted);border-bottom:1px solid var(--border);margin:0 0 16px;padding-bottom:12px;font-size:11px;font-weight:500}.hub-cards{gap:16px;display:grid}@media (width>=720px){.hub-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}.hub-cards>:only-child{grid-column:1/-1}.hub-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-card);color:inherit;transition:border-color var(--t-fast) var(--ease), box-shadow var(--t-mid) var(--ease), transform var(--t-mid) var(--ease);flex-direction:column;gap:8px;padding:28px;text-decoration:none;display:flex}.hub-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-lift);transform:translateY(-2px)}.hub-card:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.hub-card h3{font-family:var(--font-display);letter-spacing:-.015em;margin:0;font-size:21px;font-weight:600}.hub-card p{color:var(--text-secondary);flex:1;margin:0;font-size:15px}.hub-card-cta{color:var(--text-primary);margin-top:8px;font-size:13px;font-weight:500}.hub-cards.feedback-cards{grid-template-columns:minmax(0,1fr)}.feedback-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-card);flex-direction:column;gap:8px;padding:28px;display:flex}.feedback-card h3{font-family:var(--font-display);letter-spacing:-.015em;margin:0;font-size:21px;font-weight:600}.feedback-card p{color:var(--text-secondary);margin:0;font-size:15px}.feedback-card-support .feedback-actions{margin-top:auto}.feedback-label{text-transform:uppercase;letter-spacing:.09em;color:var(--text-muted);margin-top:8px;font-size:11px;font-weight:500;display:block}.feedback-textarea,.feedback-input{font-family:var(--font-body);border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg);color:var(--text-primary);width:100%;min-width:0;transition:border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);padding:8px 11px;font-size:14px;font-weight:400}.feedback-textarea{resize:vertical;min-height:96px;line-height:1.5}.feedback-textarea:hover,.feedback-input:hover{border-color:var(--border-strong)}.feedback-textarea:focus-visible,.feedback-input:focus-visible{border-color:var(--focus);box-shadow:0 0 0 3px var(--focus-wash);outline:none}.feedback-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:0 12px;margin-top:8px;display:flex}.feedback-card a.btn{text-decoration:none}.feedback-card .feedback-status{color:var(--danger);text-align:center;flex-basis:100%;margin:0;font-size:13px}.feedback-card .feedback-status:not(:empty){margin-top:8px}.feedback-card .feedback-note{color:var(--text-muted);margin:8px 0 0;font-size:12px;line-height:1.5}.feedback-sent{animation:fade-in .3s var(--ease) both}.feedback-sent h3{align-items:center;gap:8px;display:flex}.feedback-sent .btn{align-self:flex-start;margin-top:8px}.feedback-botcheck{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;left:-9999px}.interval-toggles{border-top:1px solid var(--border);width:100%;padding-top:16px}.interval-toggles-label{text-transform:uppercase;letter-spacing:.09em;color:var(--text-muted);padding-bottom:12px;font-size:11px;font-weight:500;display:block}.interval-toggle-grid{background:var(--bg-subtle);border:1px solid var(--border);border-radius:24px;flex-wrap:wrap;justify-content:center;gap:4px;padding:5px;display:flex}@media (width>=720px){.interval-toggle-grid{padding:10px}}.interval-toggle-grid .btn-segment{font-variant-numeric:tabular-nums;min-width:46px}.interval-question{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-card);flex-direction:column;align-items:center;gap:16px;margin-bottom:24px;padding:28px;display:flex}.interval-actions{align-items:center;gap:12px;display:flex}.interval-status{flex-wrap:wrap;justify-content:center;align-items:center;gap:20px;display:flex}.interval-tally{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:13px;font-weight:500}.interval-progress-wrap{align-items:center;gap:10px;display:inline-flex}.interval-progress{border-radius:var(--r-pill);background:var(--bg-subtle);border:1px solid var(--border);width:128px;height:6px;display:block;overflow:hidden}.interval-progress-fill{background:var(--accent);height:100%;transition:width var(--t-mid) var(--ease);display:block}.interval-progress-value{color:var(--text-muted);font-variant-numeric:tabular-nums;min-width:34px;font-size:12px}.interval-unlocked{color:var(--text-secondary);margin:0;font-size:13px}.interval-answers{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:24px;display:flex}.btn-answer{background:var(--bg-card)}.btn-answer-correct,.btn-answer-correct:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn-answer-picked,.btn-answer-picked:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--accent);color:var(--text-primary)}.btn-answer-wrong,.btn-answer-wrong:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--border-strong);color:var(--text-muted);text-decoration:line-through}.btn-key{text-transform:uppercase;letter-spacing:.06em;border-radius:var(--r-sm);background:var(--bg-subtle);border:1px solid var(--border);color:var(--text-muted);padding:3px 5px;font-size:10px;font-weight:500;line-height:1}.btn-primary .btn-key,.btn-generate .btn-key,.btn-answer-correct .btn-key{background:var(--accent-overlay);border-color:var(--accent-overlay-border);color:var(--accent-text)}.interval-reveal{grid-template-areas:"text""score""next";justify-items:center;gap:12px;display:grid}.interval-reveal-line{flex-wrap:wrap;grid-area:text;justify-content:center;align-items:center;gap:10px;min-height:84px;margin:0;font-size:15px;display:flex}.interval-reveal[data-answered=yes] .interval-reveal-line{animation:fade-in .3s var(--ease) both}.interval-reveal[data-answered=no] .interval-reveal-line{visibility:hidden}.interval-reveal-tick{width:16px;height:16px;display:inline-block}.interval-reveal-blank{color:var(--text-muted);letter-spacing:.06em;font-weight:400}.interval-reveal>.score-sizer{grid-area:score;min-width:0}.interval-reveal>.btn-generate{grid-area:next}.interval-reveal .score-frame{padding:14px 24px 0}.interval-reveal-notes{font-family:var(--font-display);color:var(--text-secondary);font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-size:16px;display:inline-flex}.interval-note-sep{color:var(--text-muted)}.btn-note{font:inherit;font-variant-numeric:tabular-nums;border-radius:var(--r-sm);color:var(--text-primary);text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:4px;cursor:pointer;transition:background var(--t-fast) var(--ease), text-decoration-color var(--t-fast) var(--ease);background:0 0;border:0;padding:4px 6px}.btn-note:hover{background:var(--bg-subtle);-webkit-text-decoration-color:var(--text-primary);text-decoration-color:var(--text-primary)}.btn-note:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.dictation-stave{margin-bottom:24px}.dictation-label{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.09em;color:var(--text-muted);margin:0 0 12px;font-size:11px;font-weight:500}.dictation-palette{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-top:14px;display:flex}.dictation-palette-group{background:var(--bg-subtle);border:1px solid var(--border);border-radius:24px;flex-wrap:wrap;align-items:center;gap:4px;padding:4px;display:flex}.dictation-palette .btn-segment{min-width:40px;padding:8px 12px}.dictation-palette .btn-segment:disabled{opacity:.4}.dictation-glyph{font-size:17px;line-height:1}.score-bar-caret{background:var(--state-wash);border-radius:var(--r-sm);pointer-events:none;position:absolute}.score-note-tools{width:0;height:0;position:absolute}@media (pointer:coarse){.score-note-tools{display:none}}.note-tools .btn-tool{border:1px solid var(--border);background:var(--bg-card);width:26px;height:26px;color:var(--text-secondary);box-shadow:var(--shadow-card);cursor:pointer;transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute}.note-tools .btn-tool:hover:not(:disabled){background:var(--bg-subtle);color:var(--text-primary)}.note-tools .btn-tool:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.note-tools .btn-tool:disabled{opacity:.32;cursor:default}.note-tools .btn-tool-active{background:var(--text-primary);border-color:var(--text-primary);color:var(--bg-card)}.note-tool-up{bottom:18px;left:-13px}.note-tool-down{top:18px;left:-13px}.note-tool-remove{transform:translateX(var(--tools-remove-shift,0));bottom:18px;left:16px}.note-tool-shorter{right:16px;top:var(--tools-below-staff);transform:translateX(var(--tools-row-shift,0))}.note-tool-longer{left:16px;top:var(--tools-below-staff);transform:translateX(var(--tools-row-shift,0))}.note-tool-dot{left:46px;top:var(--tools-below-staff);transform:translateX(var(--tools-row-shift,0))}.dictation-notice{text-align:center;min-height:18px;color:var(--text-muted);margin:10px 0 0;font-size:13px}.dictation-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-bottom:24px;display:flex}@media (width>=720px){.interval-reveal{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);grid-template-areas:"next next""text score";place-items:center start;column-gap:28px}.interval-reveal-line{justify-content:flex-start}.interval-reveal>.btn-generate{justify-self:center}}.chord-vocabulary .interval-toggle-grid .btn-segment,.progression-answers .btn-answer{font-variant-numeric:tabular-nums;min-width:54px}.progression-transport{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-card);flex-direction:column;align-items:center;gap:16px;margin-bottom:20px;padding:24px 28px;display:flex}.progression-transport-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.progression-inline-field{align-items:center;gap:8px;display:inline-flex}.progression-inline-label{text-transform:uppercase;letter-spacing:.09em;color:var(--text-muted);white-space:nowrap;font-size:11px;font-weight:500}.progression-inline-select{font-family:var(--font-body);border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);padding:8px 11px;font-size:13px}.progression-inline-select:hover{border-color:var(--border-strong)}.progression-inline-select:focus-visible{border-color:var(--focus);box-shadow:0 0 0 3px var(--focus-wash);outline:none}.progression-inline-select.is-sounding{background:var(--selected);border-color:var(--selected);color:var(--selected-text)}.progression-slots{flex-wrap:wrap;justify-content:center;gap:26px 8px;margin-bottom:16px;padding-top:20px;display:flex}.progression-slot{background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--r-md);min-width:64px;min-height:68px;font:inherit;color:inherit;text-align:center;cursor:pointer;transition:border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);flex-direction:column;justify-content:center;align-items:center;padding:8px 12px;display:flex;position:relative}.progression-slot:disabled{cursor:default}.progression-slot:not(:disabled):hover{border-color:var(--border-strong)}.progression-slot-chevron{color:var(--accent);pointer-events:none;line-height:0;display:flex;position:absolute;top:-19px;left:50%;transform:translate(-50%)}.progression-slot-index{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:500}.progression-slot-label{font-family:var(--font-display);color:var(--text-muted);font-variant-numeric:tabular-nums;min-height:22px;font-size:18px;font-weight:600}.progression-slot-done .progression-slot-label{color:var(--text-primary)}.progression-slot-current{border-color:var(--focus);background:var(--bg-subtle)}.progression-slot-current .progression-slot-label{color:var(--text-secondary)}.progression-slot-right{background:var(--accent);border-color:var(--accent)}.progression-slot-right .progression-slot-index{color:var(--accent-text);opacity:.7}.progression-slot-right .progression-slot-label{color:var(--accent-text)}.progression-slot-wrong{background:var(--bg-subtle);border-color:var(--border-strong)}.progression-slot-wrong .progression-slot-label{color:var(--text-muted);text-decoration:line-through}.progression-slot-answer{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:10px;font-weight:500}.progression-answers{margin-bottom:24px}.progression-check{justify-content:center;margin-bottom:24px;display:flex}.progression-reveal{animation:fade-up .4s var(--ease) both;grid-template-areas:"text""score""next";justify-items:center;gap:12px;display:grid}.progression-reveal-header{flex-direction:column;grid-area:text;align-items:center;gap:4px;display:flex}.progression-reveal-line{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:0;font-size:15px;display:flex}.progression-reveal-romans{font-family:var(--font-display);color:var(--text-primary);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:6px;font-size:18px;font-weight:600;display:inline-flex}.progression-reveal-roman{font-variant-numeric:tabular-nums}.progression-reveal-sep{color:var(--text-muted)}.progression-reveal-names{font-family:var(--font-display);color:var(--text-secondary);font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin:0;font-size:15px;display:inline-flex}.progression-reveal-key{color:var(--text-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin:0;font-size:13px;display:inline-flex}.progression-reveal>.score-sizer{grid-area:score;min-width:0}.progression-reveal>.btn-generate{grid-area:next}@media (width>=720px){.progression-reveal{grid-template-columns:fit-content(45%) minmax(0,1fr);grid-template-areas:"next next""text score";place-items:center start;column-gap:20px}.progression-reveal>.score-sizer{justify-self:stretch}.progression-reveal-header{align-items:flex-start}.progression-reveal-line,.progression-reveal-names,.progression-reveal-key{justify-content:flex-start}.progression-reveal>.btn-generate{justify-self:center}}@media (width<=768px){.app{padding:40px 20px 200px}.site-nav-group{flex-direction:column;align-items:stretch;gap:4px;width:100%}.site-brand{order:1}.site-nav-utility{order:2}.site-nav-settings{order:3}.site-nav-group{border-color:#0000;order:4}.site-nav-switch{border-color:#0000;margin-right:0}.site-nav-switch .btn-segment{flex:1}.site-nav-linkstack,.site-nav-links{justify-content:center}.site-nav-links.is-leaving{flex-wrap:wrap;width:auto;left:0;right:0}.site-nav-group[data-swapping] .site-nav-linkstack{overflow:visible}.site-nav-group[data-swapping] .site-nav-links:not(.is-leaving){flex-wrap:wrap;width:auto}.config-panel{padding:8px 20px 24px}.app-plain{padding-bottom:48px}.hub-card,.feedback-card,.interval-question{padding:24px 20px}.progression-transport{padding:20px}}@media (width<=480px){.app{padding:32px 16px 220px}.score-frame{padding:20px 12px}.interval-reveal .score-frame{padding:10px 12px 0}.config-panel{gap:20px;padding:8px 16px 20px}.config-grid{grid-template-columns:minmax(0,1fr);gap:0}.config-grid>label:not(.cfg-checkbox-label){margin:16px 0 6px}.config-grid>label:not(.cfg-checkbox-label):first-child{margin-top:0}.bottom-panel{padding:12px 12px calc(16px + env(safe-area-inset-bottom,0px));gap:10px}.controls,.tempo-bar{gap:8px}.tempo-bar input[type=range]{width:130px}.app-plain{padding-bottom:40px}.site-nav{margin-bottom:24px}.site-nav-link{padding:9px}.interval-question{padding:20px 16px}.interval-progress{width:96px}.progression-transport{padding:18px 16px}.progression-slot{min-width:52px;min-height:60px;padding:6px 8px}.progression-slot-label{font-size:16px}}.theme-credit{max-width:var(--score-max-width,900px);color:var(--text-muted);text-align:center;margin:.875rem auto 0;padding:0 .5rem;font-size:.85rem;line-height:1.5}.dictation-phrase-note{max-width:var(--score-max-width,900px);color:var(--text-muted);text-align:center;margin:2px auto 0;font-size:12px}.theme-credit-title{color:var(--text-primary)}.theme-credit-original,.theme-credit-attribution{font-style:italic}.cfg-error{color:var(--danger);font-size:.85rem}.support-toast{top:calc(16px + env(safe-area-inset-top,0px));right:calc(16px + env(safe-area-inset-right,0px));z-index:90;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);width:min(310px,100vw - 32px);box-shadow:var(--shadow-lift);animation:support-toast-in .26s var(--ease);flex-direction:column;align-items:flex-start;gap:12px;padding:16px 40px 16px 18px;display:flex;position:fixed;overflow:hidden}.support-toast-progress{background:var(--accent);transform-origin:0;width:100%;height:2px;animation:support-toast-drain var(--support-toast-ms) linear forwards;position:absolute;bottom:0;left:0}@keyframes support-toast-drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.support-toast p{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.45}.support-toast a.btn{padding:8px 14px;text-decoration:none}.support-toast-close{border-radius:var(--r-sm);width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:8px;right:8px}.support-toast-close:hover{background:var(--bg-subtle);color:var(--text-primary)}@keyframes support-toast-in{0%{opacity:0;transform:translateY(-8px)}}@media (width>=720px){.support-toast{top:calc(108px + env(safe-area-inset-top,0px));right:max(calc(16px + env(safe-area-inset-right,0px)), calc((100% - 880px) / 2 - 126px))}body:has(.app-wide) .support-toast{right:max(calc(16px + env(safe-area-inset-right,0px)), calc((100% - 1200px) / 2 - 126px))}}@media (prefers-reduced-motion:reduce){.support-toast{animation:none}}.page-prose{max-width:62ch;color:var(--text-secondary)}.page-prose h2{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text-primary);margin:40px 0 12px;font-size:19px;font-weight:600}.page-prose p,.page-prose ul{margin:0 0 16px}.page-prose ul{padding-left:22px}.page-prose li{margin-bottom:8px}.page-prose strong{color:var(--text-primary);font-weight:600}.page-prose a{color:var(--text-primary)}.page-lede{color:var(--text-primary);font-size:17px}.page-updated{color:var(--text-muted);margin-top:40px;font-size:13px}.notfound-routes{padding-left:0;list-style:none}
