@font-face{font-family:EB Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/38d2ad5ff295456b-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:EB Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/d0f9686aa1d87075-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:EB Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/7cca5b7fafd5ba4d-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:EB Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/c1930cc46295bf92-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:EB Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/e6aa852f4bbfb242-s.woff2) format("woff2");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:EB Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/78c8ae6f07320bcf-s.woff2) format("woff2");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:EB Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/33b26eb373ecdf02-s.p.woff2) format("woff2");unicode-range:u+00??,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:EB Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(/_next/static/media/38d2ad5ff295456b-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:EB Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(/_next/static/media/d0f9686aa1d87075-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:EB Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(/_next/static/media/7cca5b7fafd5ba4d-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:EB Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(/_next/static/media/c1930cc46295bf92-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:EB Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(/_next/static/media/e6aa852f4bbfb242-s.woff2) format("woff2");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:EB Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(/_next/static/media/78c8ae6f07320bcf-s.woff2) format("woff2");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:EB Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(/_next/static/media/33b26eb373ecdf02-s.p.woff2) format("woff2");unicode-range:u+00??,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:EB Garamond;font-style:italic;font-weight:600;font-display:swap;src:url(/_next/static/media/38d2ad5ff295456b-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:EB Garamond;font-style:italic;font-weight:600;font-display:swap;src:url(/_next/static/media/d0f9686aa1d87075-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:EB Garamond;font-style:italic;font-weight:600;font-display:swap;src:url(/_next/static/media/7cca5b7fafd5ba4d-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:EB Garamond;font-style:italic;font-weight:600;font-display:swap;src:url(/_next/static/media/c1930cc46295bf92-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:EB Garamond;font-style:italic;font-weight:600;font-display:swap;src:url(/_next/static/media/e6aa852f4bbfb242-s.woff2) format("woff2");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:EB Garamond;font-style:italic;font-weight:600;font-display:swap;src:url(/_next/static/media/78c8ae6f07320bcf-s.woff2) format("woff2");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:EB Garamond;font-style:italic;font-weight:600;font-display:swap;src:url(/_next/static/media/33b26eb373ecdf02-s.p.woff2) format("woff2");unicode-range:u+00??,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:EB Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d7b29b398dd797a1-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:EB Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/65303d7bdb6c1b1a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:EB Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/891631c764a307b2-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:EB Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/73b9b49ded63c2ac-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:EB Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/59be34f4d8f1ff65-s.woff2) format("woff2");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:EB Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/39a40c15606bb1f5-s.woff2) format("woff2");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:EB Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/23081e227a96aa1a-s.p.woff2) format("woff2");unicode-range:u+00??,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:EB Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d7b29b398dd797a1-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:EB Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/65303d7bdb6c1b1a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:EB Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/891631c764a307b2-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:EB Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/73b9b49ded63c2ac-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:EB Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/59be34f4d8f1ff65-s.woff2) format("woff2");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:EB Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/39a40c15606bb1f5-s.woff2) format("woff2");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:EB Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/23081e227a96aa1a-s.p.woff2) format("woff2");unicode-range:u+00??,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:EB Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/d7b29b398dd797a1-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:EB Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/65303d7bdb6c1b1a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:EB Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/891631c764a307b2-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:EB Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/73b9b49ded63c2ac-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:EB Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/59be34f4d8f1ff65-s.woff2) format("woff2");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:EB Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/39a40c15606bb1f5-s.woff2) format("woff2");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:EB Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/23081e227a96aa1a-s.p.woff2) format("woff2");unicode-range:u+00??,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:EB Garamond Fallback;src:local("Times New Roman");ascent-override:106.26%;descent-override:31.44%;line-gap-override:0.00%;size-adjust:94.77%}.__className_ce5c51{font-family:EB Garamond,EB Garamond Fallback}.__variable_ce5c51{--font-display:"EB Garamond","EB Garamond Fallback"}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/58f386aa6b1a2a92-s.woff2) format("woff2");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-weight:400;font-display:swap;src:url(/_next/static/media/011e180705008d6f-s.woff2) format("woff2");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-weight:400;font-display:swap;src:url(/_next/static/media/7ba5fb2a8c88521c-s.woff2) format("woff2");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-weight:400;font-display:swap;src:url(/_next/static/media/92eeb95d069020cc-s.woff2) format("woff2");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-weight:400;font-display:swap;src:url(/_next/static/media/d3ebbfd689654d3a-s.p.woff2) format("woff2");unicode-range:u+00??,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-weight:500;font-display:swap;src:url(/_next/static/media/ef4d5661765d0e49-s.woff2) format("woff2");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-weight:500;font-display:swap;src:url(/_next/static/media/d29838c109ef09b4-s.woff2) format("woff2");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-weight:500;font-display:swap;src:url(/_next/static/media/e40af3453d7c920a-s.woff2) format("woff2");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-weight:500;font-display:swap;src:url(/_next/static/media/99dcf268bda04fe5-s.woff2) format("woff2");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-weight:500;font-display:swap;src:url(/_next/static/media/98e207f02528a563-s.p.woff2) format("woff2");unicode-range:u+00??,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-weight:600;font-display:swap;src:url(/_next/static/media/73cb51aac9c97f90-s.woff2) format("woff2");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-weight:600;font-display:swap;src:url(/_next/static/media/d26bbd13d6b70f89-s.woff2) format("woff2");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-weight:600;font-display:swap;src:url(/_next/static/media/20535187d867b7b9-s.woff2) format("woff2");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-weight:600;font-display:swap;src:url(/_next/static/media/5356a6a4f2c8c8d8-s.woff2) format("woff2");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-weight:600;font-display:swap;src:url(/_next/static/media/db96af6b531dc71f-s.p.woff2) format("woff2");unicode-range:u+00??,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 Fallback;src:local("Arial");ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.00%;size-adjust:134.59%}.__className_595324{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.__variable_595324{--font-mono:"IBM Plex Mono","IBM Plex Mono Fallback"}:root{--paper:#f2efe6;--paper-warm:#ece7d9;--paper-raised:#f7f5ee;--ink:#16140f;--ink-soft:#4d493f;--ink-faint:#8a8576;--rule:#d8d2c2;--rule-strong:#b8b19d;--accent:#b0501f;--accent-ink:#2b4734;--dark:#16140f;--dark-soft:#211d16;--dark-text:#e8e4d8;--wrap:1120px;--gutter:28px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}body{background:var(--paper);color:var(--ink);font-family:var(--font-display),Georgia,serif;font-size:18px;line-height:1.62;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;position:relative;width:100%;max-width:100%;overflow-x:hidden;overflow-wrap:break-word}::selection{background:var(--accent);color:var(--paper)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}.eyebrow{font-family:var(--font-mono),monospace;font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-faint);display:inline-block}section{border-bottom:1px solid var(--rule)}.section-head{display:flex;align-items:baseline;gap:14px;margin-bottom:30px;flex-wrap:wrap}h2.section-title{font-size:clamp(1.9rem,4vw,2.8rem);font-weight:500;line-height:1.08;letter-spacing:-.01em;max-width:22ch}:where(#about,#expertise,#work,#contact){scroll-margin-top:80px}.grain{inset:0;width:100%;height:100%;opacity:.035;mix-blend-mode:multiply;z-index:9999}.grain,.site-frame{position:fixed;pointer-events:none}.site-frame{inset:12px;border:3px double var(--rule-strong);z-index:9000}@media (max-width:600px){.site-frame{inset:8px}}.btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-mono),monospace;font-size:.76rem;text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--ink);color:var(--ink);background:var(--paper);padding:.78rem 1.4rem;cursor:pointer;transition:background .18s ease,color .18s ease}.btn:hover{background:var(--ink);color:var(--paper)}.btn.primary{border-color:var(--accent);color:var(--accent)}.btn.primary:hover{background:var(--accent);color:var(--paper)}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:100;background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:saturate(120%) blur(8px);backdrop-filter:saturate(120%) blur(8px);border-bottom:1px solid var(--rule)}.site-header .wrap{display:flex;align-items:stretch;justify-content:flex-start;min-height:66px}.brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:1.12rem;letter-spacing:.01em;padding-right:26px;border-right:1px solid var(--rule)}.brand .mark{border:1px solid var(--ink);width:26px;height:26px;display:grid;place-items:center;font-size:.9rem;font-weight:600}.brand .brand-sub,.brand .mark{font-family:var(--font-mono),monospace}.brand .brand-sub{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);display:block;line-height:1;margin-top:2px}.primary-nav{flex:1 1}.nav-links,.primary-nav{display:flex;align-items:stretch}.nav-links{gap:0;list-style:none}.nav-links li{display:flex}.nav-links a{display:flex;align-items:center;font-family:var(--font-mono),monospace;font-size:.78rem;text-transform:uppercase;letter-spacing:.18em;color:var(--ink);opacity:.55;padding:0 24px;border-right:1px solid var(--rule);transition:opacity .18s ease,background .18s ease}.nav-links li:last-child a{border-right:none}.nav-links a:hover{opacity:1;background:var(--paper-raised)}.nav-social{display:flex;align-items:center;gap:16px;margin-left:auto}.nav-social a{color:var(--ink);opacity:.55;display:inline-flex;transition:opacity .18s ease,color .18s ease}.nav-social a:hover{opacity:1;color:var(--accent)}.nav-toggle{display:none;margin-left:auto;align-self:center;background:none;border:1px solid var(--rule-strong);width:40px;height:36px;cursor:pointer;color:var(--ink);align-items:center;justify-content:center}.hero{position:relative;isolation:isolate;overflow:hidden;padding:96px 0 78px}.hero:before{content:"";position:absolute;inset:0;z-index:-1;background:url(/img/hero-armada.webp) no-repeat 100%;background-size:62% auto;opacity:.62;-webkit-mask-image:linear-gradient(270deg,black 18%,transparent 78%);mask-image:linear-gradient(270deg,black 18%,transparent 78%)}.hero h1{font-size:clamp(2.7rem,6.6vw,5rem);font-weight:500;line-height:1.04;letter-spacing:-.015em;margin:16px 0 22px;max-width:15ch}.hero h1 .turn{display:block}.hero h1 .turn,.lede{color:var(--ink-soft)}.lede{font-size:1.16rem;max-width:52ch;margin-bottom:34px}.hero-meta{display:flex;gap:22px;flex-wrap:wrap;font-family:var(--font-mono),monospace;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);margin-bottom:30px}.hero-meta b{color:var(--ink);font-weight:600}.terminal{font-family:var(--font-mono),monospace;font-size:.86rem;background:var(--paper-raised);border:3px double var(--rule-strong);box-shadow:5px 5px 0 var(--rule);max-width:600px;margin-bottom:30px}.terminal-bar{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--rule);padding:.5rem .85rem;color:var(--ink-faint);font-size:.66rem;text-transform:uppercase;letter-spacing:.12em}.terminal-bar .dots{display:inline-flex;gap:6px}.terminal-bar .dots i{width:9px;height:9px;border:1px solid var(--rule-strong);display:inline-block}.terminal-body{padding:.95rem 1.05rem 1.1rem;line-height:1.85}.terminal-body .prompt{color:var(--accent)}.terminal-body .muted{color:var(--ink-faint)}.terminal-body .ok{color:var(--accent-ink)}.copy{font-family:var(--font-mono),monospace;font-size:.64rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);background:none;border:none;cursor:pointer;padding:0}.copy:hover{color:var(--accent)}.cursor{display:inline-block;width:.55em;height:1.05em;background:var(--ink);vertical-align:text-bottom;margin-left:2px;animation:blink 1.1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.hero-cta{display:flex;gap:14px;flex-wrap:wrap}.about{padding:78px 0}.about-grid{display:grid;grid-template-columns:1.15fr .85fr;grid-gap:56px;gap:56px;align-items:start}.about-lead{font-size:1.32rem;line-height:1.45;letter-spacing:-.005em;margin-bottom:22px}.about p{color:var(--ink-soft);margin-bottom:16px;max-width:56ch}.values{list-style:none;display:flex;gap:10px 26px;flex-wrap:wrap;margin-top:26px;font-family:var(--font-mono),monospace;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink)}.values li:before{content:"+ ";color:var(--accent)}.plate{border:1px solid var(--rule);background:var(--paper-raised);padding:12px;position:relative}.plate img{width:100%;filter:contrast(1.02)}.plate figcaption{font-family:var(--font-mono),monospace;font-size:.64rem;color:var(--ink-faint);letter-spacing:.04em;margin-top:10px;line-height:1.5}.plate:after,.plate:before{content:"+";position:absolute;color:var(--rule-strong);font-size:.9rem;line-height:1}.plate:before{top:4px;left:5px}.plate:after{bottom:4px;right:5px}.expertise{padding:78px 0;background:var(--paper-warm)}.grid-features{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1px;gap:1px;background:var(--rule);border:1px solid var(--rule)}.cell{background:var(--paper-warm);padding:28px 26px 30px;display:flex;flex-direction:column}.cell .num{font-family:var(--font-mono),monospace;font-size:.72rem;color:var(--ink-faint);letter-spacing:.1em;margin-bottom:14px}.cell h3{font-size:1.32rem;font-weight:600;margin-bottom:9px;letter-spacing:-.01em}.cell p{font-size:.97rem;color:var(--ink-soft);flex:1 1}.cell .tags{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin-top:18px}.cell .tags li{font-family:var(--font-mono),monospace;font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);border:1px solid var(--rule-strong);padding:3px 8px}.work{padding:78px 0}.work-group{margin-bottom:40px}.work-group-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--rule)}.work-group-note{font-size:.98rem;color:var(--ink-soft);font-style:italic}.grid-work{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:1px;gap:1px;background:var(--rule);border:1px solid var(--rule)}.project{background:var(--paper);padding:26px 26px 24px;display:flex;flex-direction:column;gap:10px;transition:background .18s ease}.project:hover{background:var(--paper-raised)}.project-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-family:var(--font-mono),monospace;font-size:.66rem;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-faint)}.project h3{font-size:1.38rem;font-weight:600;letter-spacing:-.01em}.project p{font-size:.96rem;color:var(--ink-soft);flex:1 1}.project .go{font-family:var(--font-mono),monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink);display:inline-flex;align-items:center;gap:6px;border-bottom:1px solid var(--ink);padding-bottom:2px;align-self:flex-start;transition:color .15s ease,border-color .15s ease,gap .15s ease}.project .go:hover{color:var(--accent);border-color:var(--accent);gap:10px}.project .go.disabled{color:var(--ink-faint);border-color:var(--rule);cursor:default}.soul{margin-top:12px;border:1px solid var(--rule);background:var(--paper-raised);box-shadow:5px 5px 0 var(--rule);padding:30px 32px;display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}.soul-text{max-width:60ch}.soul-text h3{font-size:1.7rem;font-weight:600;letter-spacing:-.01em;margin:8px 0}.soul-text p{color:var(--ink-soft)}.soul-actions{display:flex;flex-direction:column;gap:10px;flex:none}.soul-actions .btn{justify-content:center}.contact{position:relative;isolation:isolate;overflow:hidden;padding:90px 0 30px;border-bottom:none}.contact:before{content:"";position:absolute;inset:0;z-index:-1;background:url(/img/leiv-bg.webp) no-repeat 0;background-size:48% auto;opacity:.5;-webkit-mask-image:linear-gradient(90deg,black 12%,transparent 70%);mask-image:linear-gradient(90deg,black 12%,transparent 70%)}.contact-inner{margin-left:auto;max-width:560px;text-align:left;border:1px solid var(--rule-strong);background:color-mix(in srgb,var(--paper-raised) 84%,transparent);box-shadow:6px 6px 0 var(--rule);padding:38px 40px}.contact-end{margin-top:72px;border-top:3px double var(--rule-strong)}.contact h2{font-size:clamp(2.1rem,5vw,3.4rem);font-weight:500;line-height:1.06;letter-spacing:-.015em;margin:14px 0 18px}.contact p{color:var(--ink-soft);font-size:1.1rem;margin-bottom:28px}.contact-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center}.contact-links{display:flex;gap:18px;margin-top:26px;flex-wrap:wrap;font-family:var(--font-mono),monospace;font-size:.74rem;text-transform:uppercase;letter-spacing:.08em}.contact-links a{color:var(--ink-soft);display:inline-flex;align-items:center;gap:7px;border-bottom:1px solid var(--rule);padding-bottom:3px}.contact-links a:hover{color:var(--accent);border-color:var(--accent)}.discord-tag{font:inherit;background:none;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:7px;color:inherit;padding:0}.contact-links .discord-tag{color:var(--ink-soft);border-bottom:1px solid var(--rule);padding-bottom:3px;font-family:var(--font-mono),monospace;font-size:.74rem;text-transform:uppercase;letter-spacing:.08em}.contact-links .discord-tag:hover{color:var(--accent);border-color:var(--accent)}.footer-links .discord-tag{color:var(--dark-text);opacity:.85;font-family:var(--font-mono),monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.footer-links .discord-tag:hover{color:#fff;opacity:1}.site-footer{background:var(--dark);color:var(--dark-text);border-bottom:none;padding:40px 0 34px}.site-footer .wrap{display:flex;justify-content:space-between;gap:22px;flex-wrap:wrap;align-items:flex-start}.footer-brand{font-weight:600;font-size:1.05rem;margin-bottom:8px}.footer-meta{font-size:.68rem;letter-spacing:.06em;color:#9c9580;line-height:1.8}.footer-links,.footer-meta{font-family:var(--font-mono),monospace;text-transform:uppercase}.footer-links{display:flex;gap:20px;flex-wrap:wrap;font-size:.7rem;letter-spacing:.08em}.footer-links a{color:var(--dark-text);display:inline-flex;align-items:center;gap:7px;opacity:.85}.footer-links a:hover{color:#fff;opacity:1}.reveal{opacity:0;transform:translateY(12px);transition:opacity .5s ease-out,transform .5s ease-out}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.cursor{animation:none}}@media (max-width:980px){.grid-features{grid-template-columns:repeat(2,1fr)}.about-grid{grid-template-columns:1fr;gap:36px}.plate{max-width:460px}}@media (max-width:760px){body{font-size:17px}.primary-nav{display:none}.brand{border-right:none;padding-right:0}.nav-toggle{display:inline-flex}.site-header.open .primary-nav{display:flex;flex-direction:column;align-items:stretch;position:absolute;top:68px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--rule);padding:4px var(--gutter) 18px}.site-header.open .nav-links{flex-direction:column;align-items:stretch;gap:0;width:100%}.site-header.open .nav-links li{width:100%}.site-header.open .nav-links a{display:block;width:100%;padding:13px 2px;border:none;border-bottom:1px solid var(--rule);background:none;opacity:1;font-size:.82rem}.site-header.open .nav-social{margin:0;padding:16px 0 0;border-left:none;gap:20px}.hero{padding:56px 0 60px}.hero:before{background-size:118% auto;background-position:100% 0;opacity:.28;-webkit-mask-image:linear-gradient(180deg,transparent 35%,black 120%);mask-image:linear-gradient(180deg,transparent 35%,black 120%)}.grid-features,.grid-work{grid-template-columns:1fr}.about,.expertise,.work{padding:56px 0}.contact{padding:56px 0 26px}.contact:before{opacity:.16;background-size:150% auto}.contact-inner{margin:0;padding:26px 22px;box-shadow:4px 4px 0 var(--rule)}.contact-end{margin-top:48px}.terminal{box-shadow:4px 4px 0 var(--rule);font-size:.78rem}.site-footer .wrap{flex-direction:column;gap:26px}}@media (max-width:420px){:root{--gutter:20px}.hero-meta{gap:14px}.btn{font-size:.72rem;padding:.7rem 1.1rem}}.heimdall-launcher{position:fixed;right:22px;bottom:22px;z-index:1200;display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono),monospace;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink);background:var(--paper-raised);border:1px solid var(--ink);box-shadow:4px 4px 0 var(--rule);padding:.55rem .9rem .55rem .55rem;cursor:pointer;transition:background .18s ease,color .18s ease}.heimdall-launcher:hover{background:var(--ink);color:var(--paper)}.heimdall-launcher .heimdall-mark{font-family:var(--font-mono),monospace;font-weight:600;width:26px;height:26px;display:grid;place-items:center;border:1px solid;font-size:1rem}.heimdall-panel{position:fixed;right:22px;bottom:86px;z-index:1200;width:372px;max-width:calc(100vw - 32px);height:70vh;max-height:560px;display:flex;flex-direction:column;background:var(--paper);border:3px double var(--rule-strong);box-shadow:6px 6px 0 var(--rule);animation:heimdall-rise .22s ease-out}@keyframes heimdall-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.heimdall-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--rule);background:var(--paper-raised)}.heimdall-eyebrow{font-family:var(--font-mono),monospace;font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-faint);display:inline-flex;align-items:center;gap:8px}.heimdall-dot{width:7px;height:7px;background:var(--accent-ink);display:inline-block}.heimdall-x{background:none;border:none;cursor:pointer;color:var(--ink-faint);font-size:.9rem;line-height:1}.heimdall-x:hover{color:var(--accent)}.heimdall-log{flex:1 1;overflow-y:auto;padding:16px 14px;gap:14px}.heimdall-log,.heimdall-msg{display:flex;flex-direction:column}.heimdall-msg{gap:4px;max-width:88%}.heimdall-msg .heimdall-who{font-family:var(--font-mono),monospace;font-size:.58rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint)}.heimdall-msg p{font-size:.95rem;line-height:1.5;color:var(--ink);border:1px solid var(--rule);padding:9px 11px}.heimdall-msg.heimdall{align-self:flex-start}.heimdall-msg.heimdall p{background:var(--paper-raised)}.heimdall-msg.you{align-self:flex-end;align-items:flex-end}.heimdall-msg.you p{background:var(--paper-warm)}.heimdall-typing{display:inline-flex;gap:5px;align-items:center}.heimdall-typing span{width:5px;height:5px;background:var(--ink-faint);display:inline-block;animation:heimdall-blink 1s infinite}.heimdall-typing span:nth-child(2){animation-delay:.15s}.heimdall-typing span:nth-child(3){animation-delay:.3s}@keyframes heimdall-blink{0%,to{opacity:.25}50%{opacity:1}}.heimdall-form{display:flex;gap:8px;padding:10px;border-top:1px solid var(--rule);background:var(--paper-raised)}.heimdall-form input{flex:1 1;min-width:0;font-family:var(--font-display),serif;font-size:.95rem;color:var(--ink);background:var(--paper);border:1px solid var(--rule-strong);padding:8px 10px}.heimdall-form input:focus{outline:none;border-color:var(--ink)}.heimdall-form button{font-family:var(--font-mono),monospace;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--ink);background:var(--paper);color:var(--ink);padding:0 14px;cursor:pointer;transition:background .18s ease,color .18s ease}.heimdall-form button:hover:not(:disabled){background:var(--ink);color:var(--paper)}.heimdall-form button:disabled{opacity:.4;cursor:default}@media (max-width:480px){.heimdall-panel{right:12px;left:12px;bottom:74px;width:auto;max-width:none;height:68dvh}.heimdall-launcher{right:12px;bottom:max(12px,env(safe-area-inset-bottom));padding:.5rem}.heimdall-launcher-label{display:none}}.contact-actions .btn,.contact-links a,.footer-meta,.heimdall-msg p{overflow-wrap:anywhere}.terminal{overflow-x:auto}@media (prefers-reduced-motion:reduce){.heimdall-panel,.heimdall-typing span{animation:none}}