@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/archivo-vietnamese-500-normal.k0drYPZA.woff2) format("woff2"),url(/_astro/archivo-vietnamese-500-normal.7W3lD2kQ.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:Archivo;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/archivo-latin-ext-500-normal.RFhg4CpD.woff2) format("woff2"),url(/_astro/archivo-latin-ext-500-normal.D7mXw3Kz.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:Archivo;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/archivo-latin-500-normal.CGugC8dq.woff2) format("woff2"),url(/_astro/archivo-latin-500-normal.pkzA7jw9.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:Archivo;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/archivo-vietnamese-600-normal.anCjMumA.woff2) format("woff2"),url(/_astro/archivo-vietnamese-600-normal.C8xBVdfP.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:Archivo;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/archivo-latin-ext-600-normal.Dm61iqcg.woff2) format("woff2"),url(/_astro/archivo-latin-ext-600-normal.D7uErJuz.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:Archivo;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/archivo-latin-600-normal.3BBy0ZsW.woff2) format("woff2"),url(/_astro/archivo-latin-600-normal.DwYieO8P.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:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/archivo-vietnamese-700-normal.nuAQAQa7.woff2) format("woff2"),url(/_astro/archivo-vietnamese-700-normal.Bz2vkKqq.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:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/archivo-latin-ext-700-normal.DD_nkw6b.woff2) format("woff2"),url(/_astro/archivo-latin-ext-700-normal.CgyfnKjw.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:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/archivo-latin-700-normal.D9cHMWGj.woff2) format("woff2"),url(/_astro/archivo-latin-700-normal.lT5TFe7H.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(/_astro/ibm-plex-sans-cyrillic-ext-400-normal.g30qAdWV.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-sans-cyrillic-400-normal.DZqxrq2p.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-sans-greek-400-normal._efipK4i.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-sans-vietnamese-400-normal.DG4YqDda.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-sans-latin-ext-400-normal.C5H60-Va.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-sans-cyrillic-ext-500-normal.Cs5J6C77.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-sans-cyrillic-500-normal.CocWQlwt.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-sans-greek-500-normal.JMMifIXV.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-sans-vietnamese-500-normal.e4dixQRQ.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-sans-latin-ext-500-normal.DakdToA3.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-sans-cyrillic-ext-600-normal.DUMzJB7m.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-sans-cyrillic-600-normal.71GNu3SW.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-sans-greek-600-normal.DzTrcv_p.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-sans-vietnamese-600-normal.DpPYBSTl.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-sans-latin-ext-600-normal.DOrvGEcy.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BqneJy0T.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-mono-cyrillic-500-normal.Bq9vWWag.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-mono-vietnamese-500-normal.DZ4AoWbu.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2) format("woff2"),url(/_astro/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(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2) format("woff2"),url(/_astro/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{--paper:#F4F5F3;--surface:#FFFFFF;--ink:#1B2220;--ink-2:#4B5551;--ink-3:#717B77;--line:#D6DBD7;--accent:#3D6A4E;--accent-ink:#FFFFFF;--accent-soft:#E3EBE5;--band:#1E2624;--band-ink:#E9EDEA;--band-ink-2:#A7B2AD;--band-line:#36413D;--hatch:#C9D0CB;--ph:#EBEEEB;--note:#8A6A1F;--note-soft:#F6EFD9;--f-display:"Archivo","Helvetica Neue",Arial,sans-serif;--f-body:"IBM Plex Sans","Segoe UI",Roboto,Arial,sans-serif;--f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;--maxw:1180px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#121615;--surface:#191E1D;--ink:#E5E9E6;--ink-2:#A6B0AB;--ink-3:#7F8984;--line:#2C3532;--accent:#8CB99A;--accent-ink:#0F1513;--accent-soft:#1F2C26;--band:#0C0F0E;--band-ink:#E5E9E6;--band-ink-2:#9AA5A0;--band-line:#2A3330;--hatch:#2C3532;--ph:#1D2321;--note:#E0C27A;--note-soft:#2A2516;color-scheme:dark}}:root[data-theme=dark]{--paper:#121615;--surface:#191E1D;--ink:#E5E9E6;--ink-2:#A6B0AB;--ink-3:#7F8984;--line:#2C3532;--accent:#8CB99A;--accent-ink:#0F1513;--accent-soft:#1F2C26;--band:#0C0F0E;--band-ink:#E5E9E6;--band-ink-2:#9AA5A0;--band-line:#2A3330;--hatch:#2C3532;--ph:#1D2321;--note:#E0C27A;--note-soft:#2A2516;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.wrap{max-width:var(--maxw);margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}h1,h2,h3{font-family:var(--f-display);font-weight:600;letter-spacing:-.01em;text-wrap:balance;margin:0}h1{font-size:clamp(2rem,4.2vw,3.25rem);line-height:1.08}h2{font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.15}h3{font-size:1.15rem;line-height:1.3}p{margin:0}.lead{font-size:1.15rem;color:var(--ink-2);max-width:62ch}.label{font-family:var(--f-mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.ph-text{background:var(--note-soft);color:var(--note);padding:0 .3em;border-radius:3px;font-family:var(--f-mono);font-size:.85em}header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--surface);border-bottom:1px solid var(--line)}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--surface)}.nav{display:flex;align-items:center;gap:28px;min-height:68px}.logo{display:flex;align-items:center;gap:10px;text-decoration:none;margin-right:auto}.logo-mark{width:34px;height:34px;border:2px solid var(--ink);display:grid;place-items:center;font-family:var(--f-display);font-weight:700;font-size:.85rem;letter-spacing:-.02em}.logo-text{font-family:var(--f-display);font-weight:600;font-size:1.05rem;line-height:1.1}.logo-text small{display:block;font-family:var(--f-mono);font-weight:400;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.menu{display:flex;gap:24px;align-items:center;list-style:none;margin:0;padding:0}.menu a{text-decoration:none;font-weight:500;font-size:.95rem;color:var(--ink-2)}.menu a:hover,.menu a.on{color:var(--ink)}.menu a.on{box-shadow:inset 0 -2px 0 var(--accent)}.has-sub{position:relative}.sub{display:none;position:absolute;top:100%;left:-16px;padding-top:14px;min-width:260px}.sub ul{list-style:none;margin:0;padding:8px;background:var(--surface);border:1px solid var(--line);box-shadow:0 12px 32px #00000014}.sub a{display:block;padding:9px 12px;color:var(--ink)}.sub a:hover{background:var(--accent-soft)}.has-sub:hover .sub,.has-sub:focus-within .sub{display:block}.btn{display:inline-flex;align-items:center;gap:8px;font:600 .95rem var(--f-body);text-decoration:none;padding:11px 20px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);cursor:pointer;border-radius:2px}.btn:hover{filter:brightness(1.08)}.btn.ghost{background:transparent;color:inherit;border-color:currentColor}.burger{display:none;background:none;border:1px solid var(--line);color:var(--ink);padding:8px 10px;font:500 .85rem var(--f-body);cursor:pointer}@media(max-width:900px){.menu{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:var(--surface);border-bottom:1px solid var(--line);padding:8px max(20px,env(safe-area-inset-right,0px)) 16px max(20px,env(safe-area-inset-left,0px))}.menu.open{display:flex}.menu a{display:block;padding:10px 0}.sub{display:block;position:static;padding:0 0 0 14px;min-width:0}.sub ul{border:0;box-shadow:none;padding:0;background:none}.sub a{padding:6px 0}.burger{display:block}.nav .btn{display:none}}section{padding-block:clamp(56px,8vw,96px)}section+section{border-top:1px solid var(--line)}.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:24px 48px;align-items:end;margin-bottom:44px}.sec-head p{color:var(--ink-2);max-width:56ch}@media(max-width:800px){.sec-head{grid-template-columns:1fr}}.hero{background:var(--band);color:var(--band-ink);padding-block:clamp(56px,8vw,104px);position:relative;overflow:hidden}.hero .lead,.hero .label{color:var(--band-ink-2)}.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:48px;align-items:center}.hero-copy{display:flex;flex-direction:column;gap:22px}.hero .btn.ghost{color:var(--band-ink)}.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}.hero-fig{width:100%;max-width:520px;justify-self:end}.hero-fig svg{width:100%;height:auto;display:block}@media(max-width:860px){.hero-grid{grid-template-columns:1fr}.hero-fig{justify-self:start;max-width:440px}}.crumb{font-family:var(--f-mono);font-size:.78rem;color:var(--band-ink-2)}.crumb a{color:var(--band-ink-2)}.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--band-line);margin-top:56px}.fact{padding:18px 20px 0 0;display:flex;flex-direction:column;gap:4px}.fact b{font-family:var(--f-display);font-weight:600;font-size:1.05rem;color:var(--band-ink)}.fact span{font-size:.88rem;color:var(--band-ink-2)}@media(max-width:760px){.facts{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:12px}}.sol-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);background:var(--surface)}.sol{display:flex;flex-direction:column;gap:12px;padding:26px 24px 24px;text-decoration:none;border-right:1px solid var(--line);min-width:0;transition:background .15s}.sol:last-child{border-right:0}.sol:hover{background:var(--accent-soft)}.sol .code{font-family:var(--f-mono);font-size:.72rem;color:var(--accent);letter-spacing:.06em}.sol p{color:var(--ink-2);font-size:.95rem}.sol .more{margin-top:auto;font-weight:600;font-size:.9rem;color:var(--accent)}.sol svg{width:56px;height:40px;color:var(--ink-2)}@media(max-width:980px){.sol-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sol:nth-child(2){border-right:0}.sol:nth-child(-n+2){border-bottom:1px solid var(--line)}}@media(max-width:560px){.sol-grid{grid-template-columns:1fr}.sol{border-right:0;border-bottom:1px solid var(--line)}.sol:last-child{border-bottom:0}}.svc-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px}.svc{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 18px;padding:22px 0;border-top:1px solid var(--line)}.svc .n{font-family:var(--f-mono);font-size:.8rem;color:var(--ink-3);padding-top:3px}.svc p{color:var(--ink-2);font-size:.95rem;grid-column:2}.svc .tags{grid-column:2;display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.svc.minor h3{font-weight:500;color:var(--ink-2)}@media(max-width:760px){.svc-list{grid-template-columns:1fr}}.tag{font-family:var(--f-mono);font-size:.72rem;padding:2px 8px;border:1px solid var(--line);color:var(--ink-2);border-radius:2px;white-space:nowrap}.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;counter-reset:s}.step{padding:0 24px 0 0;display:flex;flex-direction:column;gap:10px;position:relative}.step .k{font-family:var(--f-mono);font-size:.75rem;color:var(--accent);border-top:2px solid var(--accent);padding-top:12px}.step p{color:var(--ink-2);font-size:.93rem}@media(max-width:860px){.steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:32px}}@media(max-width:520px){.steps{grid-template-columns:1fr}}.ref-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}@media(max-width:900px){.ref-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.ref-grid{grid-template-columns:1fr}}.ref{display:flex;flex-direction:column;gap:12px;text-decoration:none;min-width:0}.ref:hover h3{text-decoration:underline;text-underline-offset:3px}.img-ph{aspect-ratio:4/3;max-width:100%;background:var(--ph) repeating-linear-gradient(45deg,transparent 0 9px,var(--hatch) 9px 10px);border:1px solid var(--line);display:flex;align-items:flex-end;padding:10px}.img-ph span{font-family:var(--f-mono);font-size:.72rem;background:var(--surface);color:var(--ink-2);padding:3px 7px;border:1px solid var(--line)}.img-ph.wide{aspect-ratio:16/9}.img-ph.portrait{aspect-ratio:4/5}.ref-meta{display:flex;justify-content:space-between;gap:12px;font-family:var(--f-mono);font-size:.74rem;color:var(--ink-3)}.ref .tags{display:flex;flex-wrap:wrap;gap:6px}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}.chip{font:500 .88rem var(--f-body);padding:7px 14px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);cursor:pointer;border-radius:2px}.chip[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.empty{padding:28px;border:1px dashed var(--line);color:var(--ink-3)}.spec{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:48px}@media(max-width:860px){.spec{grid-template-columns:1fr}}.spec dl{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);border-top:1px solid var(--line)}.spec dt,.spec dd{padding:11px 0;border-bottom:1px solid var(--line);margin:0}.spec dt{font-family:var(--f-mono);font-size:.75rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;padding-right:20px;padding-top:14px}.spec .body{display:flex;flex-direction:column;gap:18px}.spec .body p{color:var(--ink-2);max-width:62ch}.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px}@media(max-width:860px){.two{grid-template-columns:1fr}}.pain{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.pain li{padding:18px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px}.pain li:before{content:"";width:12px;height:12px;border:1.5px solid var(--ink-3);transform:rotate(45deg);margin-top:7px;margin-left:4px}.pain b{display:block;font-weight:600}.pain span{color:var(--ink-2);font-size:.95rem}.blocks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}@media(max-width:620px){.blocks{grid-template-columns:1fr}}.block{background:var(--surface);padding:22px;display:flex;flex-direction:column;gap:8px;min-width:0}.block .label{color:var(--accent)}.block ul{margin:4px 0 0;padding-left:18px;color:var(--ink-2);font-size:.93rem}.block.opt{background:var(--paper)}.block.opt .label{color:var(--ink-3)}.pledge{border:1px solid var(--accent);background:var(--accent-soft);padding:28px;display:flex;flex-direction:column;gap:10px;margin-top:40px}.pledge p{max-width:70ch}.pledge .label{color:var(--accent)}.people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}@media(max-width:620px){.people{grid-template-columns:1fr}}.person{display:grid;grid-template-columns:120px minmax(0,1fr);gap:20px;align-items:start}.person .img-ph{aspect-ratio:4/5}.person .role{color:var(--ink-3);font-size:.9rem}.person .lines{font-family:var(--f-mono);font-size:.85rem;color:var(--ink-2);margin-top:10px;display:flex;flex-direction:column;gap:2px}.cta-band{background:var(--band);color:var(--band-ink)}.cta-band .wrap{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px;align-items:center}.cta-band p{color:var(--band-ink-2)}@media(max-width:860px){.cta-band .wrap{grid-template-columns:1fr}}form.req{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}form.req .full{grid-column:1/-1}form.req label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;font-weight:500}form.req input,form.req select,form.req textarea{font:inherit;font-size:.95rem;padding:10px 12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:2px;width:100%}@media(max-width:560px){form.req{grid-template-columns:1fr}}.ok{padding:14px 16px;background:var(--accent-soft);border:1px solid var(--accent);font-size:.95rem}details{border-top:1px solid var(--line);padding:16px 0}details:last-child{border-bottom:1px solid var(--line)}summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:16px}summary:after{content:"+";font-family:var(--f-mono);color:var(--ink-3)}details[open] summary:after{content:"–"}details p{color:var(--ink-2);margin-top:10px;max-width:70ch}footer{background:var(--band);color:var(--band-ink-2);font-size:.9rem;padding-block:48px 32px}footer .cols{display:grid;grid-template-columns:1.4fr repeat(3,minmax(0,1fr));gap:32px}footer h4{font:600 .8rem var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--band-ink);margin:0 0 12px}footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}footer a{text-decoration:none}footer a:hover{color:var(--band-ink)}footer .legal{border-top:1px solid var(--band-line);margin-top:36px;padding-top:18px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:.8rem}@media(max-width:760px){footer .cols{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:no-preference){main{animation:fade .25s ease-out}}@keyframes fade{0%{opacity:.4}to{opacity:1}}.menu .aud a{color:var(--ink)}.menu .sep{width:1px;height:22px;background:var(--line)}.nav{gap:22px}.menu{gap:20px}@media(max-width:1140px){.menu{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:var(--surface);border-bottom:1px solid var(--line);padding:8px max(20px,env(safe-area-inset-right,0px)) 16px max(20px,env(safe-area-inset-left,0px))}.menu.open{display:flex}.menu a{display:block;padding:10px 0}.menu .sep{width:auto;height:1px;margin:6px 0}.burger{display:block}.nav .btn{display:none}}.gate{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}@media(max-width:760px){.gate{grid-template-columns:1fr}}.gate a{background:var(--surface);padding:32px 30px 28px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 20px;text-decoration:none;min-width:0;transition:background .15s}.gate a:hover{background:var(--accent-soft)}.gate .code{font-family:var(--f-mono);font-size:.72rem;color:var(--accent);letter-spacing:.06em}.gate h2{font-size:clamp(1.35rem,2.2vw,1.7rem);grid-column:1}.gate svg{grid-column:2;grid-row:1/3;width:72px;height:52px;color:var(--ink-2)}.gate p{grid-column:1/-1;color:var(--ink-2);max-width:52ch}.gate .proof{grid-column:1/-1;font-family:var(--f-mono);font-size:.78rem;color:var(--ink-3);border-top:1px solid var(--line);padding-top:12px}.gate .more{grid-column:1/-1;font-weight:600;color:var(--accent)}.steps5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0}.steps5 .step{padding-right:20px}@media(max-width:980px){.steps5{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:32px}}@media(max-width:520px){.steps5{grid-template-columns:1fr}}.cases{display:flex;flex-direction:column;gap:56px}.case{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:40px;align-items:start}.case:nth-child(2n) .case-img{order:2}@media(max-width:860px){.case{grid-template-columns:1fr}.case:nth-child(2n) .case-img{order:0}}.case-body{display:flex;flex-direction:column;gap:16px;min-width:0}.case-body .tags{display:flex;flex-wrap:wrap;gap:6px}.case-arc{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 18px;font-size:.95rem}.case-arc dt{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding-top:3px}.case-arc dd{margin:0;color:var(--ink-2)}.case-facts{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.case-facts div{padding:10px 18px 10px 0;margin-right:18px;display:flex;flex-direction:column;gap:2px;font-size:.9rem;min-width:0}.case-facts div+div{border-left:1px solid var(--line);padding-left:18px}.case-facts span{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.quote{border-left:3px solid var(--accent);padding:4px 0 4px 18px;font-size:1.05rem;color:var(--ink);max-width:60ch}.quote cite{display:block;font-style:normal;font-size:.85rem;color:var(--ink-3);margin-top:6px}.chain{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--line);background:var(--surface)}.chain div{padding:20px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:6px;position:relative;min-width:0}.chain div:last-child{border-right:0}.chain div:not(:last-child):after{content:"";position:absolute;right:-7px;top:50%;width:12px;height:12px;background:var(--surface);border-top:1px solid var(--line);border-right:1px solid var(--line);transform:translateY(-50%) rotate(45deg);z-index:1}.chain b{font-family:var(--f-display);font-weight:600}.chain span{font-size:.88rem;color:var(--ink-2)}.chain .label{color:var(--accent)}@media(max-width:760px){.chain{grid-template-columns:1fr}.chain div{border-right:0;border-bottom:1px solid var(--line)}.chain div:last-child{border-bottom:0}.chain div:not(:last-child):after{display:none}}.lph{width:100%;border-collapse:collapse;font-size:.92rem;min-width:620px}.lph th,.lph td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.lph th{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:500}.lph td:first-child{font-family:var(--f-mono);font-size:.82rem;white-space:nowrap}.scroll-x{overflow-x:auto}.contact-one{display:grid;grid-template-columns:150px minmax(0,1fr);gap:24px;align-items:start}@media(max-width:520px){.contact-one{grid-template-columns:110px minmax(0,1fr)}}.cta-band{--ink-2:var(--band-ink-2);--ink-3:var(--band-ink-2)}body.d-2{--paper:#FFFFFF;--surface:#FFFFFF;--tint:#F3F7F3;--ph:#EDF2ED;--hatch:#D2DDD2;--line:#DCE4DC;--ink:#1D2620;--ink-2:#4B574D;--ink-3:#748076;--accent:#4C7F4E;--brand:#7AA67B;--accent-ink:#FFFFFF;--accent-soft:#E9F2E9;--band:#1E2921;--band-ink:#EEF3EE;--band-ink-2:#A8B8A9;--band-line:#344336}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) body.d-2{--paper:#101511;--surface:#161C17;--tint:#131914;--ph:#1B221C;--hatch:#29332A;--line:#28312A;--ink:#E5EBE5;--ink-2:#A6B2A7;--ink-3:#7D897E;--accent:#8DBB8E;--accent-ink:#101511;--accent-soft:#1D2A1E;--band:#0B0F0C;--band-ink:#E5EBE5;--band-ink-2:#9DAA9E;--band-line:#26302A}}:root[data-theme=dark] body.d-2{--paper:#101511;--surface:#161C17;--tint:#131914;--ph:#1B221C;--hatch:#29332A;--line:#28312A;--ink:#E5EBE5;--ink-2:#A6B2A7;--ink-3:#7D897E;--accent:#8DBB8E;--accent-ink:#101511;--accent-soft:#1D2A1E;--band:#0B0F0C;--band-ink:#E5EBE5;--band-ink-2:#9DAA9E;--band-line:#26302A}.d-2 header.site{border-top:4px solid var(--brand);border-bottom-color:var(--line)}.d-2 .hero{--accent:#7AA67B}.d-2 .hero .btn:not(.ghost){background:#7aa67b;border-color:#7aa67b;color:#14201a}.d-2 main>section:nth-of-type(2n):not(.cta-band){background:var(--tint)}.d-2 section+section{border-top-color:transparent}.d-2 .step .k{border-top-color:var(--brand)}.d-2 .pledge{border-color:var(--brand)}.d-2 .cta-band{--accent:#7AA67B}.d-2 .cta-band .btn{background:#7aa67b;border-color:#7aa67b;color:#14201a}.d-2 footer{border-top:4px solid var(--brand)}.logo-img{display:none;height:40px;width:auto;max-width:100%;background:var(--logo-plate,transparent);padding:var(--logo-pad,0);box-sizing:content-box}.d-2 .logo-img{display:block}.d-2 .logo-mark,.d-2 .logo-text{display:none}@media(max-width:520px){.logo-img{height:30px}}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) body{--logo-plate:#FFFFFF;--logo-pad:6px 10px}}:root[data-theme=dark] body{--logo-plate:#FFFFFF;--logo-pad:6px 10px}.d-2 .pledge{background:#eef5ee}.d-2 .pledge{color:var(--ink)}.skip{position:absolute;left:-9999px;top:0;background:var(--surface);color:var(--ink);padding:10px 14px;z-index:100}.skip:focus{left:16px;top:16px}.foot-name{font-family:var(--f-display);font-weight:600;color:var(--band-ink)}.foot-mono{margin-top:10px;font-family:var(--f-mono);font-size:.82rem}.legal a{text-decoration:none}.case-card{background:var(--surface);border:1px solid var(--line);padding:22px;display:flex;flex-direction:column;gap:10px;min-width:0}.case-card .tags{display:flex;flex-wrap:wrap;gap:6px}.case-card .meta{font-family:var(--f-mono);font-size:.76rem;color:var(--ink-3)}.contact-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}.prose{max-width:72ch}.prose h2{font-size:1.3rem;margin:2.2em 0 .6em}.prose p{margin:0 0 1em;color:var(--ink-2);overflow-wrap:anywhere}.prose a{color:var(--accent)}.prose .legal-head{color:var(--ink)}.people-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}@media(max-width:700px){.people-grid{grid-template-columns:1fr}}.pcard{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line);padding-top:18px}.pcard .role{color:var(--ink-3);font-size:.9rem}.pcard .lines{font-family:var(--f-mono);font-size:.88rem;color:var(--ink-2);display:flex;flex-direction:column;gap:2px;margin-top:6px}.pcard .lines a{text-decoration:none}.cta-band .pcard{border-top-color:var(--band-line)}.cta-band .pcard h3{color:var(--band-ink)}.plain-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.plain-list li{padding-left:18px;position:relative}.plain-list li:before{content:"";position:absolute;left:0;top:.7em;width:8px;height:1px;background:var(--accent)}.prose ul{margin:0 0 1em;padding-left:1.2em;color:var(--ink-2)}.prose li{margin:.2em 0}.draft-note{background:var(--accent-soft);border-left:3px solid var(--accent);padding:10px 14px}.notice{border-left:3px solid var(--brand);padding:10px 16px;background:#ffffff0f;color:var(--band-ink);max-width:62ch}.gate-item{background:var(--surface);padding:28px 30px;display:flex;flex-direction:column;gap:12px;min-width:0}.gate-item h3{font-size:clamp(1.2rem,2vw,1.45rem)}.gate-item p{color:var(--ink-2)}.gate-item .proof{border-top:1px solid var(--line);padding-top:12px;font-family:var(--f-mono);font-size:.78rem;color:var(--ink-3)}
