/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial}}}@layer theme{:root,:host{--font-sans:"Inter", "Segoe UI Variable", "Segoe UI", system-ui, sans-serif;--font-mono:"JetBrains Mono", "Cascadia Mono", "SFMono-Regular", Consolas, monospace;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-widest:.1em;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-font-family:"Inter", "Segoe UI Variable", "Segoe UI", system-ui, sans-serif;--default-mono-font-family:"JetBrains Mono", "Cascadia Mono", "SFMono-Regular", Consolas, monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components{.deck{background:linear-gradient(180deg, var(--deck-hi) 0, var(--deck) 3%, var(--deck) 97%, var(--deck-lo) 100%);box-shadow:var(--shadow), inset 0 1px 0 var(--deck-hi), inset 0 0 0 1px var(--seam);border-radius:18px;position:relative}.plate{background:linear-gradient(180deg, var(--module-1), var(--module-2));box-shadow:inset 0 1px 0 var(--deck-hi), inset 0 0 0 1px var(--seam), 0 1px 2px #00000014;border-radius:12px;position:relative}.groove{background:var(--seam);height:1px;box-shadow:0 1px 0 var(--deck-hi)}.legend{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);font-size:10px;font-weight:600}.scribble{letter-spacing:.1em;text-transform:uppercase;color:var(--scribble-ink,#fff);background:linear-gradient(180deg, #ffffff38, transparent 55%), var(--scribble,#3b82f6);border:2px solid var(--bezel);box-shadow:0 0 16px -4px var(--scribble,#3b82f6), inset 0 0 12px #00000040;text-shadow:0 1px 1px #00000059;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:7px 10px;font-size:13px;font-weight:700;display:flex;position:relative}.lcd{font-family:var(--font-mono);color:var(--screen-ink);text-shadow:var(--screen-glow);background:linear-gradient(180deg, var(--screen-1), var(--screen-2));border:2px solid var(--bezel);box-shadow:inset 0 1px 0 #ffffff0a, 0 1px 0 var(--deck-hi);border-radius:8px;position:relative}.lcd:after{content:"";pointer-events:none;background:linear-gradient(165deg,#ffffff12,#0000 30%);border-radius:6px;position:absolute;inset:0}.led{background:var(--led-off);border-radius:999px;flex:none;width:9px;height:9px;box-shadow:inset 0 1px 1px #00000059}.led[data-on=true]{background:radial-gradient(circle at 40% 35%, var(--led), var(--led) 60%)}@supports (color:color-mix(in lab, red, red)){.led[data-on=true]{background:radial-gradient(circle at 40% 35%, color-mix(in oklab, var(--led), white 55%), var(--led) 60%)}}.led[data-on=true]{box-shadow:0 0 5px var(--led), 0 0 12px var(--led)}@supports (color:color-mix(in lab, red, red)){.led[data-on=true]{box-shadow:0 0 5px var(--led), 0 0 12px color-mix(in oklab, var(--led), transparent 50%)}}.led[data-blink=true]{animation:1s steps(2,jump-none) infinite led-blink}.well{background:var(--recess);border-radius:10px;padding:2px;box-shadow:inset 0 1px 2px #00000059}.key{letter-spacing:.1em;text-transform:uppercase;width:100%;color:var(--key-ink);background:linear-gradient(180deg, var(--key-1), var(--key-2));box-shadow:0 2px 0 var(--key-edge), 0 3px 5px #0000002e, inset 0 1px 0 #ffffff59;cursor:pointer;touch-action:none;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 10px;font-size:11px;font-weight:700;transition:transform 60ms,box-shadow 60ms,background .15s,color .15s;display:flex;position:relative;overflow:hidden}.key:active:not(:disabled),.key[data-pressed=true]{box-shadow:0 1px 0 var(--key-edge), 0 1px 2px #0000002e, inset 0 1px 0 #ffffff40;transform:translateY(1px)}.key[data-lit=true]{color:#fff;text-shadow:0 0 6px var(--lit)}@supports (color:color-mix(in lab, red, red)){.key[data-lit=true]{text-shadow:0 0 6px color-mix(in oklab, var(--lit), transparent 20%)}}.key[data-lit=true]{background:linear-gradient(180deg, var(--lit), var(--lit))}@supports (color:color-mix(in lab, red, red)){.key[data-lit=true]{background:linear-gradient(180deg, color-mix(in oklab, var(--lit) 88%, white), var(--lit))}}.key[data-lit=true]{box-shadow:0 2px 0 var(--lit), 0 0 18px -2px var(--lit), inset 0 1px 0 #fff6}@supports (color:color-mix(in lab, red, red)){.key[data-lit=true]{box-shadow:0 2px 0 color-mix(in oklab, var(--lit), black 45%), 0 0 18px -2px var(--lit), inset 0 1px 0 #fff6}}.key:disabled{cursor:not-allowed;opacity:.5}.key[data-lit=true]:disabled{opacity:.8}.key:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.key-hold{background:var(--lit,var(--amber));transform-origin:0;width:100%;height:3px;box-shadow:0 0 6px var(--lit,var(--amber));position:absolute;bottom:0;left:0}.meter{background:var(--bezel);border-radius:5px}.meter-seg{background:var(--seg);border-radius:1px;height:3px}@supports (color:color-mix(in lab, red, red)){.meter-seg{background:color-mix(in oklab, var(--seg), black 78%)}}.meter-seg[data-on=true]{background:var(--seg);box-shadow:0 0 4px var(--seg)}@supports (color:color-mix(in lab, red, red)){.meter-seg[data-on=true]{box-shadow:0 0 4px color-mix(in oklab, var(--seg), transparent 40%)}}.lcd-input{width:100%;color:var(--screen-ink);font-family:var(--font-mono);caret-color:var(--screen-ink);-webkit-user-select:text;user-select:text;background:0 0;border:0;outline:none;font-size:15px}.lcd-input::placeholder{color:var(--screen-dim)}.rocker{background:var(--recess);cursor:pointer;border-radius:999px;width:44px;height:24px;position:relative;box-shadow:inset 0 1px 3px #0006}.rocker-paddle{background:linear-gradient(180deg, var(--key-1), var(--key-2));border-radius:999px;width:18px;height:18px;transition:transform .16s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #00000059,inset 0 1px #fff6}.rocker[data-on=true] .rocker-paddle{transform:translate(20px)}.selectable{-webkit-user-select:text;user-select:text}}@layer utilities{.relative{position:relative}.z-10{z-index:10}.order-first{order:-9999}.mx-auto{margin-inline:auto}.my-10{margin-block:calc(var(--spacing) * 10)}.mt-1{margin-top:var(--spacing)}.mt-auto{margin-top:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-2{height:calc(var(--spacing) * 2)}.h-28{height:calc(var(--spacing) * 28)}.h-\[104px\]{height:104px}.max-h-40{max-height:calc(var(--spacing) * 40)}.min-h-\[2\.2em\]{min-height:2.2em}.min-h-\[2\.9em\]{min-height:2.9em}.min-h-\[104px\]{min-height:104px}.min-h-screen{min-height:100vh}.w-2{width:calc(var(--spacing) * 2)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-24{width:calc(var(--spacing) * 24)}.w-auto{width:auto}.w-full{width:100%}.max-w-\[1320px\]{max-width:1320px}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-baseline{align-items:baseline}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-\[2px\]{gap:2px}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-ink-faint\/40{border-color:var(--ink-faint)}@supports (color:color-mix(in lab, red, red)){.border-ink-faint\/40{border-color:color-mix(in oklab, var(--ink-faint) 40%, transparent)}}.border-screen-dim{border-color:var(--screen-dim)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-\[3px\]{padding:3px}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-10{padding-block:calc(var(--spacing) * 10)}.pt-1{padding-top:var(--spacing)}.text-right{text-align:right}.font-mono{font-family:JetBrains Mono,Cascadia Mono,SFMono-Regular,Consolas,monospace}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.leading-\[1\.45\]{--tw-leading:1.45;line-height:1.45}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.text-ink{color:var(--ink)}.text-ink-faint{color:var(--ink-faint)}.text-ink-muted{color:var(--ink-muted)}.text-screen-dim{color:var(--screen-dim)}.uppercase{text-transform:uppercase}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}@media (width>=40rem){.sm\:inline{display:inline}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:py-10{padding-block:calc(var(--spacing) * 10)}}@media (width>=64rem){.lg\:order-none{order:0}.lg\:grid-cols-\[minmax\(0\,4fr\)_minmax\(250px\,1\.15fr\)\]{grid-template-columns:minmax(0,4fr) minmax(250px,1.15fr)}}@media (width>=80rem){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}:root{--page-1:#f1f3f5;--page-2:#d5d9df;--deck:#e4e7eb;--deck-hi:#fff;--deck-lo:#b4bac3;--module-1:#edeff2;--module-2:#dfe3e8;--seam:#141c281f;--ink:#1b2027;--ink-muted:#58616d;--ink-faint:#8a929d;--recess:#c9ced5;--key-1:#fbfcfd;--key-2:#e2e6eb;--key-edge:#a9b0ba;--key-ink:#262c35;--led-off:#9aa1ab;--shadow:0 24px 48px -12px #1e283759, 0 2px 6px #1e283726;--screen-1:#121821;--screen-2:#0a0e14;--screen-ink:#dce8f6;--screen-dim:#5d6d80;--screen-glow:none;--bezel:#07090c;--green:#22c55e;--amber:#f59e0b;--red:#ef4444;--blue:#3b82f6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.dark{--page-1:#15171b;--page-2:#060708;--deck:#1d2025;--deck-hi:#30343b;--deck-lo:#0c0d10;--module-1:#23262c;--module-2:#1a1c21;--seam:#00000073;--ink:#e8ebef;--ink-muted:#9aa2ad;--ink-faint:#5f6772;--recess:#0b0c0f;--key-1:#3a3f47;--key-2:#2a2e35;--key-edge:#0e0f12;--key-ink:#e7eaee;--led-off:#3b3f46;--shadow:0 28px 60px -12px #000c, 0 2px 6px #00000080;--screen-glow:0 0 6px #8cbeff40;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body,#root{min-height:100%}body{font-family:var(--font-sans);color:var(--ink);background:radial-gradient(ellipse at 50% -10%, var(--page-1), var(--page-2) 70%) fixed;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;margin:0}@keyframes led-blink{to{opacity:.25}}@media (prefers-reduced-motion:reduce){.led[data-blink=true]{animation:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}
