@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2) format("woff2"),url(./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(./ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2) format("woff2"),url(./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(./ibm-plex-sans-greek-400-normal-_efipK4i.woff2) format("woff2"),url(./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(./ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2) format("woff2"),url(./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(./ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2) format("woff2"),url(./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(./ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(./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(./ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2) format("woff2"),url(./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(./ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2) format("woff2"),url(./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(./ibm-plex-sans-greek-500-normal-JMMifIXV.woff2) format("woff2"),url(./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(./ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2) format("woff2"),url(./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(./ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2) format("woff2"),url(./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(./ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(./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(./ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2) format("woff2"),url(./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(./ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2) format("woff2"),url(./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(./ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2) format("woff2"),url(./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(./ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2) format("woff2"),url(./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(./ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2) format("woff2"),url(./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(./ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(./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 Serif";font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-serif-cyrillic-ext-400-normal-CxUI4jC_.woff2) format("woff2"),url(./ibm-plex-serif-cyrillic-ext-400-normal-BcBv-TKp.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 Serif";font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-serif-cyrillic-400-normal-CPQ8oqB-.woff2) format("woff2"),url(./ibm-plex-serif-cyrillic-400-normal-C7IY3oUc.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"IBM Plex Serif";font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-serif-vietnamese-400-normal-DGubAMUE.woff2) format("woff2"),url(./ibm-plex-serif-vietnamese-400-normal-BY9Vij9A.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 Serif";font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-serif-latin-ext-400-normal-CNMooFZX.woff2) format("woff2"),url(./ibm-plex-serif-latin-ext-400-normal-DwktX9jl.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 Serif";font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-serif-latin-400-normal-BIGslYFI.woff2) format("woff2"),url(./ibm-plex-serif-latin-400-normal-BB-zNvJB.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 Serif";font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-serif-cyrillic-ext-500-normal-DFQJzPS0.woff2) format("woff2"),url(./ibm-plex-serif-cyrillic-ext-500-normal-BtThTb6K.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 Serif";font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-serif-cyrillic-500-normal-iHfdoNSD.woff2) format("woff2"),url(./ibm-plex-serif-cyrillic-500-normal-oG0QAu2_.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"IBM Plex Serif";font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-serif-vietnamese-500-normal-2_PwV24p.woff2) format("woff2"),url(./ibm-plex-serif-vietnamese-500-normal-BXXzeVTF.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 Serif";font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-serif-latin-ext-500-normal-CmETpp4t.woff2) format("woff2"),url(./ibm-plex-serif-latin-ext-500-normal-Czz10gBp.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 Serif";font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-serif-latin-500-normal-REKAfBVG.woff2) format("woff2"),url(./ibm-plex-serif-latin-500-normal-C3_OdgN3.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(./ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(./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(./ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(./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(./ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(./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(./ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(./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(./ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(./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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(./ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.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:500;src:url(./ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(./ibm-plex-mono-cyrillic-500-normal-Ael50iVv.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:500;src:url(./ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(./ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.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:500;src:url(./ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(./ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.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:500;src:url(./ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(./ibm-plex-mono-latin-500-normal-CB9ihrfo.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{--ground: #f2f5f9;--ground-2: #e7ecf3;--surface: #ffffff;--surface-2: #eef2f7;--ink: #0f141c;--ink-2: #4a5665;--ink-3: #79859a;--line: #dce3ec;--line-2: #e9eef4;--rail: #bcc7d6;--spark: #5a7196;--stage-acquisition: #b4592f;--stage-reconstruction: #2f55b8;--stage-offline-processing: #0f7a6d;--stage-data-handling: #1c7ba4;--stage-analysis-tools: #4f5d75;--stage-selection: #87681a;--stage-sensor-characterisation: #b03a37;--stage-simulation: #a03f73;--stage-modeling: #2c7046;--stage-inference: #5f469d;--ok: #2f7d4f;--warn: #9a6b12;--bad: #b3392f;--font-sans: "IBM Plex Sans", system-ui, -apple-system, sans-serif;--font-serif: "IBM Plex Serif", Georgia, "Times New Roman", serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--step--1: .8125rem;--step-0: 1rem;--step-1: 1.1875rem;--step-2: 1.4375rem;--step-3: 1.875rem;--step-4: clamp(2.1rem, 4.6vw, 3.4rem);--r-sm: 3px;--r-md: 6px;--r-lg: 14px;--shadow-1: 0 1px 2px rgb(15 20 28 / .05), 0 6px 20px -12px rgb(15 20 28 / .22);--shadow-2: 0 2px 6px rgb(15 20 28 / .07), 0 20px 48px -24px rgb(15 20 28 / .3);--gutter: clamp(1.15rem, 4vw, 3rem);--measure: 68ch}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--ground: #0a0d13;--ground-2: #0f141c;--surface: #141a24;--surface-2: #1b222d;--ink: #e9edf4;--ink-2: #a7b2c2;--ink-3: #77828f;--line: #262e3b;--line-2: #1c232e;--rail: #364152;--spark: #8ea4c4;--stage-acquisition: #e39160;--stage-reconstruction: #839dee;--stage-offline-processing: #3ec0b2;--stage-data-handling: #56b6de;--stage-analysis-tools: #98a6c2;--stage-selection: #ccab4f;--stage-sensor-characterisation: #f18c82;--stage-simulation: #dd86af;--stage-modeling: #65bd84;--stage-inference: #a891e7;--ok: #5fb884;--warn: #d2a447;--bad: #ef7f72;--shadow-1: 0 1px 2px rgb(0 0 0 / .4), 0 6px 20px -12px rgb(0 0 0 / .7);--shadow-2: 0 2px 8px rgb(0 0 0 / .45), 0 24px 56px -28px rgb(0 0 0 / .85)}}:root[data-theme=dark]{--ground: #0a0d13;--ground-2: #0f141c;--surface: #141a24;--surface-2: #1b222d;--ink: #e9edf4;--ink-2: #a7b2c2;--ink-3: #77828f;--line: #262e3b;--line-2: #1c232e;--rail: #364152;--spark: #8ea4c4;--stage-acquisition: #e39160;--stage-reconstruction: #839dee;--stage-offline-processing: #3ec0b2;--stage-data-handling: #56b6de;--stage-analysis-tools: #98a6c2;--stage-selection: #ccab4f;--stage-sensor-characterisation: #f18c82;--stage-simulation: #dd86af;--stage-modeling: #65bd84;--stage-inference: #a891e7;--ok: #5fb884;--warn: #d2a447;--bad: #ef7f72;--shadow-1: 0 1px 2px rgb(0 0 0 / .4), 0 6px 20px -12px rgb(0 0 0 / .7);--shadow-2: 0 2px 8px rgb(0 0 0 / .45), 0 24px 56px -28px rgb(0 0 0 / .85)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--font-sans);font-size:var(--step-0);line-height:1.62;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,p,dl,dd,ol,ul{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit}:focus-visible{outline:2px solid var(--stage-reconstruction);outline-offset:3px;border-radius:2px}.themer{position:fixed;top:clamp(.9rem,2vw,1.5rem);right:clamp(.9rem,2vw,1.5rem);z-index:60;width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:color-mix(in srgb,var(--surface) 82%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--ink-2);cursor:pointer;transition:color .16s ease,border-color .16s ease,transform .16s ease}.themer:hover{color:var(--ink);border-color:var(--ink-3);transform:translateY(-1px)}.themer svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;grid-area:1 / 1}.themer__moon{display:none}:root[data-theme=dark] .themer__sun{display:none}:root[data-theme=dark] .themer__moon{display:block}.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line);background:var(--ground-2)}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(to right,color-mix(in srgb,var(--ink) 6%,transparent) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in srgb,var(--ink) 6%,transparent) 1px,transparent 1px);background-size:68px 68px;-webkit-mask-image:linear-gradient(to bottom,rgb(0 0 0 / .75),transparent 78%);mask-image:linear-gradient(to bottom,rgb(0 0 0 / .75),transparent 78%);pointer-events:none}.hero:after{content:"";position:absolute;left:50%;bottom:-62%;width:min(1500px,160%);aspect-ratio:1;transform:translate(-50%);border-radius:50%;border:1px solid color-mix(in srgb,var(--stage-reconstruction) 26%,transparent);background:radial-gradient(closest-side,color-mix(in srgb,var(--stage-reconstruction) 8%,transparent),transparent 72%);pointer-events:none}.hero__inner{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:clamp(4rem,11vw,8.5rem) var(--gutter) clamp(3rem,7vw,5.5rem);display:flex;flex-direction:column;gap:1.35rem}.hero__eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}.hero__dot{width:7px;height:7px;border-radius:50%;background:var(--stage-acquisition);box-shadow:0 0 0 4px color-mix(in srgb,var(--stage-acquisition) 18%,transparent)}.hero__title{font-family:var(--font-serif);font-weight:400;font-size:var(--step-4);line-height:1.1;letter-spacing:-.02em;max-width:20ch;text-wrap:balance}.hero__title em{font-style:italic;color:var(--stage-reconstruction)}.hero__lede{max-width:58ch;color:var(--ink-2);font-size:var(--step-1)}.hero__stats{display:flex;flex-wrap:wrap;gap:0 3rem;margin-top:1rem;padding-top:1.4rem;border-top:1px solid var(--line)}.hero__stats div{display:flex;flex-direction:column-reverse;gap:.15rem}.hero__stats dt{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.hero__stats dd{font-family:var(--font-serif);font-size:var(--step-3);line-height:1.1;font-variant-numeric:tabular-nums}main{max-width:1180px;margin:0 auto;padding:0 var(--gutter)}.board{padding:clamp(3rem,7vw,5rem) 0 clamp(2rem,4vw,3rem);display:flex;flex-direction:column;gap:1.75rem}.board__head{display:flex;flex-direction:column;gap:.6rem}.board__title{font-family:var(--font-serif);font-weight:400;font-size:var(--step-2);letter-spacing:-.01em}.board__hint{max-width:var(--measure);color:var(--ink-2);font-size:var(--step--1)}.board__canvas{overflow-x:auto;overflow-y:hidden;padding:.5rem 0 1rem;scrollbar-width:thin}.board__key{display:flex;flex-wrap:wrap;gap:.4rem 1.8rem;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.board__key span{display:inline-flex;align-items:center;gap:.55rem}.key{width:26px;height:0;border-top:2px solid var(--rail);display:inline-block}.key--dotted{border-top-style:dotted}.key--capsule{height:13px;width:22px;border:1px dashed var(--ink-3);border-radius:7px}.closing{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(2rem,5vw,4rem);padding:clamp(3rem,6vw,5rem) 0;border-top:1px solid var(--line)}.closing__col{display:flex;flex-direction:column;gap:1.1rem}.closing__title{font-family:var(--font-serif);font-weight:400;font-size:var(--step-2);letter-spacing:-.01em}.notes{counter-reset:note;display:flex;flex-direction:column;gap:.85rem}.notes li{counter-increment:note;position:relative;padding-left:2.2rem;color:var(--ink-2);font-size:var(--step--1)}.notes li:before{content:counter(note,decimal-leading-zero);position:absolute;left:0;top:.1em;font-family:var(--font-mono);font-size:.7rem;color:var(--ink-3);letter-spacing:.08em}.exclusions{display:flex;flex-direction:column;gap:.9rem}.exclusions dt{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin-bottom:.15rem}.exclusions dd{color:var(--ink-2);font-size:var(--step--1)}.foot{border-top:1px solid var(--line);background:var(--ground-2)}.foot__title{font-family:var(--font-mono);font-weight:400;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:1rem}.foot__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:.9rem 2.5rem}.foot__list li{display:flex;flex-direction:column;gap:.1rem;font-size:var(--step--1);padding-bottom:.9rem;border-bottom:1px solid var(--line-2)}.foot__list a{text-decoration:none;color:var(--ink);border-bottom:1px solid transparent;transition:border-color .14s ease;width:fit-content}.foot__list a:hover{border-bottom-color:var(--ink-3)}.foot__list span{font-family:var(--font-mono);font-size:.7rem;color:var(--ink-3)}.foot>*{max-width:1180px;margin-inline:auto;padding-inline:var(--gutter)}.foot__title{padding-top:clamp(2rem,4vw,3rem)}.foot__list{padding-bottom:0}.hero__asof{display:flex;align-items:baseline;flex-wrap:wrap;gap:.5rem .75rem;margin-top:.35rem;padding:.55rem .9rem;width:fit-content;max-width:100%;border-left:2px solid var(--stage-acquisition);background:color-mix(in srgb,var(--stage-acquisition) 8%,transparent);border-radius:0 var(--r-sm) var(--r-sm) 0}.hero__asof-label{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--stage-acquisition)}.hero__asof time{font-family:var(--font-serif);font-size:var(--step-1);color:var(--ink);letter-spacing:-.01em}.hero__asof-note{font-size:.85rem;color:var(--ink-2)}.colophon{display:flex;flex-wrap:wrap;gap:.3rem 1.5rem;padding-top:1.1rem;padding-bottom:clamp(2.5rem,5vw,4rem);border-top:1px solid var(--line-2);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;color:var(--ink-3)}.colophon__by{color:var(--ink)}.flow{display:block;width:100%;min-width:1060px;height:auto}.rail--under{fill:none;stroke:var(--rail);stroke-width:2.5;stroke-linecap:round}.chev{fill:none;stroke:var(--rail);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.spark{fill:var(--spark);opacity:.85}.link{fill:none;stroke:var(--rail);stroke-width:1.8;transition:stroke .2s ease,stroke-width .2s ease}.link--dotted{stroke-dasharray:1.5 7;stroke-linecap:round}.link[data-link=production].is-lit{stroke:var(--stage-production);stroke-width:2.4}.link[data-link=simulation].is-lit{stroke:var(--stage-simulation);stroke-width:2.4}.link[data-link=sensor-characterisation].is-lit{stroke:var(--stage-sensor-characterisation);stroke-width:2.4}.junction{fill:var(--rail);stroke:var(--ground);stroke-width:2}.arrowhead{fill:var(--rail)}.band__rule,.band__stub{fill:none;stroke:var(--rail);stroke-width:1.2;stroke-dasharray:1.5 6;stroke-linecap:round}.band__label{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;fill:var(--ink-3)}.end__dot,.end__cap{fill:var(--rail)}.end__label{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;fill:var(--ink-3)}.node{cursor:pointer;outline:none;transition:opacity .2s ease}.node:focus-visible .node__disc,.node:focus-visible .node__capsule{stroke:var(--k);stroke-width:2.4}.node__glyph{color:var(--k);opacity:.82;transition:opacity .2s ease}.node__glyph .glyph{width:48px;height:48px;display:block}.node__glyph--sm .glyph{width:38px;height:38px}.node:hover .node__glyph,.node.is-active .node__glyph{opacity:1}.flow:has(.node:hover) .node:not(:hover){opacity:.38}.node__halo{fill:none;stroke:transparent;stroke-width:1.2;transition:stroke .22s ease}.node:hover .node__halo,.node.is-active .node__halo{stroke:color-mix(in srgb,var(--k) 34%,transparent)}.node__disc{fill:var(--surface);stroke:var(--line);stroke-width:1.5;transition:stroke .2s ease,fill .2s ease}.node:hover .node__disc,.node.is-active .node__disc{stroke:var(--k);fill:color-mix(in srgb,var(--k) 6%,var(--surface))}.node__marker{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;fill:var(--k);text-anchor:middle}.node__title{font-family:var(--font-sans);font-size:15.5px;font-weight:500;fill:var(--ink);text-anchor:middle}.node__count{font-family:var(--font-mono);font-size:11.5px;fill:var(--ink-3);text-anchor:middle}.node__capsule{fill:var(--surface);stroke:var(--k);stroke-width:1.4;stroke-dasharray:6 6;transition:fill .2s ease,stroke-width .2s ease}.node:hover .node__capsule,.node.is-active .node__capsule{fill:color-mix(in srgb,var(--k) 7%,var(--surface));stroke-width:2}.node__branchmark{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;fill:var(--k)}.node__branchtitle{font-family:var(--font-sans);font-size:17px;font-weight:500;fill:var(--ink)}.node__branchspan{font-family:var(--font-mono);font-size:11px;fill:var(--ink-3)}.node__branchcount{font-family:var(--font-mono);font-size:21px;fill:var(--k);text-anchor:end;font-variant-numeric:tabular-nums}.railnav{position:sticky;top:0;z-index:40;display:flex;flex-wrap:wrap;gap:.35rem;scrollbar-width:none;padding:.55rem 0;margin-bottom:clamp(2rem,5vw,3.5rem);background:color-mix(in srgb,var(--ground) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color .2s ease}.railnav::-webkit-scrollbar{display:none}.railnav.is-stuck{border-bottom-color:var(--line)}.railnav__item{flex:none;display:inline-flex;align-items:baseline;gap:.5rem;padding:.42rem .8rem;border:1px solid var(--line);border-radius:100px;text-decoration:none;font-size:.8rem;color:var(--ink-2);white-space:nowrap;transition:color .16s ease,border-color .16s ease,background .16s ease}.railnav__item--branch{border-style:dashed}.railnav__item:hover{color:var(--ink);border-color:var(--k)}.railnav__item.is-active{color:var(--k);border-color:var(--k);background:color-mix(in srgb,var(--k) 9%,transparent)}.railnav__mark{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;color:var(--k)}.stages{display:flex;flex-direction:column;gap:clamp(3.5rem,8vw,6rem)}.stage{scroll-margin-top:72px;display:flex;flex-direction:column;gap:1.15rem}.stage--branch{padding-left:clamp(1rem,3vw,2rem);border-left:2px dashed color-mix(in srgb,var(--k) 45%,transparent)}.stage__head{display:flex;align-items:center;gap:1.1rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}.stage__badge{flex:none;width:58px;height:58px;display:grid;place-items:center;border-radius:50%;border:1px solid color-mix(in srgb,var(--k) 40%,transparent);background:color-mix(in srgb,var(--k) 7%,transparent);color:var(--k)}.stage__badge .glyph{width:32px;height:32px;display:block}.stage__heading{display:flex;flex-direction:column;gap:.15rem;min-width:0}.stage__meta{display:flex;flex-wrap:wrap;gap:0 .7rem;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase}.stage__marker{color:var(--k)}.stage__cadence{color:var(--ink-3)}.stage__title{font-family:var(--font-serif);font-weight:400;font-size:var(--step-2);line-height:1.2;letter-spacing:-.012em;text-wrap:balance}.stage__count{margin-left:auto;display:flex;align-items:baseline;gap:.4rem;font-family:var(--font-mono);color:var(--ink-3);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}.stage__count b{font-family:var(--font-serif);font-size:var(--step-2);font-weight:400;color:var(--k);letter-spacing:0;font-variant-numeric:tabular-nums}.stage__blurb{max-width:var(--measure);color:var(--ink-2)}.io{display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;padding:.7rem .9rem;border-radius:var(--r-sm);background:var(--surface-2);border-left:2px solid color-mix(in srgb,var(--k) 55%,transparent);overflow-x:auto}.io__pair{display:inline-flex;align-items:baseline;gap:.55rem;min-width:0}.io__label{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--k);flex:none}.io__value{font-family:var(--font-mono);font-size:.76rem;color:var(--ink-2);white-space:nowrap}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(276px,1fr));gap:.7rem}.card{display:flex;flex-direction:column;gap:.45rem;padding:.95rem 1.05rem 1rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.card:hover{border-color:color-mix(in srgb,var(--k) 55%,var(--line));transform:translateY(-2px);box-shadow:var(--shadow-1)}.card__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem .6rem}.card__name{font-family:var(--font-mono);font-size:.9rem;font-weight:500;color:var(--k);text-decoration:none;display:inline-flex;align-items:center;gap:.3rem;letter-spacing:-.01em}a.card__name:hover{text-decoration:underline;text-underline-offset:3px}.card__ext{width:9px;height:9px;opacity:0;transition:opacity .16s ease}.card:hover .card__ext{opacity:.6}.card__also{font-family:var(--font-mono);font-size:.68rem;color:var(--ink-3)}.card__role{font-size:.855rem;line-height:1.52;color:var(--ink-2)}.card__where{margin-top:auto;padding-top:.25rem;font-family:var(--font-mono);font-size:.63rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}@media(max-width:640px){.stage__head{flex-wrap:wrap}.stage__count{margin-left:0;width:100%}.stage__badge{width:46px;height:46px}.stage__badge .glyph{width:26px;height:26px}}.depmark{display:inline-flex;align-items:center;margin-left:auto;color:var(--ink-3);cursor:help;transition:color .16s ease}.depmark svg{width:13px;height:13px;display:block}.card--deployed:hover .depmark{color:var(--k)}.deploy{display:flex;flex-direction:column;gap:1.15rem;margin-top:clamp(3.5rem,8vw,6rem);padding-top:clamp(2rem,4vw,3rem);border-top:2px solid var(--line);scroll-margin-top:96px;--k: var(--ink-2)}.deploy__head{display:flex;align-items:center;gap:1.1rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}.deploy__heading{display:flex;flex-direction:column;gap:.15rem}.deploy__meta{display:flex;flex-wrap:wrap;gap:0 .7rem;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase}.deploy__marker{color:var(--ink)}.deploy__cadence{color:var(--ink-3)}.deploy__title{font-family:var(--font-serif);font-weight:400;font-size:var(--step-2);line-height:1.2;letter-spacing:-.012em;margin:0}.deploy__count{margin-left:auto;display:flex;align-items:baseline;gap:.4rem;font-family:var(--font-mono);color:var(--ink-3);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}.deploy__count b{font-family:var(--font-serif);font-size:var(--step-2);font-weight:400;color:var(--ink);letter-spacing:0;font-variant-numeric:tabular-nums}.deploy__blurb{max-width:var(--measure);color:var(--ink-2);margin:0}.deploy__blurb code{font-family:var(--font-mono);font-size:.88em;color:var(--ink)}.deploy__blurb .depmark{margin-left:0;vertical-align:-2px;color:var(--ink-2)}.deploy__sub{font-family:var(--font-mono);font-weight:400;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:.9rem 0 -.35rem}.deploy__warn{margin:.5rem 0 0;padding:.85rem 1.05rem;border-radius:var(--r-sm);background:color-mix(in srgb,var(--warn) 10%,transparent);border-left:2px solid var(--warn);color:var(--ink-2);font-size:.9rem;max-width:var(--measure)}.deploy__warn strong{color:var(--ink);font-weight:500}.deploy__warn code{font-family:var(--font-mono);font-size:.88em;color:var(--ink)}.svctable{border-collapse:collapse;width:100%;min-width:760px;font-size:.85rem}.svctable th{text-align:left;font-family:var(--font-mono);font-weight:400;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);padding:0 1rem .5rem 0;border-bottom:1px solid var(--line);white-space:nowrap}.svctable td{padding:.6rem 1rem .6rem 0;border-bottom:1px solid var(--line-2);color:var(--ink-2);vertical-align:top}.svctable tr:last-child td{border-bottom:none}.svctable code{font-family:var(--font-mono);font-size:.88em;color:var(--ink)}.svc__name,.svc__kind,.svc__state,.svc__pkg{white-space:nowrap}.svc__kind,.svc__none{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-3)}.svc__note{min-width:22ch}.svc__flag{display:inline-block;margin-left:.5rem;font-family:var(--font-mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--warn)}.svc--zero code,.svc--paused code,.svc--restarting code{color:var(--ink-2)}.pill{display:inline-block;padding:.1rem .5rem;border-radius:100px;font-family:var(--font-mono);font-size:.63rem;letter-spacing:.08em;text-transform:uppercase;border:1px solid currentColor}.pill--running{color:var(--ok)}.pill--paused,.pill--zero{color:var(--warn)}.pill--restarting{color:var(--bad)}.railnav__item--deploy{--k: var(--ink-2);border-style:solid}
