@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:200;font-display:swap;src:url(/_next/static/media/84dc7da34bb2980d-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:200;font-display:swap;src:url(/_next/static/media/ff20918d88dd5d05-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:200;font-display:swap;src:url(/_next/static/media/5cd024878085d1a4-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:200;font-display:swap;src:url(/_next/static/media/c5c6ff5c13efc650-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:200;font-display:swap;src:url(/_next/static/media/478cfa4924927909-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:300;font-display:swap;src:url(/_next/static/media/2654dbf24aea7c5c-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:300;font-display:swap;src:url(/_next/static/media/28d9a5bcdfe1d85c-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:300;font-display:swap;src:url(/_next/static/media/f9ab74ff5df93b56-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:300;font-display:swap;src:url(/_next/static/media/f884487c2e174fcf-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:300;font-display:swap;src:url(/_next/static/media/f36144f235cd456e-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: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 Fallback;src:local("Arial");ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.00%;size-adjust:134.59%}.__className_d9a0d8{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.__variable_d9a0d8{--font-mono:"IBM Plex Mono","IBM Plex Mono Fallback"}@font-face{font-family:Work Sans;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/10f65c94012f0d89-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:Work Sans;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f0a6239bc4153746-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:Work Sans;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c9e6921c7fc300d8-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:Work Sans Fallback;src:local("Arial");ascent-override:83.09%;descent-override:21.71%;line-gap-override:0.00%;size-adjust:111.93%}.__className_a2025e{font-family:Work Sans,Work Sans Fallback;font-style:normal}.__variable_a2025e{--font-sans:"Work Sans","Work Sans Fallback"}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b1f344208eb4edfe-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:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/48e2044251ef3125-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/bf24a9759715e608-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:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/1f173e5e25f3efee-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:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/904be59b21bd51cb-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:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/b1f344208eb4edfe-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:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/48e2044251ef3125-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/bf24a9759715e608-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:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/1f173e5e25f3efee-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:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/904be59b21bd51cb-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:Montserrat Fallback;src:local("Arial");ascent-override:85.79%;descent-override:22.25%;line-gap-override:0.00%;size-adjust:112.83%}.__className_a8d789{font-family:Montserrat,Montserrat Fallback;font-style:normal}.__variable_a8d789{--font-detail:"Montserrat","Montserrat Fallback"}@font-face{font-family:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/8d7c84a11f840916-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:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/419a051b363af584-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/778ce0abc5526d65-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b17f997f9ae7c671-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:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/3064ca4f871fda7c-s.woff2) format("woff2");unicode-range:u+0302-0303,u+0305,u+0307-0308,u+0310,u+0312,u+0315,u+031a,u+0326-0327,u+032c,u+032f-0330,u+0332-0333,u+0338,u+033a,u+0346,u+034d,u+0391-03a1,u+03a3-03a9,u+03b1-03c9,u+03d1,u+03d5-03d6,u+03f0-03f1,u+03f4-03f5,u+2016-2017,u+2034-2038,u+203c,u+2040,u+2043,u+2047,u+2050,u+2057,u+205f,u+2070-2071,u+2074-208e,u+2090-209c,u+20d0-20dc,u+20e1,u+20e5-20ef,u+2100-2112,u+2114-2115,u+2117-2121,u+2123-214f,u+2190,u+2192,u+2194-21ae,u+21b0-21e5,u+21f1-21f2,u+21f4-2211,u+2213-2214,u+2216-22ff,u+2308-230b,u+2310,u+2319,u+231c-2321,u+2336-237a,u+237c,u+2395,u+239b-23b7,u+23d0,u+23dc-23e1,u+2474-2475,u+25af,u+25b3,u+25b7,u+25bd,u+25c1,u+25ca,u+25cc,u+25fb,u+266d-266f,u+27c0-27ff,u+2900-2aff,u+2b0e-2b11,u+2b30-2b4c,u+2bfe,u+3030,u+ff5b,u+ff5d,u+1d400-1d7ff,u+1ee??}@font-face{font-family:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/ddcfaf3c507de899-s.woff2) format("woff2");unicode-range:u+0001-000c,u+000e-001f,u+007f-009f,u+20dd-20e0,u+20e2-20e4,u+2150-218f,u+2190,u+2192,u+2194-2199,u+21af,u+21e6-21f0,u+21f3,u+2218-2219,u+2299,u+22c4-22c6,u+2300-243f,u+2440-244a,u+2460-24ff,u+25a0-27bf,u+28??,u+2921-2922,u+2981,u+29bf,u+29eb,u+2b??,u+4dc0-4dff,u+fff9-fffb,u+10140-1018e,u+10190-1019c,u+101a0,u+101d0-101fd,u+102e0-102fb,u+10e60-10e7e,u+1d2c0-1d2d3,u+1d2e0-1d37f,u+1f0??,u+1f100-1f1ad,u+1f1e6-1f1ff,u+1f30d-1f30f,u+1f315,u+1f31c,u+1f31e,u+1f320-1f32c,u+1f336,u+1f378,u+1f37d,u+1f382,u+1f393-1f39f,u+1f3a7-1f3a8,u+1f3ac-1f3af,u+1f3c2,u+1f3c4-1f3c6,u+1f3ca-1f3ce,u+1f3d4-1f3e0,u+1f3ed,u+1f3f1-1f3f3,u+1f3f5-1f3f7,u+1f408,u+1f415,u+1f41f,u+1f426,u+1f43f,u+1f441-1f442,u+1f444,u+1f446-1f449,u+1f44c-1f44e,u+1f453,u+1f46a,u+1f47d,u+1f4a3,u+1f4b0,u+1f4b3,u+1f4b9,u+1f4bb,u+1f4bf,u+1f4c8-1f4cb,u+1f4d6,u+1f4da,u+1f4df,u+1f4e3-1f4e6,u+1f4ea-1f4ed,u+1f4f7,u+1f4f9-1f4fb,u+1f4fd-1f4fe,u+1f503,u+1f507-1f50b,u+1f50d,u+1f512-1f513,u+1f53e-1f54a,u+1f54f-1f5fa,u+1f610,u+1f650-1f67f,u+1f687,u+1f68d,u+1f691,u+1f694,u+1f698,u+1f6ad,u+1f6b2,u+1f6b9-1f6ba,u+1f6bc,u+1f6c6-1f6cf,u+1f6d3-1f6d7,u+1f6e0-1f6ea,u+1f6f0-1f6f3,u+1f6f7-1f6fc,u+1f7??,u+1f800-1f80b,u+1f810-1f847,u+1f850-1f859,u+1f860-1f887,u+1f890-1f8ad,u+1f8b0-1f8bb,u+1f8c0-1f8c1,u+1f900-1f90b,u+1f93b,u+1f946,u+1f984,u+1f996,u+1f9e9,u+1fa00-1fa6f,u+1fa70-1fa7c,u+1fa80-1fa89,u+1fa8f-1fac6,u+1face-1fadc,u+1fadf-1fae9,u+1faf0-1faf8,u+1fb??}@font-face{font-family:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/06aa60d9335bb7b5-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:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/9798597226cbd355-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:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/24c66e387ee021e3-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:Roboto Fallback;src:local("Arial");ascent-override:92.98%;descent-override:24.47%;line-gap-override:0.00%;size-adjust:99.78%}.__className_28a512{font-family:Roboto,Roboto Fallback;font-weight:500;font-style:normal}.__variable_28a512{--font-body:"Roboto","Roboto Fallback"}

/*
! tailwindcss v3.4.10 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--font-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}:root{--base-font:calc(13px + 0.2vw);--frame:2rem;--header:2.75rem;--easeOut:cubic-bezier(0,0,0.185,0.995);--bgLight:226,226,226;--bgDark:24,24,24;--accent:#834bdb;--bg-dark:#181818}html{--bg:#e2e2e2;--bgRGB:226,226,226;--bgAlpha:rgba(var(--bgRGB),0.75);--bg-offset:#dadada;--bg-light:#e2e2e2;--pre-bg:#e6e9ef;--code-bg:var(--pre-bg);--info-bg:#e0e3f2;--info-icon:var(--link);--info-text:var(--text-secondary);--pre-border:none;--text-primary:#444;--text-secondary:#4b5563;--border:#b5b5b5;--border-light:#d5d5d5;--link:var(--accent);--link-hover:var(--link);--link-visited:#663bac;--inline-code:var(--accent);--hover-shadow:rgba(131,75,219,.1);--scrollbar:#444;--accent-2:#4f46e5}html.dark{--bg:#181818;--bgRGB:24,24,24;--bgAlpha:rgba(var(--bgRGB),0.75);--bg-offset:#282828;--pre-bg:#24273a;--code-bg:var(--bg-offset);--info-bg:#1e1b4b;--info-icon:var(--link);--info-text:#bfc4cc;--pre-border:1px solid var(--border);--text-primary:#b5b5b5;--text-secondary:#9ca3af;--border:#555;--border-light:#333;--link:#c792ea;--linkHover:var(--link);--link-visited:#834bdb;--inline-code:#9ece6a;--accent-2:#facc15;--hoverShadow:rgba(131,75,219,.75)}html.dark code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;-webkit-text-decoration:var(--shiki-dark-text-decoration)!important;text-decoration:var(--shiki-dark-text-decoration)!important}@media (max-width:640px){html.dark:has(.markdown),html:has(.markdown){--frame:0px;& #theme-selector{display:none}}}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.-left-\[1px\]{left:-1px}.bottom-\[--frame\]{bottom:var(--frame)}.left-1{left:.25rem}.left-2{left:.5rem}.left-\[2\.1rem\]{left:2.1rem}.-top-2{top:-.5rem}.-top-3{top:-.75rem}.-top-4{top:-1rem}.top-full{top:100%}.z-10{z-index:10}.col-span-2{grid-column:span 2/span 2}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.row-span-full{grid-row:1/-1}.row-start-1{grid-row-start:1}.row-start-6{grid-row-start:6}.row-end-6{grid-row-end:6}.m-4{margin:1rem}.m-auto{margin:auto}.m-frame{margin:var(--frame)}.mx-0{margin-left:0;margin-right:0}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.mb-0{margin-bottom:0}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.ml-16{margin-left:4rem}.ml-2{margin-left:.5rem}.mr-14{margin-right:3.5rem}.mr-4{margin-right:1rem}.mt-1{margin-top:.25rem}.mt-11{margin-top:2.75rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.mt-px{margin-top:1px}.block{display:block}.flex{display:flex}.table{display:table}.grid{display:grid}.aspect-\[1\/2\]{aspect-ratio:1/2}.aspect-\[1\]{aspect-ratio:1}.h-11{height:2.75rem}.h-2{height:.5rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[calc\(100svh-calc\(var\(--frame\)\*2\)-2px\)\]{height:calc(100svh - calc(var(--frame) * 2) - 2px)}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[600px\]{max-height:600px}.min-h-11{min-height:2.75rem}.min-h-\[65vh\]{min-height:65vh}.min-h-full{min-height:100%}.w-20{width:5rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-\[0\.5px\]{width:.5px}.w-\[calc\(100\%-calc\(4px\+var\(--frame\)\*2\)\)\]{width:calc(100% - calc(4px + var(--frame) * 2))}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-\[min\(80vw\2c 970px\)\]{min-width:min(80vw,970px)}.min-w-full{min-width:100%}.max-w-\[100vw\]{max-width:100vw}.max-w-\[970px\]{max-width:970px}.max-w-full{max-width:100%}.max-w-prose{max-width:65ch}.origin-bottom-left{transform-origin:bottom left}.translate-y-1{--tw-translate-y:0.25rem}.-rotate-90,.translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate:-90deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 2s linear infinite}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-\[1fr\2c auto\2c 1fr\]{grid-template-columns:1fr auto 1fr}.grid-cols-\[1fr\]{grid-template-columns:1fr}.grid-cols-\[4rem_1fr\]{grid-template-columns:4rem 1fr}.grid-rows-\[repeat\(6\2c 4rem\)\]{grid-template-rows:repeat(6,4rem)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-0{row-gap:0}.gap-y-1{row-gap:.25rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-scroll{overflow-y:scroll}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-2{border-width:2px}.border-\[1px\]{border-width:1px}.border-b{border-bottom-width:1px}.border-b-4{border-bottom-width:4px}.border-b-8{border-bottom-width:8px}.border-b-\[1px\]{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-\[\#834bdb\]{--tw-border-opacity:1;border-color:rgb(131 75 219/var(--tw-border-opacity))}.border-accent{border-color:var(--accent)}.border-border{border-color:var(--border)}.border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity))}.border-purple-200{--tw-border-opacity:1;border-color:rgb(233 213 255/var(--tw-border-opacity))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity))}.border-text-primary{border-color:var(--text-primary)}.border-yellow-200{--tw-border-opacity:1;border-color:rgb(254 240 138/var(--tw-border-opacity))}.border-b-border{border-bottom-color:var(--border)}.border-t-accent{border-top-color:var(--accent)}.bg-\[\#181818\]{--tw-bg-opacity:1;background-color:rgb(24 24 24/var(--tw-bg-opacity))}.bg-accent{background-color:var(--accent)}.bg-bg{background-color:var(--bg)}.bg-bg-light{background-color:var(--bg-light)}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity))}.bg-info-bg{background-color:var(--info-bg)}.bg-neutral-800{--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity))}.bg-pre-bg{background-color:var(--pre-bg)}.bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity))}.bg-text-primary{background-color:var(--text-primary)}.bg-text-secondary{background-color:var(--text-secondary)}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-10{padding:2.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1px\]{padding:1px}.p-\[min\(6rem\2c 6vw\)\]{padding:min(6rem,6vw)}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[6vw\]{padding-left:6vw;padding-right:6vw}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pl-1{padding-left:.25rem}.pl-5{padding-left:1.25rem}.pt-12{padding-top:3rem}.pt-2{padding-top:.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-detail{font-family:var(--font-detail)}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-base{font-size:var(--base-font)}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.font-thin{font-weight:100}.italic{font-style:italic}.leading-10{line-height:2.5rem}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.leading-snug{line-height:1.375}.tracking-tight{letter-spacing:-.025em}.text-\[\#b5b5b5\]{--tw-text-opacity:1;color:rgb(181 181 181/var(--tw-text-opacity))}.text-\[\#eee\]{--tw-text-opacity:1;color:rgb(238 238 238/var(--tw-text-opacity))}.text-accent{color:var(--accent)}.text-accent-2{color:var(--accent-2)}.text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity))}.text-info-icon{color:var(--info-icon)}.text-link{color:var(--link)}.text-purple-800{--tw-text-opacity:1;color:rgb(107 33 168/var(--tw-text-opacity))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity))}.text-text-primary{color:var(--text-primary)}.text-text-secondary{color:var(--text-secondary)}.text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.outline-1{outline-width:1px}.outline-transparent{outline-color:transparent}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-\[1500\]{transition-duration:1500}.scrollbar{-ms-overflow-style:none;scrollbar-width:none}.scrollbar::-webkit-scrollbar{display:none}#blog-posts-container{container-type:inline-size}a{color:inherit}blockquote{& p{quotes:initial;&:after{content:"”"}&:before{content:"“"}}}pre{margin-bottom:1.5rem;overflow-x:auto;border-radius:.5rem;padding:1rem;font-size:.875rem;line-height:1.25rem;border:var(--pre-border);background-color:var(--pre-bg);scrollbar-color:var(--border-light) transparent;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}pre::-webkit-scrollbar{border-radius:.5rem}code{border-radius:.5rem;padding:.125rem .25rem}pre code{padding:0;border:initial;line-height:1.5;font-family:inherit}code span{font-size:.875rem;line-height:1.25rem;font-weight:500}:not(pre)>code{bottom:.5px;padding:1px 3px;margin:0 -1px;border-radius:4px;background-color:var(--code-bg);color:var(--inline-code)}.code-block:hover button.copy,pre:hover button.copy{opacity:1}.code-block{position:relative}button.copy{position:absolute;top:12px;right:12px;height:24px;width:24px;padding:0;display:flex;opacity:0;transition:opacity .3s ease;& span{width:100%;aspect-ratio:1/1;background-repeat:no-repeat;background-position:50%;background-size:cover}&:before{content:"Copied!";position:absolute;left:-70px;top:50%;transform:translateY(-50%);background-color:var(--bg-offset);color:inherit;padding:4px 40px 4px 8px;border-radius:4px;font-size:12px;white-space:nowrap;opacity:0;pointer-events:none}& .ready{background-image:url(/icons/copy.svg);transition:transform .1s ease;&:hover{transform:scale(1.05)}}& .success{display:none;background-image:url(/icons/copy-success.svg);z-index:10}&.copied{& .success{display:block}&:before{opacity:1}& .ready{display:none}}}@supports (animation-timeline:view()){.animation-container{animation:trigger steps(1) forwards;animation-timeline:view();animation-range-end:0}@media (prefers-reduced-motion:no-preference){@container style(--animate: true){.animation-container img{animation:from-bottom .3s var(--easeOut) forwards}.project-title{animation:from-right .3s var(--easeOut) forwards}.animation-container>div{animation:from-bottom .3s var(--easeOut) forwards}}}}@keyframes trigger{to{--animate:true}}@keyframes from-left{0%{opacity:0;scale:2;translate:-30rem;filter:blur(50px)}}@keyframes from-right{0%{opacity:0;translate:30rem;filter:blur(50px)}}@keyframes from-bottom{0%{opacity:0;transform:translateY(30rem);filter:blur(75px)}}@keyframes scale-in{0%{scale:0;filter:blur(75px)}}.last\:border-b:last-child{border-bottom-width:1px}.visited\:text-link-visited:visited{color:var(--link-visited)}.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:font-light:hover{font-weight:300}.hover\:font-normal:hover{font-weight:400}.hover\:text-link-hover:hover{color:var(--link-hover)}.hover\:no-underline:hover{text-decoration-line:none}.hover\:shadow-\[0_0_6px_1px_var\(--hoverShadow\)\]:hover{--tw-shadow:0 0 6px 1px var(--hoverShadow);--tw-shadow-colored:0 0 6px 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:outline-accent:hover{outline-color:var(--accent)}.hover\:transition-all:hover{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.hover\:duration-200:hover{transition-duration:.2s}.hover\:ease-in:hover{transition-timing-function:cubic-bezier(.4,0,1,1)}.hover\:\[-webkit-text-stroke\:0\.5px\]:hover{-webkit-text-stroke:.5px}.group:hover .group-hover\:text-stroke-1{-webkit-text-stroke:.5px currentColor}.has-\[\.markdown\]\:border-0:has(.markdown){border-width:0}@media (min-width:640px){.sm\:-left-1\.5{left:-.375rem}.sm\:bottom-9{bottom:2.25rem}.sm\:top-auto{top:auto}.sm\:max-w-\[60vh\]{max-width:60vh}.sm\:origin-bottom-left{transform-origin:bottom left}.sm\:translate-y-0{--tw-translate-y:0px}.sm\:-rotate-90,.sm\:translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:-rotate-90{--tw-rotate:-90deg}.sm\:border-border{border-color:var(--border)}.sm\:px-\[10vw\]{padding-left:10vw;padding-right:10vw}.has-\[\.markdown\]\:sm\:w-\[calc\(100\%-calc\(4px\+var\(--frame\)\*2\)\)\]:has(.markdown){width:calc(100% - calc(4px + var(--frame) * 2))}.has-\[\.markdown\]\:sm\:border-\[1px\]:has(.markdown){border-width:1px}}@media (min-width:1024px){.lg\:grid-cols-\[2fr_3fr\]{grid-template-columns:2fr 3fr}.lg\:gap-12{gap:3rem}}@media (min-width:1280px){.xl\:border-none{border-style:none}.xl\:bg-transparent{background-color:transparent}.xl\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}.\[\&_p\]\:mb-1 p{margin-bottom:.25rem}.\[\&_p\]\:font-normal p{font-weight:400}.\[\&_p\]\:text-info-text p{color:var(--info-text)}