/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@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-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@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;--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]){-webkit-text-decoration:underline dotted;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;-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}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.static{position:static}.sticky{position:sticky}.isolate{isolation:isolate}.block{display:block}.contents{display:contents}.grid{display:grid}.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,)}.border{border-style:var(--tw-border-style);border-width:1px}.lowercase{text-transform:lowercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.blur{--tw-blur:blur(8px);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,)}}#nprogress{pointer-events:none}#nprogress .bar{z-index:1031;background:#29d;width:100%;height:2px;position:fixed;top:0;left:0}#nprogress .peg{opacity:1;width:100px;height:100%;display:block;position:absolute;right:0;transform:rotate(3deg)translateY(-4px);box-shadow:0 0 10px #29d,0 0 5px #29d}#nprogress .spinner{z-index:1031;display:block;position:fixed;top:15px;right:15px}#nprogress .spinner-icon{box-sizing:border-box;border:2px solid #0000;border-color:#29d #0000 #0000 #29d;border-radius:50%;width:18px;height:18px;animation:.4s linear infinite nprogress-spinner}.nprogress-custom-parent{position:relative;overflow:hidden}.nprogress-custom-parent #nprogress .spinner,.nprogress-custom-parent #nprogress .bar{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0)}to{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(./source-serif-4-cyrillic-ext-wght-normal.cHuGMAiY.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(./source-serif-4-cyrillic-wght-normal.DwHjdM4S.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(./source-serif-4-greek-wght-normal.ece1310W.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(./source-serif-4-vietnamese-wght-normal.D-yuW59g.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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(./source-serif-4-latin-ext-wght-normal.CxNHBx-q.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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(./source-serif-4-latin-wght-normal.D9elroTD.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:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(./source-serif-4-cyrillic-ext-wght-italic.BXuSHrjR.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(./source-serif-4-cyrillic-wght-italic.RLIThRd4.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(./source-serif-4-greek-wght-italic.F2ziEGcb.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(./source-serif-4-vietnamese-wght-italic.C3q834ic.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:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(./source-serif-4-latin-ext-wght-italic.CpkvI5hy.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:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(./source-serif-4-latin-wght-italic.D2yaqPoE.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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAASIABAAAAAACQQAAAQuAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVF4AdBEICoRkhAALIAABNgIkAzoEIAWFAAeBFAwHG2oHKJ6DceNW4lJEFHn9tEOE37LNsvkjHr7f739rn3u+OSrSxLQytE91Dw2PYtNVq3Qaw/vJ7fUBMdOj/u2ImB98cT5WUx9F13ZKt06mU7tG1sAYcM26yCRX4f/0904bmwq8hwkUUMTRX61pa9C3xlpAGYw1vOu8C2SBZZFlld7DAW82RJWmwYMI1AJCKBNCIASqdZGFmtPSNQRhMpR0EKjWTwm6z6sJ+4jqhxjovTinVdRpZaQjaQzAYjI8NgAKDJCokgunCn9oUQE8VZd/F//+v6P4F1U9gLr58yNI/dJX9BAshEoJbTDogz7ocKoUsPvES8UK/aQIUQgpGgECBVLkOEV6iASTYgNAPKdNXayhDPL7IJuAZnEYSZ0eOLc9i5Rv5/+lEi3sW/kfnCf/+fTe0sxS7CKLx5erRJkKOixEqQaoqrvx5HN4iz4VhX0gS6DjFIWUzn/fIXJRVFY1NFRVNVeFt+SYmrK6vCU6eJsnKnJj5HTESMTQZOTI3Y/tzr3rUcOsiRy/ciP50s3Mycgxmhz9GMXhjzVH30ut796NHP0UUa31/Zoa6vCH6iPvdIM0IRANaT60FablmZlZd+UKNFy9NrvnFGxb5NC2CRxR0/rIyF/WNn+35sv9r+tHVhkseuWGKkCPPh96+GXt8Lc/Sh24ujfjf+tNw1lZWreiPuHb/PSpyjdv2rf/++ZE5TSKjFdZxYsBvr1sEHl5STuHZqYR7jGYGvGBBdjcaB5bODY1GAxMjsd0wDMIzXAXODRd74DxNMtO4YuYHclgLQRzp9KlUmxptCwv9bYgvWGD2xBW7r9413fdJu+mxzvzAUYeeONQvZP4kgfqZle4jhH/MWh+UbxgtJdrLdXLymNL53PRU0D3Q6FcXTfGqGcul6vrqhgLGAVSv+IVIfZOHpu+mlLqSlnj903j8mazXDsba/wbxhS/4Oubh1c5/uXDgt4j5KtnGEy5BIJHo0ur+jD+r2qCkuP1aRVM8EpUoRYSJyqNRA38uwDvHBNo0AejO2Z+ZYLLal1QiFyFh1EDQOgSCSCpjwwKU8yDbIjroEwne0G5Qca49cYp4AlqtQNZfWTQoFb1tRpFYAmRD+HXTkV4uQhG2bg4OKmyoypAsUGtWgQXyFxYrkpODeUxvGqIZA61erXo0sFG1UBGuPgpuon8RNUG2DhovAjZCBuZwtXrU3mQGki9+pm0eVZAXoWxLWTQoYHBPrJR4WunNxIFbCHfkTyPK+sqxjxDmGArZvf79JGJ3GwEqjwc7a7NIrl/7bJ7Nzu4+n1Ow6shEPnUrtVo7cnd5Wi5qCUbBIQbNKCP95FMCSZylEV5VCiiMqqiOmrKZ/I/C0gI1fyuulVcM2E1r4MhtcV/fbCD+HwEvVzH1dGNAzFE0FTbKzyQz3gootrNbN2a4PuG0j0JOgE=)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./jetbrains-mono-cyrillic-400-normal.BEIGL1Tu.woff2)format("woff2"),url(./jetbrains-mono-cyrillic-400-normal.ugxPyKxw.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./jetbrains-mono-greek-400-normal.C190GLew.woff2)format("woff2"),url(./jetbrains-mono-greek-400-normal.B9oWc5Lo.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,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)format("woff2"),url(./jetbrains-mono-vietnamese-400-normal.CqNFfHCs.woff)format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./jetbrains-mono-latin-ext-400-normal.Bc8Ftmh3.woff2)format("woff2"),url(./jetbrains-mono-latin-ext-400-normal.fXTG6kC5.woff)format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./jetbrains-mono-latin-400-normal.V6pRDFza.woff2)format("woff2"),url(./jetbrains-mono-latin-400-normal.6-qcROiO.woff)format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,d09GMgABAAAAAASUABAAAAAACRAAAAQ3AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVEwAdBEICoRkg3oLIAABNgIkAzoEIAWFHgeBFAwHG3AHKB4HzukrRjyF5Gb4kQ/B873d17mv8TWkoqUUGaHodJCtoqntw7m8tiPWyGkfWDU/IMpzVk4zAs9Czv3c7Os5NvKFG1Ht9vBVXySRZpJc4tTrbM3sTRFcLa3zVboKWRIoAksKSKgqUQWEwlSoqjp44V5J9/kjd0+Fi5xaFjwJArgBAIJgIAgCCAI4CdNMqGuYXYUKdADLAkAAJwl6iX0+bZqEm1AH0Hu9rvrJHwxQG1Q/gFYwWYbgTRWgwEESVzbmtjQAt3DXO7Tu/+9Q/KNKWhTCgZ8fQSWoL0CUUgTBjgL8iEAcce7YHBeA8ZvogieCnxI0BCVeACCAAhBD/oDcAdUPABSgAX4kBPBTwjCAjwYSCneiqF65LUo/qXdYFrRwTujtMrKm07plTbSqLQFAiHBN7E4DG5wkiGXhCYBNETh3K/AciHN69iFfQjFOr9EXQQAAQXRNszs8PR0OH4fDV/dwGe76CHdj1MQa11DXYGcfZ6+B1X0OfwjY+i7KpQ1w9d+1z3/HydCB1f3U8A0fRFv+0bXxPWrZu3d9Nn4UcbLs/QCXLH/j3PCKblKOiZxLOR78W9brPo7eGTLz/F27ZPmePQdCB1YP4nJU91o4gU9cy64L3c3SPu8GfDn6ZXD2cGmllVqSxtD5vCXHm5xaeHlnpffx7DcPvXog5NnjA//cPz2btsz3yf+0MI8ri33tuv7upNbYmW5STbosW8bYItV/SPzxvXC0KnpWnFdC91oojit5Lyo6WcJQ1YzwBYbi52ohJVpcxfcHBqsv0nFz8U74rzS6M7r0RVlXZ3jJC4G92O//7Lm78VOtnUx+aQxAzsqPnrRr1t9zDrezKePvZ027x+fGte4s4NXu7/jEp3G9cM1bICYgACbuETUUD5wmenGXA/IBpAKVrl0AEJ5cqr6Q89tGq+SpqkDfX2DtG+pZ9teuae0AX98c301CX179InyErnSG8WCiABB4HFbVrw/lpTdBIOk82nXbpHKoQGyBpUovAAD4XQA8ZTUCeBJHIpI0v0FRrgcnckV3ANckrwYJKXEihQfdSKPER6XeExmEeEMmSe6QBwWmkZdmSOSthhibgIkBlUYreBKd/0NeVAE9WAyEaQpH6KikDWlUVg43Jy2FOmaYlsZhDEGZXO3mWEyWHI6zuaJkMlcSQ9k4F+KidIiFyZItGDc7r1pUj6wP6zrWB0/fbeeFeHl4YOvETMNiM8Ny+7OO6Qh2wur20YVxFts5dlORdl5Kwd5utR7SRcxqX8RA5Ehacha76hg7c6yzNm/Xf6vOLNrv544lIEkWg7xWo/ItBAeIJEmt0XgBwgM8gTifoiiLJroYYooNTeziEKe4zOoR/wvIKp89hSr+6jFAqw/LaonjmZHSscMNg4iPlWpFrO1RN3zkMU+/xUP+JQ99TbvTl1Vg0gtirT6lbwYAAAA=)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-cyrillic-500-normal.DmUKJPL_.woff2)format("woff2"),url(./jetbrains-mono-cyrillic-500-normal.DJqRU3vO.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-greek-500-normal.JpySY46c.woff2)format("woff2"),url(./jetbrains-mono-greek-500-normal.D7SFKleX.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,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)format("woff2"),url(./jetbrains-mono-vietnamese-500-normal.DNRqzVM1.woff)format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-latin-ext-500-normal.Cut-4mMH.woff2)format("woff2"),url(./jetbrains-mono-latin-ext-500-normal.ckzbgY84.woff)format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-latin-500-normal.BWZEU5yA.woff2)format("woff2"),url(./jetbrains-mono-latin-500-normal.CJOVTJB7.woff)format("woff");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}:root{--bg:#1c1917;--bg-soft:#2a2522;--bg-code:#231f1c;--bg-warm:#241c16;--ink:#f3eee6;--ink-body:#d8d0c6;--ink-soft:#b4aa9e;--ink-mute:#8a8074;--paper:#f6f1e4;--rule:#3d3732;--c-blue:#9eb6d4;--accent:#9eb6d4;--serif:"Source Serif 4", "Iowan Old Style", Georgia, serif;--mono:"JetBrains Mono", "Berkeley Mono", "SF Mono", ui-monospace, Menlo, monospace;--gutter:clamp(20px, 4vw, 56px);--max:1120px;--col:720px;--post-col:680px;--tok-text:#f3eee6;--tok-comment:#8a8074;--tok-punctuation:#b4aa9e;--tok-keyword:#a3b18a;--tok-string:#c4a574;--tok-number:#c17b6b;--tok-function:#9eb6d4;--tok-class:#c4a574;--tok-operator:#b4aa9e;--tok-property:#a3b18a;--title:#f3eee6;--texture-blend:overlay;--paper-specks:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cg fill='white' fill-opacity='.9'%3E%3Ccircle cx='8' cy='21' r='.7'/%3E%3Ccircle cx='27' cy='10' r='.45'/%3E%3Ccircle cx='46' cy='31' r='1.1'/%3E%3Ccircle cx='69' cy='17' r='.55'/%3E%3Ccircle cx='91' cy='8' r='.8'/%3E%3Ccircle cx='119' cy='24' r='.5'/%3E%3Ccircle cx='145' cy='14' r='1'/%3E%3Ccircle cx='154' cy='48' r='.55'/%3E%3Ccircle cx='17' cy='61' r='.9'/%3E%3Ccircle cx='38' cy='74' r='.5'/%3E%3Ccircle cx='62' cy='57' r='.75'/%3E%3Ccircle cx='84' cy='69' r='.45'/%3E%3Ccircle cx='108' cy='52' r='1'/%3E%3Ccircle cx='132' cy='71' r='.65'/%3E%3Ccircle cx='5' cy='101' r='.5'/%3E%3Ccircle cx='29' cy='112' r='1.15'/%3E%3Ccircle cx='52' cy='95' r='.55'/%3E%3Ccircle cx='76' cy='119' r='.8'/%3E%3Ccircle cx='101' cy='99' r='.5'/%3E%3Ccircle cx='127' cy='108' r='1'/%3E%3Ccircle cx='151' cy='93' r='.6'/%3E%3Ccircle cx='14' cy='144' r='.8'/%3E%3Ccircle cx='43' cy='132' r='.5'/%3E%3Ccircle cx='68' cy='151' r='1'/%3E%3Ccircle cx='94' cy='137' r='.45'/%3E%3Ccircle cx='116' cy='151' r='.75'/%3E%3Ccircle cx='141' cy='133' r='.5'/%3E%3C/g%3E%3Cg fill='white' fill-opacity='.55'%3E%3Cpath d='M20 35c1-1 2-1 3 0-1 2-2 2-3 0z'/%3E%3Cpath d='M77 42c1-2 3-2 4 0-1 1-3 2-4 0z'/%3E%3Cpath d='M137 39c1-1 3-1 3 1-1 1-2 1-3-1z'/%3E%3Cpath d='M42 52c1-1 2-1 3 1-1 1-2 1-3-1z'/%3E%3Cpath d='M116 84c2-1 3 0 3 1-1 1-2 1-3-1z'/%3E%3Cpath d='M88 91c1-1 3-1 3 1-1 1-2 1-3-1z'/%3E%3Cpath d='M21 126c1-2 3-1 3 1-1 1-2 1-3-1z'/%3E%3Cpath d='M145 119c1-1 3-1 3 1-1 1-2 1-3-1z'/%3E%3C/g%3E%3C/svg%3E");--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:light){:root{--bg:#f6f1e4;--bg-soft:#ebe4d4;--bg-code:#efe8d8;--bg-warm:#efe4cc;--ink:#1c1916;--ink-body:#322c26;--ink-soft:#4e463d;--ink-mute:#8a8074;--paper:#1c1916;--rule:#ddd4c4;--c-blue:#1f4e79;--accent:#1f4e79;--tok-text:#2a2620;--tok-comment:#8a8074;--tok-punctuation:#4e463d;--tok-keyword:#4d6b3c;--tok-string:#8a5a28;--tok-number:#8c3d32;--tok-function:#1f4e79;--tok-class:#8a5a28;--tok-operator:#4e463d;--tok-property:#4d6b3c;--title:#1c1916;--texture-blend:multiply;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}:root[data-theme=dark]{--bg:#1c1917;--bg-soft:#2a2522;--bg-code:#231f1c;--bg-warm:#241c16;--ink:#f3eee6;--ink-body:#d8d0c6;--ink-soft:#b4aa9e;--ink-mute:#8a8074;--paper:#f6f1e4;--rule:#3d3732;--c-blue:#9eb6d4;--accent:#9eb6d4;--tok-text:#f3eee6;--tok-comment:#8a8074;--tok-punctuation:#b4aa9e;--tok-keyword:#a3b18a;--tok-string:#c4a574;--tok-number:#c17b6b;--tok-function:#9eb6d4;--tok-class:#c4a574;--tok-operator:#b4aa9e;--tok-property:#a3b18a;--title:#f3eee6;--texture-blend:overlay;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#f6f1e4;--bg-soft:#ebe4d4;--bg-code:#efe8d8;--bg-warm:#efe4cc;--ink:#1c1916;--ink-body:#322c26;--ink-soft:#4e463d;--ink-mute:#8a8074;--paper:#1c1916;--rule:#ddd4c4;--c-blue:#1f4e79;--accent:#1f4e79;--tok-text:#2a2620;--tok-comment:#8a8074;--tok-punctuation:#4e463d;--tok-keyword:#4d6b3c;--tok-string:#8a5a28;--tok-number:#8c3d32;--tok-function:#1f4e79;--tok-class:#8a5a28;--tok-operator:#4e463d;--tok-property:#4d6b3c;--title:#1c1916;--texture-blend:multiply;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{background:var(--bg);color:var(--ink);scroll-behavior:smooth}body{font-family:var(--serif);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:17px;line-height:1.6}body,.site-header,.post-list a,.markdown,.theme-toggle{transition:background .25s,color .25s,border-color .25s}::selection{background:var(--accent);color:#fff}a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:1px}#nprogress .bar{background:var(--accent)}#nprogress .peg{box-shadow:0 0 10px var(--accent), 0 0 5px var(--accent)}.site{flex-direction:column;min-height:100vh;display:flex}.site-header,.site-footer{padding:1.25rem var(--gutter);max-width:var(--max);width:100%;font-family:var(--mono);letter-spacing:.01em;justify-content:space-between;align-items:center;gap:1.5rem;margin:0 auto;font-size:12px;display:flex}.site-header{z-index:10;background:var(--bg);position:sticky;top:0}@supports (color:color-mix(in lab, red, red)){.site-header{background:color-mix(in oklab, var(--bg) 85%, transparent)}}.site-header{-webkit-backdrop-filter:blur(10px)saturate(140%);backdrop-filter:blur(10px)saturate(140%);border-bottom:1px solid var(--rule)}.wordmark{color:var(--ink);text-transform:lowercase;text-decoration:none}.wordmark:hover{color:var(--accent)}.nav-links{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:1.1rem;display:flex}.nav-links a,.site-footer a{color:var(--ink-mute);text-transform:lowercase;text-decoration:none;transition:color .15s}.nav-links a:hover,.site-footer a:hover,.nav-links a.active{color:var(--ink)}.theme-toggle{border:1px solid var(--rule);width:26px;height:26px;color:var(--ink-mute);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;margin-left:.15rem;padding:0;line-height:1;display:inline-flex}.theme-toggle:hover{color:var(--ink);border-color:var(--ink-mute);background:var(--ink)}@supports (color:color-mix(in lab, red, red)){.theme-toggle:hover{background:color-mix(in oklab, var(--ink) 6%, transparent)}}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-icon{display:block}.site-body{padding:0 var(--gutter) 4rem;flex:1}.site-footer{color:var(--ink-mute);padding-bottom:2.5rem}.hero-band{isolation:isolate;width:100vw;padding:0 var(--gutter);border-bottom:1px solid var(--rule);background:var(--bg);margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);position:relative;overflow:hidden}.hero-band:before{content:"";z-index:-2;pointer-events:none;position:absolute;inset:0}.hero-band[data-texture=css]:before{background-image:radial-gradient(circle at 17% 28%, var(--ink) 0 .65px, transparent .95px), radial-gradient(circle at 72% 64%, var(--ink) 0 .8px, transparent 1.1px), radial-gradient(ellipse at 43% 79%, var(--ink) 0 1px, transparent 1.35px), radial-gradient(ellipse at 85% 18%, var(--ink) 0 .55px, transparent 1px)}@supports (color:color-mix(in lab, red, red)){.hero-band[data-texture=css]:before{background-image:radial-gradient(circle at 17% 28%, color-mix(in oklab, var(--ink) 17%, transparent) 0 .65px, transparent .95px), radial-gradient(circle at 72% 64%, color-mix(in oklab, var(--ink) 13%, transparent) 0 .8px, transparent 1.1px), radial-gradient(ellipse at 43% 79%, color-mix(in oklab, var(--ink) 10%, transparent) 0 1px, transparent 1.35px), radial-gradient(ellipse at 85% 18%, color-mix(in oklab, var(--ink) 8%, transparent) 0 .55px, transparent 1px)}}.hero-band[data-texture=css]:before{background-size:calc(19px * var(--texture-scale,1)) calc(23px * var(--texture-scale,1)), calc(31px * var(--texture-scale,1)) calc(29px * var(--texture-scale,1)), calc(47px * var(--texture-scale,1)) calc(41px * var(--texture-scale,1)), calc(61px * var(--texture-scale,1)) calc(53px * var(--texture-scale,1));mix-blend-mode:var(--texture-blend);opacity:var(--texture-intensity,.8);background-position:0 0,7px 11px,13px 3px,29px 17px}.hero-band[data-texture=svg]:before{background:var(--ink);opacity:var(--texture-intensity,.13);-webkit-mask-image:var(--paper-specks);-webkit-mask-image:var(--paper-specks);-webkit-mask-image:var(--paper-specks);-webkit-mask-image:var(--paper-specks);mask-image:var(--paper-specks);-webkit-mask-repeat:repeat;mask-repeat:repeat;-webkit-mask-size:calc(160px * var(--texture-scale,1)) calc(160px * var(--texture-scale,1));-webkit-mask-size:calc(160px * var(--texture-scale,1)) calc(160px * var(--texture-scale,1));-webkit-mask-size:calc(160px * var(--texture-scale,1)) calc(160px * var(--texture-scale,1));mask-size:calc(160px * var(--texture-scale,1)) calc(160px * var(--texture-scale,1));-webkit-mask-repeat:repeat;-webkit-mask-size:calc(160px * var(--texture-scale,1)) calc(160px * var(--texture-scale,1))}.hero-band[data-texture=raster]:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAACG0lEQVR42gEQAu/9AG8KoRtrFwMfOBgBKZAVRhJUEAQTLSI1Da0Mehu8JZgTABUdLx0TKQwUsxKoH5YbwieGE2IVbCKNEsUObA1MIjUUAOQgnyP3GAEeISiUFp0obhsFI0IVwxLMHgYXUh9jFcgcAGUjoA+zEXccUQ1JHoYpQyJ0KYETTgtTIDwhYhV6GtcUAAULFB+CDaMnFyS3HXooMSNHG0opzB2NHdUdZhluIVApAGANPSRiIA4P9BWRJ+wYsCQYFFEfqSEXEBEX3w5rGNkaAP0hmB2sEccXMhO2F3YKlCApDxsOvCPdIY4isiFMGyolAHgToQ/dCpcV9iMBIEcYRCjNFmYKmiWpJg8Kew6mJckRAOUlIBG0ENImRxB6FxAdthQbIy0QrR2GFG0nDB2UJb4QADgk2g49E9wl4CM+KDIgCBsJG5coqCdfGDMTBhUWGDAXAJQjTiMuH18Q3w8pDZAcqCWwIyQcnRymEugPLyLOGtAiAIceKBddEIMVcxvPC3IKfQsgHVALDB5xIq0eHRFAHS8aAOYofyeqIr0lfwxCDdMhtCdBFvMhFidnDpoSRhOIDjUcAF8fkyfjFAwjAyMkDqof4BT1JGgTDhLHHTYiPSHSFzQbAPkpgBp7G0wlyh53FUUSbBqNEJckAgo4E0QSKBFNHUEhAFEpLSPfEkQQohPgGUERhhWAHEYlxwoKFoworiTJEXYa2Z2N6Y95ToAAAAAASUVORK5CYII=);background-size:calc(16px * var(--texture-scale,1)) calc(16px * var(--texture-scale,1));mix-blend-mode:var(--texture-blend);opacity:var(--texture-intensity,.8)}.hero-noise,.texture-noise-sample{pointer-events:none;display:block;position:absolute}.hero-noise{z-index:-2;mix-blend-mode:var(--texture-blend);opacity:var(--texture-intensity,.8);inset:0}.hero-grid{z-index:-2;color:var(--ink);shape-rendering:crispedges;mix-blend-mode:normal;pointer-events:none;display:block;position:absolute;inset:0}.article-grid{z-index:-1;width:100vw;height:23rem;color:var(--ink);shape-rendering:crispedges;mix-blend-mode:normal;pointer-events:none;display:block;position:absolute;top:0;left:50%;transform:translate(-50%);-webkit-mask-image:linear-gradient(#000 0%,#0000 100%);mask-image:linear-gradient(#000 0%,#0000 100%)}.texture-grid-sample{z-index:-1;color:var(--ink);shape-rendering:crispedges;mix-blend-mode:normal;pointer-events:none;display:block;position:absolute;inset:0}.grid-line{fill:var(--ink)}@supports (color:color-mix(in lab, red, red)){.grid-line{fill:color-mix(in oklab, var(--ink) 18%, transparent)}}.grid-line{opacity:var(--grid-line-intensity,.25)}.grid-corner{fill:var(--ink)}@supports (color:color-mix(in lab, red, red)){.grid-corner{fill:color-mix(in oklab, var(--ink) 24%, transparent)}}.grid-corner{opacity:var(--grid-corner-intensity,.45)}.hero{z-index:1;max-width:var(--col);margin:0 auto;padding:4.5rem 0 5rem;position:relative}.hero h1{color:var(--ink);font-family:var(--serif);letter-spacing:-.03em;margin:0 0 1.1rem;font-size:clamp(2.4rem,6vw,3.6rem);font-weight:400;line-height:.95}.lede{max-width:38rem;color:var(--ink-body);margin:0 0 1.25rem;font-size:1.2rem;line-height:1.55}.lede-links{font-family:var(--mono);flex-wrap:wrap;gap:1.1rem;margin:0;font-size:12px;display:flex}.lede-links a{color:var(--ink-mute);text-decoration:none}.lede-links a:hover{color:var(--ink)}.lede em{color:inherit;font-style:italic}.texture-comparison{margin-top:4.5rem;display:none}.texture-comparison h2{color:var(--ink-mute);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .8rem;font-size:11px;font-weight:500}.texture-options{grid-template-columns:repeat(4,1fr);gap:.75rem;display:grid}.texture-option{isolation:isolate;border:1px solid var(--rule);background:var(--bg);width:100%;min-height:10rem;color:var(--ink);padding:0;display:block;position:relative;overflow:hidden}.texture-option:hover{border-color:var(--ink-mute)}.texture-option:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.texture-option.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.texture-option-select{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:1rem 1rem 0;display:block;position:relative}.texture-option-select:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.texture-option:before{content:"";z-index:-1;pointer-events:none;position:absolute;inset:0}.texture-option--css:before{background-image:radial-gradient(circle at 17% 28%, var(--ink) 0 .65px, transparent .95px), radial-gradient(circle at 72% 64%, var(--ink) 0 .8px, transparent 1.1px), radial-gradient(ellipse at 43% 79%, var(--ink) 0 1px, transparent 1.35px), radial-gradient(ellipse at 85% 18%, var(--ink) 0 .55px, transparent 1px)}@supports (color:color-mix(in lab, red, red)){.texture-option--css:before{background-image:radial-gradient(circle at 17% 28%, color-mix(in oklab, var(--ink) 17%, transparent) 0 .65px, transparent .95px), radial-gradient(circle at 72% 64%, color-mix(in oklab, var(--ink) 13%, transparent) 0 .8px, transparent 1.1px), radial-gradient(ellipse at 43% 79%, color-mix(in oklab, var(--ink) 10%, transparent) 0 1px, transparent 1.35px), radial-gradient(ellipse at 85% 18%, color-mix(in oklab, var(--ink) 8%, transparent) 0 .55px, transparent 1px)}}.texture-option--css:before{background-size:calc(19px * var(--texture-scale,1)) calc(23px * var(--texture-scale,1)), calc(31px * var(--texture-scale,1)) calc(29px * var(--texture-scale,1)), calc(47px * var(--texture-scale,1)) calc(41px * var(--texture-scale,1)), calc(61px * var(--texture-scale,1)) calc(53px * var(--texture-scale,1));mix-blend-mode:var(--texture-blend);opacity:var(--texture-intensity,.8);background-position:0 0,7px 11px,13px 3px,29px 17px}.texture-option--svg:before{background:var(--ink);opacity:var(--texture-intensity,.13);-webkit-mask-image:var(--paper-specks);-webkit-mask-image:var(--paper-specks);-webkit-mask-image:var(--paper-specks);-webkit-mask-image:var(--paper-specks);mask-image:var(--paper-specks);-webkit-mask-repeat:repeat;mask-repeat:repeat;-webkit-mask-size:calc(160px * var(--texture-scale,1)) calc(160px * var(--texture-scale,1));-webkit-mask-size:calc(160px * var(--texture-scale,1)) calc(160px * var(--texture-scale,1));-webkit-mask-size:calc(160px * var(--texture-scale,1)) calc(160px * var(--texture-scale,1));mask-size:calc(160px * var(--texture-scale,1)) calc(160px * var(--texture-scale,1));-webkit-mask-repeat:repeat;-webkit-mask-size:calc(160px * var(--texture-scale,1)) calc(160px * var(--texture-scale,1))}.texture-option--raster:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAACG0lEQVR42gEQAu/9AG8KoRtrFwMfOBgBKZAVRhJUEAQTLSI1Da0Mehu8JZgTABUdLx0TKQwUsxKoH5YbwieGE2IVbCKNEsUObA1MIjUUAOQgnyP3GAEeISiUFp0obhsFI0IVwxLMHgYXUh9jFcgcAGUjoA+zEXccUQ1JHoYpQyJ0KYETTgtTIDwhYhV6GtcUAAULFB+CDaMnFyS3HXooMSNHG0opzB2NHdUdZhluIVApAGANPSRiIA4P9BWRJ+wYsCQYFFEfqSEXEBEX3w5rGNkaAP0hmB2sEccXMhO2F3YKlCApDxsOvCPdIY4isiFMGyolAHgToQ/dCpcV9iMBIEcYRCjNFmYKmiWpJg8Kew6mJckRAOUlIBG0ENImRxB6FxAdthQbIy0QrR2GFG0nDB2UJb4QADgk2g49E9wl4CM+KDIgCBsJG5coqCdfGDMTBhUWGDAXAJQjTiMuH18Q3w8pDZAcqCWwIyQcnRymEugPLyLOGtAiAIceKBddEIMVcxvPC3IKfQsgHVALDB5xIq0eHRFAHS8aAOYofyeqIr0lfwxCDdMhtCdBFvMhFidnDpoSRhOIDjUcAF8fkyfjFAwjAyMkDqof4BT1JGgTDhLHHTYiPSHSFzQbAPkpgBp7G0wlyh53FUUSbBqNEJckAgo4E0QSKBFNHUEhAFEpLSPfEkQQohPgGUERhhWAHEYlxwoKFoworiTJEXYa2Z2N6Y95ToAAAAAASUVORK5CYII=);background-size:calc(16px * var(--texture-scale,1)) calc(16px * var(--texture-scale,1));mix-blend-mode:var(--texture-blend);opacity:var(--texture-intensity,.8)}.texture-noise-sample{z-index:-1;width:100%;height:100%;mix-blend-mode:var(--texture-blend);opacity:var(--texture-intensity,.8);inset:0}.texture-control{color:var(--ink-mute);font-family:var(--mono);padding:0 1rem;font-size:9px;display:block;position:relative}.texture-control+.texture-control{margin-top:.45rem}.texture-control span{justify-content:space-between;gap:.5rem;display:flex}.texture-control output{color:var(--ink-soft)}.texture-control input{width:100%;height:1rem;accent-color:var(--accent);margin:.05rem 0 0;display:block}.texture-option-label{align-items:baseline;gap:.55rem;display:flex;position:relative}.texture-option-label span,.texture-option p{color:var(--ink-mute);font-family:var(--mono);font-size:10px}.texture-option-label h3{font-family:var(--serif);margin:0;font-size:1.05rem;font-weight:400}.texture-option p{margin:.65rem 0 0;line-height:1.45;position:relative}.lede a{color:var(--ink);border-bottom:1px solid var(--c-blue);text-decoration:none}@supports (color:color-mix(in lab, red, red)){.lede a{border-bottom:1px solid color-mix(in oklab, var(--c-blue) 50%, transparent)}}.lede a{transition:border-color .15s,background .15s}.lede a:hover{border-bottom-color:var(--c-blue);background:var(--c-blue)}@supports (color:color-mix(in lab, red, red)){.lede a:hover{background:color-mix(in oklab, var(--c-blue) 14%, transparent)}}.band{max-width:var(--col);margin:0 auto;padding:3.5rem 0 1rem}.band-head{margin-bottom:1.25rem}.band-head h2{color:var(--ink-mute);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:11px;font-style:normal;font-weight:400}.page{max-width:var(--col);margin:0 auto;padding-top:2.5rem}.page-kicker{color:var(--ink-mute);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;margin:0 0 .75rem;font-size:11px}.page h1{color:var(--ink);letter-spacing:-.03em;margin:0 0 .75rem;font-size:clamp(2.4rem,5vw,3.4rem);font-weight:400;line-height:1.05}.page-intro{color:var(--ink-mute);margin:0 0 2.25rem;font-size:1.15rem}.post-list{margin:0;padding:0;list-style:none}.post-list li{border-top:1px solid var(--rule)}.post-list a{grid-template-columns:1fr auto;align-items:baseline;gap:1.25rem;padding:.9rem 0;text-decoration:none;display:grid}.post-list a:hover .post-title{color:var(--ink)}.post-list a:hover{background:var(--c-blue)}@supports (color:color-mix(in lab, red, red)){.post-list a:hover{background:color-mix(in oklab, var(--c-blue) 5%, transparent)}}.post-list a:hover .post-year{color:var(--ink-soft)}.post-year{color:var(--ink-mute);font-family:var(--mono);white-space:nowrap;font-size:12px}.post-title{color:var(--title);letter-spacing:-.015em;font-size:1.2rem;line-height:1.35}.article{isolation:isolate;max-width:var(--post-col);margin:0 auto;padding-top:3.5rem;position:relative}.article-date{color:var(--ink-mute);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;margin:0 0 1rem;font-size:12px}.markdown{color:var(--ink-body);font-size:1.1875rem;line-height:1.65}.markdown>*+*{margin:0 0 1.15rem}.markdown p{margin:0 0 1.35rem}.markdown a{color:var(--ink);border-bottom:1px solid var(--c-blue);text-decoration:none}@supports (color:color-mix(in lab, red, red)){.markdown a{border-bottom:1px solid color-mix(in oklab, var(--c-blue) 50%, transparent)}}.markdown a{padding-bottom:1px;transition:border-color .15s,background .15s}.markdown a:hover{border-bottom-color:var(--c-blue);background:var(--c-blue)}@supports (color:color-mix(in lab, red, red)){.markdown a:hover{background:color-mix(in oklab, var(--c-blue) 18%, transparent)}}.markdown strong{color:var(--ink);font-weight:600}.markdown em{font-style:italic}.markdown h1{color:var(--ink);letter-spacing:-.025em;text-align:left;margin:0 0 2rem;font-size:clamp(2.4rem,6vw,4rem);font-weight:400;line-height:1.05}.markdown h2,.markdown h3,.markdown h4{color:var(--ink);letter-spacing:-.02em;font-weight:400;line-height:1.2}.markdown h2{margin:2.75rem 0 1rem;font-size:1.85rem}.markdown h3{margin:2.1rem 0 .8rem;font-size:1.4rem;font-style:italic}.markdown h4{margin:1.8rem 0 .7rem;font-size:1.15rem}.markdown a.heading-link{color:var(--c-blue);font-family:var(--mono);letter-spacing:0;opacity:0;background:0 0;border-bottom:none;margin-left:.4rem;font-size:.7em;font-style:normal;text-decoration:none;transition:opacity .15s}.markdown h2:hover a.heading-link,.markdown h3:hover a.heading-link,.markdown h4:hover a.heading-link,.markdown a.heading-link:focus{opacity:.55}.markdown a.heading-link:hover{opacity:1;background:0 0}.markdown ul,.markdown ol{margin:0 0 1.35rem;padding-left:1.35rem}.markdown ul{list-style:outside}.markdown ol{list-style:decimal}.markdown li::marker{color:var(--ink-mute)}.markdown li+li{margin-top:.4rem}.markdown blockquote{border-left:2px solid var(--accent);color:var(--ink-soft);margin:1.5rem 0;padding:.15rem 0 .15rem 1.15rem;font-style:italic}.markdown code{font-family:var(--mono);background:var(--bg-soft);color:var(--ink);border-radius:3px;padding:.12em .35em;font-size:.82em}.markdown pre{background:var(--bg-code);border:1px solid var(--rule);border-radius:6px;margin:1.5rem 0;padding:1rem 1.1rem;overflow-x:auto}.markdown pre code{color:var(--tok-text);background:0 0;border-radius:0;padding:0;font-size:.82rem;line-height:1.6;display:block}.hljs-comment,.hljs-quote{color:var(--tok-comment);font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-addition{color:var(--tok-keyword)}.hljs-string,.hljs-doctag,.hljs-regexp{color:var(--tok-string)}.hljs-number,.hljs-literal{color:var(--tok-number)}.hljs-title.function_,.hljs-function .hljs-title{color:var(--tok-function)}.hljs-type,.hljs-class .hljs-title,.hljs-title.class_{color:var(--tok-class)}.hljs-operator{color:var(--tok-operator)}.hljs-punctuation{color:var(--tok-punctuation)}.hljs-property,.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-params{color:var(--tok-property)}.markdown table{border-collapse:collapse;width:100%;margin:1.5rem 0;font-size:1rem}.markdown th,.markdown td{border:1px solid var(--rule);padding:.4rem .7rem}.markdown aside{color:var(--ink-soft);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:.85rem 0;font-size:1rem}@media (width<=860px){.hero{padding-top:2.5rem}.post-list a{grid-template-columns:1fr;gap:.2rem}.site-header,.site-footer{flex-wrap:wrap;align-items:flex-start}.nav-links{justify-content:flex-start}.texture-options{grid-template-columns:1fr}.texture-option{min-height:7rem}.markdown h1{text-align:left;font-size:clamp(2rem,9vw,2.6rem)}}@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-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
