.site-footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--color-border);background:var(--color-background);margin-top:auto}.footer-inner[data-astro-cid-jo6i4kqk]{padding:1.5rem var(--layout-padding-horizontal) 1.25rem}.footer-top[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.footer-nav[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.footer-nav-link[data-astro-cid-jo6i4kqk]{color:var(--color-text-muted);border-radius:var(--border-radius);padding:.25rem .5rem;font-size:.8rem;font-weight:500;text-decoration:none;transition:color .15s,background .15s}.footer-nav-link[data-astro-cid-jo6i4kqk]:hover{color:var(--color-text);background:var(--color-background-alternate)}.footer-social[data-astro-cid-jo6i4kqk]{align-items:center;gap:.25rem;display:flex}.footer-social-link[data-astro-cid-jo6i4kqk]{border-radius:var(--border-radius);width:30px;height:30px;color:var(--color-text-muted);justify-content:center;align-items:center;text-decoration:none;transition:color .15s,background .15s;display:flex}.footer-social-link[data-astro-cid-jo6i4kqk]:hover{color:var(--color-text);background:var(--color-background-alternate)}.footer-divider[data-astro-cid-jo6i4kqk]{background:var(--color-border);opacity:.6;height:1px;margin:1rem 0}.footer-bottom[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.footer-copyright[data-astro-cid-jo6i4kqk],.footer-built-with[data-astro-cid-jo6i4kqk]{color:var(--color-text-muted);margin:0;font-size:.75rem}.footer-astro-link[data-astro-cid-jo6i4kqk]{color:var(--color-text-muted);text-underline-offset:2px;text-decoration:underline dotted;transition:color .15s}.footer-astro-link[data-astro-cid-jo6i4kqk]:hover{color:var(--color-primary)}@media (width<=600px){.footer-top[data-astro-cid-jo6i4kqk],.footer-bottom[data-astro-cid-jo6i4kqk]{flex-direction:column;align-items:flex-start;gap:.5rem}.footer-social[data-astro-cid-jo6i4kqk]{gap:.125rem}}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-duration:initial}}}@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/outfit-latin-ext-wght-normal.DdQaqQDo.woff2)format("woff2-variations");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:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/outfit-latin-wght-normal.Bc-8i84L.woff2)format("woff2-variations");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:Google Sans Code Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/_astro/google-sans-code-adlam-wght-normal.DMKbyh18.woff2)format("woff2-variations");unicode-range:U+61F,U+640,U+2015,U+201B,U+2020-2021,U+2030,U+204F,U+25CC,U+2E28-2E29,U+2E41,U+1E900-1E95F}@font-face{font-family:Google Sans Code Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAhIABIAAAAAEXQAAAfjAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGlQbgQ4cKD9NVkFSRQZgP1NUQVSBFgB8L2ARCAqGQIUmCyQAMIZKATYCJAM8BCAFiioHgQQbfA8RFawTo/hxkJPJmz808ZeDbG3xLGtUfU3cg3jCqf283ZU4piiR05BTQB8ju+ceA350UiByL2R5cE7T7SDPPvLnIWfMrpACpTQgdfULz4qcvRIPgP9/P1f/4/yHiM4uKn0sRtLM/hS3j3k0CwVKW8NM6mikRBT3Vd/mco2eihXej6zgqxNCOxumEDQ5klkLCBYGQQCNAB0IEKIADQgqsZzEdhH0t3wLwIbsyHfeEQTwGc7GqF13r/dB6tyTHB2kMAA/OcJvGwG4gKgM4iK45tybIsKmhCiasdHqFhPjszEgJdDqSBMDQxEUFjYC2GgYru4DlEAQ3EgeIxmJcwVALAt8ANoL0ZWi4Ayo1luQXHpzWsiYd+VeLLCivhR4uAujvuRVdWrDwPK0pUxOCpwBBXgBexzQKoFvYcSfzp21H8HbSz8PIgAmth4FCmgEhYsGIhygKA1XnCE6VAr+7HMDqgnZ74Bmi4pRHM/+7MzmjKWDlIOPNAMlVT0S6YLh1ai+9MqpI12yshZp00oyci/ALmkp1oKCaDka6dwMZ75lBo0BGijwrGykflFTtDPiz3odRnjiq0i9Wp9TPzWp1HaHmkzeCiFRrhw3RUiaDAJkUAgRNv4tIYrCsKILbIogCthGtGjsI0asndeC2OKAOhLEFU9KxZfA4/dIiCD1OmkAsgAMBWKgAlIARgO3ApED4TFHUC6yFMcY1/dd1xeUfMvb5MLUYRqDa7Ir/chLDXw9/ps7vip9eeXtrTLYO1e+Fuc7voKaD1DzOu3ZoFVVu1i1lyHU4imrk6y6j3uBE9jnSparpYH+7m6RgFLljp6uw///793eLeN7PhSVzwSIwCB6hHK8/3f3jO++/f+lytWnU8FR/jEBpx77/DXvIw77+39hJbhjn5Z+G+vRQ6vC/11x6FdXvf34jx/bNhdtSk+H6jvan1JPelLl7XZa7hIo7aK32oz7JsBO6b31ixa+i4dpxX0G/DLtnQlbMw7rloyJT+EPxnobzXt/XrTRg2c/uNkpjw/+8SD2qbOePPLIlzNSz0dHcdLvKWdNzj9TZ7xf9IkjSXY+YprJjkY5NB5lM+MpsKJbb9ijum22qptO8fnE2LSa1W3dxdO++82LjYAdzUsfG/z4dTzsq/jHgJ+KLfL7rbMFszz7/fjdXTcc7lLGphquFuIxb8yN+48FOLjqCNTNV0diB3sugfru4OkS8pVJ1Bp7YxaYefo3ez8GzSz9If0Psq25VV9qvy3X1BbozTgUAQQNbEkWgO1Jq4/gDB5lobTIqXJJ3ujmDdmRbylp8qRQR+8dAYEqZVxsW6LSU1q5xeHacL6VZOeT5K0/dpo6YuoBlvX3flifWJ8d8e+N/n2W5XSdDpzn8LNuKdiNOVGgImY4Ntoc1CjbhOuMv3bQlt41y3sHhOyaOVOUaHH2qwuIEVu1h+VsYjItcdwyfLPNhkvHjEnKZFdM/JuJoc6pVdOJjbcanS1na1ZTV2dn10Z7lr1c3WTVygRBGdxGthcZLVqWtNN9q3SwbplyHaFQWsRZ/l/rZcUNnJm9YcfWHWEvJX/h9+S9gJZtY7eUg0qlmhm9X9nlcbWyBo3AG5EbWQc+LUppKTPFd04HT9b1JcokgyWvd+2qXnS1Vq/R1L9srjKW9duNbQ/WaPevXt3vpFJOuekfgmw8rFgcFmcD/unKB0oF+a4yTb3zJxNjfq87ZOQCQ9ze5ct73VzO3bbx2no67thg66036IjT9bXFQoqcU4Wi6KGiPM6T+QPhZeO42m8FixatKHtJX29vrVbp+hJjgb+//LIQVGfuuquPGlhRHLsu6yKLF/jqpZfG5ZZVjjkGUQOnrbMzDDmtzbkNaDQeR44rDANUIkSp6wsHxg9cVetd3ScDBI5VH+jXrFmxyjjkVi+dO50ZC/uc/OgDtkd2klLl3OLFqwa1l8721hvbR25MCxTXLi6TWzZ/8n+JMXOdV9iMHjXErTVu2GDOnKUDJoyaq0nLqI134VVi/3PKJUWEuXBsSpDyhEp0a5DpHkM15Csa5BkRwIGet/49cEJ626qrnX8DzM1UngeYr/64PrmntsDsb78N2CgABH7FdeZdxDq5RzQ7GGU2mHd5mxfoZMYfkLwYps5DMhfd80afm3flKxYwKNvKNQiQ5UJCmlEISSW6W5fcj0aMB3yqZhogbKreBEVKPQ2aQ9XeYNhV2WAxRJaCzfbyNqTYXK4cnHHmyrYSCOVcBoUvJ4NmtGwNhqKkwCIUBTZjmQgOGX4Fl/V5HDxc7gefkZwLATmOhpANGTu4ISB3ijs9OAOiLFaDc0EGNy4fHC2EJkI6oBmfyLwxEaDdj+jENmgWc12i0XrFoVWJLREiqLiHfAwbEQ7fFZaOReeIytl98ZGifZ8RaD3WJJa99t0DNRA3ZqYZfZlF3dkRZiptTbjUpdGi0xeMsAoqQQ5r2LEHBZFqrPMPhXJuvAp7zzy+J5awuPvH2X1seogtSCXhTWH43pO7umvhUQuPI8EjD9jZUxE/js9WqxSP3dXq/6gCQKAFK+v209Dnqegg7NsI99G/sG1ptYxZp5zs7FHmEAuvvhQkm54x96hpoj0I/tIHPJw9pOylHndsyZWLlNLk21cRniQLRIlGixGLHrHFEVc88ZnKLKYwjZnmHxMs5ULdw5kueTxZT+frCyIU4PF7QjiMsyQy+CI=)format("woff2-variations");unicode-range:U+2C7,U+2D8-2D9,U+2DB,U+307,U+1400-167F,U+18B0-18F5,U+25CC,U+11AB?}@font-face{font-family:Google Sans Code Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+300-302,U+304,U+30B-30C,U+323-324,U+330-331,U+13A0-13FF,U+AB70-ABBF}@font-face{font-family:Google Sans Code Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/_astro/google-sans-code-math-wght-normal.BmC33yrp.woff2)format("woff2-variations");unicode-range:U+302-303,U+305,U+307-308,U+310,U+312,U+315,U+31A,U+326-327,U+32C,U+32F-330,U+332-333,U+338,U+33A,U+346,U+34D,U+391-3A1,U+3A3-3A9,U+3B1-3C9,U+3D1,U+3D5-3D6,U+3F0-3F1,U+3F4-3F5,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:Google Sans Code Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+300,U+306-308,U+313,U+483,U+20DB,U+25CC,U+10350-1037A}@font-face{font-family:Google Sans Code Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/_astro/google-sans-code-symbols-wght-normal.DYh2i20j.woff2)format("woff2-variations");unicode-range:U+1-C,U+E-1F,U+7F-9F,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:Google Sans Code Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/_astro/google-sans-code-symbols2-wght-normal.B9bgzW0v.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Google Sans Code Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+303-304,U+307-308,U+30A,U+320,U+323-325,U+32D-32E,U+330-331,U+60C,U+61B-61C,U+61F,U+621,U+640,U+64B-655,U+660-66C,U+670,U+700-74F,U+860-86A,U+1DF8,U+1DFA,U+200C-200F,U+25CC,U+2670-2671}@font-face{font-family:Google Sans Code Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/_astro/google-sans-code-vietnamese-wght-normal.DxxfW2pt.woff2)format("woff2-variations");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:Google Sans Code Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/_astro/google-sans-code-latin-ext-wght-normal.Cxz4iEe8.woff2)format("woff2-variations");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:Google Sans Code Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/_astro/google-sans-code-latin-wght-normal.BLCTwao7.woff2)format("woff2-variations");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}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--radius-md:.375rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:before,:after{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-background);color:var(--color-text);color-scheme:light dark;font-family:var(--font-family);text-rendering:optimizelegibility;scrollbar-gutter:stable;font-size:16px;font-weight:400;line-height:1.6;overflow-y:scroll}body{background-color:var(--color-background);color:var(--color-text);margin:0;transition:background-color .15s,color .15s}::selection{background-color:var(--color-primary);color:#fff}a{color:var(--color-text-link);-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500;transition:color .15s}a:hover{color:var(--color-text-link-hover)}h1,h2,h3,h4,h5{color:var(--color-text-emphasized);font-family:var(--font-family-heading);line-height:1.3}h1{font-size:var(--h1);margin-top:0;margin-bottom:1rem;font-weight:700;line-height:1.2}h2,h3,h4,h5,ol,p,table,ul,blockquote{margin:1.25rem 0}h2,h3,h4{font-weight:600}h2{font-size:var(--h2)}h3{font-size:var(--h3);color:var(--color-text-heading-muted);font-weight:500}h4{font-size:var(--h4)}ul{padding-left:1rem}li{padding-bottom:.25rem;line-height:1.6}li::marker{color:var(--color-marker);font-size:.95rem}mark{background:var(--yellow);border-radius:var(--border-radius)}.prose table{border-collapse:collapse;width:100%;margin:1.5rem 0;display:block;overflow-x:auto}.prose table,.prose td,.prose th{border:1px solid var(--color-border)}.prose td,.prose th{line-height:1.6;padding:12px 24px!important}.prose th{text-align:left;background:var(--color-background-alternate);font-weight:600}.prose table tr{background-color:var(--color-background)}.prose table tr:nth-child(2n){background:var(--color-background-alternate)}img{max-width:100%;display:block}}@layer components{.prose{--tw-prose-body:var(--color-text);--tw-prose-headings:var(--color-text-emphasized);--tw-prose-lead:var(--color-text-muted);--tw-prose-links:var(--color-primary);--tw-prose-bold:var(--color-text-emphasized);--tw-prose-counters:var(--color-text-muted);--tw-prose-bullets:var(--color-text-muted);--tw-prose-hr:var(--color-border);--tw-prose-quotes:var(--color-text-muted);--tw-prose-quote-borders:var(--color-primary);--tw-prose-captions:var(--color-text-muted);--tw-prose-code:var(--color-text);--tw-prose-pre-code:var(--color-text);--tw-prose-pre-bg:var(--color-background-code-block);--tw-prose-th-borders:var(--color-border);--tw-prose-td-borders:var(--color-border);max-width:none;font-size:.95rem;line-height:1.75}.prose a{color:var(--color-text-link)!important;text-decoration:underline!important;-webkit-text-decoration-color:var(--color-text)!important;-webkit-text-decoration-color:var(--color-text)!important;text-decoration-color:var(--color-text)!important;text-underline-offset:4px!important;font-weight:600!important;text-decoration-style:dotted!important;text-decoration-thickness:2px!important}.prose a:hover{background:var(--color-background-navbar-link-active)!important;-webkit-text-decoration-color:var(--color-text-emphasized)!important;-webkit-text-decoration-color:var(--color-text-emphasized)!important;text-decoration-color:var(--color-text-emphasized)!important;color:var(--color-text-link-hover)!important}.prose h1{font-family:var(--font-family-heading);font-size:var(--h1);color:var(--color-text-emphasized);font-weight:700}.prose h2{font-family:var(--font-family-heading);font-size:var(--h2);color:var(--color-text-emphasized);border-bottom:1px solid var(--color-border);padding-bottom:.5rem;font-weight:600}.prose h3{font-family:var(--font-family-heading);font-size:var(--h3);color:var(--color-text-heading-muted);font-weight:500}.prose :not(pre)>code{font-size:.875em;font-family:var(--font-family-monospace);border-radius:4px;padding:.15em .4em;font-weight:400;background-color:var(--color-background-inline-code)!important;color:var(--color-text-emphasized)!important}.prose :not(pre)>code:before,.prose :not(pre)>code:after{content:none}.prose pre{border:1px solid var(--color-border-code-block);border-radius:var(--border-radius);font-size:14px;line-height:1.6;font-family:var(--font-family-monospace);padding:1.25rem 1.5rem;overflow-x:auto;background-color:var(--color-background-code-block)!important}.prose pre code{color:var(--color-text);font-size:inherit;background:0 0;border:none;padding:0;font-family:inherit}.prose pre.astro-code,.prose pre.astro-code span{color:var(--shiki-light)}:root.is-dark .prose pre.astro-code,:root.is-dark .prose pre.astro-code span{color:var(--shiki-dark)}@media (prefers-color-scheme:dark){:root:not(.is-light) .prose pre.astro-code,:root:not(.is-light) .prose pre.astro-code span{color:var(--shiki-dark)}}.prose blockquote{background:var(--color-background-blockquote);border-left:4px solid var(--color-border-blockquote);border-top-right-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius);color:var(--color-text-emphasized);margin:1.5rem 0;padding:1rem 1.5rem;font-style:normal}.prose blockquote p{margin:0}.prose hr{border-color:var(--color-border);margin:2rem 0}.prose ul,.prose ol{color:var(--color-text);padding-left:1.5rem}.prose li{margin:.375rem 0}.prose li::marker{color:var(--color-marker)}.prose p{color:var(--color-text);margin:1rem 0}.prose strong{color:var(--color-text-emphasized);font-weight:700}}@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.static{position:static}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows), 0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:oklab(21% -.00316127 -.0338527/.1);--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.block{display:block}.contents{display:contents}.hidden{display:none}.inline{display:inline}.table{display:table}.flex-shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.flex-wrap{flex-wrap:wrap}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.p-2{padding:calc(var(--spacing) * 2)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}}:root{--gray-0:#fbfbfb;--gray-1:#eee;--gray-2:#e4e4e7;--gray-3:#d4d4d8;--gray-4:#c8c8cf;--gray-5:#a1a1a8;--gray-6:#4e4e55;--gray-7:#323239;--gray-8:#25252b;--gray-9:#1c1c20;--gray-10:#1d1d22;--gray-11:#16161a;--gray-12:#0d0d11;--beige-0:#fdf9ee;--beige-1:#f6f0df;--beige-2:#eee8d5;--beige-25:#e5dcbd;--beige-3:#ded4b2;--beige-4:#c6ba93;--yellow:#ffce64;--color-primary:var(--theme-indigo);--color-highlighted:var(--yellow);--color-text-link:var(--color-primary);--color-text-link-hover:var(--color-primary);--color-border-blockquote:var(--color-primary);--font-family:-apple-system, BlinkMacSystemFont, Avenir, Helvetica, Arial, sans-serif;--font-family-heading:"Outfit Variable", "Outfit", -apple-system, BlinkMacSystemFont, "DM Sans", Avenir, Helvetica, Arial, sans-serif;--font-family-monospace:Menlo, "Google Sans Code Variable", "Google Sans Code", monospace;--font-family-monospace2:"Google Sans Code Variable", "Google Sans Code", monospace;--border-radius:6px;--navbar-height:60px;--footer-height:60px;--content-width:760px;--layout-padding-vertical:1.5rem;--layout-padding-horizontal:1.5rem;--sidebar-width:260px;--post-sidebar-width:260px;--main-layout-width:calc(var(--post-sidebar-width) + var(--content-width));--font-size:.95rem;--h1:1.75rem;--h2:1.375rem;--h3:1.15rem;--h4:1rem;--box-shadow-card-dark:0px 4px 7px #0001024d, 0px 2px 2px #0001024d, 0px 1px 1px #0001024d;--box-shadow-card-light:0px 4px 4px #e5dcbd1a, 0px 2px 2px #e5dcbd1a, 0px 1px 1px #e5dcbd1a;--box-shadow-elevated-light:#7c724c66 0px 5px 15px 0px}:root:where(:not(.is-dark)){--theme-pink:#b12d6c;--theme-blue:#2f71b4;--theme-lavender:#a455be;--theme-green:#2d922d;--theme-yellow:#ac7c14;--theme-indigo:#4f46e5;--color-background:#f4f4f5;--color-background-alternate:#e4e4e7;--color-background-navbar:#f4f4f5;--color-background-navbar-title:#00000014;--color-background-sidebar:#f4f4f5;--color-background-input:#fafafa;--color-background-input-hover:#f4f4f5;--color-background-code:#fafafa;--color-background-blockquote:#fafafa;--color-background-navbar-link-hover:#e4e4e7;--color-background-navbar-link-active:#e4e4e7;--color-background-card:#fff;--color-text:var(--gray-8);--color-text-emphasized:var(--gray-10);--color-text-muted:var(--gray-6);--color-text-heading-muted:var(--gray-6);--color-text-navbar-link:var(--gray-7);--color-text-navbar-link-hover:var(--gray-10);--color-border:#d4d4d8;--color-border-hover:#a1a1aa;--color-border-card:#e4e4e7;--color-marker:var(--gray-7);--color-background-code-block:#fafafa;--color-border-code-block:#d4d4d8;--color-background-inline-code:#00000014;--box-shadow:var(--box-shadow-card-light);--box-shadow-elevated:var(--box-shadow-elevated-light);--color-background-button:transparent;--color-background-button-hover:var(--color-primary);--color-border-button:var(--color-primary);--color-border-button-hover:var(--color-primary);--color-text-button:var(--color-primary);--color-text-button-hover:#fff;--color-background-button-secondary:#e4e4e7;--color-background-button-secondary-hover:transparent;--color-border-button-secondary:#d4d4d8;--color-border-button-secondary-hover:var(--color-primary);--color-text-button-secondary:var(--color-text);--color-text-button-secondary-hover:var(--color-primary)}@media (prefers-color-scheme:dark){:root:where(:not(.is-light)){--theme-pink:#fa91c2;--theme-blue:#6ab0f3;--theme-lavender:#c892e7;--theme-green:#92d192;--theme-yellow:#fcdc97;--theme-indigo:#a5b4fc;--yellow:#ffd479;--color-primary:var(--theme-indigo);--color-text-link:var(--color-primary);--color-text-link-hover:var(--color-primary);--color-background:var(--gray-9);--color-background-alternate:var(--gray-10);--color-background-navbar:var(--gray-9);--color-background-navbar-title:#0f0f0f80;--color-background-sidebar:var(--gray-9);--color-background-input:var(--gray-8);--color-background-input-hover:var(--gray-7);--color-background-code:var(--gray-8);--color-background-blockquote:var(--gray-8);--color-background-navbar-link-hover:var(--gray-8);--color-background-navbar-link-active:var(--gray-7);--color-background-card:var(--gray-8);--color-text:var(--gray-2);--color-text-emphasized:var(--gray-0);--color-text-muted:var(--gray-4);--color-text-heading-muted:var(--gray-2);--color-text-navbar-link:var(--gray-1);--color-text-navbar-link-hover:var(--gray-0);--color-border:var(--gray-7);--color-border-hover:var(--gray-5);--color-border-card:var(--gray-7);--color-marker:var(--gray-6);--color-background-code-block:var(--gray-8);--color-border-code-block:var(--gray-6);--color-background-inline-code:#ffffff26;--box-shadow:var(--box-shadow-card-dark);--box-shadow-elevated:var(--box-shadow-card-dark);--color-background-button:var(--gray-8);--color-background-button-hover:#ffffff0d;--color-border-button:var(--gray-7);--color-border-button-hover:var(--color-primary);--color-text-button:var(--gray-0);--color-text-button-hover:var(--color-primary);--color-background-button-secondary:var(--gray-8);--color-background-button-secondary-hover:#ffffff0d;--color-border-button-secondary:var(--gray-7);--color-border-button-secondary-hover:var(--color-primary);--color-text-button-secondary:var(--gray-0);--color-text-button-secondary-hover:var(--color-primary)}}:root:where(.is-dark){--theme-pink:#fa91c2;--theme-blue:#6ab0f3;--theme-lavender:#c892e7;--theme-green:#92d192;--theme-yellow:#fcdc97;--theme-indigo:#a5b4fc;--yellow:#ffd479;--color-primary:var(--theme-indigo);--color-text-link:var(--color-primary);--color-text-link-hover:var(--color-primary);--color-background:var(--gray-9);--color-background-alternate:var(--gray-10);--color-background-navbar:var(--gray-9);--color-background-navbar-title:#0f0f0f80;--color-background-sidebar:var(--gray-9);--color-background-input:var(--gray-8);--color-background-input-hover:var(--gray-7);--color-background-code:var(--gray-8);--color-background-blockquote:var(--gray-8);--color-background-navbar-link-hover:var(--gray-8);--color-background-navbar-link-active:var(--gray-7);--color-background-card:var(--gray-8);--color-text:var(--gray-2);--color-text-emphasized:var(--gray-0);--color-text-muted:var(--gray-4);--color-text-heading-muted:var(--gray-2);--color-text-navbar-link:var(--gray-1);--color-text-navbar-link-hover:var(--gray-0);--color-border:var(--gray-7);--color-border-hover:var(--gray-5);--color-border-card:var(--gray-7);--color-marker:var(--gray-6);--color-background-code-block:var(--gray-8);--color-border-code-block:var(--gray-6);--color-background-inline-code:#ffffff26;--box-shadow:var(--box-shadow-card-dark);--box-shadow-elevated:var(--box-shadow-card-dark);--color-background-button:var(--gray-8);--color-background-button-hover:#ffffff0d;--color-border-button:var(--gray-7);--color-border-button-hover:var(--color-primary);--color-text-button:var(--gray-0);--color-text-button-hover:var(--color-primary);--color-background-button-secondary:var(--gray-8);--color-background-button-secondary-hover:#ffffff0d;--color-border-button-secondary:var(--gray-7);--color-border-button-secondary-hover:var(--color-primary);--color-text-button-secondary:var(--gray-0);--color-text-button-secondary-hover:var(--color-primary)}@media screen and (width>=600px){:root{--layout-padding-vertical:2rem;--layout-padding-horizontal:2rem;--h1:2rem;--h2:1.5rem;--h3:1.25rem;--h4:1.05rem}}.layout{display:block}@media screen and (width>=1020px){.layout{grid-template-columns:var(--sidebar-width) 1fr;max-width:1240px;margin:0 auto;padding-top:0;display:grid}.layout.has-toc{grid-template-columns:var(--sidebar-width) 1fr var(--post-sidebar-width)}.layout.has-graph{grid-template-columns:var(--sidebar-width) 1fr 272px}}.graph-panel{display:none}@media screen and (width>=1020px){.layout.has-graph .graph-panel{justify-content:center;height:100vh;padding-top:3.5rem;display:flex;position:sticky;top:0}}.kgraph-svg{width:100%;height:auto;display:block;overflow:visible}.kgraph-edge{stroke:var(--color-border);stroke-dasharray:600;stroke-dashoffset:600px;stroke-linecap:round;stroke-width:1px;transition:opacity .12s,stroke .12s,stroke-width .12s;animation:.9s forwards kgraph-draw}@keyframes kgraph-draw{to{stroke-dashoffset:0}}.kgraph-edge--active{opacity:1!important;stroke:var(--color-primary)!important;stroke-width:1.5px!important}.kgraph-edge--dim{opacity:.1}.kgraph-node{transition:opacity .12s}.kgraph-node--post{fill:var(--color-primary);opacity:.75}.kgraph-node--project{fill:#22c55e;opacity:.75}.kgraph-node--tag{fill:var(--color-text-muted);opacity:.4}.kgraph-label{fill:var(--color-text-muted);font-family:var(--font-family);opacity:0;pointer-events:none;user-select:none;font-size:8.5px;transition:opacity .12s,fill .12s}.kgraph-group{cursor:default}a.kgraph-group{cursor:pointer}.kgraph-group:hover .kgraph-node--post,.kgraph-group:hover .kgraph-node--project{opacity:1}.kgraph-group:hover .kgraph-node--tag{fill:var(--color-text);opacity:.8}.kgraph-group:hover .kgraph-label{fill:var(--color-text-emphasized);opacity:1}.kgraph-group--dim .kgraph-node{opacity:.15}.kgraph-legend{flex-wrap:wrap;justify-content:center;gap:.35rem .65rem;margin-top:-.5rem;display:flex}.kgraph-legend-item{color:var(--color-text-muted);align-items:center;gap:.35rem;font-size:10px;display:flex}.kgraph-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.kgraph-dot--post{background:var(--color-primary);opacity:.75}.kgraph-dot--project{opacity:.75;background:#22c55e}.kgraph-dot--tag{background:var(--color-text-muted);opacity:.4}.main-wrapper{min-height:100vh}.main-content{max-width:var(--content-width);padding:var(--layout-padding-vertical) var(--layout-padding-horizontal);width:100%}.main-content.full-width{max-width:100%}.toc-panel{display:none}@media screen and (width>=1020px){.layout.has-toc .toc-panel{border-left:1px solid var(--color-border);scrollbar-width:thin;background:0 0;height:max-content;max-height:calc(100vh - 4rem);margin-top:215px;display:block;position:sticky;top:2rem;overflow-y:auto}}.toc-inner{padding:0 1.25rem 2rem}.toc-sticky{padding:var(--layout-padding-vertical) 1.25rem}.sidebar::-webkit-scrollbar{width:8px;height:8px}.sidebar{-ms-overflow-style:auto;background:var(--color-background-sidebar);border-right:1px solid var(--color-border);height:100vh;min-width:var(--sidebar-width);scrollbar-width:thin;width:var(--sidebar-width);display:none;position:sticky;top:0;overflow-y:auto}@media screen and (width>=1020px){.sidebar{display:block}}.sidebar-section{border-bottom:1px solid var(--color-border);margin:1.25rem;padding-bottom:1.5rem}.about-avatar{float:right;object-fit:cover;border-radius:50%;margin:0 0 1rem 1.5rem}@media (width<=640px){.about-avatar{float:none;margin:0 auto 1.5rem;display:block}}.sidebar-section:last-child{border:none;padding-bottom:3rem}.sidebar-title-link{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.sidebar-title-link .site-name{color:var(--color-text-emphasized);font-family:var(--font-family-heading);white-space:nowrap;font-size:18px;font-weight:500}.site-name:hover{text-decoration:underline;-webkit-text-decoration-color:var(--color-text-emphasized);-webkit-text-decoration-color:var(--color-text-emphasized);text-decoration-color:var(--color-text-emphasized);text-underline-offset:4px;text-decoration-style:dotted;text-decoration-thickness:2px}.avatar{border-radius:var(--border-radius);object-fit:cover;width:50px;height:50px}.sidebar-section .sidebar-nav-links{flex-direction:column;gap:2px;display:flex}.sidebar-section .sidebar-nav-links a{border-radius:var(--border-radius);color:var(--color-text);align-items:center;gap:.5rem;margin-left:-.5rem;margin-right:-.5rem;padding:4px .5rem;font-size:16px;font-weight:500;text-decoration:none;display:flex}.sidebar-section .sidebar-nav-links a svg{opacity:.7;flex-shrink:0}.sidebar-section .sidebar-nav-links a:hover svg,.sidebar-section .sidebar-nav-links a.active svg{opacity:1}.sidebar-section .sidebar-nav-links a:hover,.sidebar-section .sidebar-nav-links a.active{background:var(--color-background-navbar-link-hover);color:var(--color-text-emphasized);text-decoration:none}.sidebar-section .sidebar-links{flex-direction:column;gap:6px;display:flex}.sidebar-section .sidebar-links a{color:var(--color-text-muted);align-items:center;gap:.5rem;font-size:.9rem;text-decoration:none;display:flex}.sidebar-section .sidebar-links a:hover{color:var(--color-text-emphasized);text-decoration:none}.sidebar-content p{margin:0;font-size:15px}.sidebar-section h2{margin-top:0;margin-bottom:.75rem;font-size:.95rem;font-weight:600}.sidebar-section p{font-size:14px}.mobile-header{z-index:50;background-color:var(--color-background);border-bottom:1px solid var(--color-border);backdrop-filter:blur(8px);justify-content:space-between;align-items:center;padding:.75rem 1.25rem;display:flex;position:sticky;top:0}@media screen and (width>=1020px){.mobile-header{display:none}}.mobile-header-right{align-items:center;gap:.25rem;display:flex}.mobile-header .site-name{color:var(--color-text-emphasized);font-family:var(--font-family-heading);white-space:nowrap;font-size:16px;font-weight:500;text-decoration:none}.mobile-nav{z-index:40;background-color:var(--color-background);border-bottom:1px solid var(--color-border);flex-direction:column;gap:.125rem;padding:1rem 1.25rem;display:none;position:fixed;top:53px;left:0;right:0}.mobile-nav--open{display:flex}.mobile-nav-link{color:var(--color-text-muted);border-radius:4px;padding:.625rem .5rem;font-size:.9375rem;font-weight:500;text-decoration:none;transition:color .15s;display:block}.mobile-nav-link--active{color:var(--color-text);font-weight:600}.hero{margin-top:1rem;margin-bottom:1.5rem}.hero.hero-index{margin-bottom:2.5rem}@media screen and (width>=800px){.hero{margin-top:2rem}.hero.hero-index{margin-top:2rem;margin-bottom:4rem}}.hero-wrapper{flex-direction:column-reverse;align-items:flex-start;gap:.5rem;display:flex}.hero-container{flex-direction:row-reverse;justify-content:space-between;align-items:center;width:100%;display:flex}.hero-image{object-fit:cover;border-radius:50%;width:100px;max-width:100px;height:100px}.hero-image-container{flex-shrink:0;position:relative}@media screen and (width>=800px){.hero-image{width:150px;max-width:150px;height:150px}.hero-image-container{margin-top:2rem;position:relative}.hero-image-container:before{background:var(--color-primary);content:"";opacity:.2;border-radius:50%;width:180px;height:180px;position:absolute;top:1rem;left:0}.hero-image{z-index:9;width:150px;max-width:150px;height:150px;display:block;position:relative}.hero-wrapper{flex-direction:row;align-items:center;gap:3rem}}.hero-description{max-width:600px;color:var(--color-text);margin:0 0 1.25rem;font-size:.95rem}@media screen and (width>=800px){.hero-description{font-size:1rem}}.hero-description a{text-decoration:underline;-webkit-text-decoration-color:var(--color-text);-webkit-text-decoration-color:var(--color-text);text-decoration-color:var(--color-text);text-underline-offset:4px;font-weight:600;text-decoration-style:dotted;text-decoration-thickness:2px}.large-links{flex-wrap:wrap;gap:1.5rem;display:flex}a.large-link,.large-link{color:var(--color-text-link);text-decoration:underline;-webkit-text-decoration-color:var(--color-text);-webkit-text-decoration-color:var(--color-text);text-decoration-color:var(--color-text);text-underline-offset:6px;align-items:center;gap:.25rem;font-size:.95rem;font-weight:600;text-decoration-style:dotted;text-decoration-thickness:2px;display:flex}.home-section{margin-top:2.5rem}@media screen and (width>=800px){.home-section{margin-top:3.5rem}}.home-section-title{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em;margin:0 0 1.25rem;font-size:.75rem;font-weight:600}.home-item{border-bottom:1px solid var(--color-border);padding:1.1rem 0;text-decoration:none;display:block}.home-item:first-child{padding-top:0}.home-item:last-child{border-bottom:none;padding-bottom:0}.home-item-title{color:var(--color-text-emphasized);margin:0 0 .35rem;font-size:1.05rem;font-weight:600;transition:color .15s}.home-item:hover .home-item-title{color:var(--color-primary)}.home-item-desc{color:var(--color-text-muted);margin:0 0 .6rem;font-size:.9rem;line-height:1.5}.home-item-meta{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.8rem;display:flex}.currently-section h2{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em;margin-top:0;margin-bottom:1.25rem;font-size:.75rem;font-weight:600}.currently-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.currently-item{gap:.75rem;font-size:1rem;display:flex}.currently-label{color:var(--color-text-muted);flex-shrink:0;min-width:100px;font-weight:500}.currently-value{color:var(--color-text)}a.post{border-radius:var(--border-radius);flex-direction:column;width:fit-content;margin-bottom:.5rem;text-decoration:none;display:flex}a.post>div{align-items:center;gap:.5rem;margin:0;font-weight:600;display:flex}a.post time{color:var(--color-text-muted);width:125px;min-width:125px;font-size:14px;font-weight:400;text-decoration:none;display:block}@media screen and (width>=1020px){a.post{padding:4px 0;font-size:.95rem}a.post time{align-items:center;gap:.5rem;font-size:.9rem;display:flex}a.post:hover{background:var(--color-background-navbar-link-hover);border-radius:var(--border-radius)}a.post:hover time{color:var(--color-text-emphasized);text-decoration:none}}.year{margin-bottom:1.5rem;padding-bottom:1.5rem}.year h2{margin-bottom:.5rem;font-weight:700}.main-article h2{border-bottom:1px solid var(--color-border);padding-bottom:.5rem}blockquote{background:var(--color-background-blockquote);border-bottom-right-radius:var(--border-radius);border-left:4px solid var(--color-border-blockquote);border-top-right-radius:var(--border-radius);color:var(--color-text-emphasized);margin:1.25rem 0;padding:1rem;font-size:1rem;font-weight:400;line-height:1.6}blockquote>*{margin-top:0}blockquote :last-child{margin-bottom:0}@media screen and (width>=800px){blockquote{margin:2rem 0;padding:1rem 1.5rem}}.toc-title{color:var(--color-text);margin:0 0 1rem;font-size:1.125rem;font-weight:600}.toc-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.toc-item{margin:0}.toc-h3{padding-left:.75rem}.toc-link{color:var(--color-text-muted);border-left:2px solid #0000;margin-left:-.625rem;padding:.25rem 0 .25rem .625rem;font-size:.8125rem;line-height:1.5;text-decoration:none;transition:color .15s;display:block}.toc-link--active{color:var(--color-primary);border-left-color:var(--color-primary);font-weight:500}.footer{border-top:1px solid var(--color-border);padding:1.25rem 0;font-size:13px}.footer-section{max-width:var(--content-width);flex-direction:column;justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-left:auto;margin-right:auto;padding:1.5rem 2rem;display:flex}@media screen and (width>=800px){.footer{font-size:14px}.footer-section{flex-direction:row;align-items:center}}a.footer-link{color:var(--color-text-muted);white-space:nowrap}a.footer-link:hover{color:var(--color-text-link-hover);text-decoration:underline 2px}.footer-made-by{align-items:center;gap:5px;display:flex}.hidden{display:none}.small{color:var(--color-text-muted);font-size:.9rem}time{font-family:var(--font-family-monospace2)}.page-article,.post-article{padding-top:1rem}@media screen and (width>=800px){.page-article,.post-article{padding-top:2rem}}.page-article h1,.post-article h1{margin-top:0;margin-bottom:1rem;line-height:1.2;font-size:var(--h1)!important;color:var(--color-text-emphasized)!important;font-weight:700!important}.page-divider{border:none;border-top:1px solid var(--color-border);margin:2rem 0}.post-header{border-bottom:1px solid var(--color-border);flex-direction:column;gap:.75rem;margin-bottom:2rem;padding-bottom:1.5rem;display:flex}.post-back-link{color:var(--color-text-muted);align-items:center;gap:.25rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .15s;display:inline-flex}.post-back-link:hover{color:var(--color-primary);text-decoration:none}.post-meta{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.875rem;display:flex}.post-meta time{font-family:var(--font-family-monospace2);letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-muted);font-size:.8rem}.post-tags{flex-wrap:wrap;gap:.375rem;margin-left:auto;display:flex}.post-tag{background:var(--color-background-code);border:1px solid var(--color-border);border-radius:var(--border-radius);color:var(--color-text-muted);padding:.2rem .5rem;font-size:.75rem}.post-footer{border-top:1px solid var(--color-border);margin-top:3rem;padding-top:1.5rem}.post-comments{border-top:1px solid var(--color-border);margin-top:3rem;padding-top:2rem}.skills-section h2{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em;margin-top:0;margin-bottom:1rem;font-size:.75rem;font-weight:600}.skills-grid{grid-template-columns:1fr 1fr;gap:.75rem 2rem;display:grid}.skill-item{flex-direction:column;gap:.125rem;display:flex}.skill-category{color:var(--color-text-muted);font-size:.75rem}.skill-items{color:var(--color-text);font-size:.9375rem}.section-heading{margin-bottom:2rem}.section-heading h1{font-size:var(--h1);margin-bottom:.5rem;font-weight:700}.section-heading .description{color:var(--color-text-heading-muted);font-size:1rem}h1,h2,h4,h5{color:var(--color-text-emphasized)}h3{color:var(--color-text-heading-muted)}p,li,td,th{color:var(--color-text)}strong,b{color:var(--color-text-emphasized);font-weight:700}.prose strong,.prose b,.hero-description strong,.hero-description b{font-weight:700;color:var(--color-text-emphasized)!important}.kgraph-wrap,.toc{flex-direction:column;gap:.5rem;display:flex}.sidebar-content a,.main-article a,.page-article a{text-decoration:underline;-webkit-text-decoration-color:var(--color-text);-webkit-text-decoration-color:var(--color-text);text-decoration-color:var(--color-text);text-underline-offset:4px;border-radius:4px;font-weight:600;text-decoration-style:dotted;text-decoration-thickness:2px}.sidebar-content a:hover,.hero-description a:hover,.main-article a:hover,.page-article a:hover{background:var(--color-background-navbar-link-active);-webkit-text-decoration-color:var(--color-text-emphasized);-webkit-text-decoration-color:var(--color-text-emphasized);text-decoration-color:var(--color-text-emphasized)}.mobile-nav-link:hover,.toc-link:hover{color:var(--color-text);text-decoration:none}a.large-link:hover,.large-link:hover,a.post:hover div{-webkit-text-decoration-color:var(--color-text-emphasized)!important;-webkit-text-decoration-color:var(--color-text-emphasized)!important;text-decoration-color:var(--color-text-emphasized)!important;text-decoration-style:dotted!important}.chat-page-header{margin-bottom:1.5rem}.chat-page-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.chat-page-title{color:var(--color-text-emphasized);align-items:center;gap:.5rem;font-size:1.75rem;font-weight:700;display:flex;margin:0!important}.chat-page-icon{color:var(--theme-indigo,#4f46e5);flex-shrink:0}.chat-page-status-badge{background:var(--color-background-input);border:1px solid var(--color-border);border-radius:9999px;align-items:center;gap:.4rem;padding:4px 10px;display:inline-flex}.chat-status-dot{background-color:var(--theme-green,#22c55e);border-radius:50%;width:8px;height:8px;display:inline-block;box-shadow:0 0 0 2px #22c55e33}.chat-status-text{color:var(--color-text-muted);font-size:12px;font-family:var(--font-family-monospace,monospace);font-weight:500}.chat-status-text.is-typing{color:var(--theme-indigo,#4f46e5);animation:1s infinite alternate pulse-typing}@keyframes pulse-typing{0%{opacity:.5}to{opacity:1}}.chat-page-subtitle{color:var(--color-text-muted);line-height:1.55;margin:0!important;font-size:14.5px!important}.dedicated-ai-chat{flex-direction:column;gap:.75rem;margin-top:1rem;display:flex}.chat-suggestions-section{flex-direction:column;gap:.5rem;display:flex}.chat-suggestions-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-size:12px;font-weight:600}.chat-suggestions-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;display:grid}.chat-suggestion-card{background:var(--color-background-input);border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;font-size:12.5px;font-family:var(--font-family,sans-serif);text-align:left;border-radius:8px;align-items:center;gap:8px;padding:8px 12px;line-height:1.35;transition:all .15s;display:flex}.chat-suggestion-card:hover{background:var(--color-background-navbar-link-hover);border-color:var(--theme-indigo,#4f46e5);color:var(--color-text-emphasized);transform:translateY(-1px);box-shadow:0 2px 6px #0000000d}.chat-suggestion-icon{flex-shrink:0;font-size:16px}.chat-suggestion-text{font-weight:500}.chat-messages-container{background:var(--color-background-input);border:1px solid var(--color-border);border-radius:10px;flex-direction:column;gap:16px;min-height:320px;max-height:520px;padding:1.25rem;display:flex;overflow-y:auto}.chat-messages-container::-webkit-scrollbar{width:6px}.chat-messages-container::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}.chat-empty-state{flex-direction:column;gap:1rem;width:100%;padding:.25rem 0;display:flex}.chat-empty-text{color:var(--color-text-muted);line-height:1.5;margin:0!important;font-size:12.5px!important}.chat-message-row{align-items:flex-start;gap:0;width:100%;display:flex}.chat-message-row--user{flex-direction:row-reverse}.chat-bubble-wrapper{flex-direction:column;max-width:82%;display:flex}.chat-message-row--user .chat-bubble-wrapper{align-items:flex-end}.chat-sender-name{font-size:11px;font-family:var(--font-family-monospace,monospace);color:var(--color-text-muted);margin-bottom:3px;padding:0 4px}.chat-bubble{word-break:break-word;border-radius:10px;padding:10px 14px;font-size:13.5px;line-height:1.55}.chat-bubble--user{background:var(--color-background-navbar-link-active);color:var(--color-text-emphasized);border:1px solid var(--color-border);border-top-right-radius:2px}.chat-bubble--assistant{background:var(--color-background-card);color:var(--color-text);border:1px solid var(--color-border);border-top-left-radius:2px;box-shadow:0 1px 4px #0000000a}.chat-bubble .chat-p{margin:0 0 .5rem}.chat-bubble .chat-p:last-child{margin-bottom:0}.chat-bubble .chat-h1,.chat-bubble .chat-h2,.chat-bubble .chat-h3,.chat-bubble .chat-h4{font-family:var(--font-family-heading,inherit);color:var(--color-text-emphasized);margin:.75rem 0 .35rem;font-weight:600;line-height:1.3}.chat-bubble .chat-h1{font-size:1.05rem}.chat-bubble .chat-h2{font-size:.98rem}.chat-bubble .chat-h3{font-size:.92rem}.chat-bubble .chat-h4{font-size:.88rem}.chat-bubble .chat-code{font-family:var(--font-family-monospace,monospace);background:var(--color-background-code,#0000000d);border:1px solid var(--color-border);border-radius:4px;padding:2px 5px;font-size:12px}.chat-bubble .chat-code-block{font-family:var(--font-family-monospace,monospace);background:var(--color-background-code,#0000000d);border:1px solid var(--color-border);border-radius:6px;margin:.5rem 0;padding:.75rem 1rem;font-size:12px;overflow-x:auto}.chat-bubble .chat-link{color:var(--theme-indigo,#4f46e5);text-underline-offset:2px;font-weight:500;text-decoration:underline}.chat-bubble .chat-link:hover{text-decoration-thickness:2px}.chat-bubble .chat-list,.chat-bubble .chat-ordered-list{margin:.4rem 0;padding-left:1.25rem}.chat-bubble .chat-list li,.chat-bubble .chat-ordered-list li{margin-bottom:.25rem}.chat-input-section{flex-direction:column;display:flex}.chat-main-form{flex-direction:column;gap:.5rem;display:flex}.chat-input-box{background:var(--color-background-card);border:1px solid var(--color-border);border-radius:10px;align-items:flex-end;gap:8px;padding:8px 10px;transition:border-color .15s,box-shadow .15s;display:flex;position:relative;box-shadow:0 1px 3px #0000000a}.chat-input-box:focus-within{border-color:var(--theme-indigo,#4f46e5);box-shadow:0 0 0 3px #4f46e526}.chat-main-textarea{color:var(--color-text);font-size:14px;font-family:var(--font-family,sans-serif);resize:none;background:0 0;border:none;outline:none;flex:1;min-height:44px;max-height:160px;padding:4px 2px;line-height:1.45}.chat-main-textarea::placeholder{color:var(--color-text-muted);opacity:.8}.chat-send-button{background:var(--theme-indigo,#4f46e5);color:#fff;cursor:pointer;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:opacity .15s,transform .15s;display:flex}.chat-send-button:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.chat-send-button:disabled{opacity:.4;cursor:not-allowed}.chat-controls-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:0 4px;display:flex}.chat-hint-text{color:var(--color-text-muted);font-size:12px}.chat-clear-btn{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:.35rem;padding:2px 6px;font-size:12px;transition:color .15s;display:inline-flex}.chat-clear-btn:hover{color:var(--color-text-emphasized)}.chat-clear-btn.hidden{display:none}@media (width<=640px){.chat-bubble-wrapper{max-width:90%}.chat-suggestions-grid{grid-template-columns:1fr}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}
