@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/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(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/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(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/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(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/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(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/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(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/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(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/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(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/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(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/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(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/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}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.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 Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.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 Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.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 Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.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 Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.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 Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.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 Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.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 Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.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 Sans Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,d09GMgABAAAAAAVEABAAAAAACbQAAATsAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGx4cKAZgAFQIPAmCcxEQCoMogyoLDgABNgIkAxgEIAWDPgdGDIMYG5AIUZQO0gyKrw54Q7ypR0jQbYRHROLUhDCW7dl5v9U7gZgNnv//P/2fa58ToWA6Xk/lVE57lQp6BP+c5oG/xieg5EDg4uZybyR3v5LD/fTo9pkrZS7hkbNOBRe8AGF4i5OQgoQSyPEEz//x1nTUJZ//Y6k/3vcLoGjCQ7r/LyumG2iSd+IwKYHOFkgDwDkyZ92IcSmd2G/3RAA7KVLIwcOdg1jRASIAjChbNrVo9M0du40bgD5dVwnyK0BdrEaBDvizZZquqAHlMJtNSkNpgAYoAIC26TIkAMbTnJFMKdRFYgzkGgBlVWHAoAAFaEAsDQFi6QSAEysKHXBhuNN4PAK2hSTymx0/70VYXiZBv2mHNMjWoFuHoHGbOpTZcQxwRmpwShtm2cOsrDhVvBb8KcUhaQq2Hn1FGJHIQ5yD/g+bY71KBUkA9FWxzKaCSgSJMBW0BArWsooBlQ1Yw7YdrFHAZXtgPQuoe4ujHcuBGaDrMDhIyAHjGsaOxlRSQZdh3WnHUh/cNPhGi8v8U8GUNIG17B71ic9Ubm5U5RAiaH6hR7ugcnGmhcP8uBRi92vpwaHFZY4Kq1VlHFbGQJFlzF5sS5aRz6zyrs0w42rCC6VKgQQ8grZTy9IiZ/YCjGemZjdXH9S107ibf4RKBVvSHJJWLqJJXQdBw4odL1MkwgOAGQAnoAFNoAsA6MCXKABAQNerTnGZnQsmuz538XvSHT67OEY6ZNAurkfkrOfsFweGn3/f8buceWuiA/tgkJHEeStnvup4oO+ZdxTnqnM1ufPo146uyneszI30xly/1xs8sb8qYt+bHwi2etL9D5QF/6oJJM7mVc2NjXTH3HB0T/DEPurFd+b7goGfUv25tUd8V+TNFDwKEMaCFVtUdG0IizeE9gYhOLQhtBLfPhreHgvBJyHMvUkbt7J84i8N41OlOlYfg3x8n2RmRvDAu5Wv9okjv4a5wcKVW7lLWjRKuJG9Hl3ROrWPFfuvRr4Ha6sF268h7lO4HmyiBB7i3GnfGwqRCdAKc6EFFpiI4vqJoIwF/6v4SxFAeOWcq+/anfE0/Ga1aV8CfFzd2gbwyRcvXfD/X///r1+o72KwoX5cq/z/HfRnGPDnKgiLklkexGB9p82oZjItDy+AmX4WZpgRAOygUA50BLCyTEN0GzDu/0QiNHhJonDzuESjyfHLdVJiIt6sxEyhCpN7KMGqY1fBrjolrcdYcLQ1q+BYxyj+HGs2FdtxtBUlehzWqU2rLr02LTnRgDnbjnHAjm2LinRZsmjNcbYMW3K0jDG9hlLFyve2et3mGerFsH/piuNsmnO0SC9wGLXDqC1LVjauNHSMiuw66cUtKx/kIEMZv1K1DD1jv3q0XcUMLTZtMuIsx9gsSzeJHO346heLKQCIpMtyCTMgotBEE91y3PaaPzEfhGyZv7XCemiLPwQFwgguVIH0PDcKPn/3MnkMCdyAteB5PPjlShU/tvA8QkNwLYtPVLWaoiYrafRoqWMZYtK9dMa0qZXHl+xl4ipOMKpZdtJqZkK7OpIkLbVwQLUCqfqlVg6rVSQl28tGUL1iGeISRTutquSThJCD8iqRJvH59nLSrkGJdLFZq4tt4w7PlqPSXQnjZcFSEIK/xFCYZrHkWCABskvuRF5wHGdWPDgGeanXtgPIYz4uxYk2P+BeAA==)format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAAR8AA0AAAAABVQAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHUE9TAAABMAAAAB4AAAAeRHRMdUdTVUIAAAFQAAAAJwAAACi4/LjqT1MvMgAAAXgAAABUAAAAYGl3oOZjbWFwAAABzAAAADwAAABUAMohV2dhc3AAAAIIAAAAEAAAABAAGAAhZ2x5ZgAAAhgAAADAAAAAwI9eV9BoZWFkAAAC2AAAADYAAAA2Gt1J6GhoZWEAAAMQAAAAHgAAACQHhQKoaG10eAAAAzAAAAAXAAAAGAZjAERsb2NhAAADSAAAAA4AAAAOAIoAim1heHAAAANYAAAAHAAAACAAGACzbmFtZQAAA3QAAADXAAABviKTP8Fwb3N0AAAETAAAADAAAABG/6CrQQABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAAeNpjYGRgYOBiUANCJhc3nxAGoZzEkjwGPgYQYAER//+DSABaSQVVAHjaLYUxDkBAFAXnv10bCZ1Cu4XSAZSiE9le5UBaV1E5lx7CZCaDV20nDrRqBqbvtpCsAxUhZHI8wpv4GYcUrYe4u/JqrPVmVcQ2AOU6gIhuzNMJYHjaY2BgYAJiZiAWAZKMYJqFwQFI8zBwAOVYgCxeBgWGBQpb/v8HspF5jP+//n/8P/V+AEgfAgAAknEOOQABAAMACAAKABAABf//AA8AAgAgAAABiAMMAAMABwAAEyERISURIxEgAWj+mAEbzgMM/PRNAnL9jgAAAQAk//QCGgLGADUAAAUiJjU0NjcjNTM/ATUHIzUhNjU0JiMiByc+ATMyFhUUBgczFSMPARU3MxUhBhUUFjMyNxcOAQErZ2IKCFB4U0BkpwFCESsySDA5ImE2YVoKCE94UkBjpf7AEDM5RzI5I2AMWFATJxJINyAKB0ggIjAoOkEpKlhOEygTSDcgCgdIIh8wKTxAKiwAAQAAAAEAxCoHyPxfDzz1AAkD6AAAAADbN0JJAAAAANznwof++f7+BIgEcAAgAAkAAgAAAAAAAHjaY2BkYGBh/PcWSO759/PfD5YOoAgqYAMAryEHMgAAeNpjXMGgwAACVyCYyZ5BBUQDACxpA6sAAAAAFQAVABUAFQBgAGAAAHjaY2BkYGBgYwhiYGeIB9IgHgKwMDACABHfAMx42pWQM4KDURhFz9hTTv36sW3bShPbTvaVFWRfwS1+tXm659MTMEmMEYZGpwAfXYuHOKJt8TDztCwe4YSaxaOenDEWCFg8zhJbFs+LIEFFvcABq+plwpRIyq6IVyiLM9I8JeKKv3LDE/dc8MybIlEafBIkR5lL8tIIy4pFpUmqZPkRl9A+KIphnRU2rfXQ2smIBtnzQxwXZZRVcvawajFOtXHqo8gmKjLenVCcAk1KsuPoLzBssMY6+xhnZ2VRUt6K+JyMuvFUlJFFVBqV1tDurPQBFXFCdQB42mNgYgCD/2sZfBmwATYgZmRkYmBmZGZkYS/NyzQwMHAB0UYGTiYQvqMBAM4bCIg=)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 Sans Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-condensed-vietnamese-500-normal-CkG7ISwK.woff2)format("woff2"),url(/assets/ibm-plex-sans-condensed-vietnamese-500-normal-DtRh6yEl.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 Sans Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-condensed-latin-ext-500-normal--oYb3bSD.woff2)format("woff2"),url(/assets/ibm-plex-sans-condensed-latin-ext-500-normal-C9nn0g37.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 Sans Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-condensed-latin-500-normal-BqaLkUoX.woff2)format("woff2"),url(/assets/ibm-plex-sans-condensed-latin-500-normal-BLe87hIu.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 Sans Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(data:font/woff2;base64,d09GMgABAAAAAAVsABAAAAAACiAAAAUUAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGx4cKAZgAFQIQgmCcxEQCoNAg0ELDgABNgIkAxgEIAWDSgdGDINWG/cICK4HeEMa9QvHYUYoWISVufhyPO4rK4wq8QCvG/Z+khpQ9VQUKmJGR7VhNlofJtO7WzYT/m8t/bOzfITh2QAfBfFyYSBXUpF13botgcrzFYYlS+gb3HN6PVb2Pa4Ohav2P3Vx21PdwH74+5m+WGikRhOOaID//63f/qKCK3XA6Xdii6sAOUw+PJpdIB2Anpo55RTBIV+qjt97ogBkBAqERo6uaAAeDSgHkzpSJOpY48behSnQAuzbkigomguDqKglYMKfHRZrCf1AlOVYhsJAxQBiIALAuOGVBA0F6YM49791KCQBmVJAFwBRhnoKpCggAmKgDgwBddDygBwehQaqIm7SB+UEjwrl396mQnbvWd+AKeW8YuRrU69KowkVkuwYc+WOB0Cu3Jc6lGLDLDYSQR09HcCnD1kChQkKYercxyFczSuF8qkSb9MnBHjJYocCFVJSNOqVw9JOCqpQgjq2cChwIfXJcZvRdS1hreQsLY5beZaOJiO9A3LSRtMZWwbP5nUhsvq5o3Nvw1xJHjovwDe0qrU1w6GgeTgJnM2TKBkj4TG6fszfTmIKE4gct53aUtsiHx3ZuHKNbPokiRTJr6fOPSZGNpY2uvazL0zr7Oao/dUhF2Q71l6e5prRuobWFa3FYrAQJslH21rjYqt54UWK143ZgDs0rCC3xm1GKeHo1BzXUfEEVNSZ6gKtAft/g9ehEAoT6luKvAGS1OoABOOJ9JhyWXWAigA5IAaGANMASIC/RQAEkCSpBzQV1f0VMnRv8Us4dqdxJqia56CZmaC5eyMce5kpDp396Gv2/GdHbzbIEmfOhOYs9VU7L7LnR8x6/imK1SO5tdXnLFQW9naoNqxorzQebJ1StVTlLgoR11a8P3n4ZJcuP8Ph+zBo/B/yaQNtbZXGQ6Oi0uWTtlS6N3nYbZr/2GNs/R7MisJ7eIrDE2rWSldwNUrwOyUwaq4Cd2n8BGYa3KqAn8Ue3dht437u2u0pq1RpxY4iFCgOFMREEIhA7WRgjSdbE/2KVhO4dZu2yzBMRwttm3jXaAYuwt9bnuCJvxYQ3r+NI/wabY0ndIEk9pZYLw6FvktTDkZAHsZADsa7oUzogZSJOB632//uQPD+xr5ZUn3gb5Wr4G/wE8PLAfi5/vf/yZ1kD0JAAQSQhH+TvDMBCyA7k4rhIcL7aShHI0mh5w9ARbU4fVgIIAMi6BcJBFQ2BEOJAGB+yECL5LnVUrSea7ECa/O0VcuwGtCy3JI+o1YSsNaCBTMyuLjM6zdn1IwF85zmjZrgNG3OMJdqPhVKFahUY8KgFfV6TZlXaNqUAQ71Bk0aVWDahAFNBs2ZN9p2Eh5OiYrNpG6WyOTDutlhiyb0muM5OH7S+UlHBsOnDxpAqIw1PWP1N5Dh33MWkcDNIx15iI341TkznIh8EyaQQjIfdA9qOEiWHviLThSAMi12j6gIhEABDhjR3OLmUTc8Xl1JcBckhS/Ndysg7ylEg8qHSaTFwFeXxAkVyEIDVM4vlnWSxApdpBdlPcsgQjA7AxFJo3Dh2+7wCpIinsSPYTpJcYuSszCfdA4SE86iVcrlFs4PZzGOTWmSJhxnsep5JYtkQ5OTxdP6Ax7Q5OVKcvzAswSFUsUJY4GxqFQWF9fvLJVEsSR2WrBqq1Ri3qcxppmXRyAOesqEw+VL4P/T91QuG7RTc/O4M9wbpAe7BD38wA6kBzu501DH2KTfNcYBrFtwDQA=)format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAASIAA0AAAAABWQAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHUE9TAAABMAAAAB4AAAAeRHRMdUdTVUIAAAFQAAAAJwAAACi4/LjqT1MvMgAAAXgAAABTAAAAYGncofljbWFwAAABzAAAADwAAABUAMohV2dhc3AAAAIIAAAAEAAAABAAGAAhZ2x5ZgAAAhgAAADEAAAAxFI/PixoZWFkAAAC3AAAADYAAAA2GuVJ6WhoZWEAAAMUAAAAHgAAACQHjQKuaG10eAAAAzQAAAAXAAAAGAZoAEFsb2NhAAADTAAAAA4AAAAOAIwAjG1heHAAAANcAAAAHAAAACAAGAC1bmFtZQAAA3gAAADeAAAByiPTQMdwb3N0AAAEWAAAADAAAABG/6irTAABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAAeNpjYGRgYOBiUANCJhc3nxAGoZzEkjwGPgYQYAER//+DSABaSQVVAHjaLYUxDkBAFAXnv10k6NSSLZQuoBOdiH4rB9K6isrlWGEyk8GrVcSB9nRYvttGtAFUFXkmRxLexM88rcFGCKer7856b9YE7ABQqQsI6AGbcwjaAHjaY2BgYAJiZiAWAZKMYJqFwQFI8zBwAOVYgCxeBgWGBQpb/v8HspF5jP+//n/8P/V+AEgfAgAAknEOOQABAAMACAAKABAABf//AA8AAgAgAAABiAMMAAMABwAAEyERISURIxEgAWj+mAEQuAMM/PRYAlz9pAAAAQAh//QCJALGADYAAAUiJjU0NjcjNTM/ATUHIzUhPgE1NCYjIgcnPgEzMhYVFAYHMxUjDwEVNzMVIQYVFBYzMjcXDgEBLmtkCQhPdk9GaaIBQgcGJi1GLj4gZDhkWwkIT3ZOR2mh/r8NLzNILj4hZAxcTRIlEU4xIAoHTg4fDyskN0smLFtNEiYRTjAiCghOGyArJDdLJi0AAAEAAAABAMSgvffYXw889QAJA+gAAAAA2zdCSwAAAADc58KH/ur+9gSfBHcAIAAJAAIAAAAAAAB42mNgZGBgYfz3Fkhe+Pfq3yuW+UARVMAGALBLB0AAAHjaY1zBoMAAAlcgmMmFQRFEAwAsfQOtAAAAABUAFQAVABUAYgBiAAB42mNgZGBgYGMIZGBnSALSIB4CsDAwAgASBQDOeNqVkEWWQkEQBGPcZznrPsC4u7s7ssLdHc7GCTgV+frhrPgaVZ2lwCwhJhibnBO7x+ZbPMYljRaPs0y9xRNcU2vxZI9mihUCLZ5mk90WL4sgQkF3hmM2dOfxkyMquyBeJy9O6J+WN6zzD+555Ylr3vjUSZAKP3hJSXkjVUqV1uQJklTktTwJef5l52wuKTBsKeNO63vSymZEo+b9lh2mKPaSa+fpxJtOBtPJEbR2UGSGsklDhio5+cJ2L4ZtNtniSNTKblU56dbFVyR0m56IvLWCtkaOkq203gTmuEO8AAB42mNgYgCD/1sZIhiwATYgZmRkYmBmZGZkYS/NyzQwMHAB0UYGTiYQvqMBANKMCJs=)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 Sans Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-condensed-vietnamese-600-normal-CdKbmnAp.woff2)format("woff2"),url(/assets/ibm-plex-sans-condensed-vietnamese-600-normal--5ui7us-.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 Sans Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-condensed-latin-ext-600-normal-CBdNZ9Ci.woff2)format("woff2"),url(/assets/ibm-plex-sans-condensed-latin-ext-600-normal-DvCwRnqE.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 Sans Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-condensed-latin-600-normal-CRd5VyFf.woff2)format("woff2"),url(/assets/ibm-plex-sans-condensed-latin-600-normal-6XnkKYvF.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:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-cyrillic-ext-500-normal-11xBT7e1.woff2)format("woff2"),url(/assets/montserrat-cyrillic-ext-500-normal-DOzfAZ45.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:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-cyrillic-500-normal-T0SG181k.woff2)format("woff2"),url(/assets/montserrat-cyrillic-500-normal-CyGtXmN9.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-vietnamese-500-normal-NT-t8RG1.woff2)format("woff2"),url(/assets/montserrat-vietnamese-500-normal-DpeZlV_K.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:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-latin-ext-500-normal-BKtbrd6n.woff2)format("woff2"),url(/assets/montserrat-latin-ext-500-normal-DWPqqZgs.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:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-latin-500-normal-DRFEGfly.woff2)format("woff2"),url(/assets/montserrat-latin-500-normal-Dok2oTci.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:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-cyrillic-ext-700-normal-MyDreaeu.woff2)format("woff2"),url(/assets/montserrat-cyrillic-ext-700-normal-D-Mk2xRJ.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:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-cyrillic-700-normal-D-Pqjtdp.woff2)format("woff2"),url(/assets/montserrat-cyrillic-700-normal-BvLYcGP1.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-vietnamese-700-normal-C0x1De3p.woff2)format("woff2"),url(/assets/montserrat-vietnamese-700-normal-DnwGT2D9.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:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-latin-ext-700-normal-BOP2Nhf0.woff2)format("woff2"),url(/assets/montserrat-latin-ext-700-normal-DdDFr05Z.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:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-latin-700-normal-BdjcYUrC.woff2)format("woff2"),url(/assets/montserrat-latin-700-normal-BWkrl476.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{--ground:#e6ebee;--paper:#f4f7f9;--ink:#11181c;--muted:#5a666d;--blue:#1b4b7a;--now:#8c3b1e;--ok:#2f7a4a;--rule:#11181c24;--band:#1b4b7a14;--control:#1b4b7a59;--control-fill:#1b4b7a0f;--mono:"IBM Plex Mono", ui-monospace, monospace;--sans:"IBM Plex Sans", system-ui, sans-serif;--display:"IBM Plex Sans Condensed", "IBM Plex Sans", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--ground);color:var(--ink);font:14px/1.5 var(--sans);-webkit-font-smoothing:antialiased}button,select,input,textarea{font:inherit;color:inherit}button,select{cursor:pointer;border-radius:0}button{border:1px solid var(--control);color:var(--blue);font:500 13px/1 var(--sans);background:0 0;padding:8px 12px}button:hover:not(:disabled){border-color:var(--blue)}button.active{border-color:var(--blue);background:var(--control-fill)}button:disabled{opacity:.35;cursor:default}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:1px solid var(--blue);outline-offset:2px}button.link{font:400 10px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-underline-offset:3px;background:0 0;border:none;padding:0;text-decoration:underline}button.link:hover{color:var(--blue)}button.link:disabled{opacity:.45;cursor:default;color:var(--muted)}select{appearance:none;border:1px solid var(--control);background:var(--control-fill) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0h10L5 6z' fill='%231b4b7a'/%3E%3C/svg%3E") no-repeat right 10px center;color:var(--blue);font:500 12px/1 var(--mono);letter-spacing:.04em;padding:8px 30px 8px 10px}select:hover:not(:disabled){border-color:var(--blue)}select:disabled{opacity:.35}input.text,textarea.code{background:var(--paper);border:1px solid var(--rule);color:var(--ink);font:12px/1.5 var(--mono);border-radius:0}input.text{width:96px;padding:7px 9px}input.text.grow{flex:1;min-width:120px}kbd{font:500 10px/1 var(--mono);border:1px solid var(--rule);color:var(--ink);background:var(--paper);margin-right:3px;padding:2px 5px}.dim{color:var(--muted)}.mono{font-family:var(--mono)}.small{font-size:12px}.warn{color:var(--now)}.app{flex-direction:column;height:100%;display:flex}.toolbar{border-bottom:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:12px 22px;padding:18px 28px 16px;display:flex}.brand{font:500 11px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--ink);margin-right:8px}a.brand{text-decoration:none}.brand span{color:var(--muted);margin-right:.4em;transition:color .15s}.brand:hover span,.brand:focus-visible span{color:var(--blue)}.toolbar label{font:400 10px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);align-items:center;gap:10px;display:flex}.toolbar label select{text-transform:none;max-width:200px}.toolbar .group:last-child{margin-left:auto}.toolbar .group{align-items:center;gap:6px;display:flex}select.wide{width:100%}.panel p.sketch-desc{color:var(--muted);margin:8px 0 0;font-size:13px;line-height:1.5}.app-actions{gap:8px;display:grid}.app-actions>button{text-align:left}.app-actions>button.link{justify-self:start}.display-info{padding-bottom:0}.display-info>h3:first-child,.panel-body>h3:first-child{margin-top:0}.display-info .readout{margin-top:10px}.display-more{margin-top:12px}.display-more summary,details.raw summary{cursor:pointer;font:400 10px/1 var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}.display-more summary:hover,details.raw summary:hover{color:var(--blue)}details.raw p.hex{font:400 10px/1.5 var(--mono);word-break:break-word;color:var(--blue);margin:8px 0 0}.main{flex:1;grid-template-columns:320px minmax(0,1fr) 320px;grid-template-areas:"info stage controls";min-height:0;display:grid}.sidebar-info{border-right:1px solid var(--rule);grid-area:info}.stage-wrap{grid-area:stage}.sidebar-controls{border-left:1px solid var(--rule);grid-area:controls}.stage-wrap{flex-direction:column;min-width:0;min-height:0;display:flex}.stage{background:var(--ground);flex:1;place-items:center;padding:8px;display:grid;position:relative;overflow:auto}.stage.stage-3d{padding:0}.device-canvas{display:block}.device-3d{position:absolute;inset:0}.device-3d canvas{touch-action:none;cursor:grab;display:block}.stage.stage-wiring{place-items:start center;padding:28px 28px 40px}.wiring{width:100%;max-width:760px}.wiring-head h2{font:400 10px/1.4 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}.wiring-head p{color:var(--ink);margin:0 0 6px;font-size:13px}.wiring-head p.warn{color:var(--now)}.wiring-head p.wiring-check{color:var(--muted);font-size:12px}.wiring svg{width:100%;height:auto;margin:18px 0 0;display:block}.wiring-notes{margin-top:18px;font-size:13px}.wiring-notes h3{font:400 10px/1.3 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px}.view-tools{z-index:1;background:var(--paper);gap:0;display:flex;position:absolute;bottom:12px;right:12px}.view-tools button{min-width:34px;height:32px;font:400 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;padding:0 10px}.view-tools button+button{margin-left:-1px}.view-tools button:hover:not(:disabled){position:relative}.view-tools button[aria-label]{font:400 16px/1 var(--mono);letter-spacing:0}.statusbar{border-top:1px solid var(--rule);font:400 10px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 22px;padding:10px 28px;display:flex}.statusbar .link{margin-left:auto}.error-overlay{background:var(--paper);border:1px solid var(--now);max-height:45%;padding:14px 16px;position:absolute;inset:auto 24px 24px;overflow:auto}.error-overlay strong{font:400 10px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--now)}.error-overlay pre{white-space:pre-wrap;font:12px/1.5 var(--mono);color:var(--ink);margin:8px 0}.error-overlay span{color:var(--muted);font-size:13px}.stage-note{background:var(--paper);border:1px solid var(--rule);color:var(--muted);font:13px/1.5 var(--sans);text-align:left;text-transform:none;letter-spacing:normal;padding:8px 12px;position:absolute;top:16px;left:16px;right:16px}.crashed{max-width:560px;margin:0 auto;padding:64px 16px}.crashed h2{font:600 28px/1.2 var(--display);margin:0 0 16px}.crashed pre{background:var(--paper);border:1px solid var(--now);white-space:pre-wrap;font:12px/1.5 var(--mono);padding:12px 14px}.crashed-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:20px;display:flex}.stage.drop-target:after{content:"Drop a .lua app to run it";border:1px dashed var(--blue);background:var(--band);font:500 11px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--blue);pointer-events:none;place-items:center;display:grid;position:absolute;inset:16px}.sidebar{flex-direction:column;padding:0 28px;display:flex;overflow-y:auto}.panel{border-bottom:1px solid var(--rule);padding:24px 0}.panel:last-child{border-bottom:none}.panel h2{font:400 10px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);justify-content:space-between;align-items:center;margin:0 0 14px;display:flex}.panel-toggle{font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;margin:-4px 0;padding:4px 0;display:inline-flex}.panel-toggle:hover{color:var(--blue)}.panel-toggle .chevron{border-bottom:1px solid;border-right:1px solid;width:6px;height:6px;transition:transform .15s;transform:translateY(-2px)rotate(45deg)}.panel.collapsed .panel-toggle .chevron{transform:rotate(-45deg)}.panel.collapsed{padding-bottom:18px}.panel.collapsed h2{margin-bottom:0}.panel.collapsed h2>:not(.panel-toggle){opacity:.6}.panel-body[hidden]{display:none}.panel h3{font:400 10px/1.3 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px}.panel p{margin:8px 0}.panel a{font:400 10px/1 var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-top:14px;text-decoration:none;display:inline-block}.panel a:hover{color:var(--blue)}.readout{border-collapse:collapse;width:100%}.readout th{text-align:left;font:400 10px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);white-space:nowrap;vertical-align:top;padding:5px 12px 5px 0}.readout td{font:400 11px/1.5 var(--mono);color:var(--ink);text-align:right;font-variant-numeric:tabular-nums;padding:4px 0}.readout .hex{text-align:left;word-break:break-word;color:var(--blue);font-size:10px}.readout .warn{color:var(--now)}.pins{flex-wrap:wrap;gap:4px;display:flex}.pin{font:400 10px/1 var(--mono);letter-spacing:.06em;border:1px solid var(--rule);color:var(--muted);padding:5px 6px}.pin b{color:var(--ink);font-weight:500}.notes{color:var(--ink);margin:0;padding-left:16px;font-size:13px;line-height:1.55}.notes li+li{margin-top:6px}.notes li::marker{color:var(--muted)}.console-panel{flex-direction:column;flex:1;min-height:170px;display:flex}.console-panel>.panel-body{flex-direction:column;flex:1;min-height:0;display:flex}.console-panel.collapsed{flex:none;min-height:0}.console{background:var(--paper);border:1px solid var(--rule);max-height:260px;font:11px/1.6 var(--mono);flex:1;padding:8px 10px;overflow-y:auto}.console .line{gap:10px;display:flex}.console .ts{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;min-width:42px}.console .msg{white-space:pre-wrap;word-break:break-word}.console .warn .msg{color:var(--now)}.console .error .msg{color:var(--now);font-weight:500}.widget{align-items:center;gap:16px;padding:14px 0;display:flex}.widget+.widget{border-top:1px solid var(--rule)}.widget-meta{flex:1;min-width:0}.widget-title{font:400 10px/1.4 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.widget-value{font:500 24px/1.2 var(--display);color:var(--ink);font-variant-numeric:tabular-nums}.widget-sub{font:400 11px/1.5 var(--mono);color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px;display:flex}.widget-sub input[type=checkbox]{accent-color:var(--blue);margin:0 4px 0 0}.push{border:1px solid var(--control);touch-action:none;background:0 0;flex:none;width:44px;height:44px;padding:0;position:relative}.push:after{content:"";border:1px solid var(--blue);border-radius:50%;position:absolute;inset:13px}.push.down{border-color:var(--now);background:#8c3b1e14}.push.down:after{border-color:var(--now);background:var(--now)}.led{border:1px solid var(--muted);border-radius:50%;width:6px;height:6px;margin-left:4px;display:inline-block}.led.on{background:var(--now);border-color:var(--now)}.knob{touch-action:none;cursor:grab;flex:none}.knob .tick{stroke:var(--muted);stroke-width:1px;opacity:.6}.knob-body{fill:var(--paper);stroke:var(--control);stroke-width:1px}.knob-mark{stroke:var(--blue);stroke-width:2px;stroke-linecap:square}.knob-cap{fill:var(--control-fill);stroke:var(--blue);stroke-width:1px;cursor:pointer}.knob-cap.down{fill:var(--now);stroke:var(--now)}.widget-pot input[type=range]{width:100%;accent-color:var(--blue);margin:10px 0 2px}.tilt-pad{touch-action:none;cursor:grab;flex:none}.tilt-ring{fill:var(--paper);stroke:var(--control);stroke-width:1px}.tilt-ring.inner{fill:none;stroke:var(--rule);stroke-dasharray:2 3}.tilt-axis{stroke:var(--rule)}.tilt-bubble{fill:var(--blue)}.tilt-bubble.shaking{fill:var(--now)}.widget-imu button{margin-top:8px}.speaker{border:1px solid var(--control);flex:none;place-items:center;width:44px;height:44px;display:grid}.speaker span{border:1px solid var(--muted);border-radius:50%;width:8px;height:8px}.speaker.on{border-color:var(--now)}.speaker.on span{background:var(--now);border-color:var(--now);box-shadow:0 0 0 5px #8c3b1e26}.widget-radar{flex-direction:column;align-items:stretch;gap:10px}.radar-canvas{background:var(--paper);border:1px solid var(--rule);touch-action:none;cursor:crosshair;align-self:center;width:100%;max-width:300px;height:auto}.segmented{display:flex}.segmented button{font:500 10px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;flex:1;padding:9px 8px}.segmented button+button{border-left:none}.segmented button.active{border-color:var(--blue)}.small-seg button{flex:none;padding:9px 12px}.panel .row{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0;display:flex}.panel .row.nowrap{flex-wrap:nowrap}.panel .row.nowrap input.text.grow{min-width:0}.panel .row input.text.name{width:72px}.panel .label{font:400 10px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.panel p.hint{color:var(--muted);margin:8px 0;font-size:12px;line-height:1.5}.panel p.hint.warn{color:var(--now)}.panel-body>p.hint:first-child{margin-top:0}.panel select.grow{text-overflow:ellipsis;flex:1;min-width:0}.resident-panel .status{letter-spacing:.16em;align-items:center;gap:6px;display:flex}.resident-panel .status.on{color:var(--ok)}.resident-panel .status.on .led{background:var(--ok);border-color:var(--ok)}.status.pending .led{border-color:var(--now)}.device-id{font:500 12px/1 var(--mono);letter-spacing:.04em;color:var(--blue);background:var(--control-fill);border:1px solid var(--control);padding:6px 8px}.resident-panel .row.id{align-items:stretch}.resident-panel .row.id .device-id{align-items:center;padding:0 10px;display:flex}.panel .sep{color:var(--muted);font-size:12px}textarea.code{resize:vertical;tab-size:2;width:100%;min-height:220px;padding:10px}@media (width<=1180px){.main{grid-template:"stage controls"minmax(0,1fr)"info controls"/minmax(0,1fr) 320px;overflow-y:auto}.sidebar-info{border-right:none;border-top:1px solid var(--rule);max-height:45vh}}@media (width<=900px){.main{grid-template:"stage"minmax(440px,62vh)"controls""info"/1fr}.sidebar,.sidebar-controls,.sidebar-info{border-left:none;border-right:none;border-top:1px solid var(--rule);max-height:none;padding:0 16px;overflow:visible}.toolbar,.statusbar{padding-left:16px;padding-right:16px}}.part-row{padding:14px 0}.part-row:first-child{padding-top:0}.part-row+.part-row{border-top:1px solid var(--rule)}.part-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.part-tag{font:400 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.part-row .widget{padding:10px 0 0}.part-row .widget-title{display:none}.output-pick{gap:6px;margin-bottom:10px;display:grid}.add-part{margin-top:4px;display:flex}.add-part select{flex:1;min-width:0}.panel-body>h3{margin-top:20px}.control-list{gap:14px;display:grid}.control-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.control-row select{font-size:13px}.control-value{font:500 15px/1 var(--display);color:var(--ink);font-variant-numeric:tabular-nums;text-align:right}.device-canvas.touchable{cursor:crosshair;touch-action:none}dialog.about{border:1px solid var(--rule);background:var(--paper);color:var(--ink);max-width:min(560px,100vw - 32px);max-height:calc(100vh - 64px);padding:0;box-shadow:0 18px 60px #11181c2e}dialog.about::backdrop{background:#11181c52}.about-body{padding:30px 36px 28px;position:relative}.about-close{margin:0;position:absolute;top:22px;right:24px}.about-kicker{font:500 11px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0}.about h2{font:600 40px/1 var(--display);letter-spacing:-.01em;margin:10px 0 18px}.about h3{border-top:1px solid var(--rule);font:500 10px/1.4 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--blue);margin:26px 0 8px;padding-top:20px}.about p{margin:0 0 12px;font-size:15px;line-height:1.6}.about a{color:var(--blue);text-underline-offset:3px}.about p.about-foot{color:var(--muted);margin:22px 0 0;font-size:13px}.toolbar .toolbar-gap{width:10px}.about-links{flex-wrap:wrap;gap:4px 18px;margin-top:6px;display:flex}.about-links a{white-space:nowrap}
