@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.1w1m1wqmjasxa.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:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e629b5bc06499d58-s.1y3v-klcv8xov.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:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1a099d89ee94ee96-s.15dvesjzf7814.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:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.08ssgmy_tb90r.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:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.1w1m1wqmjasxa.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:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/e629b5bc06499d58-s.1y3v-klcv8xov.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:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1a099d89ee94ee96-s.15dvesjzf7814.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:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.08ssgmy_tb90r.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:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.1w1m1wqmjasxa.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:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/e629b5bc06499d58-s.1y3v-klcv8xov.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:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1a099d89ee94ee96-s.15dvesjzf7814.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:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.08ssgmy_tb90r.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:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.1w1m1wqmjasxa.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:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/e629b5bc06499d58-s.1y3v-klcv8xov.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:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/1a099d89ee94ee96-s.15dvesjzf7814.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:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.08ssgmy_tb90r.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:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.1w1m1wqmjasxa.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:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/e629b5bc06499d58-s.1y3v-klcv8xov.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:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/1a099d89ee94ee96-s.15dvesjzf7814.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:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.08ssgmy_tb90r.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:Plus Jakarta Sans Fallback;src:local(Arial);ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.0%;size-adjust:104.98%}.plus_jakarta_sans_edec5582-module__2ToRIG__className{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.plus_jakarta_sans_edec5582-module__2ToRIG__variable{--font-jakarta:"Plus Jakarta Sans", "Plus Jakarta Sans Fallback"}
@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 Fallback;src:local(Arial);ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:134.59%}.ibm_plex_mono_ad0edeba-module__MIkpna__className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.ibm_plex_mono_ad0edeba-module__MIkpna__variable{--font-plex-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
@font-face{font-family:Tomorrow;font-style:italic;font-weight:300;font-display:swap;src:url(../media/efb5cf04e8d1dfb2-s.094h2e70-tglg.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:Tomorrow;font-style:italic;font-weight:300;font-display:swap;src:url(../media/e3c35f3692a8d059-s.p.06dd-cb8iqaaw.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:Tomorrow;font-style:italic;font-weight:400;font-display:swap;src:url(../media/cd1671b671fa6d99-s.391614nhjtsbg.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:Tomorrow;font-style:italic;font-weight:400;font-display:swap;src:url(../media/f09e8f4630922fc6-s.p.295mzw2jec8n6.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:Tomorrow;font-style:italic;font-weight:500;font-display:swap;src:url(../media/d2351b041936153b-s.3nvdptl0pn_gu.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:Tomorrow;font-style:italic;font-weight:500;font-display:swap;src:url(../media/b652a55c351c3b60-s.p.3v18kb6d6kgd8.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:Tomorrow;font-style:italic;font-weight:600;font-display:swap;src:url(../media/7001dca59b7c8c80-s.34brh_-m1tyff.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:Tomorrow;font-style:italic;font-weight:600;font-display:swap;src:url(../media/5c15465deb4d723c-s.p.3s5g8dhblhu9n.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:Tomorrow;font-style:italic;font-weight:700;font-display:swap;src:url(../media/1754eb9736cdece6-s.1dr-ax2o8l_1q.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:Tomorrow;font-style:italic;font-weight:700;font-display:swap;src:url(../media/385054b3ef9225e9-s.p.2g58azu9zubr5.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:Tomorrow;font-style:normal;font-weight:300;font-display:swap;src:url(../media/d2aa3a28c0979948-s.1d2nwls_5-4c1.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:Tomorrow;font-style:normal;font-weight:300;font-display:swap;src:url(../media/16c9b541379df01a-s.p.3_grpbebuxfgg.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:Tomorrow;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9b10acc82ec4c288-s.02rc5v2kj7bw-.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:Tomorrow;font-style:normal;font-weight:400;font-display:swap;src:url(../media/4c318756d77e9d32-s.p.3dlo1dezw3ok4.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:Tomorrow;font-style:normal;font-weight:500;font-display:swap;src:url(../media/98749d605e8cea2f-s.1p30m42lc-xoe.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:Tomorrow;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a1fa7f4a7f7251a2-s.p.3dl6xpwz47ix3.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:Tomorrow;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9948db09187cac78-s.0fta-a6wotoc2.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:Tomorrow;font-style:normal;font-weight:600;font-display:swap;src:url(../media/631891f1a20c2c32-s.p.2w5rvuq-z_krz.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:Tomorrow;font-style:normal;font-weight:700;font-display:swap;src:url(../media/1e943430ad143da3-s.1i24nkmv99gp_.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:Tomorrow;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b872b39ab8191954-s.p.2d0ne2zpmpnn1.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:Tomorrow Fallback;src:local(Arial);ascent-override:93.46%;descent-override:18.69%;line-gap-override:0.0%;size-adjust:107%}.tomorrow_e102bcbc-module__x76tgG__className{font-family:Tomorrow,Tomorrow Fallback}.tomorrow_e102bcbc-module__x76tgG__variable{--font-tomorrow:"Tomorrow", "Tomorrow Fallback"}
@font-face{font-family:Sora;font-style:normal;font-weight:400;font-display:swap;src:url(../media/3dbe685087e51055-s.2xbhvz2kdy2my.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:Sora;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6bd983bd58a87a3d-s.p.20t--8215-jwd.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:Sora;font-style:normal;font-weight:500;font-display:swap;src:url(../media/3dbe685087e51055-s.2xbhvz2kdy2my.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:Sora;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6bd983bd58a87a3d-s.p.20t--8215-jwd.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:Sora;font-style:normal;font-weight:600;font-display:swap;src:url(../media/3dbe685087e51055-s.2xbhvz2kdy2my.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:Sora;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6bd983bd58a87a3d-s.p.20t--8215-jwd.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:Sora;font-style:normal;font-weight:700;font-display:swap;src:url(../media/3dbe685087e51055-s.2xbhvz2kdy2my.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:Sora;font-style:normal;font-weight:700;font-display:swap;src:url(../media/6bd983bd58a87a3d-s.p.20t--8215-jwd.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:Sora Fallback;src:local(Arial);ascent-override:85.29%;descent-override:25.5%;line-gap-override:0.0%;size-adjust:113.73%}.sora_90533d02-module__OwJU1G__className{font-family:Sora,Sora Fallback;font-style:normal}.sora_90533d02-module__OwJU1G__variable{--font-sora:"Sora", "Sora Fallback"}
@font-face{font-family:Lato;font-style:italic;font-weight:400;font-display:swap;src:url(../media/5423f56a4e793434-s.3nejuf9eock0_.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:Lato;font-style:italic;font-weight:400;font-display:swap;src:url(../media/6a9fa677ec1bbd33-s.p.36btuz4v8dixx.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:Lato;font-style:italic;font-weight:700;font-display:swap;src:url(../media/f0e3cf4bb5eec8ca-s.3zgyav5x2_h63.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:Lato;font-style:italic;font-weight:700;font-display:swap;src:url(../media/1112828ec2c13661-s.p.1zc4-eug-txw0.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:Lato;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b529365fa126a3f2-s.1yo2pz3g4u6be.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:Lato;font-style:normal;font-weight:400;font-display:swap;src:url(../media/8e451580e5e95631-s.p.0ic9f6t6i9npx.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:Lato;font-style:normal;font-weight:700;font-display:swap;src:url(../media/d74bdd14d6019bc6-s.3wo4ln4ldr9c9.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:Lato;font-style:normal;font-weight:700;font-display:swap;src:url(../media/345c85a432359eed-s.p.24jxsbewvqxgy.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:Lato Fallback;src:local(Arial);ascent-override:101.03%;descent-override:21.8%;line-gap-override:0.0%;size-adjust:97.69%}.lato_a17e8051-module__4i5P0a__className{font-family:Lato,Lato Fallback}.lato_a17e8051-module__4i5P0a__variable{--font-lato:"Lato", "Lato Fallback"}
@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(../media/224e262ef877bfa4-s.2yhdohbnxjaph.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:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7f11d98043fdedc9-s.0vsuy7nj1h55w.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e6d00ff86ef9e699-s.1tzxx-40rxw3x.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:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d8cb5ab3660140cd-s.3aj86x1l4-kru.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:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(../media/07454f8ad8aaac57-s.p.1d8-5gtibtj96.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:Nunito;font-style:normal;font-weight:500;font-display:swap;src:url(../media/224e262ef877bfa4-s.2yhdohbnxjaph.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:Nunito;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7f11d98043fdedc9-s.0vsuy7nj1h55w.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:500;font-display:swap;src:url(../media/e6d00ff86ef9e699-s.1tzxx-40rxw3x.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:Nunito;font-style:normal;font-weight:500;font-display:swap;src:url(../media/d8cb5ab3660140cd-s.3aj86x1l4-kru.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:Nunito;font-style:normal;font-weight:500;font-display:swap;src:url(../media/07454f8ad8aaac57-s.p.1d8-5gtibtj96.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:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(../media/224e262ef877bfa4-s.2yhdohbnxjaph.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:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(../media/7f11d98043fdedc9-s.0vsuy7nj1h55w.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(../media/e6d00ff86ef9e699-s.1tzxx-40rxw3x.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:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(../media/d8cb5ab3660140cd-s.3aj86x1l4-kru.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:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(../media/07454f8ad8aaac57-s.p.1d8-5gtibtj96.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:Nunito Fallback;src:local(Arial);ascent-override:99.71%;descent-override:34.82%;line-gap-override:0.0%;size-adjust:101.39%}.nunito_9524f04-module__zYKWaW__className{font-family:Nunito,Nunito Fallback;font-style:normal}.nunito_9524f04-module__zYKWaW__variable{--font-nunito:"Nunito", "Nunito Fallback"}
@font-face{font-family:Archivo;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/a2947afc6a06879b-s.138s14ivx2xer.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:Archivo;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/651aaf1801011892-s.3b2emle-7szv-.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:Archivo;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/75affa71d1e2f6a7-s.p.13rul5q9jl2r0.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:Archivo;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/a2947afc6a06879b-s.138s14ivx2xer.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:Archivo;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/651aaf1801011892-s.3b2emle-7szv-.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:Archivo;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/75affa71d1e2f6a7-s.p.13rul5q9jl2r0.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:Archivo;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/a2947afc6a06879b-s.138s14ivx2xer.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:Archivo;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/651aaf1801011892-s.3b2emle-7szv-.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:Archivo;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/75affa71d1e2f6a7-s.p.13rul5q9jl2r0.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:Archivo Fallback;src:local(Arial);ascent-override:88.96%;descent-override:21.28%;line-gap-override:0.0%;size-adjust:98.7%}.archivo_3fc7b08c-module__BTbrgq__className{font-family:Archivo,Archivo Fallback;font-style:normal}.archivo_3fc7b08c-module__BTbrgq__variable{--font-archivo:"Archivo", "Archivo Fallback"}
*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scrollbar-gutter:stable;height:100%}body{color:#111;min-height:100dvh;font-family:var(--font-tomorrow), "Tomorrow", system-ui, sans-serif;letter-spacing:.01em;-webkit-font-smoothing:antialiased;background:#fff;flex-direction:column;margin:0;padding:0;font-size:clamp(15px,.35vw + 14px,17px);font-weight:400;line-height:1.65;display:flex;overflow-x:clip}.site-frame{grid-template-columns:var(--site-sidebar-width,8.75rem) minmax(0, 1fr);--site-content-max:76rem;--portfolio-index-width:2.85rem;--portfolio-grid-gap:1rem;flex:1 0 auto;grid-template-rows:auto minmax(0,1fr);grid-template-areas:"nav header""nav main";gap:0 clamp(1rem,2vw,1.75rem);width:100%;max-width:none;min-height:100dvh;margin:0;padding:0 clamp(1rem,4vw,3rem);display:grid}.site-chrome{display:contents}.site-header{z-index:70;background:#fff;grid-area:header;padding:clamp(.75em,1.8vw,1.15em) 0 .65em;position:sticky;top:0;box-shadow:0 1px #00000014}.site-sidebar{z-index:60;background:#fff;border-right:1px solid #ccc;grid-area:nav;align-self:start;min-height:0;padding-top:clamp(.9em,2vw,1.35em);padding-right:.35rem;position:sticky;top:0}.site-header-inner{width:100%;max-width:var(--site-content-max);justify-content:space-between;align-items:center;gap:1.25rem;margin-inline:0;display:flex}.site-main-column{grid-area:main;grid-template-rows:1fr auto;min-width:0;min-height:0;display:grid}.site-header-primary{min-width:0}.site-header .site-header-primary h1{margin:0 0 .12em;font-size:clamp(1.45em,1.2vw + 1.1em,1.95em);line-height:1.1}.site-header-aside{flex-shrink:0;justify-content:flex-end;align-items:center;gap:clamp(.75rem,1.5vw,1.25rem);display:flex}main{width:100%;max-width:var(--site-content-max);min-width:0;margin-inline:0;padding:1.75em 0 3.5em}.bio{font-family:var(--font-nunito), "Nunito", sans-serif;letter-spacing:.01em;color:#2a2a2a;margin:0 0 .35em;font-size:1.05em;font-weight:400;line-height:1.8}.bio p{margin:0}.bio p+p{margin-top:.85em}.portfolio-shell{width:100%;position:relative}.portfolio-main{min-width:0}h1{font-family:var(--font-sora), "Sora", sans-serif;letter-spacing:-.02em;color:#1a1a1a;min-width:0;margin:0 0 .55em;font-size:clamp(1.85em,2.2vw + 1.1em,2.45em);font-weight:700;line-height:1.15}.site-meta{flex-direction:column;gap:.2em;margin:0 0 .85em;display:flex}.links{flex-direction:row;flex:none;justify-content:flex-end;align-items:center;gap:.4em;margin:0;display:flex}h2{font-family:var(--font-archivo), "Archivo", sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#222;border-bottom:1px solid #222;margin:2.1em 0 .75em;padding-bottom:.3em;scroll-margin-top:12rem;font-size:clamp(1.05em,.4vw + .95em,1.25em);font-weight:600}h2:first-child{margin-top:.35em}.social{color:#24292f;background:#f6f8fa;border:1px solid #d0d7de;border-radius:6px;justify-content:center;align-items:center;width:1.95em;height:1.95em;padding:0;line-height:1;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.social:visited{color:#24292f}.social:hover{color:#000;background:#eef1f4;border-color:#afb8c1}.social-icon{object-fit:contain;flex:none;width:1.1em;height:1.1em;display:block}.subtitle{font-family:var(--font-sora), "Sora", sans-serif;letter-spacing:.01em;color:#333;margin:0;font-size:.82em;font-weight:500;line-height:1.25}.location{font-family:var(--font-sora), "Sora", sans-serif;color:#555;white-space:nowrap;align-items:center;gap:.35em;margin:0;font-size:.82em;font-style:normal;font-weight:400;display:inline-flex}.location-icon{color:#666;flex:none;width:.95em;height:.95em}.site-footer{width:100%;max-width:var(--site-content-max);padding:1.5em 0 max(1.75em, env(safe-area-inset-bottom));color:#555;font-family:var(--font-lato), "Lato", sans-serif;letter-spacing:.02em;text-align:center;border-top:1px solid #ccc;align-self:stretch;margin-inline:0;font-size:.85em}.site-footer p{margin:0}.site-nav{border-bottom:none;flex-flow:column;gap:0;margin:0;display:flex}.site-nav a{color:#333;font-family:var(--font-sora), "Sora", sans-serif;letter-spacing:.03em;text-align:left;white-space:nowrap;background:0 0;border:1px solid #0000;border-right:none;margin-right:-1px;padding:.7em .85em;font-size:.88em;font-weight:600;text-decoration:none;display:block}.site-nav a:visited{color:#333}.site-nav a:hover{color:#000;background:#f7f7f7}.site-nav a[aria-current=page]{color:#000;background:#fff;border-color:#999 #fff #999 #999;border-right-style:solid;border-right-width:1px}p{margin:0 0 .85em}ul{margin:0 0 .5em;padding-left:1.4em}li{margin-bottom:.35em}a{color:#0b5fff}a:visited{color:#551a8b}.projects{flex-direction:column;gap:1.25rem;margin:0;display:flex}.filter-wrap{top:var(--site-header-height,12rem);z-index:40;background:#fff;border-bottom:1px solid #999;align-items:flex-end;gap:0;width:100%;margin:0 0 1.25em;padding-top:.55em;display:flex;position:sticky;box-shadow:0 1px #0000000a}.filter-bar{border-bottom:none;flex-wrap:nowrap;flex:1;gap:0;min-width:0;margin:0;padding:0;display:flex}.filter-bar.is-expanded{flex-wrap:wrap}.filter-btn{font-family:var(--font-sora), "Sora", sans-serif;letter-spacing:.02em;color:#333;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-bottom:none;border-radius:0;flex:none;margin-bottom:-1px;padding:.4em .85em .5em;font-size:.82em;font-weight:500;text-decoration:none;display:inline-block}.filter-btn.is-overflow{display:none}.filter-bar.is-expanded .filter-btn.is-overflow{display:inline-block}.filter-btn:hover{color:#000;background:#f7f7f7}.filter-btn.is-active{color:#000;cursor:default;background:#fff;border-color:#999 #999 #fff;border-bottom-style:solid;border-bottom-width:1px;font-weight:700}.filter-more{font-family:var(--font-sora), "Sora", sans-serif;color:#333;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-bottom:none;flex:none;margin-bottom:-1px;padding:.4em .7em .5em;font-size:.82em;font-weight:500}.filter-more:hover{color:#000;background:#f7f7f7}.filter-empty{color:#333;margin:.5em 0 0;font-style:italic}.edu-list{flex-direction:column;gap:.85em;margin:0;display:flex}.experience-page{width:100%}.experience-list{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.experience-item{padding:1.5rem 0;position:relative}.experience-item:first-child{padding-top:0}.experience-item:last-child{padding-bottom:0}.experience-item+.experience-item{border-top:1px solid #f0f0f0}.experience-item-inner{grid-template-columns:minmax(0,1fr);align-items:start;gap:1.15rem;display:grid}.experience-item.has-thumb .experience-item-inner{grid-template-columns:minmax(8.5rem,10.5rem) minmax(0,1fr);gap:1.35rem}.experience-hero{min-width:0;position:relative}.experience-media{background:#f5f5f5;border:1px solid #e6e6e6;border-radius:8px;overflow:hidden}.experience-overlay{display:none}.experience-thumb{object-fit:cover;width:100%;height:100%;min-height:6.25rem;display:block}.experience-content{border-left:2px solid #e4e4e4;min-width:0;padding-left:1.35rem}.experience-item.is-current .experience-content{border-left-color:#111}.experience-item:not(.has-thumb) .experience-content{padding-left:1.35rem}.experience-item-head{margin-bottom:.7rem}.experience-item-primary{min-width:0}.experience-role{font-family:var(--font-sora), "Sora", sans-serif;letter-spacing:.005em;color:#111;margin:0;font-size:clamp(1rem,.25vw + .95rem,1.08rem);font-weight:600;line-height:1.35}.experience-when{font-family:var(--font-sora), "Sora", sans-serif;letter-spacing:.03em;color:#777;margin:.25rem 0 0;font-size:.76rem;font-weight:500;line-height:1.4}.experience-context{font-family:var(--font-lato), "Lato", sans-serif;color:#666;margin:.28rem 0 0;font-size:.86rem;line-height:1.45}.experience-detail{max-width:46rem;font-family:var(--font-nunito), "Nunito", sans-serif;letter-spacing:.01em;color:#333;margin:0;font-size:.94rem;font-weight:400;line-height:1.75}.certs{flex-wrap:wrap;align-items:baseline;gap:.15em 0;margin:0;font-size:.95em;line-height:1.5;display:flex}.certs .cert:not(:last-child):after{content:" · ";color:#000;margin:0 .35em;font-weight:400}.edu{background:#fff;align-items:flex-start;gap:.85em;padding:.35em 0;display:flex}.edu-logo{object-fit:contain;background:#fff;flex:0 0 64px;width:64px;height:64px}.edu-body{flex:1;min-width:0}.edu-title{font-family:var(--font-sora), "Sora", sans-serif;letter-spacing:.01em;margin:0 0 .25em;font-weight:600}.edu-body p{margin:0;font-size:.9em;line-height:1.4}.edu-meta{margin-top:.25em!important}.edu-body .edu-meta{font-family:var(--font-lato), "Lato", sans-serif;font-size:.8em;font-style:italic}@media (max-width:720px){.experience-item.has-thumb .experience-item-inner{grid-template-columns:minmax(0,1fr);gap:.85rem}.experience-hero{border:1px solid #e0e0e0;border-radius:10px;overflow:hidden;box-shadow:0 2px 10px #0000000f}.experience-media{aspect-ratio:4/3;background:#f0f0f0;border:none;border-radius:0;width:100%}.experience-thumb{aspect-ratio:4/3;object-fit:contain;object-position:center;width:100%;height:100%;min-height:0}.experience-overlay{background:linear-gradient(#0000 0%,#00000073 38%,#000000e0 100%);margin:0;padding:2.75rem 1rem .95rem;display:block;position:absolute;inset:auto 0 0}.experience-overlay.experience-item-head{margin-bottom:0}.experience-overlay .experience-role{color:#fff;text-shadow:0 1px 2px #00000059;font-size:1.02rem}.experience-overlay .experience-when,.experience-overlay .experience-context{color:#ffffffeb;text-shadow:0 1px 2px #0000004d}.experience-item.has-thumb .experience-head-desktop{display:none}.experience-item.has-thumb .experience-content{border-left:none;padding-left:0}.experience-item:not(.has-thumb) .experience-content{padding-left:1rem}}.project{min-width:0;scroll-margin-top:calc(var(--site-header-height,12rem) + .75rem);background:#fff;border:1px solid #d4d4d4;border-radius:10px;grid-template-columns:minmax(0,1fr);margin:0;display:grid;overflow:hidden;box-shadow:0 1px 2px #0000000a}@media (min-width:768px){.project{grid-template-columns:minmax(240px,38%) minmax(0,1fr);align-items:stretch}}.project.is-revealed{animation:.4s both project-in}@keyframes project-in{0%{opacity:0;transform:translateY(.55em)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.project.is-revealed{animation:none}}.projects-sentinel{pointer-events:none;width:100%;height:1px;margin:.5em 0 0}.project-index{top:calc(var(--site-header-height,12rem) + var(--portfolio-filter-height,3rem) + .75rem);z-index:5;width:2.85rem;max-height:calc(100vh - var(--site-header-height,12rem) - var(--portfolio-filter-height,3rem) - 1.5rem);font-family:var(--font-sora), "Sora", sans-serif;background:#fafafa;border:1px solid #ddd;border-radius:6px;flex-direction:column;padding:.4em .25em .5em;display:flex;position:sticky;box-shadow:0 1px 3px #0000000d}.project-index-title{letter-spacing:.04em;text-transform:uppercase;color:#555;text-align:center;margin:0 0 .3em;padding:0;font-size:.65em;font-weight:600}.project-index-scroll{min-height:0;overflow:auto}.project-index-table{border-collapse:collapse;width:100%;font-size:.8em;line-height:1.35}.project-index-table td{vertical-align:middle;color:#333;text-align:center;font-variant-numeric:tabular-nums;border-bottom:1px solid #eee;padding:.1em}.project-index-link{color:#111;width:100%;min-height:1.55em;font:inherit;text-align:center;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:.1em 0;font-weight:600;text-decoration:none;display:flex}.project-index-link:hover{color:#0b5fff;text-decoration:underline}.project-index-table tr.is-active td{background:#eef3f8}.project-index-table tr.is-active .project-index-link{color:#0b5fff}.project-index-table tr.is-dimmed td{opacity:.4}@media (max-width:640px){.portfolio-body,.portfolio-toolbar{grid-template-columns:minmax(0,1fr)}.portfolio-index-spacer,.project-index{display:none}}.project[hidden]{display:none}.project-media-trigger,a.project-media-trigger,a.project-media-trigger:visited{cursor:pointer;text-align:left;width:100%;height:100%;font:inherit;color:inherit;background:0 0;border:none;margin:0;padding:0;text-decoration:none;display:block}.project-media-trigger:focus-visible{outline-offset:-2px;outline:2px solid #0b5fff}.project-media-trigger:hover .thumb{opacity:.92}.project-lightbox{z-index:200;background:#000000b8;justify-content:center;align-items:center;padding:clamp(1rem,3vw,2rem);display:flex;position:fixed;inset:0}.project-lightbox-panel{background:#fff;border:1px solid #d4d4d4;border-radius:10px;width:min(56rem,100%);max-height:min(90vh,100%);position:relative;overflow:auto;box-shadow:0 10px 40px #00000038}.project-lightbox-close{z-index:2;color:#111;cursor:pointer;background:#fff;border:1px solid #d0d7de;border-radius:6px;justify-content:center;align-items:center;width:2rem;height:2rem;padding:0;font-size:1.35rem;line-height:1;display:flex;position:absolute;top:.65rem;right:.65rem}.project-lightbox-close:hover{background:#f6f8fa}.project-lightbox-media{background:#f4f6f8;border-bottom:1px solid #e0e0e0;justify-content:center;align-items:center;padding:clamp(1rem,2vw,1.75rem);display:flex}.project-lightbox-image{object-fit:contain;width:100%;height:auto;max-height:min(62vh,720px);display:block}.project-lightbox-body{padding:clamp(1rem,2vw,1.75rem) clamp(1rem,2.5vw,2rem)}.project-lightbox-body>p:not(.project-title){font-family:var(--font-nunito), "Nunito", sans-serif;letter-spacing:.01em;color:#2a2a2a;margin:0;font-size:clamp(.95rem,.2vw + .92rem,1.05rem);font-weight:400;line-height:1.75}.project-media{background:#f4f6f8;border-bottom:1px solid #e0e0e0;justify-content:center;align-items:center;min-height:200px;padding:clamp(1rem,2vw,1.75rem);display:flex}@media (min-width:768px){.project-media{border-bottom:none;border-right:1px solid #e0e0e0;min-height:240px}}.thumb{object-fit:contain;background:0 0;border:none;width:100%;max-width:100%;height:auto;max-height:clamp(180px,28vw,320px);display:block}.project-body{flex-direction:column;justify-content:center;gap:.65rem;min-width:0;padding:clamp(1rem,2vw,1.75rem) clamp(1rem,2.5vw,2rem);display:flex}.project-title{font-family:var(--font-sora), "Sora", sans-serif;letter-spacing:.01em;overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:.45rem .75rem;margin:0;font-size:clamp(1rem,.35vw + .95rem,1.15rem);font-weight:600;line-height:1.4;display:flex}.project-title-main{min-width:0}.project-actions{flex-shrink:0;align-items:center;gap:.35rem;margin-left:auto;display:inline-flex}.project-name{font-weight:700}.project-github{color:#24292f;vertical-align:middle;white-space:nowrap;background:#f6f8fa;border:1px solid #d0d7de;border-radius:4px;justify-content:center;align-items:center;margin-left:0;padding:.15em .35em;line-height:1;text-decoration:none;display:inline-flex}.project-github:visited{color:#24292f}.project-github:hover{color:#000;background:#eef1f4;border-color:#afb8c1}.project-open,.project-open:visited{box-sizing:border-box;color:#24292f;height:1.87em;font-family:var(--font-jakarta), sans-serif;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;background:#f6f8fa;border:1px solid #d0d7de;border-radius:4px;align-items:center;margin:0;padding:0 .55em;font-size:.72em;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.project-open:hover{color:#000;background:#eef1f4;border-color:#afb8c1}.project-live,.project-live:visited{color:#fff;font-family:var(--font-jakarta), sans-serif;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;white-space:nowrap;background:red;border:1px solid #d40000;border-radius:4px;align-items:center;margin-left:0;padding:.15em .45em;font-size:.72em;font-weight:600;line-height:1;text-decoration:none;animation:2.4s ease-in-out infinite live-breathe;display:inline-flex}.project-live:hover{color:#fff;background:#d40000;border-color:#b00000}@keyframes live-breathe{0%,to{transform:scale(1);box-shadow:0 0 #ff000073}50%{transform:scale(1.08);box-shadow:0 0 0 .35em #f000}}@media (prefers-reduced-motion:reduce){.project-live,.project-live:visited{animation:none}}.project-github-end{vertical-align:-.15em;margin-left:.4rem}.project-github-icon{width:.95em;height:.95em;display:block}.project-num{display:none}.project-body p{margin:0;font-size:1em;line-height:1.65}.project-body>p:not(.project-title){font-family:var(--font-nunito), "Nunito", sans-serif;letter-spacing:.01em;color:#2a2a2a;max-width:42rem;font-size:clamp(.95rem,.2vw + .92rem,1.05rem);font-weight:400;line-height:1.75}.tags{flex-wrap:wrap;gap:.35em;display:flex;margin-top:.5em!important}.tag{letter-spacing:.02em;white-space:nowrap;border:1px solid;border-radius:3px;padding:.12em .5em;font-size:.72em;line-height:1.3;display:inline-block}.tag-de{color:#1a4a6e;background:#e8f1f7;border-color:#9bb8cc}.tag-ai{color:#3d3d3d;background:#efefef;border-color:#b0b0b0}.tag-web{color:#1a3d6e;background:#e8eef7;border-color:#9aafcc}.tag-ios{color:#6b3a1f;background:#f7eee8;border-color:#cbb09a}.year{color:#333;margin-left:.35em;font-weight:400}.year:before{content:"("}.year:after{content:")"}.private-note{color:#666;margin-left:.4em;font-size:.85em;font-weight:400}.private-note:before{content:"— "}.tech-stack{max-width:none;padding-bottom:1.5em}.stack-block+.stack-block{margin-top:1.75em}.stack-block h2{font-family:var(--font-sora), "Sora", sans-serif;letter-spacing:.02em;text-transform:none;color:#555;border-bottom:none;margin-top:0;margin-bottom:.65em;padding-bottom:0;font-size:.82em;font-weight:600}.stack-tags{flex-wrap:wrap;gap:.55em .5em;margin:0;display:flex}.stack-block h2+.stack-tags{padding-left:.9em}.stack-foundations{margin:.15em 0 .35em;padding-left:0}.skill{color:#111;background:#fff;border:1px solid #bbb;border-radius:999px;padding:.4em .85em;font-size:.88em;line-height:1.35;display:inline-block}.stack-core .skill{color:#3a3a3a;background:#f4f4f4;border-color:#d0d0d0}.stack-data .skill{color:#2d5f82;background:#f0f6fb;border-color:#c5d8e6}.stack-ai .skill{color:#5a3d2b;background:#f7f0ea;border-color:#dcc4b0}.stack-automation .skill{color:#2a5c4a;background:#f0f7f4;border-color:#c5ddd2}@media (min-width:1100px){.projects{gap:1.5rem}.project-media{min-height:260px}}@media (min-width:1500px){.site-frame{--site-content-max:84rem}.project-media{min-height:280px}}@media (max-width:900px){.filter-btn,.filter-more{padding-left:.7em;padding-right:.7em}}@media (max-width:768px){.site-frame{grid-template:"chrome""main"minmax(0,1fr)/minmax(0,1fr);gap:0;padding-inline:clamp(.75rem,3vw,1.25rem)}.site-chrome{z-index:70;background:#fff;grid-area:chrome;display:block;position:sticky;top:0}.site-header{box-shadow:none;padding-top:.85em;padding-bottom:.5em;position:static}.site-sidebar{z-index:auto;min-height:0;box-shadow:none;background:#fff;border:none;padding-top:0;padding-bottom:0;padding-right:0;position:static}.site-nav{border:none;border-bottom:1px solid #999;flex-flow:wrap;align-items:flex-end;gap:0;margin:0;padding:0}.site-nav a{text-align:center;background:0 0;border:1px solid #0000;border-bottom:none;border-radius:0;flex:auto;justify-content:center;align-items:center;min-height:2.85rem;margin:0 0 -1px;padding:.7em .85em .75em;font-size:.92em;line-height:1.25;display:inline-flex}.site-nav a[aria-current=page]{color:#000;background:#fff;border-color:#999 #999 #fff;border-bottom-style:solid;border-bottom-width:1px}.site-header-inner{flex-direction:column;align-items:flex-start;gap:.75rem}.site-header-aside{flex-wrap:wrap;justify-content:space-between;gap:.65rem;width:100%}}@media (max-width:640px){.projects{gap:1rem}.project-media{min-height:180px;padding:1rem}.project-body{padding:1rem 1.1rem 1.25rem}.stack-tags{gap:.5em}.stack-block+.stack-block{margin-top:1.5em}.edu{gap:.65em}.edu-logo{flex-basis:52px;width:52px;height:52px}.site-nav a{min-height:2.75rem;padding:.65em .85em;font-size:.9em}.filter-btn,.filter-more{padding:.4em .65em .5em;font-size:.85em}.private-note{margin-left:0;display:inline-block}}@media (max-width:400px){.links{gap:.4em}}
:root{--canvas:#f2ede4;--canvas-deep:#e8e2d6;--surface:#fffdf8d1;--surface-solid:#fffdf8;--ink:#14120f;--ink-soft:#3d3830;--ink-muted:#6b645a;--accent:#d96b4f;--accent-deep:#b8523a;--accent-glow:#d96b4f38;--data-green:#2d6a4f;--data-teal:#1d6a7a;--line:#14120f1a;--line-strong:#14120f2e;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--shadow-card:0 18px 50px #14120f12;--shadow-chrome:0 12px 40px #14120f0f;--site-content-max:60rem;--git-cell:clamp(6px, .48vw, 10px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{background:var(--canvas);color:var(--ink);font-family:var(--font-jakarta), var(--font-tomorrow), system-ui, sans-serif;font-size:1.125rem;line-height:1.7}html{font-size:18.5px}a{color:var(--data-teal)}a:visited{color:#5a4080}.site-backdrop{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.site-backdrop-dots{opacity:.4;z-index:1;background-image:radial-gradient(circle,#14120f24 .65px,#0000 .65px);background-size:18px 18px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000000d9 0%,#0006 50%,#0003 100%);mask-image:linear-gradient(#000000d9 0%,#0006 50%,#0003 100%)}.git-heatmap-field{z-index:0;pointer-events:none;opacity:.38;position:absolute;-webkit-mask-image:radial-gradient(70% 55%,#000000d9 0%,#00000059 45%,#0000 72%);mask-image:radial-gradient(70% 55%,#000000d9 0%,#00000059 45%,#0000 72%)}.git-heatmap-field--primary{width:min(110vw,980px);top:6%;left:50%;transform:translate(-42%)rotate(-2deg)}.git-heatmap-field--secondary{opacity:.22;width:min(88vw,720px);bottom:12%;right:-4%;transform:rotate(3deg)scale(.92);-webkit-mask-image:radial-gradient(65% 50% at 60%,#000000b3 0%,#0000 68%);mask-image:radial-gradient(65% 50% at 60%,#000000b3 0%,#0000 68%)}.git-heatmap{grid-auto-rows:var(--git-cell);justify-content:center;gap:2px;width:100%;display:grid}.git-cell{width:var(--git-cell);height:var(--git-cell);border-radius:2px}.git-cell--empty{background:#14120f0a;border:none}.git-cell--1{background:#d96b4f1f}.git-cell--2{background:#d96b4f38}.git-cell--3{background:#d96b4f57}.git-cell--4{background:#d96b4f7a}.site-backdrop-glow{z-index:2;filter:blur(60px);border-radius:50%;width:min(42vw,520px);height:min(42vw,520px);position:absolute}.site-backdrop-glow--tl{background:var(--accent-glow);top:-12%;left:-8%}.site-backdrop-glow--br{background:#2d6a4f1f;bottom:8%;right:-6%}.site-frame{--site-content-max:60rem;z-index:1;--portfolio-index-width:2.85rem;--portfolio-grid-gap:1rem;flex-direction:column;flex:1 0 auto;gap:0;width:100%;max-width:none;min-height:100dvh;margin:0;padding:0 clamp(1rem,4vw,2.75rem);display:flex;position:relative}.site-chrome{z-index:80;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);box-shadow:var(--shadow-chrome);background:#f2ede4c7;margin-inline:calc(-1*clamp(1rem,4vw,2.75rem));padding-inline:clamp(1rem,4vw,2.75rem);position:sticky;top:0}.site-header{z-index:auto;box-shadow:none;background:0 0;padding:.85rem 0 1rem;position:static}.site-header-top{width:100%;max-width:var(--site-content-max);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:1rem;margin-inline:auto;display:grid}.site-header-top .site-nav{grid-column:2}.site-header-hero{max-width:var(--site-content-max);margin:.85rem auto 0;padding-top:.15rem}.site-header-hero h1{font-family:var(--font-sora), sans-serif;letter-spacing:-.045em;color:var(--ink);margin:0;font-size:clamp(1.85rem,3.2vw + .7rem,2.7rem);font-weight:500;line-height:1.02}.site-header-name-row{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.35em;display:flex}.site-header-name-row .links{justify-content:flex-end;gap:.55rem}.site-header-name-row .social,.site-header-name-row .social:visited{width:2rem;height:2rem;color:var(--ink-muted);background:0 0;border:none;border-radius:0}.site-header-name-row .social:hover{color:var(--ink);background:0 0;border:none}.site-header-name-row .social-icon{opacity:.45;filter:grayscale();width:1.55rem;height:1.55rem}.site-header-name-row .social:hover .social-icon{opacity:.75}.site-header-name-row .social-ink,.site-header-name-row .social-ink:visited,.site-header-name-row .social-ink:hover{color:#000}.site-header-name-row .social-ink .social-icon,.site-header-name-row .social-ink:hover .social-icon{opacity:1;filter:none}.site-header-name-row .social-linkedin,.site-header-name-row .social-linkedin:visited,.site-header-name-row .social-linkedin:hover{color:#0a66c2}.site-header-name-row .social-linkedin .social-icon,.site-header-name-row .social-linkedin:hover .social-icon{opacity:1;filter:none}.location{color:var(--ink-muted);font-family:var(--font-jakarta), sans-serif;align-items:center;gap:.28rem;margin:0;font-size:.68rem;font-weight:400;display:inline-flex}.location-icon{width:.72rem;height:.72rem;color:var(--ink-muted);opacity:.7}.site-header-aside{justify-content:flex-start;align-items:center;width:auto;margin-top:.35rem;display:flex}.site-sidebar{display:none}.site-nav{border:1px solid var(--line);background:#fffdf866;border-radius:999px;flex-flow:wrap;justify-content:center;gap:.2rem;margin:0;padding:.16rem}.site-nav a{font-family:var(--font-sora), sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;margin:0;padding:.32em .78em;font-size:.68rem;font-weight:500;display:inline-flex}.site-nav a:hover{color:var(--ink);background:#fffdf8e6}.site-nav a[aria-current=page]{color:var(--surface-solid);background:var(--ink);border-color:var(--ink)}.site-main-column{flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}main{width:100%;max-width:var(--site-content-max);flex:1 0 auto;margin-inline:auto;padding:1.15rem 0 2.25rem}.page-intro{margin-bottom:.85rem}.page-eyebrow{font-family:var(--font-plex-mono), monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-deep);align-items:center;gap:.55rem;margin:0 0 .65rem;font-size:.84rem;font-weight:500;display:inline-flex}.page-eyebrow-mark{background:var(--accent);border-radius:2px;width:1.75rem;height:2px}.page-title{font-family:var(--font-jakarta), sans-serif;letter-spacing:-.02em;margin:0;font-size:clamp(1.35rem,2vw + .8rem,1.85rem);font-weight:700}.content-panel{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow-card);padding:clamp(1.15rem,2.5vw,1.75rem)}.bio{max-width:none;font-family:var(--font-nunito), "Nunito", sans-serif;color:var(--ink);margin:0;font-size:1.15rem;line-height:1.7}.experience-block{margin-top:2.25rem}.experience-block h2{margin-top:0}.credential-accordions{margin-top:2.6rem}.credential-accordions .credential-accordion:last-child{border-bottom:none}main:has(.credential-accordions)+.site-footer{border-top:none}.credential-accordion{border-bottom:1px solid var(--line-strong);interpolate-size:allow-keywords}.credential-accordion:not([open])::details-content{content-visibility:visible;transition:height .45s cubic-bezier(.4,0,.2,1);overflow:clip}.credential-accordion[open]::details-content{content-visibility:visible;transition:height .45s cubic-bezier(.4,0,.2,1);overflow:clip}.credential-accordion:not([open])::details-content{height:0}.credential-accordion[open]::details-content{height:auto}@starting-style{.credential-accordion[open]::details-content{height:0}}@media (prefers-reduced-motion:reduce){.credential-accordion:not([open])::details-content{transition:none}.credential-accordion[open]::details-content{transition:none}}.credential-accordion-summary{cursor:pointer;justify-content:space-between;align-items:center;gap:1.25rem;margin:0;padding:1.05rem .05rem;list-style:none;display:flex}.credential-accordion-summary::-webkit-details-marker{display:none}.credential-accordion-summary h2,.credential-accordion-title{min-width:0;font-family:var(--font-sora), "Sora", sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);margin:0;font-size:.72rem;font-weight:500}.credential-accordion-summary h2:after{display:none}.projects.credential-accordions{border-top:1px solid var(--line-strong);gap:0;margin-top:1.75rem}.project-accordion-summary{font-size:1rem}.project-accordion-summary .credential-accordion-title{letter-spacing:-.02em;text-transform:none;flex:auto;font-size:.72rem;font-weight:500}@media (min-width:768px){.credential-accordion .project{grid-template-columns:minmax(0,1fr)}}.credential-accordion .project-media{background:0 0;border:none;min-height:0;padding:1.15rem 1.15rem 0;display:block}.credential-accordion .thumb{border-radius:0;width:100%;max-width:100%;height:auto;max-height:none}.credential-accordion .project-body{padding:.85rem 1.15rem .15rem}.credential-accordion .project-body>p{width:100%;max-width:none}.credential-accordion-title .year{letter-spacing:.04em;color:var(--ink-muted);font-weight:400}.credential-accordion .project{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:none;border-radius:0}.credential-accordion-summary:after{content:"+";font-family:var(--font-sora), "Sora", sans-serif;letter-spacing:0;color:var(--ink);flex-shrink:0;font-size:1.2rem;font-weight:400;line-height:1}.credential-accordion[open]>.credential-accordion-summary:after{content:"−"}.credential-accordion-summary:focus-visible{outline:1px solid var(--ink);outline-offset:3px}.credential-accordion-panel{padding:.1rem .05rem 1.15rem}.projects .credential-accordion[open] .credential-accordion-panel{background:#fff}.projects .credential-accordion::details-content{background:#fff}.skills-line{font-family:var(--font-jakarta), sans-serif;color:var(--ink-muted);margin:0 0 .85rem;font-size:.82rem;font-weight:400;line-height:1.45}h2{font-family:var(--font-jakarta), sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted);border-bottom:none;margin:2.25em 0 .85em;padding-bottom:0;scroll-margin-top:14rem;font-size:.95rem;font-weight:700}h2:after{content:"";background:linear-gradient(90deg, var(--accent), transparent);border-radius:3px;width:2.5rem;height:3px;margin-top:.45rem;display:block}.subtitle{max-width:28rem;font-family:var(--font-plex-mono), monospace;letter-spacing:.01em;color:var(--ink);margin:.2rem 0 0;font-size:.95rem;font-weight:500;line-height:1.45}.location{color:var(--ink-muted);font-family:var(--font-jakarta), sans-serif}.site-footer{width:100%;max-width:var(--site-content-max);margin-top:auto;border-top:1px solid var(--line);color:var(--ink-muted);font-family:var(--font-plex-mono), monospace;letter-spacing:.06em;text-transform:uppercase;margin-inline:auto;font-size:.85rem}.work-list{flex-direction:column;gap:.4rem;max-width:100%;margin:.15rem 0 0;padding:0;list-style:none;display:flex}.work-row{display:block}.work-main{min-width:0;padding-left:1.2rem;position:relative}.work-main:before{content:"→";color:var(--accent-deep);position:absolute;top:0;left:0}.work-brief{width:100%;font-family:var(--font-jakarta), sans-serif;color:var(--ink-muted);white-space:nowrap;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:baseline;margin:0;font-size:.68rem;font-weight:400;line-height:1.35;display:grid}.work-brief-lead,.work-brief-trail{align-items:baseline;min-width:0;display:flex}.work-brief-trail{justify-content:flex-end}.work-brief-lead>span:first-child,.work-brief-trail>span:last-child{flex-shrink:0}.work-brief-dots{flex:auto;min-width:.75rem;margin:0 .4rem;overflow:hidden}.work-brief-dots:before{content:"................................................................";letter-spacing:.12em}.work-brief-when{white-space:nowrap;text-align:center}a.work-brief{color:inherit;text-decoration:none}a.work-brief:hover .work-brief-lead>span:first-child{text-decoration:underline}.work-company,.work-when{margin:0}.work-role{font-family:var(--font-jakarta), sans-serif;color:var(--ink);margin:0;font-size:1.05rem;font-weight:500}.work-company{font-family:var(--font-jakarta), sans-serif;color:var(--ink-muted);margin-top:.08rem;font-size:.95rem}.work-when{font-family:var(--font-plex-mono), monospace;color:var(--ink-muted);white-space:nowrap;flex-shrink:0;padding-top:.05rem;font-size:.95rem}.experience-content{border-left-color:#d96b4f59}.experience-item.is-current .experience-content{border-left-color:var(--accent-deep)}.experience-media{border-radius:var(--radius-md);border-color:var(--line);box-shadow:var(--shadow-card)}.project{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--shadow-card)}.project-media{border-color:var(--line);background:linear-gradient(145deg,#f7f3eb,#ebe5da)}.edu-list{flex-direction:column;gap:.85rem;width:100%;max-width:32rem;margin:0;padding:0;list-style:none;display:flex}.edu-row{justify-content:space-between;align-items:flex-start;gap:.75rem;padding:0;line-height:1.35;display:flex}.edu-row-main{flex-direction:column;gap:.05rem;min-width:0;padding-left:1.2rem;display:flex;position:relative}.edu-row-main:before{content:"→";color:var(--accent-deep);position:absolute;top:0;left:0}.edu-degree{font-family:var(--font-jakarta), sans-serif;color:var(--ink);font-size:1.05rem;font-weight:500}.edu-school{font-family:var(--font-jakarta), sans-serif;color:var(--ink-muted);font-size:.95rem;font-weight:400}.edu-year{font-family:var(--font-plex-mono), monospace;color:var(--ink-muted);flex-shrink:0;padding-top:.05rem;font-size:.95rem}.credentials-grid{flex-direction:column;align-items:stretch;gap:.25rem;margin-top:2.25rem;display:flex}.credentials-col h2{margin-top:0}.credentials-heading{align-items:center;gap:.45rem;display:inline-flex}.credentials-icon{width:1.15rem;height:1.15rem;color:var(--ink-soft);flex-shrink:0}.credentials-col h2:first-child{margin-top:1.5rem}.credentials-col:first-child h2{margin-top:.35em}.cert-list{flex-direction:column;gap:.85rem;max-width:32rem;margin:0;padding:0;list-style:none;display:flex}.cert-row{justify-content:space-between;align-items:flex-start;gap:.75rem;line-height:1.35;display:flex}.cert-link{min-width:0;font-family:var(--font-jakarta), sans-serif;color:var(--ink);font-size:1.08rem;font-weight:500;text-decoration:none}.cert-link:before{content:"→";color:var(--accent-deep);margin-right:.45rem}.cert-link:hover{color:var(--data-teal);text-decoration:underline}.cert-year{font-family:var(--font-plex-mono), monospace;color:var(--ink-muted);flex-shrink:0;font-size:.95rem}.stack-block h2{font-size:.72rem}.stack-block h2:after{display:none}.skill{border-radius:var(--radius-sm);font-family:var(--font-jakarta), sans-serif;border-width:1px;font-weight:600}.stack-core .skill{color:var(--ink-soft);border-color:var(--line-strong);background:#fffdf8e6}.stack-data .skill{color:var(--data-teal);background:#1d6a7a14;border-color:#1d6a7a38}.stack-ai .skill{color:#6b4423;background:#d96b4f1a;border-color:#d96b4f40}.stack-automation .skill{color:var(--data-green);background:#2d6a4f14;border-color:#2d6a4f38}.tag-de{color:var(--data-teal);background:#1d6a7a1a;border-color:#1d6a7a47;border-radius:6px}.tag-ai{color:#5c4030;background:#d96b4f1f;border-color:#d96b4f47;border-radius:6px}@media (max-width:900px){.site-header-top{grid-template-columns:minmax(0,1fr);justify-items:stretch;gap:.7rem}.site-header-top .site-nav{grid-column:1;width:100%}.site-nav{background:0 0;border:none;border-radius:0;justify-content:stretch;gap:0;padding:0}.site-nav a{letter-spacing:.16em;min-height:0;color:var(--ink-muted);background:0 0;border:none;border-radius:0;flex:1 1 0;margin:0;padding:.85rem .15rem .7rem;font-size:.68rem;font-weight:500}.site-nav a:hover{color:var(--ink);background:0 0}.site-nav a[aria-current=page]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--ink);background:0 0;border:none}.git-heatmap-field--primary{opacity:.28;top:4%}.git-heatmap-field--secondary{opacity:.16}}@media (max-width:768px){.site-frame{grid-template-columns:unset;grid-template-rows:unset;grid-template-areas:unset;flex-direction:column;padding-inline:clamp(.75rem,3vw,1.25rem);display:flex}.site-chrome{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-bottom:none;margin-inline:0;padding-inline:0;display:block;position:static}.site-header{padding-top:0;padding-bottom:.35rem}.site-header-top{z-index:80;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f2ede4f0;border-bottom:none;margin-inline:calc(-1*clamp(.75rem,3vw,1.25rem));padding:0 clamp(.75rem,3vw,1.25rem);position:sticky;top:0}.site-header-hero{margin-top:.65rem}.site-header-hero h1{letter-spacing:-.04em;font-size:clamp(1.55rem,6.2vw,1.95rem)}.subtitle{white-space:nowrap;max-width:none;font-size:.7rem}.site-header-aside{flex-wrap:nowrap;justify-content:flex-start;width:auto}.bio{font-size:1.02rem;line-height:1.6}.experience-block,.credentials-grid,.credential-accordions{margin-top:1.45rem}.credential-accordion-summary{padding:.9rem .05rem}.credential-accordions:not(.projects) .credential-accordion-summary{grid-template-columns:1.2rem minmax(0,1fr) 1.2rem;place-items:center;display:grid}.credential-accordions:not(.projects) .credential-accordion-summary h2{text-align:center;grid-column:2}.credential-accordions:not(.projects) .credential-accordion-summary:after{grid-column:3;justify-self:end}h2{margin-top:0;scroll-margin-top:7.5rem}.work-list{gap:.55rem}.work-brief{align-items:baseline;font-size:.56rem;display:flex}.skills-line{font-size:.72rem}.work-brief-lead,.work-brief-trail{display:contents}.work-brief-dots{flex-basis:0;min-width:0;margin:0 .18rem}}@media (min-width:1500px){:root,.site-frame{--site-content-max:60rem}}
