.tonegen{container:tonegen / inline-size;display:grid;gap:var(--space-4);min-width:0}.tonegen > noscript{display:block}.tonegen__noscript{margin:0;font-size:var(--step--1);line-height:1.45}.tonegen[data-mode="multi"]{display:block}.tonegen[data-mode="multi"] > *{margin-block:0}.tonegen[data-mode="multi"] > * + *{margin-top:var(--space-4)}.tonegen[data-mode="multi"] > .tonegen__dock{margin-top:0}.tonegen[data-mode="multi"] > .tonegen__warning{margin-top:var(--space-3)}.tonegen__dock{position:sticky;top:0;z-index:2;display:grid;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1.5px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-1)}.tonegen__dock .tonegen__go,.tonegen__dock .tonegen__save{min-height:3rem}.tonegen__dock .tonegen__volume{grid-template-columns:6.75rem minmax(0,1fr);gap:var(--space-3);align-items:center}.tonegen__dock .tonegen__volume .label{display:grid;gap:0;line-height:1.25}.tonegen[data-mode="multi"] :is(input,select,button,a){scroll-margin-top:9rem}.tonegen__main{display:grid;grid-template-columns:minmax(0,1fr)}.tonegen__go{padding-inline:var(--space-4)}.tonegen__save{min-height:3.5rem;padding-inline:var(--space-4)}.tonegen__save[aria-busy="true"]{opacity:0.6;cursor:progress}.tonegen__go-icon{display:grid;flex:none}.tonegen__go-icon > *{display:grid;grid-area:1 / 1}.tonegen__go .icon{fill:currentColor}.tonegen__icon-stop,.tonegen:not([data-state="idle"]) .tonegen__icon-play{opacity:0;transform:scale(0.5) rotate(-45deg)}.tonegen:not([data-state="idle"]) .tonegen__icon-stop{opacity:1;transform:none}.tonegen[data-state="loading"] .tonegen__go{cursor:progress}.tonegen__warning{display:flex;gap:var(--space-2);align-items:flex-start;margin:0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--warn-soft);color:var(--ink);font-size:var(--step--1);line-height:1.45}.tonegen__warning .icon{flex:none;margin-top:0.1em;color:var(--warn)}.tonegen__caution{margin:0;padding-inline-start:var(--space-4);border-inline-start:3px solid var(--warn);color:var(--ink-muted);font-size:var(--step--1);line-height:1.45}.tonegen__readout{display:grid;gap:var(--space-2);min-width:0;padding:var(--space-4);border:1.5px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.tonegen__readout[data-state="playing"]{border-color:var(--brand)}.tonegen__readout > *{margin:0}.tonegen__kicker{display:flex;gap:var(--space-2);align-items:baseline;min-height:2.7em;color:var(--ink-muted);font-size:var(--step--1);font-weight:700;line-height:1.35;letter-spacing:0.04em;text-transform:uppercase}.tonegen__live{flex:none;width:0.6em;height:0.6em;border-radius:50%;background:var(--brand);opacity:0;transform:scale(0.4)}[data-state="playing"] > .tonegen__kicker .tonegen__live{opacity:1;transform:none}.tonegen__big{--big:clamp(2.5rem,17cqi,4.5rem);--big-lines:1;--big-leading:1.1;overflow:hidden;block-size:calc(var(--big) * var(--big-leading) * var(--big-lines));font-family:var(--font-display);font-size:var(--big);font-weight:var(--display-weight);font-variant-numeric:tabular-nums;line-height:calc(var(--big) * var(--big-leading));white-space:nowrap;text-overflow:ellipsis}.tonegen__big[data-long="long"]{font-size:calc(var(--big) * 0.76)}.tonegen__big[data-long="longer"]{font-size:calc(var(--big) * 0.66)}.tonegen__unit{color:var(--ink-muted);font-size:0.45em;line-height:1}[data-mode="sweep"] .tonegen__big,[data-mode="shepard"] .tonegen__big{--big:clamp(1.6rem,10cqi,3.25rem)}[data-mode="sweep"] .tonegen__big[data-long="long"]{font-size:calc(var(--big) * 0.8)}[data-mode="sweep"] .tonegen__big[data-long="longer"]{font-size:calc(var(--big) * 0.58)}[data-mode="multi"] .tonegen__big{--big:clamp(1.2rem,6.4cqi,2rem);--big-lines:2;--big-leading:1.4;white-space:normal;text-overflow:clip}[data-mode="multi"] .tonegen__big[data-long^="long"]{font-size:calc(var(--big) * 0.84);line-height:calc(var(--big) * var(--big-leading) * 2 / 3)}[data-mode="multi"] .tonegen__big[data-long="longer"]{font-size:calc(var(--big) * 0.7)}[data-mode="multi"] .tonegen__unit{font-size:0.7em}.tonegen__scope{display:block;width:100%;height:3rem;overflow:visible;fill:none}.tonegen__scope path{vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}.tonegen__scope-axis{stroke:var(--line-strong);stroke-width:1;stroke-dasharray:2 5}.tonegen__scope-line{stroke:var(--brand);stroke-width:2.25;opacity:0.5;transform:scaleY(0.55);transform-origin:center;transform-box:fill-box}[data-state="playing"] > .tonegen__scope .tonegen__scope-line{opacity:1;transform:none}.tonegen__facts{display:grid;gap:0 var(--space-5);padding:0;font-size:var(--step--1);font-variant-numeric:tabular-nums;line-height:1.5;list-style:none}.tonegen__facts > li{overflow:hidden;min-height:1.5em;white-space:nowrap;text-overflow:ellipsis}.tonegen__status{min-height:3em;color:var(--ink-muted);font-size:var(--step--1);font-variant-numeric:tabular-nums;line-height:1.5}.tonegen .tonegen__last{overflow:hidden;min-height:1.5em;font-family:inherit;font-size:var(--step--1);font-weight:700;line-height:1.5;white-space:nowrap;text-overflow:ellipsis}.tonegen__controls,.tonegen__multi,.tonegen__sweep,.tonegen__shepard,.tonegen__pulse{display:grid;gap:var(--space-4);min-width:0}.tonegen .label{display:flex;gap:var(--space-2);align-items:baseline;justify-content:space-between}.tonegen__out{color:var(--ink-muted);font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}.tonegen__hint{min-height:2.9em;line-height:1.45}.tonegen__volume-hint:not([data-caution="volumeNote"]){color:var(--ink)}.tonegen__number{font-size:var(--step-1);font-variant-numeric:tabular-nums;font-weight:650}.tonegen__frequency-row{display:grid;gap:var(--space-2)}.tonegen__nudges{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2)}.tonegen__nudges .btn{min-height:var(--tap);padding-inline:var(--space-1);font-variant-numeric:tabular-nums;white-space:nowrap}.tonegen__waves{display:grid;grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));gap:var(--space-2)}.tonegen__wave-glyph{flex:none;width:1.5em;height:1.5em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.tonegen__hub{margin:0;font-size:var(--step--1)}.tonegen__hub a{display:inline-flex;align-items:center;min-height:var(--tap);font-weight:650}.tonegen__pair{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:var(--space-2);align-items:end}.tonegen__tones{display:grid;margin:0;padding:0;list-style:none}.tonegen__tone{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:var(--space-2) var(--space-3);align-items:end;padding-block:var(--space-3);border-top:1px solid var(--line)}.tonegen__tone-hz{grid-area:1 / 1}.tonegen__tone-wave{grid-area:1 / 2}.tonegen__tone-remove{grid-area:1 / 3}.tonegen__tone-pan{grid-area:2 / 1}.tonegen__tone-level{grid-area:2 / 2 / 3 / 4}.tonegen__tone .tonegen__number{font-size:var(--step-0)}.tonegen__bar{padding-top:var(--space-3);border-top:1px solid var(--line)}.tonegen__bar-status{margin:0}.tonegen__bar-status:empty{display:none}.tonegen__list{display:grid;gap:var(--space-3);min-width:0}.tonegen__list-head{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);align-items:baseline;justify-content:space-between}.tonegen__list-title{margin:0;font-size:var(--step-1)}.tonegen__progress{margin:0;color:var(--ink-muted);font-size:var(--step--1);font-weight:700;font-variant-numeric:tabular-nums}.tonegen__shown{min-height:1.45em}.tonegen__rows{margin:0;padding:0;list-style:none}.tonegen__row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2);align-items:center;border-top:1px solid var(--line)}.tonegen__row[hidden]{display:none}.tonegen__tick,.tonegen__preset{display:flex;gap:var(--space-3);align-items:flex-start;min-height:var(--tap);padding:var(--space-3) var(--space-1);cursor:pointer}.tonegen__tick input{flex:none;width:1.35rem;height:1.35rem;margin:0.1em 0 0;accent-color:var(--brand)}.tonegen__preset{width:100%;border:0;border-radius:var(--radius-sm);background:none;color:inherit;font:inherit;text-align:start}.tonegen__preset:hover{background:var(--brand-soft)}.tonegen__preset[aria-pressed="true"]{background:var(--brand-soft);box-shadow:inset 0 0 0 1.5px var(--brand)}.tonegen__row-text{display:grid;gap:var(--space-1);min-width:0}.tonegen__row-title{font-weight:650;line-height:1.35}.tonegen__row-detail{color:var(--ink-muted);font-size:var(--step--1);line-height:1.45}.tonegen__tick input:checked + .tonegen__row-text > .tonegen__row-title{color:var(--ink-muted);text-decoration:line-through;text-decoration-thickness:1.5px}.tonegen__either{display:inline-grid}.tonegen__either > *{grid-area:1 / 1}.tonegen__either > :last-child,[data-undoing] > .tonegen__either > :first-child{visibility:hidden}[data-undoing] > .tonegen__either > :last-child{visibility:visible}@container tonegen (min-width:30rem){.tonegen__kicker{min-height:1.35em}.tonegen__facts{grid-auto-flow:column;justify-content:start}.tonegen__status{min-height:1.5em}.tonegen__hint{min-height:1.45em}.tonegen__frequency-row{grid-template-columns:minmax(8rem,12rem) minmax(0,1fr)}}@container tonegen (min-width:42rem){.tonegen__dock{position:static;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-4);align-items:center}.tonegen__tone{grid-template-columns:8rem 8rem 7rem minmax(0,1fr) auto}.tonegen__tone-hz{grid-area:1 / 1}.tonegen__tone-wave{grid-area:1 / 2}.tonegen__tone-pan{grid-area:1 / 3}.tonegen__tone-level{grid-area:1 / 4}.tonegen__tone-remove{grid-area:1 / 5}}@media (prefers-reduced-motion:no-preference){.tonegen__go-icon > *{transition:opacity 0.24s var(--ease),transform 0.24s var(--ease)}.tonegen__live{transition:opacity 0.24s,transform 0.24s var(--ease)}.tonegen__scope-line{transition:opacity 0.4s var(--ease),transform 0.4s var(--ease)}[data-state="playing"] > .tonegen__kicker .tonegen__live{animation:tonegen-live 1.6s ease-in-out 0.3s infinite}.tonegen__tick input:checked{animation:tonegen-tick 0.2s var(--ease)}}@keyframes tonegen-live{50%{opacity:0.3}}@keyframes tonegen-tick{from{transform:scale(0.7)}}.tonegen__big--field{display:flex;align-items:center;gap:var(--space-2);min-inline-size:0;max-inline-size:100%;overflow:visible}.tonegen__big--field{--chars:3;--room:calc(100cqi - 2 * var(--space-4) - 3px - 2 * var(--tap) - 3 * var(--space-2) - 2 * var(--space-1));font-size:clamp(16px,calc(var(--room) / (var(--chars) * 0.66 + 0.75)),var(--big))}.tonegen__big--field[data-chars="4"]{--chars:4}.tonegen__big--field[data-chars="5"]{--chars:5}.tonegen__big--field[data-chars="6"]{--chars:6}.tonegen__big--field[data-chars="7"]{--chars:7}.tonegen__big--field[data-chars="8"]{--chars:8}.tonegen__big--field[data-chars="9"]{--chars:9}.tonegen__big--field[data-chars="10"]{--chars:10}.tonegen__big--field[data-chars="11"]{--chars:11}.tonegen__big--field[data-chars="12"]{--chars:12}.tonegen__big-field{flex:none;box-sizing:content-box;inline-size:calc(var(--chars) * 0.66em);padding:0 var(--space-1);border:0;border-bottom:2px dashed var(--line-strong);border-radius:var(--radius-sm);background:none;color:inherit;font:inherit;font-variant-numeric:tabular-nums;text-align:center}.tonegen__big-field:focus-visible{border-bottom-color:transparent;outline:3px solid var(--ring);outline-offset:2px}@container tonegen (max-width:17rem){.tonegen__big--field{--room:calc(100cqi - 2 * var(--space-4) - 3px - 2 * var(--space-1) - var(--space-2));flex-wrap:wrap;justify-content:center;block-size:auto}.tonegen__big--field::after{flex-basis:100%;order:1;content:""}.tonegen__step{order:2}}.tonegen__step{flex:none;inline-size:var(--tap);block-size:var(--tap);padding:0;font-family:var(--font-body,inherit);font-size:1.375rem;line-height:1}.tonegen__big-hint:empty{display:none}.tonegen .tool-more{border-top:1px solid var(--line)}.tonegen .tool-more > summary{display:flex;gap:var(--space-2);align-items:center;justify-content:space-between;min-height:var(--tap);border-radius:var(--radius-sm);color:var(--ink-muted);cursor:pointer;list-style:none}.tonegen .tool-more > summary::-webkit-details-marker{display:none}.tonegen .tool-more > summary:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.tonegen .tool-more[open] .tonegen__chevron{transform:rotate(180deg)}.tonegen .tool-more__body{display:grid;gap:var(--space-4);padding-block:var(--space-2) var(--space-3)}.tonegen__more .tonegen__nudges{grid-template-columns:repeat(2,minmax(0,1fr))}.tonegen__bar .tonegen__save{min-height:var(--tap);padding-inline:var(--space-3)}.tonegen [data-act="clear-ticks"]:disabled{display:none}@media print{.tonegen{gap:4mm}.tonegen__print-title{margin:0;font-size:14pt;font-weight:700}.tonegen__readout{padding:0;border:0}.tonegen__kicker,.tonegen__facts > li,.tonegen__status{min-height:0}.tonegen__live,.tonegen__scope,.tonegen__status,.tonegen__progress,.tonegen .tonegen__last,[data-list] .tonegen__big{display:none}.tonegen__big{block-size:auto}.tonegen__facts{grid-auto-flow:column;justify-content:start}.tonegen__row{break-inside:avoid;border-color:var(--line)}.tonegen__tick,.tonegen__preset{padding-block:2mm}.tonegen__tick input{appearance:none;width:4.5mm;height:4.5mm;margin-top:0.5mm;border:1pt solid var(--ink);border-radius:0;background:none;animation:none}.tonegen__tick input:checked + .tonegen__row-text > .tonegen__row-title{color:inherit;text-decoration:none}.tonegen__preset[aria-pressed="true"]{box-shadow:none}}
