html{scroll-behavior:smooth}.markdown-body [id],.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{scroll-margin-top:100px}.markdown-body{font-family:var(--font-wotfard);line-height:1.6;word-wrap:break-word;color:#eaedf3}@media (min-width:1280px){.markdown-body{border-left-width:0;border-bottom-width:0;padding-bottom:1.5rem}}.markdown-body{padding-left:.75rem;padding-right:.75rem;font-size:1rem;line-height:1.5rem}@media (min-width:768px){.markdown-body{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:1024px){.markdown-body{padding-left:1rem;padding-right:1rem}}@media (min-width:1536px){.markdown-body{padding-left:2.5rem;padding-right:2.5rem}}.markdown-body{width:100%;max-width:none;margin:0}:where(.prose) :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){margin:0;background-color:transparent!important;border-radius:0;padding-top:inherit!important;padding-bottom:inherit!important;overflow-x:auto;font-weight:inherit!important;color:inherit;font-size:inherit!important;line-height:inherit;font-family:inherit}:where(.prose) :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent!important;border-radius:0;font-weight:inherit!important;color:inherit;font-size:inherit!important;font-family:inherit;&:after,&:before{content:none}}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:1.2em;margin-bottom:.5em;font-weight:600;line-height:1.2;padding-bottom:.2em;color:#a18cdb;letter-spacing:-.02em}.markdown-body h1{font-size:2em;color:#f8f8f2;font-family:Changa;font-size:1.875rem;line-height:2.25rem;margin-top:1em;margin-bottom:1em}.markdown-body h2{font-size:1.95rem;color:rgb(230,179,255);border-bottom:1px solid #2a3147;font-weight:800;padding-bottom:.5em;padding-left:.5em;margin-left:-.5em;border-radius:4px 0 0 0;margin-top:3rem;position:relative}.markdown-body h3{font-size:1.5rem;margin-top:1.5em;margin-bottom:1em;font-weight:800;color:rgb(255,255,255);position:relative}.markdown-body h4{font-size:1.1em;margin-top:1em;margin-bottom:.5em}.markdown-body ol,.markdown-body ul{padding-left:1em;margin-bottom:1em;margin-top:0!important;list-style:none}.markdown-body ol li,.markdown-body ul li{position:relative;padding-left:1.25em;margin-bottom:.15em;color:#d8e0f7;line-height:1.6;font-weight:400}.markdown-body li>p{margin-bottom:0;margin-top:0}.markdown-body ol li strong,.markdown-body ul li strong{color:#a18cdb;font-size:1.1em;font-weight:600}.markdown-body ul li:before{content:"•";position:absolute;left:0;color:#8ab4ff}.markdown-body ol{counter-reset:item;list-style:none;padding-left:0}.markdown-body ol>li{counter-increment:item;position:relative;padding-left:2em;margin-bottom:.5em}.markdown-body ol>li:before{content:counter(item) ".";position:absolute;left:0;width:2em;text-align:right;color:#8ab4ff;padding-right:.6em;font-weight:500}.markdown-body li>ol,.markdown-body li>ul{margin-top:.4em;margin-bottom:.2em}.markdown-body ol>li>ul{margin-top:.2em;margin-bottom:0;padding-left:.5em}.markdown-body ol>li>ul>li{margin-bottom:.1em}.markdown-body ul+ol{margin-top:.5em}.markdown-body ol ol{counter-reset:subitem;margin-top:.3em;padding-left:1em}.markdown-body ol ol>li{counter-increment:subitem;padding-left:2em}.markdown-body ol ol>li:before{content:counter(item) "." counter(subitem)}.markdown-body ul>li>ol{counter-reset:item;padding-left:.4rem}.markdown-body ul>li>p{margin-bottom:.4em}.markdown-body ul>li>ol>li{counter-increment:item;margin-bottom:.15em}.markdown-body ul>li>ol>li:before{content:counter(item) "."}.markdown-body code:not(pre code){font-family:Fira Code,monospace;font-size:.9em;color:#f8f8f2;background-color:#2a2c36;padding:.2em .4em;border-radius:3px;margin:0 .2em;font-family:var(--font-geist-sans),ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-weight:400;white-space:pre-wrap;word-break:break-word}.markdown-body>pre{margin:0;padding:0;overflow:hidden;border-radius:8px;white-space:pre-wrap;word-break:break-word}.markdown-body pre>div{background:transparent!important}.markdown-body .bash-code-block{background-color:#282c34;padding:16px;border-radius:8px;font-family:Fira Code,monospace;font-size:.85em;line-height:1.45;overflow-x:auto;border-width:1px;border-color:rgb(55 65 81/.3)}.markdown-body .bash-line{display:flex;align-items:center;gap:8px}.markdown-body .bash-prompt{color:#50fa7b;user-select:none}.markdown-body .bash-command{color:#f8f8f2}@media screen and (max-width:768px){.markdown-body{padding-left:.75rem;padding-right:.75rem;max-width:100%}.markdown-body,.markdown-body p{font-size:1rem;line-height:1.5rem}.markdown-body pre{margin:1em -.5rem;border-radius:.5rem}.code-block-container{margin:.5rem 0;border-radius:.5rem}.code-block-content{font-size:1rem;line-height:1.5rem;padding:.25rem}.code-block-content pre{padding:.5rem 2.5rem .75rem .75rem}.copy-button{top:.5rem;right:.5rem;height:1.75rem;width:1.75rem}.markdown-body h1{font-size:1.875rem;line-height:2.25rem}.markdown-body h2{font-size:1.5rem;line-height:2rem}.markdown-body h3{font-size:1.25rem;line-height:1.75rem}.markdown-body .callout{gap:.625rem;padding:1rem}.markdown-body .callout-content{font-size:1rem;line-height:1.5rem}.markdown-body ol li,.markdown-body ul li{font-size:1rem;line-height:1.5rem;line-height:1.6}}.markdown-body ::selection{background:rgba(138,180,255,.3);color:#fff}.markdown-body p{color:#d8e0f7!important;margin-bottom:.8rem;line-height:1.75rem;font-size:1rem;font-weight:400}.markdown-body a[href]{text-decoration:none;color:#8ab4ff!important;padding-bottom:2px;border-bottom:1px solid #8ab4ff}.markdown-body a[href]:focus-visible{border-bottom:1px solid #8ab4ff}.markdown-body table{border-collapse:collapse;width:100%;margin:1.5em 0;--tw-shadow:0 4px 6px -1px rgb(0 0 0/0.1),0 2px 4px -2px rgb(0 0 0/0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.markdown-body table td,.markdown-body table th{padding:10px 16px;border:1px solid #2a3147}.markdown-body table th{background-color:#1a1e2b;font-weight:600;color:#dce4fa}.markdown-body table tr{background-color:#15182a}.markdown-body table tr:nth-child(2n){background-color:#1f2335}.markdown-body hr{height:2px;background-color:#2a3147;border:0;margin:2em 0}.terminal-container{background:#282a36;border-radius:8px;margin:1.5rem 0;overflow:hidden;box-shadow:0 4px 15px -1px rgb(0 0 0/.2)}.terminal-header{background:#1a1b26;padding:8px 16px;border-bottom:1px solid #44475a}.terminal-buttons{display:flex;gap:8px}.terminal-button{width:12px;height:12px;border-radius:50%}.terminal-button.close{background:#ff5555}.terminal-button.minimize{background:#f1fa8c}.terminal-button.maximize{background:#50fa7b}.terminal-content{padding:16px;margin:0;font-family:Fira Code,monospace;font-size:.85em;line-height:1.5}.terminal-line{display:flex;gap:8px;padding:2px 0}.terminal-prompt{color:#50fa7b;user-select:none}.terminal-command{color:#f8f8f2}.terminal-output{color:#bd93f9}.code-block-container{position:relative!important;margin-top:.5rem!important;margin-bottom:.75rem!important;overflow:hidden!important;--tw-bg-opacity:1!important;background-color:rgb(30 32 48/var(--tw-bg-opacity,1))!important;border-radius:.75rem;box-shadow:0 4px 15px rgba(0,0,0,.15);border-width:1px;border-color:rgb(55 65 81/.2)}.markdown-body nav,nav:has(h2:first-child){margin-bottom:4rem;border-radius:.75rem;border-bottom-width:1px;border-color:rgb(31 41 55/.5);background-color:rgb(17 24 39/.3);padding:1.5rem 1.5rem 2.5rem;box-shadow:0 4px 15px rgba(0,0,0,.1)}.markdown-body nav h2,nav:has(h2:first-child) h2{margin-bottom:2rem;display:flex;align-items:center;gap:.5rem;border-bottom-width:1px;border-color:rgb(55 65 81/.5);padding-bottom:.5rem;--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.markdown-body nav ul>:not([hidden])~:not([hidden]),nav:has(h2:first-child) ul>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.markdown-body nav ul,nav:has(h2:first-child) ul{padding-left:.5rem}.markdown-body nav ul li,nav:has(h2:first-child) ul li{padding-top:.25rem;padding-bottom:.25rem}.markdown-body nav ul li a,nav:has(h2:first-child) ul li a{display:flex;align-items:center;gap:.5rem;border-width:0;font-size:1rem;line-height:1.5rem;--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1));text-decoration-line:none;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.markdown-body nav ul li a:hover,nav:has(h2:first-child) ul li a:hover{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}nav li[data-level="2"]{padding-left:1rem}nav li[data-level="3"]{padding-left:2rem}nav li[data-level="4"]{padding-left:3rem}.copy-button{position:absolute;top:.75rem;right:.75rem;z-index:10;display:flex;height:2.25rem;width:2.25rem;align-items:center;justify-content:center;border-radius:.375rem;--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.copy-button:hover{background-color:rgb(31 41 55/.5);--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.copy-button{background:rgba(0,0,0,.3)}.copy-button.copied{background-color:rgb(20 83 45/.3);--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.code-block-content pre{width:100%;padding:.75rem 1rem 1.25rem}@media (min-width:768px){.code-block-content pre{padding-top:1rem}}.code-block-content pre{padding-right:3.5rem;white-space:pre-wrap;word-break:break-word;font-size:inherit}.markdown-body .callout{margin-top:1.5rem;margin-bottom:1.5rem;display:flex;align-items:flex-start;gap:.75rem;border-radius:.75rem;padding:1.25rem;--tw-shadow:0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);background:rgba(30,32,48,.8);border-width:1px;border-color:rgb(55 65 81/.3)}.markdown-body .callout-icon-wrapper{display:flex;flex-shrink:0;align-items:center;height:1.75rem}.markdown-body .callout-icon{height:1.25rem;width:1.25rem}@media (min-width:640px){.markdown-body .callout-icon{height:2rem;width:2rem}}.markdown-body .callout-content{flex:1 1 0%;font-size:1rem;line-height:1.75rem}.markdown-body .callout-content>p{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1));line-height:1.75rem;margin:0!important}.markdown-body .callout-content>ul{margin-bottom:0!important}.markdown-body .callout-info{border-color:rgb(59 130 246/.2);background-color:rgb(59 130 246/.1)}.markdown-body .callout-info .callout-icon{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.markdown-body .callout-warning{border-color:rgb(234 179 8/.2);background-color:rgb(234 179 8/.1)}.markdown-body .callout-warning .callout-icon{--tw-text-opacity:1;color:rgb(253 224 71/var(--tw-text-opacity,1))}.markdown-body .callout-success{border-color:rgb(34 197 94/.2);background-color:rgb(34 197 94/.1)}.markdown-body .callout-success .callout-icon{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.markdown-body .callout-error{border-color:rgb(239 68 68/.2);background-color:rgb(239 68 68/.1)}.markdown-body .callout-error .callout-icon{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.markdown-body .callout-note{border-color:rgb(168 85 247/.2);background-color:rgb(168 85 247/.1)}.markdown-body .callout-note .callout-icon{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.markdown-body blockquote{margin-top:1.5rem;margin-bottom:1.5rem;border-top-right-radius:.5rem;border-bottom-right-radius:.5rem;border-left-width:4px;--tw-border-opacity:1;border-color:rgb(192 132 252/var(--tw-border-opacity,1));padding:1rem 1rem 1rem 1.25rem;background:linear-gradient(135deg,rgba(139,92,246,.1),rgba(59,130,246,.05));--tw-shadow:0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);position:relative;font-style:italic}.markdown-body blockquote:before{content:'"';position:absolute;top:-10px;left:10px;font-size:4rem;color:rgba(139,92,246,.2);font-family:Georgia,serif;line-height:1}.markdown-body blockquote>p{margin-bottom:0;--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1));position:relative;z-index:1}.markdown-body blockquote>p:first-child{font-weight:500;--tw-text-opacity:1;color:rgb(233 213 255/var(--tw-text-opacity,1))}.markdown-body img{margin:2rem auto;height:auto;max-width:100%;border-radius:.75rem;--tw-shadow:0 20px 25px -5px rgb(0 0 0/0.1),0 8px 10px -6px rgb(0 0 0/0.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition:all .3s ease-in-out;border-width:1px;border-color:rgb(55 65 81/.3)}.markdown-body img[align=center]{margin-left:auto;margin-right:auto;display:block}.markdown-body img:hover{transform:scale(1.02);--tw-shadow:0 25px 50px -12px rgb(0 0 0/0.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-shadow-color:rgb(168 85 247/0.2);--tw-shadow:var(--tw-shadow-colored)}.markdown-body>:not(p){margin-bottom:1.5rem}.markdown-body>:last-child{margin-bottom:0}.markdown-body p+h1,.markdown-body p+h2,.markdown-body p+h3,.markdown-body p+h4,.markdown-body p+h5,.markdown-body p+h6{margin-top:2rem}.markdown-body p+blockquote,.markdown-body p+ol,.markdown-body p+pre,.markdown-body p+ul{margin-top:1.5rem}.line-numbers-container{display:flex;width:100%}.line-numbers{display:flex;flex-direction:column;text-align:right;padding:1em .5em;margin-right:.5em;color:#606880;background-color:rgba(0,0,0,.15);border-right:1px solid rgba(128,128,128,.2);user-select:none;min-width:2.5em}.line-number{font-size:.85em;line-height:1.5;color:#606880}.highlighted-line{background-color:rgba(80,250,123,.1);display:block;margin:0 -1rem;padding:0 1rem;border-left:3px solid rgba(80,250,123,.7)}@media print{.markdown-body{color:#000;background:#fff;font-size:12pt;max-width:100%}.markdown-body code,.markdown-body pre{background-color:#f5f5f5!important;border:1px solid #ddd;color:#333}.markdown-body a{color:#0066cc;text-decoration:underline}.copy-button,.terminal-buttons{display:none!important}.markdown-body img{max-width:100%!important;page-break-inside:avoid}.markdown-body h2,.markdown-body h3{page-break-after:avoid}.markdown-body pre,.markdown-body table{page-break-inside:avoid}}.code-block-content .operator{color:#56b6c2!important;font-style:normal!important;font-weight:700!important;padding:0!important;letter-spacing:0!important}.code-block-content .strict-equality{text-shadow:none!important}.code-block-content .strict-equality,.code-block-content .strict-inequality{color:#56b6c2!important;letter-spacing:0!important;border:none!important}.code-block-content .logical,.code-block-content .strict-equality,.code-block-content .strict-inequality{font-style:normal!important;font-weight:700!important;padding:0!important;display:inline!important;background:none!important;box-shadow:none!important;transform:none!important;margin:0!important;border-radius:0!important}.code-block-content .logical{color:#c678dd!important}.code-block-content *{font-style:normal!important}.code-block-content span[style*="!="],.code-block-content span[style*="!=="],.code-block-content span[style*="=="],.code-block-content span[style*="==="]{color:#56b6c2!important;font-style:normal!important;font-weight:700!important;letter-spacing:.05em!important;position:relative!important;padding:0 .1em!important}.code-block-content :where(.string,.string-expression){color:#98c379!important;font-style:normal!important}.code-block-content{font-size:.85em}.markdown-body p strong{color:#ffffff;font-weight:700}