@font-face{font-family:IBM Plex Mono;font-style:italic;font-weight:400;font-display:swap;src:url(../media/3e29d6c8df211d66-s.34ll3n0a7axn8.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:italic;font-weight:400;font-display:swap;src:url(../media/2956efe007516702-s.2zs30e0rmfqle.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:italic;font-weight:400;font-display:swap;src:url(../media/658fb2a9c2a0ea5d-s.0ucamigolj1gr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:italic;font-weight:400;font-display:swap;src:url(../media/7c125d9da13f978a-s.1voarg1k-ek7t.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:italic;font-weight:400;font-display:swap;src:url(../media/a46a75cfd765634f-s.p.1ftfy6l9h667-.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:italic;font-weight:500;font-display:swap;src:url(../media/c752d4f65d3e00e0-s.3y7xswp0tmq9f.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:italic;font-weight:500;font-display:swap;src:url(../media/151f074d78c0031d-s.2yxhuoqrbmyse.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:italic;font-weight:500;font-display:swap;src:url(../media/3ee1b1187b5e60bc-s.3ulr42fti9i75.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:italic;font-weight:500;font-display:swap;src:url(../media/ecc49aa4bef31f74-s.3_pu8gag5qjcz.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:italic;font-weight:500;font-display:swap;src:url(../media/21c1dee959b18079-s.p.2xfa7vbo49zde.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:italic;font-weight:600;font-display:swap;src:url(../media/6a793dba767aa497-s.1wbzjl9gk0c53.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:italic;font-weight:600;font-display:swap;src:url(../media/cf54ce4ee2f7915c-s.2j2yrd_74-h7v.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:italic;font-weight:600;font-display:swap;src:url(../media/bb1a7daf057744c1-s.1ajqhnm7jd-tt.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:italic;font-weight:600;font-display:swap;src:url(../media/eb34f5373173429c-s.3j11ksm2xynw4.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:italic;font-weight:600;font-display:swap;src:url(../media/cb74272c1a4b1482-s.p.0fo5-4h9-hcwh.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e390973e931a41c5-s.3zhtymus0wdqb.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/59b15b4bcd7b1eb5-s.3nkuoiize4urq.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e532fa1b9921e1cd-s.1da667lu-u79a.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2fe89d53234c61d4-s.1i05ju5aeyhye.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/99e609270109b47d-s.p.1dgcou5jor5q_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5e05ae5b48faa55e-s.31-2bzhq1gx_9.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a7afbb44bec2bb18-s.3xauquyg2sixn.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/02263ebadd758ea4-s.2taws-qdxmzlf.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/68757d6cddeff913-s.0htwiiqufp3l9.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/effe91970fc4db64-s.p.28xcb7557rbh2.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6ff74e33ebd7bca3-s.2ontrj8z1-o25.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1a69062cfe6f77f8-s.33iiebxkijmxa.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9a4838fcda0d1bca-s.2nzetymcmw3t7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2e95a7d252b9825a-s.0_f09-l1omku8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/23b7a97ae3b5c134-s.p.0fcfx2a-jndc5.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono Fallback;src:local(Arial);ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:134.59%}.ibm_plex_mono_4a279e9e-module__VAJBiG__className{font-family:IBM Plex Mono,IBM Plex Mono Fallback}.ibm_plex_mono_4a279e9e-module__VAJBiG__variable{--font-plex-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2e4y-bhazgt_v.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.3o0_l_yqebdng.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.2mglm451ism6l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.3bjsqkuy1d2v8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0xluf1kzv7x5w.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.45487z7p3r8wm.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2e4y-bhazgt_v.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.3o0_l_yqebdng.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.2mglm451ism6l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.3bjsqkuy1d2v8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0xluf1kzv7x5w.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.45487z7p3r8wm.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2e4y-bhazgt_v.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.3o0_l_yqebdng.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.2mglm451ism6l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.3bjsqkuy1d2v8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0xluf1kzv7x5w.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.45487z7p3r8wm.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Fallback;src:local(Arial);ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.0%;size-adjust:101.17%}.ibm_plex_sans_ed127c36-module__wLxLRa__className{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.ibm_plex_sans_ed127c36-module__wLxLRa__variable{--font-plex-sans:"IBM Plex Sans", "IBM Plex Sans Fallback"}
:root{--bp-900:#050f3d;--bp-800:#08175e;--bp-700:#0d2490;--bp-600:#1533c4;--bp-500:#1f3ff0;--bp-400:#4a63ff;--bp-200:#9fb0ff;--bp-100:#c9d3ff;--ink-0:#fff;--ink-1:#ffffffc7;--ink-2:#ffffffa8;--ink-3:#ffffff85;--line-hair:#ffffff29;--line-soft:#ffffff47;--line-firm:#ffffff8c;--line-full:#fff;--grid-line:#ffffff12;--grid-line-strong:#ffffff26;--mark-red:#ff6b6b;--mark-mint:#6ff2c0;--mark-amber:#ffd166;--annot:var(--mark-mint);--mark-wash:#ffd16642;--accent:var(--bp-400);--danger:var(--mark-red);--ok:var(--mark-mint);--warn:var(--mark-amber);--surface-page:var(--bp-600);--surface-card:#050f3d47;--surface-inset:#050f3d73;--surface-raised:#ffffff0f;--text-body:var(--ink-0);--text-secondary:var(--ink-1);--text-label:var(--ink-2);--text-on-accent:var(--bp-700);--border-default:var(--line-firm);--border-soft:var(--line-hair);--border-dashed:1px dashed var(--line-soft);--link:var(--ink-0);--link-hover:var(--bp-200);--focus-ring:0 0 0 2px var(--bp-900),0 0 0 4px var(--ink-0)}
:root{--font-mono:var(--font-plex-mono),ui-monospace,"SFMono-Regular",Menlo,monospace;--font-sans:var(--font-plex-sans),system-ui,-apple-system,sans-serif;--text-2xs:10px;--text-xs:11px;--text-sm:13px;--text-md:15px;--text-lg:18px;--text-xl:24px;--text-2xl:34px;--text-3xl:52px;--text-4xl:76px;--type-display:600 var(--text-4xl)/.94 var(--font-sans);--type-h1:600 var(--text-3xl)/1 var(--font-sans);--type-h2:600 var(--text-xl)/1.25 var(--font-mono);--type-h3:600 var(--text-md)/1.4 var(--font-mono);--type-body:400 var(--text-md)/1.65 var(--font-sans);--type-body-sm:400 var(--text-sm)/1.6 var(--font-sans);--type-label:500 var(--text-xs)/1.2 var(--font-mono);--type-annotation:400 var(--text-2xs)/1.4 var(--font-mono);--tracking-display:-.02em;--tracking-label:.08em;--tracking-wide:.14em}@media (min-width:1200px){:root{--text-4xl:104px;--text-3xl:60px}}@media (max-width:900px){:root{--text-4xl:52px;--text-3xl:38px;--text-2xl:27px;--text-xl:20px}}@media (max-width:560px){:root{--text-4xl:38px;--text-3xl:29px;--text-2xl:22px;--text-xl:18px}}
:root{--sp-1:4px;--sp-2:8px;--sp-3:16px;--sp-4:24px;--sp-5:32px;--sp-6:48px;--sp-7:64px;--sp-8:96px;--container-max:1120px;--gutter:80px;--nav-h:48px}@media (max-width:1100px){:root{--gutter:48px}}@media (max-width:720px){:root{--gutter:24px}}@media (max-width:420px){:root{--gutter:16px}}
:root{--radius-0:0px;--radius-1:2px;--radius-2:4px;--radius-full:9999px;--border-w:1px;--border-w-heavy:1.5px;--border-hair:1px solid var(--line-hair);--border-solid:1px solid var(--line-firm);--border-heavy:1.5px solid var(--line-full);--border-dashed:1px dashed var(--line-soft);--border-accent:1px solid var(--accent);--border-danger:1px solid var(--danger);--shadow-none:none;--shadow-plate:4px 4px 0 0 var(--line-hair);--shadow-plate-accent:4px 4px 0 0 var(--line-full);--shadow-plate-sm:2px 2px 0 0 var(--line-soft);--focus-ring:0 0 0 2px var(--bp-900), 0 0 0 4px var(--ink-0);--ease-default:.15s ease-out;--ease-slow:.3s ease-out}
:root{--dim-color:var(--line-firm);--dim-line-w:1px;--dim-tick-h:8px;--dim-tick-w:1px;--dim-font:var(--type-annotation);--dim-label-pad:0 6px;--reg-mark-size:12px;--reg-mark-color:var(--ink-3);--reg-mark-font:var(--type-annotation);--box-border:1px solid var(--line-soft);--box-border-firm:1px solid var(--line-firm);--box-pad:10px 14px;--box-pad-sm:4px 8px;--index-size:34px;--index-font:500 var(--text-md)/1 var(--font-sans);--scale-font:var(--type-annotation);--scale-color:var(--text-label);--titleblock-border:1px solid var(--line-firm);--titleblock-bg:var(--surface-inset)}
:root{--grid-minor:repeating-linear-gradient(0deg,transparent,transparent 23px,var(--grid-line) 23px,var(--grid-line) 24px),repeating-linear-gradient(90deg,transparent,transparent 23px,var(--grid-line) 23px,var(--grid-line) 24px);--grid-major:repeating-linear-gradient(0deg,transparent,transparent 119px,var(--grid-line-strong) 119px,var(--grid-line-strong) 120px),repeating-linear-gradient(90deg,transparent,transparent 119px,var(--grid-line-strong) 119px,var(--grid-line-strong) 120px);--grid-bg:var(--grid-major),var(--grid-minor);--grid-dots:radial-gradient(var(--grid-line-strong) 1px,transparent 1px);--grid-dots-size:24px 24px;--hatch:repeating-linear-gradient(45deg,transparent,transparent 5px,var(--line-hair) 5px,var(--line-hair) 6px);--hatch-dense:repeating-linear-gradient(45deg,transparent,transparent 2px,var(--line-soft) 2px,var(--line-soft) 3px);--hatch-field:repeating-linear-gradient(45deg,transparent,transparent 5px,var(--line-soft) 5px,var(--line-soft) 6px);--cursor-cross:crosshair}
*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background-color:var(--surface-page);color:var(--text-body);font:var(--type-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}body:before{content:"";z-index:-1;background-image:var(--grid-bg);pointer-events:none;position:fixed;inset:0}a{color:var(--link);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}a:hover{color:var(--link-hover)}::selection{background:var(--ink-0);color:var(--text-on-accent)}h1,h2,h3,h4,p,figure,blockquote{margin:0}ul,ol{margin:0;padding:0}img,svg{max-width:100%;height:auto;display:block}:focus-visible{box-shadow:var(--focus-ring);outline:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + var(--sp-4))}.shell{min-height:100svh;padding-top:var(--nav-h);flex-direction:column;display:flex}.shell>main{flex-direction:column;flex:1 0 auto;display:flex}.shell>main>.plate:only-child{flex:1 0 auto}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{left:var(--sp-2);z-index:200;background:var(--ink-0);color:var(--text-on-accent);font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;padding:var(--sp-2) var(--sp-3);transition:top var(--ease-default);text-decoration:none;position:absolute;top:-100px}.skip-link:focus{top:var(--sp-2);color:var(--text-on-accent)}
.label-box{border:var(--box-border);padding:var(--box-pad);background:0 0;display:inline-block}.label-box--firm{border:var(--box-border-firm)}.label-box--sm{padding:var(--box-pad-sm)}.label-box--fill{background:var(--surface-inset)}.label-box--hatch{background-image:var(--hatch)}.box-stack{flex-direction:column;align-items:flex-start;display:flex}.box-stack>*+*{margin-top:-1px}.box-row{align-items:stretch;display:flex}.box-row>*+*{margin-left:-1px}.index-tab{min-width:var(--index-size);border:var(--box-border);font:var(--index-font);color:var(--text-body);font-variant-numeric:tabular-nums;justify-content:flex-start;align-items:center;padding:6px 12px;display:inline-flex}.callout{flex-direction:column;align-items:flex-start;display:flex}.callout__body{border:var(--box-border);padding:var(--box-pad);font:var(--type-body-sm);color:var(--text-secondary);max-width:38ch;margin-top:-1px}.callout--stepped .index-tab{margin-left:var(--sp-4)}.callout--stepped .callout__body{margin-left:0}.callout--right{text-align:left;align-items:flex-end}.hatch{background-image:var(--hatch)}.hatch--dense{background-image:var(--hatch-dense)}.dim{color:var(--dim-color);pointer-events:none;align-items:center;gap:4px;display:flex}.dim__tick{width:var(--dim-tick-w);height:var(--dim-tick-h);background:currentColor;flex:none}.dim__rule{height:var(--dim-line-w);background:currentColor;flex:auto;min-width:24px}.dim__label{font:var(--dim-font);letter-spacing:var(--tracking-label);text-transform:uppercase;padding:var(--dim-label-pad);color:var(--text-label);white-space:nowrap}.dim--v{flex-direction:column;align-items:center}.dim--v .dim__tick{width:var(--dim-tick-h);height:var(--dim-tick-w)}.dim--v .dim__rule{width:var(--dim-line-w);flex:auto;min-width:0;height:auto;min-height:24px}.dim--v .dim__label{writing-mode:vertical-rl;padding:6px 0}.scale-bar{align-items:center;gap:6px;display:flex}.scale-bar__track{border:1px solid var(--line-firm);display:flex}.scale-bar__seg{width:14px;height:8px}.scale-bar__seg:nth-child(odd){background:var(--line-full)}.scale-bar__unit{font:var(--scale-font);color:var(--scale-color);letter-spacing:var(--tracking-label);text-transform:uppercase}.code{font:var(--type-annotation);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-label);white-space:nowrap}.code--boxed{border:var(--box-border);padding:2px 6px;display:inline-block}.code--mark{color:var(--bp-200)}.sheet{position:relative}.sheet:before{content:"";inset:var(--sp-3);border:1px solid var(--line-hair);pointer-events:none;position:absolute}.sheet__mark{z-index:1;font:var(--reg-mark-font);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--reg-mark-color);pointer-events:none;line-height:1;position:absolute}.sheet__mark--tl{top:var(--sp-4);left:var(--sp-4)}.sheet__mark--tr{top:var(--sp-4);right:var(--sp-4);text-align:right}.sheet__mark--bl{bottom:var(--sp-4);left:var(--sp-4)}.sheet__mark--br{bottom:var(--sp-4);right:var(--sp-4);text-align:right}.title-block{border:var(--titleblock-border);background:var(--titleblock-bg);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;grid-template-columns:auto 1fr;max-width:340px;display:grid}.title-block__key{border-right:1px solid var(--line-hair);border-bottom:1px solid var(--line-hair);color:var(--text-label);padding:6px 10px}.title-block__val{border-bottom:1px solid var(--line-hair);color:var(--text-body);padding:6px 10px}.title-block>:last-child>*{border-bottom:none}.tab-head{justify-content:space-between;align-items:center;gap:var(--sp-3);border:1px solid var(--line-soft);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-label);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%);padding:7px 14px;display:flex}.crosshair{width:var(--reg-mark-size);height:var(--reg-mark-size);pointer-events:none;flex:none;position:relative}.crosshair:before,.crosshair:after{content:"";background:var(--reg-mark-color);position:absolute}.crosshair:before{width:1px;top:0;bottom:0;left:50%;transform:translate(-50%)}.crosshair:after{height:1px;top:50%;left:0;right:0;transform:translateY(-50%)}.param-block{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary);border-left:1px solid var(--line-soft);padding-left:var(--sp-4);line-height:1.9}.param-block__brace{color:var(--ink-3);display:block}.param-block__section{color:var(--annot);letter-spacing:var(--tracking-label);text-transform:uppercase;margin:var(--sp-2) 0 var(--sp-1);display:block}.param-block__row{grid-template-columns:11ch 1ch minmax(0,1fr) auto;align-items:baseline;gap:0 10px;display:grid}.param-block__key{color:var(--text-label);text-transform:uppercase;letter-spacing:var(--tracking-label)}.param-block__eq{color:var(--ink-3)}.param-block__val{color:var(--text-body);min-width:0;margin:0}.param-block__gloss{color:var(--ink-3);white-space:nowrap;justify-self:end}@media (max-width:620px){.param-block{line-height:1.7}.param-block__row{grid-template-columns:1fr;gap:0}.param-block__eq,.param-block__gloss{display:none}.param-block__val{margin-bottom:var(--sp-2)}}.bigval{flex-wrap:wrap;align-items:baseline;gap:0 12px;display:flex}.bigval__key{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase}.bigval__eq{font-family:var(--font-mono);color:var(--ink-3)}.bigval__val{font-family:var(--font-mono);color:var(--text-body);letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:clamp(24px,4.5vw,40px);font-weight:500;line-height:1.1}.bigval__gloss{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--ink-3);letter-spacing:var(--tracking-label);text-transform:uppercase}.keydiagram{width:100%;height:auto;display:block;overflow:visible}.keydiagram__line{stroke:var(--annot);stroke-width:1px;fill:none;opacity:.55}.keydiagram__node{stroke:var(--annot);stroke-width:1px;fill:none}.keydiagram__label{font-family:var(--font-mono);fill:var(--annot);letter-spacing:.06em;text-transform:uppercase;font-size:9px}.keydiagram__origin{font-family:var(--font-mono);fill:var(--ink-2);letter-spacing:.06em;text-transform:uppercase;font-size:9px}.keydiagram a:hover .keydiagram__label{fill:var(--ink-0)}.keydiagram a:hover .keydiagram__node{stroke:var(--ink-0)}.keydiagram a:focus-visible{outline:2px solid var(--ink-0);outline-offset:2px}.mark{background:linear-gradient(var(--mark-wash),var(--mark-wash));box-shadow:0 0 0 2px var(--mark-wash);color:var(--text-body)}.margin-note{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--annot);align-items:flex-start;gap:0;line-height:1.5;display:flex}.margin-note__body{border:1px solid var(--annot);border-radius:var(--radius-full);flex:0 auto;padding:6px 12px}.margin-note__rule{background:var(--annot);opacity:.55;flex:auto;min-width:16px;height:1px;margin-top:12px}.endnode{color:var(--ink-3);align-items:center;gap:0;display:flex}.endnode__rule{background:currentColor;flex:auto;height:1px}.endnode__dot{border-radius:var(--radius-full);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;border:1px solid;flex:none;padding:8px 14px}.edge-title{writing-mode:vertical-rl;font:var(--type-h3);text-transform:none;letter-spacing:.01em;color:var(--ink-2);white-space:nowrap}
.btn{font-family:var(--font-mono);letter-spacing:var(--tracking-label);text-transform:uppercase;border:1px solid var(--line-firm);cursor:var(--cursor-cross);white-space:nowrap;transition:background var(--ease-default),color var(--ease-default), border-color var(--ease-default),box-shadow var(--ease-default);border-radius:0;justify-content:center;align-items:center;gap:6px;font-weight:500;text-decoration:none;display:inline-flex}.btn:disabled,.btn[aria-disabled=true]{opacity:.4;pointer-events:none;cursor:default}.btn--sm{font-size:var(--text-2xs);min-height:24px;padding:5px 10px;line-height:1.4}.btn--md{font-size:var(--text-xs);min-height:38px;padding:11px 18px;line-height:1.2}.btn--lg{font-size:var(--text-sm);min-height:44px;padding:14px 26px;line-height:1.2}.btn--primary{background:var(--ink-0);color:var(--text-on-accent);border-color:var(--ink-0)}.btn--primary:hover{background:var(--bp-100);color:var(--bp-800);border-color:var(--bp-100)}.btn--secondary{color:var(--text-body);border-color:var(--line-firm);background:0 0}.btn--secondary:hover{background:var(--surface-raised);border-color:var(--line-full);color:var(--text-body)}.btn--ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.btn--ghost:hover{background:var(--surface-raised);color:var(--text-body)}.btn--danger{color:var(--danger);border-color:var(--danger);background:0 0}.btn--danger:hover{color:var(--danger);background:#ff6b6b24}.btn__icon{align-items:center;display:flex}.card{background:var(--surface-card);border:1px solid var(--line-soft);padding:var(--sp-4);border-radius:0}.card--dashed{border:var(--border-dashed)}.card--shadow{box-shadow:var(--shadow-plate)}.badge{font-family:var(--font-mono);letter-spacing:var(--tracking-label);text-transform:uppercase;white-space:nowrap;background:0 0;border:1px solid;border-radius:0;align-items:center;font-weight:500;line-height:1.2;display:inline-flex}.badge--sm{font-size:var(--text-2xs);padding:2px 6px}.badge--md{font-size:var(--text-xs);padding:3px 8px}.badge--default{color:var(--text-label);border-color:var(--line-soft)}.badge--accent{background:var(--ink-0);color:var(--text-on-accent);border-color:var(--ink-0)}.badge--danger{color:var(--danger);border-color:var(--danger)}.badge--ok{color:var(--ok);border-color:var(--ok)}.badge--warn{color:var(--warn);border-color:var(--warn)}.tag{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-label);background:0 0;border:1px solid;border-radius:0;align-items:center;gap:4px;padding:3px 8px;font-weight:500;line-height:1.3;display:inline-flex}.tag--default{border-color:var(--line-hair)}.tag--accent{border-color:var(--line-firm);color:var(--text-body)}.tag-list{flex-wrap:wrap;gap:6px;list-style:none;display:flex}.field{flex-direction:column;display:flex}.field__label{font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-label);margin-bottom:4px;display:block}.field__control{width:100%;font:var(--type-body);font-family:var(--font-sans);background:var(--surface-inset);border:1px solid var(--line-soft);color:var(--text-body);transition:border-color var(--ease-default),background var(--ease-default);border-radius:0;outline:none;padding:9px 12px}.field__control:focus{border-color:var(--line-full);box-shadow:var(--focus-ring)}.field__control::placeholder{color:var(--ink-2)}.field__control:disabled{opacity:.4;cursor:default}textarea.field__control{resize:vertical;min-height:96px}.field__hint{font:var(--type-annotation);letter-spacing:var(--tracking-label);color:var(--text-label);margin-top:4px}.field--error .field__label,.field--error .field__hint{color:var(--danger)}.field--error .field__control{border-color:var(--danger)}.spec{border:1px solid var(--line-soft);background:var(--surface-card)}.spec__title{padding:var(--sp-2) 12px;border-bottom:1px solid var(--line-soft);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-label)}.spec__body{gap:var(--sp-2);flex-direction:column;margin:0;padding:12px;display:flex}.spec__row{justify-content:space-between;gap:var(--sp-3);font:var(--type-body-sm);display:flex}.spec__key{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-label);flex-shrink:0;margin:0}.spec__value{color:var(--text-body);text-align:right;margin:0}
.plate{padding:var(--sp-8) var(--gutter);box-sizing:border-box;border-bottom:1px solid var(--line-hair);position:relative}.plate--open{background:0 0}.plate--wash{background:#050f3d33}.plate--deep{background:#050f3d6b}.plate--grid{background-image:var(--grid-bg)}.plate--dots{background-image:var(--grid-dots);background-size:var(--grid-dots-size)}.plate--hatch{background-image:var(--hatch)}.plate__inner{max-width:var(--container-max);width:100%;margin:0 auto;position:relative}.eyebrow{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-label);margin:0 0 var(--sp-3);align-items:center;gap:var(--sp-2);display:flex}.eyebrow:after{content:"";background:var(--line-hair);flex:auto;height:1px}.section-title{font:var(--type-h2);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-body);margin:0 0 var(--sp-5)}.reg-mark{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--reg-mark-color);pointer-events:none;line-height:1;position:absolute}.reg-mark--tl{top:var(--sp-3);left:var(--sp-3)}.reg-mark--tr{top:var(--sp-3);right:var(--sp-3)}.reg-mark--bl{bottom:var(--sp-3);left:var(--sp-3)}.reg-mark--br{bottom:var(--sp-3);right:var(--sp-3)}.nav{z-index:100;padding:0 var(--gutter);height:var(--nav-h);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--line-soft);box-sizing:border-box;background:#08175ee0;justify-content:space-between;align-items:stretch;display:flex;position:fixed;top:0;left:0;right:0}.nav__brand{font-family:var(--font-mono);font-weight:600;font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-body);border:1px solid var(--line-soft);transition:border-color var(--ease-default),background var(--ease-default);align-self:center;align-items:center;gap:8px;padding:5px 10px;text-decoration:none;display:inline-flex}.nav__brand:hover{border-color:var(--line-full);background:var(--surface-raised);color:var(--text-body)}.nav__brand-ref{color:var(--text-label);font-weight:400}.nav__links{align-items:stretch;list-style:none;display:flex}.nav__links>li{display:flex}.nav__link{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-label);padding:0 var(--sp-3);border-left:1px solid var(--line-hair);transition:color var(--ease-default),background var(--ease-default);align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.nav__links>li:last-child .nav__link{border-right:1px solid var(--line-hair)}.nav__link:before{content:attr(data-index);color:var(--ink-2);margin-right:6px}.nav__link:hover{color:var(--text-body);background:var(--surface-raised)}.nav__link[aria-current=page],.nav__link--active{color:var(--text-on-accent);background:var(--ink-0)}.nav__link[aria-current=page]:before,.nav__link--active:before{color:var(--text-on-accent)}@media (max-width:520px){.nav__link{padding:0 var(--sp-2)}.nav__link:before{display:none}}.hero{min-height:calc(100svh - var(--nav-h));padding-top:var(--sp-7);padding-bottom:var(--sp-8);flex-direction:column;justify-content:center;display:flex}.hero__inner{z-index:1;position:relative}.hero__title{margin-bottom:var(--sp-5);max-width:900px}.hero__kicker{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-label);margin-left:var(--sp-6);padding:8px 16px}.hero__name-group{margin:0}.hero__name{font:var(--type-display);letter-spacing:var(--tracking-display);color:var(--text-body);margin:0;padding:6px 24px 14px;display:block}.hero__flag{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-label);white-space:nowrap;align-items:flex-end;padding:8px 14px;display:flex}.hero__role{font:var(--type-h3);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-body);margin:0;padding:10px 24px}.hero__meta{font:var(--type-annotation);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-label);margin:0 0 0 var(--sp-4);padding:10px 16px}.hero__actions{gap:var(--sp-2);margin-bottom:var(--sp-6);flex-wrap:wrap;display:flex}.hero__rail{justify-content:space-between;align-items:flex-end;gap:var(--sp-5);flex-wrap:wrap;display:flex}.hero__dim{flex:none;width:240px}.hero__dim-v{top:18%;bottom:18%;right:calc(var(--sp-6) * -1);display:flex;position:absolute}@media (max-width:1360px){.hero__dim-v{display:none}}@media (max-width:720px){.hero__kicker,.hero__meta{margin-left:0}.hero__flag{display:none}.hero__title>*,.hero__name-group>*{max-width:100%}.hero__name{padding-left:16px;padding-right:16px}.hero__rail{gap:var(--sp-4)}}@media (max-width:560px){.hero__role{font-size:var(--text-sm)}.hero__meta{font-size:var(--text-2xs)}}.project-grid{gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));list-style:none;display:grid}@media (min-width:1024px){.project-grid{grid-template-columns:repeat(3,1fr)}}.project-card{height:100%;color:inherit;border:1px solid var(--line-soft);background:var(--surface-card);cursor:var(--cursor-cross);transition:transform var(--ease-default),box-shadow var(--ease-default), border-color var(--ease-default),background var(--ease-default);flex-direction:column;text-decoration:none;display:flex}.project-card:hover{box-shadow:var(--shadow-plate-accent);border-color:var(--line-full);background:var(--surface-inset);color:inherit;transform:translate(-3px,-3px)}.project-card:focus-visible{box-shadow:var(--focus-ring);outline:none}.project-card__head{justify-content:space-between;align-items:center;gap:var(--sp-2);border-bottom:1px solid var(--line-soft);padding:8px 14px;display:flex}.project-card__ref{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-label);letter-spacing:var(--tracking-wide);text-transform:uppercase;align-items:baseline;gap:8px;display:flex}.project-card__index{font-size:var(--text-sm);color:var(--text-body);font-variant-numeric:tabular-nums;font-weight:600}.project-card__field{border-bottom:1px solid var(--line-soft);background-image:var(--hatch-field);height:44px;position:relative}.project-card__field:after{content:"";background:var(--line-hair);height:1px;position:absolute;top:50%;left:0;right:0}.project-card__body{flex-direction:column;flex:auto;gap:10px;padding:14px;display:flex}.project-card__title{font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-body);margin:0;font-weight:600}.project-card__desc{font:var(--type-body-sm);color:var(--text-secondary);margin:0}.project-card__tags{padding-top:var(--sp-2);border-top:1px solid var(--line-hair);margin-top:auto}.about-grid{gap:var(--sp-6);grid-template-columns:1fr 1fr;max-width:1000px;display:grid}@media (max-width:860px){.about-grid{gap:var(--sp-5);grid-template-columns:1fr}}.prose>p{font:var(--type-body);color:var(--text-secondary);margin:0 0 var(--sp-3)}.prose>p:last-child{margin-bottom:0}.prose strong{color:var(--text-body);font-weight:600}.about-aside{gap:var(--sp-3);flex-direction:column;display:flex}.note-list{gap:var(--sp-3);grid-template-columns:1fr;list-style:none;display:grid}@media (min-width:1024px){.note-list{grid-template-columns:1fr 1fr}}.note-list>li{display:flex}.note-list .callout{flex:auto}.note-list .callout__body{flex:auto;align-items:center;width:100%;max-width:none;display:flex}.about-grid .stat-strip{margin-top:var(--sp-5)}.stat-strip{border:1px solid var(--line-firm);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;flex-wrap:wrap;display:flex}.stat-strip__item{padding:var(--sp-2) 12px;border-right:1px solid var(--line-hair);flex:auto}.stat-strip__item:last-child{border-right:none}.stat-strip__key{font-size:var(--text-2xs);color:var(--text-label)}.stat-strip__value{color:var(--text-body);font-size:var(--text-md);margin:0;font-weight:600}.contact-grid{gap:var(--sp-6);grid-template-columns:1fr 1fr;max-width:900px;display:grid}@media (max-width:860px){.contact-grid{gap:var(--sp-5);grid-template-columns:1fr}}.contact-list{border:1px solid var(--line-soft);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;flex-direction:column;list-style:none;display:flex}.contact-list li+li{border-top:1px solid var(--line-hair)}.contact-list a{align-items:center;gap:var(--sp-2);color:var(--text-secondary);transition:background var(--ease-default),color var(--ease-default);padding:10px 14px;text-decoration:none;display:flex}.contact-list a:before{content:"→";color:var(--ink-2)}.contact-list a:hover{background:var(--surface-raised);color:var(--text-body)}.contact-form{border:1px solid var(--line-soft);background:var(--surface-card);padding:var(--sp-4);flex-direction:column;align-self:start;gap:14px;display:flex}.contact-form .btn{align-self:flex-start}.form-status{font:var(--type-body-sm);padding:var(--sp-2) 12px;background:var(--surface-inset);border:1px solid}.form-status--ok{border-color:var(--ok);color:var(--ok)}.form-status--error{border-color:var(--danger);color:var(--danger)}.footer{border-top:1px solid var(--line-soft);padding:var(--sp-5) var(--gutter);background:#050f3d6b}.footer__inner{max-width:var(--container-max);justify-content:space-between;align-items:flex-end;gap:var(--sp-5);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-label);flex-wrap:wrap;margin:0 auto;display:flex}.footer__meta{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.footer a{color:var(--text-label);align-items:center;min-height:24px;text-decoration:none;display:inline-flex}.footer a:hover{color:var(--text-body)}.back-link{font:var(--type-label);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-label);border:1px solid var(--line-hair);margin-bottom:var(--sp-5);transition:color var(--ease-default),border-color var(--ease-default);padding:5px 10px;text-decoration:none;display:inline-block}.back-link:hover{color:var(--text-body);border-color:var(--line-firm)}.contact-blurb{font:var(--type-body);color:var(--text-secondary);margin:0 0 var(--sp-4);max-width:44ch}
.case-study__header{justify-content:space-between;align-items:flex-start;gap:var(--sp-5);display:flex}.case-study__headline{flex:auto;min-width:0;max-width:900px}.case-study__edge{flex:none;align-self:stretch}@media (max-width:900px){.case-study__edge{display:none}}.case-study__title{font:var(--type-h1);letter-spacing:var(--tracking-display);color:var(--text-body);margin:0 0 12px}.case-study__tags{margin-bottom:var(--sp-5)}.case-study__lede{font:var(--type-h3);color:var(--text-secondary);text-transform:uppercase;letter-spacing:var(--tracking-label);margin:0 0 var(--sp-4)}.case-study__params{gap:var(--sp-5);margin-bottom:var(--sp-7);flex-direction:column;max-width:900px;display:flex}.case-study__index{max-width:900px;margin-bottom:var(--sp-7)}.case-study__index .keydiagram{margin-top:var(--sp-4)}@media (max-width:680px){.case-study__index{display:none}}.case-study-body{max-width:70ch;position:relative}@media (min-width:1180px){.case-study-body{grid-template-columns:70ch minmax(0,1fr);column-gap:0;max-width:none;display:grid}.case-study-body>*{grid-column:1}.case-study-body>.margin-note{flex-direction:row-reverse;grid-column:2;align-self:start;margin-top:-2.2em}}@media (max-width:1179px){.case-study-body>.margin-note{margin:var(--sp-4) 0 var(--sp-3)}}.case-study-body h2{font:var(--type-h2);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-body);margin:var(--sp-6) 0 var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--line-hair)}.case-study-body h2:first-child{margin-top:0}.case-study-body h3{font:var(--type-h3);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-body);margin:var(--sp-5) 0 var(--sp-2)}.case-study-body p{font:var(--type-body);color:var(--text-secondary);margin:0 0 var(--sp-3)}.case-study-body strong{color:var(--text-body);font-weight:600}.case-study-body em{color:var(--text-label);font-style:italic}.case-study-body hr{border:none;border-top:1px solid var(--line-hair);margin:var(--sp-6) 0}.case-study-body ul,.case-study-body ol{margin:0 0 var(--sp-3) var(--sp-4);color:var(--text-secondary)}.case-study-body li{font:var(--type-body);margin-bottom:var(--sp-1)}.case-study-body .table-scroll{margin:var(--sp-3) 0 var(--sp-5);overflow-x:auto}.case-study-body table{border-collapse:collapse;width:100%;min-width:520px;font:var(--type-body-sm)}.case-study-body th,.case-study-body td{border:1px solid var(--line-hair);padding:var(--sp-2) var(--sp-3);text-align:left;vertical-align:top;color:var(--text-secondary)}.case-study-body th{font-family:var(--font-mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-label);background:var(--surface-inset)}.case-study-body tbody tr:nth-child(2n) td{background:#ffffff08}.case-study__stack{margin-top:var(--sp-6);max-width:760px}.endnode{margin-top:var(--sp-7)}.case-study-body h2[id]{scroll-margin-top:calc(var(--nav-h) + var(--sp-4))}

