@font-face{font-family:Oxanium;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/oxanium-latin-ext-500-normal-i_PHuczN.woff2)format("woff2"),url(/assets/oxanium-latin-ext-500-normal-BUvOBSxU.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Oxanium;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/oxanium-latin-500-normal-tnlOn7Ka.woff2)format("woff2"),url(/assets/oxanium-latin-500-normal-BsTRBkab.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Oxanium;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/oxanium-latin-ext-600-normal-B2S5WIA4.woff2)format("woff2"),url(/assets/oxanium-latin-ext-600-normal-DywhiVWf.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Oxanium;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/oxanium-latin-600-normal-DW9ldEDP.woff2)format("woff2"),url(/assets/oxanium-latin-600-normal-DNQhW0y0.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Oxanium;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/oxanium-latin-ext-700-normal-BSlCClLu.woff2)format("woff2"),url(/assets/oxanium-latin-ext-700-normal-CPlnVieJ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Oxanium;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/oxanium-latin-700-normal-l0hKEjh4.woff2)format("woff2"),url(/assets/oxanium-latin-700-normal-b_KP-pae.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Azeret Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/azeret-mono-latin-ext-400-normal-CwvinM0p.woff2)format("woff2"),url(/assets/azeret-mono-latin-ext-400-normal-Wsi1uLNw.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Azeret Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/azeret-mono-latin-400-normal-BqmUdsta.woff2)format("woff2"),url(/assets/azeret-mono-latin-400-normal-BRS1Zqm5.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Azeret Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/azeret-mono-latin-ext-500-normal-DFqw0mEW.woff2)format("woff2"),url(/assets/azeret-mono-latin-ext-500-normal-xVGuEwUD.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Azeret Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/azeret-mono-latin-500-normal-BVZ56V1O.woff2)format("woff2"),url(/assets/azeret-mono-latin-500-normal-DPHAfL-P.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--void:#07090c;--chassis:#10151b;--bezel:#1b232c;--well:#0b1014;--phosphor:#5dffc4;--phosphor-deep:#14986c;--amber:#ffb15a;--beam:#9fe7ff;--ink:#e8f6ef;--muted:#8fb3a4;--line:#2a3a42;--danger:#ff6d6d;--font-ui:"Oxanium", "Segoe UI", sans-serif;--font-data:"Azeret Mono", ui-monospace, monospace;--pad:12px;--focus:0 0 0 2px var(--void), 0 0 0 4px var(--phosphor);--btn-h:44px;--panel-gap:10px}*{box-sizing:border-box}html,body{margin:0}html{background:var(--void);height:100dvh;max-height:100%;color:var(--ink);overflow:hidden}body{overscroll-behavior:none;height:100%;max-height:100%;font-family:var(--font-ui);background:radial-gradient(1200px 600px at 70% -10%, #163328 0%, transparent 55%), radial-gradient(900px 500px at -10% 110%, #1a2430 0%, transparent 50%), var(--void);color:var(--ink);overflow:hidden}::selection{background:color-mix(in srgb, var(--phosphor) 40%, black);color:var(--ink)}:focus-visible{box-shadow:var(--focus);outline:none}button,input,a,summary{-webkit-tap-highlight-color:transparent}.skip{z-index:20;background:var(--phosphor);color:#042016;padding:8px 12px;font-weight:700;text-decoration:none;position:absolute;top:-40px;left:12px}.skip:focus{top:12px}.shell{grid-template:"stage"56fr"panel"44fr/minmax(0,1fr);height:100%;max-height:100%;display:grid;overflow:hidden}.panel{gap:var(--panel-gap);min-width:0;min-height:0;padding:12px 12px calc(12px + env(safe-area-inset-bottom,0px));overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#314049 transparent;border-top:1px solid var(--line);z-index:2;background:linear-gradient(#141c23 0%,#0e1419 100%);flex-direction:column;grid-area:panel;display:flex;overflow:hidden auto;box-shadow:0 -12px 40px #00000059}.brand h1{letter-spacing:-.03em;margin:0;font-size:1.28rem;font-weight:700;line-height:1.05}.brand p{color:var(--muted);max-width:38ch;margin:4px 0 0;font-size:.8rem;line-height:1.35}.eq{font-family:var(--font-data);color:var(--beam);background:var(--well);border:1px solid var(--line);letter-spacing:.02em;border-radius:12px;order:20;padding:6px 10px;font-size:.75rem;line-height:1.35}.eq sub,.eq sup{line-height:0}.actions,.presets{gap:8px;display:grid}.actions{grid-template-columns:repeat(2,minmax(0,1fr))}.presets{grid-template-columns:repeat(4,minmax(0,1fr))}.toggles{flex-wrap:wrap;gap:8px;display:flex}.toggles button{flex:calc(33.3333% - 5.33333px);min-width:0}.shapes{gap:4px;display:grid}button{font-family:var(--font-ui);letter-spacing:.01em;color:var(--ink);min-height:var(--btn-h);cursor:pointer;background:#1c272f;border:1px solid #314049;border-radius:12px;min-width:0;padding:0 10px;font-size:.85rem;font-weight:600;transition:background .16s,border-color .16s,transform .12s}button:hover{background:#24323b}button:active{transform:translateY(1px)}button[aria-pressed=true],button.active{background:color-mix(in srgb, var(--phosphor) 16%, #1c272f);border-color:color-mix(in srgb, var(--phosphor) 55%, #314049);color:var(--phosphor)}button.primary{background:var(--phosphor);color:#042016;border-color:#0000}button.primary:hover{background:#7affd0}button:disabled{opacity:.45;cursor:not-allowed;transform:none}.control{gap:2px;display:grid}.control header{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.control label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.68rem;font-weight:600}.control .value{font-family:var(--font-data);color:var(--phosphor);font-variant-numeric:tabular-nums;font-size:.78rem}input[type=range]{appearance:none;cursor:pointer;touch-action:none;background:0 0;width:100%;height:44px;margin:0}input[type=range]::-webkit-slider-runnable-track{background:#223038;border-radius:99px;height:6px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--phosphor);border:0;border-radius:50%;width:22px;height:22px;margin-top:-8px;box-shadow:2px 3px 8px #00000073}input[type=range]::-moz-range-track{background:#223038;border:0;border-radius:99px;height:6px}input[type=range]::-moz-range-thumb{background:var(--phosphor);border:0;border-radius:50%;width:22px;height:22px;box-shadow:2px 3px 8px #00000073}.caption{color:var(--ink);min-height:2.7em;margin:0;font-size:.8rem;line-height:1.35}.spectrum{background:var(--well);border:1px solid var(--line);border-radius:12px;width:100%;height:44px;display:block}.readout{font-family:var(--font-data);color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:1px 12px;font-size:.72rem;line-height:1.35;display:flex}.readout strong{color:var(--ink);font-weight:500}.teach{border:1px solid var(--line);background:var(--well);border-radius:12px;padding:0 10px}.teach summary{cursor:pointer;min-height:var(--btn-h);align-items:center;gap:8px;font-size:.85rem;font-weight:600;list-style:none;display:flex}.teach summary::-webkit-details-marker{display:none}.teach summary:after{content:"";border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);flex:none;width:7px;height:7px;margin-left:auto;transform:translateY(-2px)rotate(45deg)}.teach[open] summary:after{transform:translateY(2px)rotate(225deg)}.teach p{color:var(--muted);margin:0 0 10px;font-size:.8rem;line-height:1.45}.hint-keys{color:var(--muted);margin:0 0 10px;font-size:.72rem;line-height:1.45}kbd{font-family:var(--font-data);border:1px solid var(--line);color:var(--ink);border-bottom-width:2px;border-radius:4px;padding:1px 5px;font-size:.68rem}.stage{touch-action:none;background:#05070a;grid-area:stage;min-width:0;min-height:0;position:relative;overflow:hidden}.stage canvas{touch-action:none;cursor:crosshair;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;width:100%;height:100%;display:block;position:absolute;inset:0}.stage.playing canvas{cursor:default}.bezel{pointer-events:none;border-radius:16px;position:absolute;inset:10px;box-shadow:inset 0 0 0 1px #5dffc424,inset 0 0 80px #14986c14,4px 10px 40px #00000073}.scan{pointer-events:none;mix-blend-mode:multiply;opacity:.55;background:repeating-linear-gradient(#080e0c14 0 1px,#0000 1px 3px);position:absolute;inset:0}.toast{border:1px solid var(--line);width:max-content;max-width:calc(100% - 24px);color:var(--ink);text-align:center;pointer-events:none;opacity:0;background:#1c272f;border-radius:999px;padding:8px 14px;font-size:.8rem;line-height:1.35;transition:opacity .2s;position:absolute;top:14px;left:50%;transform:translate(-50%);box-shadow:2px 6px 18px #0006}.toast.show{opacity:1}.draw-hint{color:var(--amber);letter-spacing:.03em;text-align:center;pointer-events:none;text-shadow:0 2px 12px #05070a;font-size:.82rem;font-weight:600;line-height:1.3;position:absolute;bottom:16px;left:12px;right:12px}@media (min-width:900px){:root{--btn-h:32px;--panel-gap:7px}.shell{grid-template:"panel stage"minmax(0,1fr)/348px minmax(0,1fr)}.panel{gap:var(--panel-gap);border-top:0;border-right:1px solid var(--line);padding:10px 12px 8px;box-shadow:12px 0 40px #00000059}.brand h1{font-size:1.2rem}.brand p{max-width:36ch;margin-top:3px;font-size:.72rem;line-height:1.3}.eq{border-radius:10px;order:0;padding:4px 8px;font-size:.72rem}.actions,.presets,.toggles{gap:5px}.actions{grid-template-columns:repeat(4,minmax(0,1fr))}.toggles{flex-wrap:nowrap}.toggles button{flex:1 1 0;padding:0 2px;font-size:.68rem}.shapes{gap:3px}.actions button,.presets button{letter-spacing:0;padding:0 3px;font-size:.72rem}.control .value{font-size:.75rem}input[type=range]{height:26px}input[type=range]::-webkit-slider-thumb{width:16px;height:16px;margin-top:-5px}input[type=range]::-moz-range-thumb{width:16px;height:16px}.caption{min-height:2.6em;font-size:.74rem;line-height:1.3}.spectrum{border-radius:10px;height:34px}.readout{font-size:.66rem}.teach{border-radius:10px}.teach summary{min-height:30px;font-size:.75rem}.teach p{font-size:.75rem}.bezel{border-radius:18px;inset:12px}.toast{font-size:.82rem;top:18px}.draw-hint{font-size:.9rem;bottom:22px}}@media (min-width:900px) and (max-height:640px){:root{--panel-gap:6px}.caption{min-height:0}}@media (prefers-reduced-motion:reduce){button,.toast{transition:none}.scan{display:none}}
