@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2) format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-700-normal-CjBOestx.woff2) format("woff2"),url(/assets/inter-cyrillic-700-normal-DrXBdSj3.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2) format("woff2"),url(/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-700-normal-C3JjAnD8.woff2) format("woff2"),url(/assets/inter-greek-700-normal-BUv2fZ6O.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2) format("woff2"),url(/assets/inter-vietnamese-700-normal-BZaoP0fm.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2) format("woff2"),url(/assets/inter-latin-ext-700-normal-TidjK2hL.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff) format("woff");unicode-range:U+0460-052F,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:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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(/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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-cyrillic-ext-600-normal-D_E8FDgP.woff2) format("woff2"),url(/assets/source-serif-4-cyrillic-ext-600-normal-h2VnbV3V.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-cyrillic-600-normal-BDP5YDHD.woff2) format("woff2"),url(/assets/source-serif-4-cyrillic-600-normal-CHh5eQWW.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-greek-600-normal-DdRkKr-1.woff2) format("woff2"),url(/assets/source-serif-4-greek-600-normal-OkzgCkGB.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-vietnamese-600-normal-B33FcZBi.woff2) format("woff2"),url(/assets/source-serif-4-vietnamese-600-normal-CKUOBVO_.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-latin-ext-600-normal-pa-C5Dkf.woff2) format("woff2"),url(/assets/source-serif-4-latin-ext-600-normal-B2fExS53.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-latin-600-normal-DouSKlru.woff2) format("woff2"),url(/assets/source-serif-4-latin-600-normal-DeJomR3S.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bench: #ebe4d6;--paper: #f6f1e8;--card: #fbf8f2;--ink: #1c1915;--ink-soft: #3f3a33;--muted: #5c564c;--line: #e3dacb;--line-strong: #d2c6b4;--accent: #0c6b62;--accent-hover: #09564f;--accent-soft: #e5f3f0;--accent-ink: #084e48;--brass: #8a5a12;--brass-soft: #f6e7c8;--ok: #0d7a45;--warn: #8a5a00;--err: #a3261d;--err-soft: #fdeceb;--term: #171512;--term-fg: #f3ecdf;--term-muted: #a39888;--term-line: #2c2822;--sans: "IBM Plex Sans", "PingFang SC", "Noto Sans SC", "Noto Sans CJK SC", "Source Han Sans SC", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;--serif: "Source Serif 4", "Iowan Old Style", "Palatino Linotype", Palatino, "Songti SC", serif;--mono: "IBM Plex Mono", "Sarasa Mono SC", "Noto Sans Mono CJK SC", ui-monospace, monospace;--radius: 12px;--shadow: 0 1px 2px rgba(28, 25, 21, .04);color-scheme:light}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--sans);font-size:14px;line-height:1.45;color:var(--ink);background:var(--bench)}button,select,input{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--accent-ink);text-underline-offset:2px}a:hover{color:var(--accent)}code,.mono{font-family:var(--mono)}.skip{position:absolute;left:12px;top:-40px;background:var(--ink);color:var(--paper);padding:8px 12px;border-radius:8px;z-index:20}.skip:focus{top:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app{height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.chrome{display:flex;flex-direction:column;background:#171717}.lab .brand h1{font-size:22px}.lab .mark{width:32px;height:32px}.lab .top{padding:8px 16px;gap:12px 16px}.lab .header-tools{margin-left:auto}.lab .tagline{flex:none;max-width:none;color:var(--muted);font-size:12px}.lab-pill{flex-shrink:0;color:#f3f3f3;text-decoration:none;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;border:1px solid #4a4a4a;border-radius:999px;padding:4px 10px}.lab-pill:hover{color:#fff;border-color:#8d8d8d}.rail-label{margin:2px 4px 0;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.build-lead{margin:0 0 10px;color:var(--ink-soft);font-size:13px;line-height:1.45}.build-panel .kicker{margin-bottom:4px}.gate-more{margin:10px 0 0}.gate-more a{color:#d5c7b4}.gate-more a:hover{color:#fff}.top{display:flex;align-items:center;gap:20px 28px;padding:12px 20px 10px;background:#171717;color:#f3f3f3}.brand{display:flex;align-items:center;gap:14px;color:inherit;text-decoration:none;flex-shrink:0}.brand:hover{color:inherit}.mark{width:40px;height:40px;display:block;flex-shrink:0;border-radius:50%}.header-tools{margin-left:auto;display:flex;align-items:center;gap:10px;flex-shrink:0}.brand-text{display:flex;align-items:center;gap:10px}.brand h1{margin:0;font-family:Inter,IBM Plex Sans,sans-serif;font-size:34px;font-weight:400;letter-spacing:-.035em;line-height:1;color:#c8c8c8}.brand h1 .esp{font-weight:700;color:#fff;letter-spacing:-.045em}.brand h1 .emu{margin-left:.22em}.ver{font-family:var(--mono);font-size:12px;color:#8d8d8d}.tagline{margin:0;flex:1;max-width:40rem;color:#b0b0b0;font-size:14px}.lang{display:flex;padding:3px;border:1px solid #3a3a3a;border-radius:999px;background:#242424;flex-shrink:0}.lang button{border:0;background:transparent;color:#c8c8c8;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:500}.lang button[aria-pressed=true]{background:#3a3a3a;color:#fff;box-shadow:none}.command{display:flex;align-items:center;gap:12px 16px;padding:10px 20px;background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap}.transport{display:flex;gap:8px;flex-wrap:wrap}.tip-wrap{display:inline-flex}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;min-height:36px;padding:6px 12px;border-radius:9px;border:1px solid var(--line-strong);background:var(--card);color:var(--ink);font-weight:500;line-height:1.2;box-shadow:var(--shadow)}.btn svg{width:12px;height:12px;fill:currentColor;flex-shrink:0}a.btn{text-decoration:none;color:var(--ink)}.btn.github svg{width:16px;height:16px}.account{position:relative}.account-chip{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:3px 12px 3px 3px;border-radius:999px;border:1px solid var(--line-strong);background:var(--card);box-shadow:var(--shadow);font-weight:500}.account-chip img{width:28px;height:28px;border-radius:999px;display:block;background:var(--paper);object-fit:cover}#user-login{max-width:9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:180px;padding:6px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px #1c19151f;z-index:30}.account-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;border-radius:8px;padding:8px 10px}.account-menu button:hover,.account-menu button:focus-visible{background:var(--paper)}.tour[hidden]{display:none!important}.tour{position:fixed;inset:0;z-index:40}.tour-catch{position:absolute;inset:0}.tour-spot{position:fixed;border-radius:12px;box-shadow:0 0 0 9999px #10141294;outline:2px solid #e2b15a;outline-offset:0;pointer-events:none;z-index:41;transition:top .28s ease,left .28s ease,width .28s ease,height .28s ease}.tour-card{position:fixed;z-index:42;width:min(360px,calc(100vw - 24px));background:var(--card);color:var(--ink);border-radius:16px;padding:16px 18px 14px;box-shadow:0 18px 50px #10141247;border:1px solid rgba(226,177,90,.55)}.tour-kicker{margin:0 0 6px;font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--brass)}.tour-card h2{margin:0 0 6px;font-family:var(--serif);font-size:22px;font-weight:600;letter-spacing:-.02em}.tour-card p{margin:0;color:var(--ink-soft)}.tour-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}.tour-nav{display:flex;gap:8px}.tour-skip{border:0;background:transparent;color:var(--muted);padding:6px 2px;font-weight:500}.tour-skip:hover{color:var(--ink)}.btn:hover:not(:disabled){border-color:#b7ab97;background:#fffdf9}.btn:disabled{opacity:.42;cursor:default;box-shadow:none}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn.quiet{background:transparent;box-shadow:none;border-color:transparent;color:var(--accent-ink);padding-inline:8px}.btn.quiet:hover:not(:disabled){background:var(--accent-soft);border-color:transparent}.btn.is-connected{color:var(--ok);border-color:#b7dcc6;background:#f3faf6}.btn.light{background:var(--paper);color:var(--ink);border-color:transparent}.btn.light:hover:not(:disabled){background:#fff}.chip-field{display:flex;flex-direction:column;gap:3px;min-width:220px}.chip-field span{font-size:11.5px;color:var(--muted);line-height:1}.chip-field select{background:var(--card);border:1px solid var(--line-strong);border-radius:8px;padding:7px 30px 7px 10px;outline:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%235c564c' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.chip-field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.file-readout{flex:1;min-width:8rem;font-family:var(--mono);font-size:12.5px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-readout.is-empty{color:var(--muted);font-family:var(--sans)}.metrics{margin-left:auto;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:4px 12px 4px 10px;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--muted);font-size:13px}.pill .dot{width:8px;height:8px;border-radius:50%;background:#b7ad9e}.pill[data-state=ready]{color:var(--ink)}.pill[data-state=ready] .dot{background:var(--warn)}.pill[data-state=running]{color:var(--ink)}.pill[data-state=running] .dot{background:var(--ok);box-shadow:0 0 0 4px #0d7a4529;animation:pulse 1.8s ease-in-out infinite}.pill[data-state=paused]{color:var(--ink)}.pill[data-state=paused] .dot{background:var(--accent)}.pill[data-state=error]{color:var(--err)}.pill[data-state=error] .dot{background:var(--err)}@keyframes pulse{0%,to{box-shadow:0 0 0 3px #0d7a451f}50%{box-shadow:0 0 0 5px #0d7a450d}}.mips,.cycles{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:13px}.mips{color:var(--accent-ink);font-weight:500;min-width:7.5rem;text-align:right}.cycles{color:var(--muted);min-width:7rem;text-align:right}.workspace{min-height:0;display:grid;grid-template-columns:320px minmax(0,1fr) 400px}.setup,.inspector{min-height:0;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 14px 16px;box-shadow:var(--shadow)}.card h2{margin:0 0 12px;font-size:13px;font-weight:600;letter-spacing:0;display:flex;align-items:baseline;justify-content:space-between;gap:8px}.card h2 .meta,.tag{font-family:var(--mono);font-weight:500;font-size:11px;color:var(--accent-ink);background:var(--accent-soft);border-radius:999px;padding:2px 7px}.field{margin-bottom:12px}.field:last-child{margin-bottom:0}.field label,.kicker{display:block;margin-bottom:5px;font-size:12.5px;color:var(--muted)}.field select,.field input[type=text],.mem-controls input[type=text],.mem-controls select{width:100%;background:var(--paper);border:1px solid var(--line-strong);border-radius:8px;padding:8px 10px;outline:none}.field select:focus,.field input[type=text]:focus,.mem-controls input:focus,.mem-controls select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%235c564c' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:30px}.note{margin:8px 0 0;font-size:12.5px;line-height:1.45;color:var(--muted)}.note.warn{color:var(--warn)}.note.err{color:var(--err)}.chip-blurb{margin:0 0 12px;color:var(--ink-soft);font-size:13px}.dropzone{border:1.5px dashed var(--line-strong);border-radius:12px;background:var(--paper);min-height:132px;padding:16px 12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;color:var(--ink-soft)}.dropzone:hover,.dropzone:focus-visible,.dropzone.is-over,.term-stage.is-over{border-color:var(--accent);background:var(--accent-soft);outline:none}.dropzone strong{color:var(--ink);font-weight:600}.dropzone .fname{font-family:var(--mono);font-size:12px;color:var(--ink);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.build-panel{margin-top:12px;padding:12px;border-radius:12px;background:var(--accent-soft);border:1px solid #c9e4de}.build-panel[hidden]{display:none}.build-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.build-chip{display:inline-flex;align-items:center;gap:8px;color:var(--muted)}.build-chip select{min-height:36px}#build-status{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline}#build-status[hidden]{display:none}.file-row{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;margin-top:8px}.file-row .tip-wrap{max-width:100%}.file-row .btn{white-space:normal;text-align:left;height:auto}.how{margin-top:10px}.how summary{cursor:pointer;color:var(--muted);font-size:12.5px}.how p{margin:8px 0 0}.console-panel{min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--term);color:var(--term-fg);border-left:1px solid #2a261f;border-right:1px solid #2a261f}.term-toolbar{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--term-line);color:var(--term-muted);font-size:12.5px}.term-toolbar h2{margin:0;font-size:13px;font-weight:600;color:var(--term-fg)}.term-toolbar .hint{color:#8d8376}.term-toolbar .spacer{flex:1}.term-toolbar .count{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--term-fg)}.term-toolbar .btn{background:transparent;color:var(--term-fg);border-color:#4a433a;box-shadow:none}.term-toolbar .btn:hover:not(:disabled){background:#2a261f;border-color:#6b6256}.term-stage{position:relative;flex:1;min-height:0;overflow:hidden}#terminal-container{height:100%;padding:8px 6px 8px 12px}.xterm{height:100%}.xterm .xterm-viewport{scrollbar-width:thin;scrollbar-color:#4a433a transparent}.gate{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;padding:28px 22px;background:radial-gradient(900px 280px at 50% -20%,rgba(12,107,98,.28),transparent 60%),var(--term);text-align:center}.gate[hidden]{display:none}.empty-inner{max-width:34rem}.gate h2{margin:0 0 8px;font-family:var(--serif);font-weight:600;font-size:32px;letter-spacing:-.025em;line-height:1.15;color:var(--term-fg)}.gate p{margin:0 auto;max-width:32rem;color:var(--term-muted);font-size:15px}.steps{list-style:none;display:flex;justify-content:center;gap:16px;margin:18px 0 0;padding:0;color:var(--term-fg);font-size:13px}.steps li{display:flex;align-items:center;gap:8px}.steps span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#2c2822;color:#d9cbb8;font-family:var(--mono);font-size:12px}.empty-actions{display:flex;flex-wrap:wrap;gap:8px 12px;justify-content:center;align-items:center;margin-top:20px}.gate .btn.quiet{color:#d5c7b4}.gate .btn.quiet:hover{background:#ffffff0f;color:#fff}.engine-line{margin-top:16px!important;font-family:var(--mono);font-size:12px!important;color:#8fd9c8!important}.show-console{margin-top:8px}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.tile{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:8px 10px 9px}.tile .k{font-size:12px;color:var(--muted);margin-bottom:2px}.tile .v{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:16px;font-weight:500;color:var(--ink)}.tile .v small{font-size:11px;color:var(--muted);font-weight:500;margin-left:3px}.tile.accent .v{color:var(--accent-ink)}.chart-wrap{position:relative}#mips-chart{display:block;width:100%;height:72px;border-radius:10px;background:var(--paper);border:1px solid var(--line)}.chart-caption{display:flex;justify-content:space-between;margin-top:4px;font-size:12px;color:var(--muted)}.chart-tip{position:absolute;top:8px;pointer-events:none;background:var(--ink);color:var(--paper);padding:3px 7px;border-radius:6px;font-family:var(--mono);font-size:11px;display:none;white-space:nowrap}.cores{display:grid;grid-template-columns:1fr 1fr;gap:8px}.core{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:8px 10px}.core .k{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted)}.core .v{margin-top:3px;font-family:var(--mono);font-size:13px;color:var(--accent-ink)}.core.idle{opacity:.55}.gpio-legend{display:flex;flex-wrap:wrap;gap:8px 12px;margin-bottom:8px;font-size:12px;color:var(--muted)}.gpio-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px;border:1px solid var(--line-strong)}.gpio-legend i.out-high{background:var(--accent);border-color:var(--accent)}.gpio-legend i.out-low{background:transparent;border-color:var(--accent)}.gpio-legend i.in-high{background:#e7e0d4;border-color:#8d8374}.gpio-legend i.in-low{background:var(--card)}.gpio-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:5px}.gpio-pin{height:32px;padding:0;border-radius:7px;border:1px solid var(--line-strong);background:var(--card);color:var(--muted);font-family:var(--mono);font-size:11px;box-shadow:none}.gpio-pin.in.high{background:#efe8db;border-color:#8d8374;color:var(--ink)}.gpio-pin.in:hover:not(:disabled){border-color:var(--ink)}.gpio-pin.out{cursor:default}.gpio-pin.out.low{border-color:var(--accent);color:var(--accent-ink)}.gpio-pin.out.high{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.gpio-pin.absent{visibility:hidden}.reg-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px 12px}.reg{display:flex;justify-content:space-between;gap:6px;font-family:var(--mono);font-size:11.5px;min-width:0}.reg .name{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reg .val{color:var(--ink);border-radius:4px;padding:0 4px;font-variant-numeric:tabular-nums;transition:background-color .6s,color .6s}.reg .val.changed{background:var(--brass-soft);color:var(--brass);transition:none}.reg-empty{margin:0;color:var(--muted);font-size:13px}.mem-controls{display:flex;gap:6px;align-items:center;margin-bottom:8px}.mem-controls input[type=text]{flex:1;min-width:0;font-family:var(--mono);font-size:12.5px;padding:6px 8px}.mem-controls select{width:auto;font-family:var(--mono);font-size:12px;padding:6px 8px}.mem-follow{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:12.5px;color:var(--muted);cursor:pointer}.mem-follow input{accent-color:var(--accent);width:15px;height:15px}#mem-display{margin:0;font-family:var(--mono);font-size:11px;line-height:1.55;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:8px;max-height:240px;overflow:auto;white-space:pre;scrollbar-width:thin}#mem-display .addr{color:var(--accent-ink)}#mem-display .ascii{color:var(--muted)}#mem-display .zero{color:#b3aa9c}#mem-display .placeholder{color:var(--muted);white-space:normal}.site-footer{display:flex;justify-content:space-between;gap:8px 20px;flex-wrap:wrap;padding:8px 20px 10px;background:var(--card);border-top:1px solid var(--line);color:var(--muted);font-size:12px;line-height:1.45}.site-footer p{margin:0}.site-footer a{color:var(--muted)}.site-footer a:hover{color:var(--accent-ink)}.tooltip{position:fixed;z-index:30;max-width:260px;padding:7px 9px;border-radius:8px;background:var(--ink);color:var(--paper);font-size:12.5px;line-height:1.4;pointer-events:none;opacity:0;transform:translateY(2px)}.tooltip[data-show="1"]{opacity:1}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:1280px){.workspace{grid-template-columns:272px minmax(0,1fr) 340px}.gate h2{font-size:28px}}@media(max-width:1040px){.app{height:auto;min-height:100dvh}.chrome{position:sticky;top:0;z-index:8}.workspace{display:flex;flex-direction:column}.setup,.inspector{overflow:visible}.console-panel{order:-1;min-height:460px;height:56vh;border-left:0;border-right:0}.dropzone{min-height:108px}.chip-field{flex:1 1 180px;min-width:0}.metrics{margin-left:0}.steps{flex-direction:column;align-items:center}}@media(max-width:720px){.top{flex-wrap:wrap;padding:12px 14px;gap:10px}.header-tools{margin-left:auto}.btn.github span{max-width:9rem}.command,.site-footer{padding-inline:14px}.site-footer{flex-direction:column}.mark{width:34px;height:34px}.brand h1,.gate h2{font-size:26px}.gpio-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.reg-grid{grid-template-columns:1fr}}@media(pointer:coarse){.gpio-pin{height:38px}.btn{min-height:40px}}@media(prefers-reduced-motion:reduce){.pill[data-state=running] .dot{animation:none}.reg .val,.tour-spot{transition:none}}
