.lfo-demo{margin:var(--space-6) 0;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);font-family:var(--font-ui);scroll-margin-top:88px;overflow:clip;container-type:inline-size}.lfo-demo-head{flex-direction:column;gap:2px;padding:14px 20px;display:flex}.lfo-demo-label{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);font-size:12px;font-weight:600}.lfo-demo-name{font-size:17px;font-weight:600;line-height:1.3}.lfo-demo-plot{border-block:var(--border-width) solid var(--color-border);background:var(--chart-bg);grid-template-columns:auto minmax(0,1fr);gap:8px;display:grid}.lfo-demo-side{flex-direction:column;align-self:start;align-items:center;gap:4px;padding:16px 0 16px 16px;display:flex;position:sticky;top:72px}.lfo-demo-circle{touch-action:none}.lfo-demo[data-state=ready] .lfo-demo-circle{cursor:grab}.lfo-demo[data-dragging=true] .lfo-demo-circle{cursor:grabbing}.lfo-demo-circle-svg{user-select:none;width:220px;height:220px;display:block;overflow:visible}.lfo-demo-phase{font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-size:14px;font-weight:600}.lfo-demo-waves{flex-direction:column;gap:6px;margin:0;padding:12px 20px 8px 0;list-style:none;display:flex}.lfo-demo-wave-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 12px;padding-left:36px;font-size:14px;display:flex}.lfo-demo-wave-name{font-weight:600}.lfo-demo-formula{font-family:var(--font-text);font-variant-numeric:tabular-nums;color:var(--color-text)}.lfo-demo-chart{padding:8px 4px 26px 36px}.lfo-demo-svg{width:100%;height:72px;font-size:var(--text-chart);font-variant-numeric:tabular-nums;display:block;overflow:visible}.lfo-demo-grid line{stroke:var(--chart-grid);stroke-width:1px;vector-effect:non-scaling-stroke}.lfo-demo-axis{stroke:var(--chart-axis);stroke-width:1px}.lfo-demo-ring{fill:none;stroke:var(--chart-axis);stroke-width:1.5px;vector-effect:non-scaling-stroke}.lfo-demo-wave,.lfo-demo-jump,.lfo-demo-arc,.lfo-demo-projection,.lfo-demo-vector{fill:none;vector-effect:non-scaling-stroke}.lfo-demo-wave{stroke:var(--chart-signal);stroke-width:2.5px}.lfo-demo-jump{stroke:var(--chart-signal);stroke-width:2.5px;stroke-dasharray:5 4}.lfo-demo-cursor{stroke:var(--chart-result);stroke-width:1.5px}.lfo-demo-dot{fill:var(--chart-result);stroke:var(--chart-bg);stroke-width:2px}.lfo-demo-vector{stroke:var(--chart-result);stroke-width:2.25px}.lfo-demo-handle{fill:var(--chart-result);stroke:var(--chart-bg);stroke-width:2px;vector-effect:non-scaling-stroke}.lfo-demo-arc{stroke:var(--chart-label);stroke-width:1.5px}.lfo-demo-projection{stroke:var(--chart-signal);stroke-width:1.5px;stroke-dasharray:1.5 3}.lfo-demo-angle{fill:var(--chart-label);font-family:var(--font-text);font-style:italic}.lfo-demo-ticks{fill:var(--chart-label)}.lfo-demo-body{flex-direction:column;gap:10px;padding:12px 20px;display:flex}.lfo-demo-legend{flex-wrap:wrap;align-items:center;gap:6px 18px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.lfo-demo-legend li{align-items:center;gap:6px;display:flex}.lfo-demo-legend i,.lfo-demo-param-head i,.lfo-demo-formula i{font-family:var(--font-text)}.lfo-demo-key{flex:none;width:18px}.lfo-demo-key.wave{background:var(--chart-signal);height:2.5px}.lfo-demo-key.cursor{background:linear-gradient(var(--chart-result), var(--chart-result)) center / 1.5px 100% no-repeat;width:12px;height:14px}.lfo-demo-key.dot{background:var(--chart-result);border-radius:50%;width:10px;height:10px;margin-inline:4px}.lfo-demo-key.jump{background:repeating-linear-gradient(to bottom, var(--chart-signal) 0 4px, transparent 4px 7px) center / 2.5px 100% no-repeat;width:12px;height:14px}.lfo-demo-status{border-radius:var(--radius-md);background:var(--color-bg);box-shadow:inset 0 0 0 1px var(--color-border-strong);align-items:flex-start;gap:8px;margin:0;padding:8px 12px;font-size:14px;line-height:1.45;display:flex}.lfo-demo-icon{color:var(--color-text-muted);flex:none;margin-top:1px;display:flex}.lfo-demo .visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.lfo-demo-controls{border:0;border-top:var(--border-width) solid var(--color-border);flex-direction:column;gap:14px;min-width:0;margin:0;padding:14px 20px 16px;display:flex}.lfo-demo-param{flex-direction:column;gap:8px;display:flex}.lfo-demo-param-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 8px;font-size:14px;display:flex}.lfo-demo-param-head output{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:15px;font-weight:600}.lfo-demo-range{--half-thumb:10px;--track:linear-gradient(to right, var(--color-accent) calc(var(--half-thumb) + (100% - 2 * var(--half-thumb)) * var(--fill) / 100), var(--color-border) 0) center / 100% 4px no-repeat;appearance:none;cursor:pointer;touch-action:pan-y;background:0 0;width:100%;height:28px;margin:0}.lfo-demo-range::-webkit-slider-runnable-track{background:var(--track);height:28px}.lfo-demo-range::-moz-range-track{background:var(--track);height:28px}.lfo-demo-range::-webkit-slider-thumb{border:2px solid var(--color-accent);background:var(--color-surface-raised);width:20px;height:20px;box-shadow:var(--shadow-sm);appearance:none;border-radius:50%;margin-top:4px}.lfo-demo-range::-moz-range-thumb{box-sizing:border-box;border:2px solid var(--color-accent);background:var(--color-surface-raised);width:20px;height:20px;box-shadow:var(--shadow-sm);border-radius:50%}.lfo-demo-range:focus-visible{box-shadow:none;outline:none}.lfo-demo-range:focus-visible::-webkit-slider-thumb{box-shadow:var(--focus-ring)}.lfo-demo-range:focus-visible::-moz-range-thumb{box-shadow:var(--focus-ring)}.lfo-demo-scale{color:var(--color-text-muted);font-variant-numeric:tabular-nums;justify-content:space-between;gap:8px;font-size:12px;display:flex}.lfo-demo-actions{flex-wrap:wrap;align-items:center;gap:10px 16px;display:flex}.lfo-demo-presets{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.lfo-demo-presets-label{color:var(--color-text-muted);margin-right:2px;font-size:13px}.lfo-demo-preset{border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-full);height:32px;color:var(--color-text);font:500 14px var(--font-ui);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;padding:0 12px}.lfo-demo-preset[aria-pressed=true]{border-color:var(--color-accent);background:var(--color-accent-soft);font-weight:600}.lfo-demo-play,.lfo-demo-reset{border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-md);height:36px;color:var(--color-text);font:500 14px var(--font-ui);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.lfo-demo-play{border-color:var(--color-accent);background:var(--color-accent-soft);min-width:124px;font-weight:600}.lfo-demo-reset{margin-left:auto}.lfo-demo-play-icon{display:flex}.lfo-demo-play-icon.pause,.lfo-demo[data-playing=true] .lfo-demo-play-icon.play{display:none}.lfo-demo[data-playing=true] .lfo-demo-play-icon.pause{display:flex}@media (hover:hover){.lfo-demo-preset:hover,.lfo-demo-reset:hover{background:var(--color-bg)}.lfo-demo-preset[aria-pressed=true]:hover,.lfo-demo-play:hover{background:var(--color-accent-soft)}}.lfo-demo-controls:disabled .lfo-demo-param,.lfo-demo-controls:disabled .lfo-demo-actions{opacity:.5}.lfo-demo-controls:disabled *{cursor:not-allowed}.lfo-demo-note{color:var(--color-text-muted);margin:0;font-size:13px;line-height:1.45}.lfo-demo[data-state=ready] .lfo-demo-note{display:none}.lfo-demo[data-state=error] .lfo-demo-note{color:var(--color-error)}.lfo-demo-caption{border-top:var(--border-width) solid var(--color-border);color:var(--color-text-muted);padding:10px 20px 14px;font-size:14px;line-height:1.45}.lfo-demo-caption b{color:var(--color-text);font-weight:600}@container (width<=719px){.lfo-demo-circle-svg{width:186px;height:186px}}@container (width<=559px){.lfo-demo-head,.lfo-demo-body,.lfo-demo-controls,.lfo-demo-caption{padding-inline:16px}.lfo-demo-plot{grid-template-columns:minmax(0,1fr);gap:0}.lfo-demo-side{padding:14px 0 4px;position:static}.lfo-demo-waves{padding:8px 14px 4px 0}.lfo-demo-wave-head,.lfo-demo-chart{padding-left:30px}.lfo-demo-svg .minor{display:none}.lfo-demo-reset{margin-left:0}}#phase-and-frequency .figure-frame{container-type:inline-size}#phase-and-frequency .figure-frame>svg{font-size:clamp(10px,30px - 3cqw,22px)}@container (width>=700px){#phase-and-frequency .figure-frame>svg{font-size:8.5px}}
