@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/Space-Opera/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/Space-Opera/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2)format("woff2-variations");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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/Space-Opera/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2)format("woff2-variations");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/Space-Opera/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/Space-Opera/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/Space-Opera/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/Space-Opera/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/Space-Opera/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/Space-Opera/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/Space-Opera/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/Space-Opera/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/Space-Opera/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/Space-Opera/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/Space-Opera/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/Space-Opera/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/Space-Opera/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/Space-Opera/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/Space-Opera/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/Space-Opera/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/Space-Opera/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/Space-Opera/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/Space-Opera/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/Space-Opera/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.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{--sky:#171e30;--sky-lift:#212a42;--paper:#e3ded4;--paper-sunk:#d3cdc0;--edge:#c6bfb0;--edge-soft:#d6d0c3;--ink:#22252c;--ink-soft:#575c68;--ink-faint:#868b96;--accent:#b35a1e;--accent-soft:#eddcc8;--on-sky:#dce3f2;--on-sky-soft:#dce3f294;--glass:#141b2ca8;--glass-edge:#c6d4f026;--sans:"Space Grotesk Variable", system-ui, -apple-system, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5;overflow:hidden}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}button{font-family:inherit;font-size:inherit;cursor:pointer}.app{grid-template-columns:1fr 0;height:100%;transition:grid-template-columns .2s;display:grid}.app.with-drawer{grid-template-columns:1fr min(440px,44vw)}.stage{background:var(--sky);min-width:0;position:relative;overflow:hidden}.stage canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.top{pointer-events:none;background:linear-gradient(#0c111e80,#0000);align-items:baseline;gap:16px;padding:20px 26px 34px;display:flex;position:absolute;top:0;left:0;right:0}.top>*{pointer-events:auto}.top h1{letter-spacing:-.02em;color:var(--on-sky);margin:0;font-size:19px;font-weight:500}.pick{color:var(--on-sky);border:none;border-bottom:1px solid var(--glass-edge);cursor:pointer;appearance:none;background:0 0;background-image:linear-gradient(45deg, transparent 50%, var(--on-sky-soft) 50%), linear-gradient(135deg, var(--on-sky-soft) 50%, transparent 50%);background-position:right 7px center,right 2px center;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding:2px 20px 3px 2px;font-family:inherit;font-size:14px}.pick:hover{border-bottom-color:var(--on-sky-soft)}.pick option,.pick optgroup{background:var(--sky);color:var(--on-sky)}.dock{background:var(--glass);border:1px solid var(--glass-edge);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:999px;align-items:center;gap:14px;max-width:calc(100% - 44px);padding:9px 14px;display:flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 8px 26px -12px #000000b3}.play{background:var(--on-sky);width:36px;height:36px;color:var(--sky);border:none;border-radius:50%;flex:none;place-items:center;transition:transform .12s,background .14s;display:grid}.play:hover{background:#fff;transform:scale(1.06)}.ctl{color:var(--on-sky-soft);align-items:center;gap:10px;display:flex}.ctl .val{min-width:62px;color:var(--on-sky);font-size:12px}.ctl input{width:130px}.vol input{width:74px}.tabs{border-left:1px solid var(--glass-edge);gap:4px;padding-left:6px;display:flex}.tabs button{color:var(--on-sky-soft);background:0 0;border:1px solid #0000;border-radius:999px;padding:6px 13px;font-size:13px;transition:background .13s,color .13s;position:relative}.tabs button:hover{color:var(--on-sky);background:#dce3f217}.tabs button.on{color:var(--sky);background:var(--on-sky)}.tabs .badge{font-size:10px;font-style:normal;font-family:var(--mono);background:var(--accent);color:#fff;border-radius:4px;margin-left:5px;padding:1px 4px}.drawer{background:linear-gradient(260deg, var(--paper) 40%, var(--paper-sunk) 92%, #c3bcae 100%);flex-direction:column;min-width:0;display:flex;overflow:hidden;box-shadow:-6px 0 18px -8px #141a2a4d}.dhead{justify-content:space-between;align-items:center;padding:17px 20px 11px;display:flex}.dhead h2{letter-spacing:-.015em;margin:0;font-size:17px;font-weight:500}.x{color:var(--ink-faint);background:0 0;border:none;border-radius:5px;padding:2px 6px;font-size:21px;line-height:1}.x:hover{color:var(--ink);background:var(--paper-sunk)}.dbody{padding:0 20px 22px;overflow-y:auto}.meta{text-transform:uppercase;letter-spacing:.12em;color:var(--ink-faint);align-items:baseline;gap:10px;margin:0 0 12px;font-size:11px;font-weight:600;display:flex}.link{color:var(--accent);letter-spacing:.06em;text-transform:none;text-underline-offset:2px;background:0 0;border:none;margin-left:auto;padding:0;font-size:11px;font-weight:500;text-decoration:underline}.note{color:var(--ink-soft);margin:0 0 16px;font-size:14px;line-height:1.62}.foot{color:var(--ink-faint);margin:14px 0 0;font-size:12.5px;line-height:1.6}.mix{flex-direction:column;display:flex}.mrow{border-bottom:1px solid var(--edge-soft);grid-template-columns:11px minmax(44px,1fr) 38px 86px 54px 58px;align-items:center;gap:7px;padding:5px 0;display:grid}.mrow:last-child{border-bottom:none}.mrow.off{opacity:.42}.mrow.off:hover{opacity:.72}.dot{border:1px solid var(--edge);background:0 0;border-radius:50%;width:11px;height:11px;padding:0}.dot.on{border-color:#0000}.mrow .nm{letter-spacing:-.008em;text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;overflow:hidden}.mrow .hz{color:var(--accent);text-align:right;font-size:11.5px;font-weight:500}.voice{color:var(--ink-soft);border:1px solid var(--edge-soft);background:#fffdf899;border-radius:5px;width:100%;padding:3px 4px;font-family:inherit;font-size:11.5px}.voice:disabled{opacity:.5}.oct{align-items:center;gap:1px;display:flex}.oct button{border:1px solid var(--edge-soft);width:17px;height:19px;color:var(--ink-soft);background:#fffdf899;border-radius:4px;padding:0;font-size:12px;line-height:1}.oct button:hover{color:var(--accent);border-color:#e3c4a6}.oct span{text-align:center;width:18px;color:var(--ink-faint);font-size:11px}.pan{width:60px}.pan:disabled{opacity:.4}.rows{flex-direction:column;margin-top:4px;display:flex}.row{border-bottom:1px solid var(--edge-soft);align-items:baseline;gap:10px;padding:6px 0;font-size:14px;display:grid}.row:last-child{border-bottom:none}.row.iv{grid-template-columns:1fr auto auto auto}.pair{color:var(--ink)}.ratio{color:var(--accent);font-size:13px;font-weight:500}.row .name{color:var(--ink-soft);font-size:12.5px}.off{color:var(--ink-faint);font-size:11.5px}input[type=range]{appearance:none;background:var(--edge);border-radius:4px;outline:none;height:4px}.dock input[type=range]{background:#dce3f242}.dock input[type=range]::-webkit-slider-thumb{background:var(--on-sky)}.dock input[type=range]::-moz-range-thumb{background:var(--on-sky)}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--ink);cursor:pointer;border-radius:50%;width:14px;height:14px;transition:background .13s}input[type=range]:hover::-webkit-slider-thumb{background:var(--accent)}input[type=range]::-moz-range-thumb{background:var(--ink);cursor:pointer;border:none;border-radius:50%;width:14px;height:14px}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.more{border:1px dashed var(--edge);width:100%;color:var(--ink-faint);background:0 0;border-radius:6px;margin-top:10px;padding:7px 0;font-size:12px}.more:hover{color:var(--accent);border-color:#e3c4a6}
