@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c9a0d344f313d307-s.p.3ik2qu-u9tgho.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:400;font-display:swap;src:url(../media/aa914dbbd9a27e94-s.0n4hkusom70ae.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5a1ede1938590d51-s.19gzon4xl8qiz.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5d6231e6818a3930-s.p.2vs72h_x6qrve.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:500;font-display:swap;src:url(../media/280fac012b00b901-s.p.3ihiqn4pviisd.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:500;font-display:swap;src:url(../media/65b08f011bd29e21-s.00vfn3_g-ftpg.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a1b65e215f8df202-s.3w3hylgez90of.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:500;font-display:swap;src:url(../media/3347fc7792f0b5ea-s.p.0c7ha31nuacbu.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:600;font-display:swap;src:url(../media/ceec3e50f42c26e3-s.p.0da8nscnv1nkd.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b140408e2d7eae5d-s.2x1j3gzzngp4x.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:600;font-display:swap;src:url(../media/d3af3242084a193c-s.1jr_z050he_qo.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:600;font-display:swap;src:url(../media/441492499fc86682-s.p.1fbvi_fot8u4l.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:700;font-display:swap;src:url(../media/5ad8fdb5805e9b4a-s.p.0-uv4l43gdmt7.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:700;font-display:swap;src:url(../media/bb8a9270184a3556-s.0phk7_etl12r4.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b3f2ed44161db83e-s.3c64at4xi6rda.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:700;font-display:swap;src:url(../media/84cd8d504984ae62-s.p.0iritm8hg8q1a.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Arabic Fallback;src:local(Arial);ascent-override:107.25%;descent-override:41.02%;line-gap-override:0.0%;size-adjust:101.17%}.ibm_plex_sans_arabic_54e7fdeb-module__RyIgkW__className{font-family:IBM Plex Sans Arabic,IBM Plex Sans Arabic Fallback;font-style:normal}.ibm_plex_sans_arabic_54e7fdeb-module__RyIgkW__variable{--font-sans:"IBM Plex Sans Arabic", "IBM Plex Sans Arabic Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");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-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");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-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_b45e8298-module__oDXDLG__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_b45e8298-module__oDXDLG__variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--bg:#0d1117;--bg-deep:#0a0e13;--panel:#141b24;--panel-2:#1a2430;--line:#243040;--line-strong:#314055;--ink:#e8f0f2;--muted:#8ba0aa;--dim:#5c7078;--acid:#4ade80;--acid-hover:#6ee7a0;--acid-dim:#22c55e;--acid-ink:#04140a;--pill:#1d2b22;--sans:var(--font-sans), system-ui, sans-serif;--mono:var(--font-mono), ui-monospace, Menlo, Consolas, monospace;--header-h:60px;--radius:14px;--container:1160px;--gutter:clamp(16px, 4vw, 32px);--z-header:40;--z-progress:45;--z-skip:60;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--bg);min-height:100dvh;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;font-size:16px;line-height:1.75;display:flex}main{flex:1}main:focus{outline:none}h1,h2,h3{text-wrap:balance}p,li,dd{text-wrap:pretty}a{color:inherit}:focus-visible{outline:2px solid var(--acid);outline-offset:3px;border-radius:4px}::selection{background:var(--acid);color:var(--acid-ink)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ui-skip-link{top:12px;z-index:var(--z-skip);background:var(--acid);color:var(--acid-ink);border-radius:8px;padding:8px 14px;font-weight:600;text-decoration:none;position:absolute;inset-inline-start:12px;transform:translateY(-200%)}.ui-skip-link:focus-visible{transform:none}.ui-container{width:100%;max-width:calc(var(--container) + 2 * var(--gutter));padding-left:max(var(--gutter), env(safe-area-inset-left));padding-right:max(var(--gutter), env(safe-area-inset-right));margin-inline:auto}.ui-btn{min-height:46px;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:10px 20px;font-size:15.5px;font-weight:600;line-height:1.4;text-decoration:none;transition:background-color .15s ease-out,border-color .15s ease-out,color .15s ease-out;display:inline-flex}.ui-btn--primary{background:var(--acid);color:var(--acid-ink)}.ui-btn--primary:hover{background:var(--acid-hover)}.ui-btn--ghost{color:var(--ink);border-color:var(--line-strong);background:0 0}.ui-btn--ghost:hover{border-color:var(--acid-dim);color:var(--acid)}.ui-btn--sm{min-height:38px;padding:6px 14px;font-size:14.5px}.ui-eyebrow{font-family:var(--mono);color:var(--acid);direction:ltr;align-items:center;gap:8px;margin:0;font-size:12.5px;display:inline-flex}.ui-eyebrow__dot{background:var(--acid);border-radius:50%;width:7px;height:7px}.ui-breadcrumbs ol{color:var(--muted);flex-wrap:wrap;gap:4px 8px;margin:0;padding:0;font-size:13.5px;list-style:none;display:flex}.ui-breadcrumbs li:not(:last-child):after{content:"‹";color:var(--dim);margin-inline-start:8px}.ui-breadcrumbs a{color:var(--muted);text-decoration:none}.ui-breadcrumbs a:hover{color:var(--acid)}.ui-breadcrumbs [aria-current]{color:var(--ink)}.ui-faq{flex-direction:column;gap:10px;display:flex}.ui-faq__item{background:var(--panel);border:1px solid var(--line);border-radius:12px}.ui-faq__item[open]{border-color:var(--line-strong)}.ui-faq__q{cursor:pointer;align-items:flex-start;gap:14px;padding:16px 18px;font-size:16px;font-weight:600;line-height:1.6;list-style:none;display:flex}.ui-faq__q::-webkit-details-marker{display:none}.ui-faq__q:after{content:"+";font-family:var(--mono);color:var(--acid);margin-inline-start:auto;font-size:18px;line-height:1.4}.ui-faq__item[open] .ui-faq__q:after{content:"−"}.ui-faq__a{color:var(--muted);margin:0;padding:0 18px 18px;font-size:15px}.ui-faq__a code{background:var(--pill);color:var(--acid);font-family:var(--mono);overflow-wrap:anywhere;direction:ltr;unicode-bidi:isolate;border-radius:5px;padding:1px 6px;font-size:.86em}.ui-check{border:1px solid var(--line-strong);min-height:46px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:10px 18px;font-size:15px;font-weight:600;transition:background-color .15s ease-out,border-color .15s ease-out,color .15s ease-out;display:inline-flex}.ui-check:hover{border-color:var(--acid-dim)}.ui-check__box{border:1.5px solid var(--muted);color:#0000;border-radius:6px;place-items:center;width:20px;height:20px;font-size:13px;line-height:1;display:grid}.ui-check[aria-pressed=true]{border-color:var(--acid-dim);background:var(--pill);color:var(--acid)}.ui-check[aria-pressed=true] .ui-check__box{border-color:var(--acid);background:var(--acid);color:var(--acid-ink)}.ui-check--block{width:100%}.site-header{z-index:var(--z-header);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);background:#0d1117eb;position:sticky;top:0}.site-header__inner{height:var(--header-h);align-items:center;gap:28px;display:flex}.site-brand{min-width:0;color:var(--ink);white-space:nowrap;align-items:center;gap:10px;font-size:16px;font-weight:700;text-decoration:none;display:inline-flex}.site-brand__mark{border:1px solid var(--acid-dim);background:var(--pill);color:var(--acid);font-family:var(--mono);direction:ltr;border-radius:8px;padding:2px 7px;font-size:12px;font-weight:700}.site-nav{gap:4px;display:none}.site-nav__link{color:var(--muted);border-radius:8px;padding:6px 12px;font-size:15px;text-decoration:none;transition:background-color .15s ease-out,color .15s ease-out}.site-nav__link:hover{background:var(--panel);color:var(--ink)}.site-header__actions{align-items:center;gap:10px;margin-inline-start:auto;display:flex}.site-header__cta{display:none}.site-menu__button{border:1px solid var(--line-strong);width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border-radius:10px;place-items:center;display:grid}.site-menu__panel{inset:auto;top:calc(var(--header-h) + 8px);left:max(12px, env(safe-area-inset-left));right:max(12px, env(safe-area-inset-right));border:1px solid var(--line-strong);background:var(--panel);width:auto;max-width:none;color:var(--ink);border-radius:14px;margin:0;padding:10px;position:fixed;box-shadow:0 20px 25px -5px #00000080,0 8px 10px -6px #00000080}.site-menu__list{margin:0;padding:0;list-style:none}.site-menu__link{border-radius:10px;padding:12px 14px;font-size:16px;text-decoration:none;display:block}.site-menu__link:hover{background:var(--panel-2)}.site-menu__cta{width:100%;margin-top:8px}@media (min-width:520px){.site-header__cta{display:inline-flex}}@media (min-width:880px){.site-nav{display:flex}.site-menu{display:none}}.site-footer{padding-top:52px;padding-bottom:max(28px, env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg-deep);margin-top:auto}.site-footer__grid{gap:36px;display:grid}.site-footer__about p{max-width:44ch;color:var(--muted);margin:14px 0 0;font-size:14.5px}.site-footer__title{margin:0 0 12px;font-size:14px;font-weight:700}.site-footer__links{gap:6px;margin:0;padding:0;list-style:none;display:grid}.site-footer__links a{color:var(--muted);font-size:14.5px;text-decoration:none}.site-footer__links a:hover{color:var(--ink)}.site-footer__legal{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:4px 24px;margin-top:40px;padding-top:20px;font-size:13px;display:flex}.site-footer__legal p{margin:0}@media (min-width:760px){.site-footer__grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr)}}.ui-btn__icon{flex-shrink:0}.ui-social{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ui-social__link{border:1px solid var(--line-strong);width:44px;height:44px;color:var(--muted);border-radius:10px;place-items:center;transition:border-color .15s ease-out,color .15s ease-out;display:grid}.ui-social__link:hover{border-color:var(--acid-dim);color:var(--ink)}.site-header__hire{display:none}@media (min-width:520px){.site-header__hire{display:inline-flex}}.site-menu__actions{gap:8px;margin-top:8px;display:grid}.site-menu__social{border-top:1px solid var(--line);justify-content:center;margin-top:12px;padding-top:12px}.site-footer__actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;display:flex}.author-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px 40px;padding:clamp(22px,4vw,32px);display:flex}.author-card__main{flex:340px;min-width:0}.author-card__id{align-items:center;gap:14px;display:flex}.author-card__avatar{border:1px solid var(--acid-dim);background:var(--pill);width:56px;height:56px;color:var(--acid);font-family:var(--mono);direction:ltr;border-radius:50%;flex-shrink:0;place-items:center;font-size:18px;font-weight:700;display:grid}.author-card__label{color:var(--muted);margin:0;font-size:13px}.author-card__name{margin:0;font-size:21px;font-weight:700;line-height:1.4}.author-card__bio{max-width:64ch;color:var(--muted);margin:16px 0 0;font-size:15.5px}.author-card__actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.author-card--compact{margin-top:16px;padding:18px 20px}.author-card--compact .author-card__avatar{width:44px;height:44px;font-size:15px}.author-card--compact .author-card__name{font-size:17px}.author-card--compact .author-card__bio{margin-top:10px;font-size:14.5px}.home-hero{align-items:center;gap:44px;padding-top:clamp(40px,8vw,96px);padding-bottom:clamp(48px,8vw,96px);display:grid}.home-hero__title{margin:18px 0;font-size:clamp(38px,7.5vw,64px);font-weight:700;line-height:1.15}.home-hero__accent{color:var(--acid);display:block}.home-hero__lede{max-width:54ch;color:var(--muted);margin:0 0 30px;font-size:clamp(16px,2.2vw,18.5px)}.home-hero__actions{flex-wrap:wrap;gap:12px;display:flex}.home-stats{border:1px solid var(--line);border-radius:var(--radius);background:var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:36px 0 0;display:grid;overflow:hidden}.home-stats>div{background:var(--panel);flex-direction:column-reverse;justify-content:flex-end;padding:14px 16px;display:flex}.home-stats dt{color:var(--muted);font-size:13px}.home-stats dd{font-variant-numeric:tabular-nums;margin:0;font-size:24px;font-weight:700;line-height:1.3}@media (min-width:560px){.home-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:980px){.home-hero{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:64px}}.course-path{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);overflow:hidden}.course-path__bar{border-bottom:1px solid var(--line);background:var(--bg-deep);direction:ltr;align-items:center;gap:10px;padding:10px 14px;display:flex}.course-path__dots{gap:6px;display:flex}.course-path__dots span{background:#ff5f56;border-radius:50%;width:10px;height:10px}.course-path__dots span:nth-child(2){background:#ffbd2e}.course-path__dots span:nth-child(3){background:#27c93f}.course-path__file{color:var(--muted);font-family:var(--mono);font-size:12px}.course-path__list{margin:0;padding:8px;list-style:none}.course-path__stage{color:var(--ink);border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"num title count""num track track";align-items:center;gap:8px 12px;padding:12px;text-decoration:none;transition:background-color .15s ease-out;display:grid}.course-path__stage:hover{background:var(--panel-2)}.course-path__num{border:1px solid var(--acid-dim);background:var(--pill);color:var(--acid);font-family:var(--mono);direction:ltr;border-radius:8px;grid-area:num;align-self:start;padding:3px 8px;font-size:13px;font-weight:600}.course-path__title{grid-area:title;font-size:15.5px;font-weight:600;line-height:1.5}.course-path__count{color:var(--muted);font-family:var(--mono);font-variant-numeric:tabular-nums;direction:ltr;grid-area:count;font-size:12.5px}.course-path__track,.course-progress__track{background:var(--line);border-radius:99px;height:4px;display:block;overflow:hidden}.course-path__track{grid-area:track}.course-path__fill,.course-progress__fill{background:var(--acid);transform-origin:100%;height:100%;transition:transform .2s ease-out;display:block;transform:scaleX(0)}.home-section{border-top:1px solid var(--line);padding-top:clamp(56px,8vw,96px);padding-bottom:clamp(56px,8vw,96px)}.home-section__head{max-width:680px;margin-bottom:32px}.home-section__title{margin:10px 0;font-size:clamp(27px,4vw,38px);font-weight:700;line-height:1.3}.home-section__intro{color:var(--muted);margin:0;font-size:16.5px}.home-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:16px;display:grid}.home-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:24px}.home-card__tag{border:1px solid var(--acid-dim);background:var(--pill);color:var(--acid);font-family:var(--mono);direction:ltr;border-radius:8px;padding:2px 8px;font-size:12px;display:inline-block}.home-card__title{margin:16px 0 8px;font-size:19px;font-weight:700;line-height:1.45}.home-card__body{color:var(--muted);margin:0;font-size:15px}.home-split{gap:48px;display:grid}@media (min-width:980px){.home-split{grid-template-columns:repeat(2,minmax(0,1fr));gap:64px}.home-split--faq{grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:start}}.home-outcomes{gap:10px;margin:0;padding:0;list-style:none;display:grid}.home-outcomes li{border:1px solid var(--line);background:var(--panel);border-radius:12px;align-items:flex-start;gap:12px;padding:14px 16px;font-size:15.5px;display:flex}.home-outcomes li:before{content:"✓";color:var(--acid);flex-shrink:0;font-weight:700}.home-steps{counter-reset:step;margin:0;padding:0;list-style:none}.home-steps li{border-bottom:1px solid var(--line);counter-increment:step;grid-template-columns:auto minmax(0,1fr);gap:2px 16px;padding:18px 0;display:grid}.home-steps li:first-child{padding-top:4px}.home-steps li:before{content:counter(step, decimal-leading-zero);color:var(--acid);font-family:var(--mono);grid-row:span 2;padding-top:3px;font-size:14px;font-weight:600}.home-steps h3{margin:0;font-size:17.5px;line-height:1.5}.home-steps p{color:var(--muted);margin:0;font-size:15px}.home-cta{padding-top:clamp(40px,6vw,72px);padding-bottom:clamp(56px,8vw,96px)}.home-cta__box{border:1px solid var(--line);background:var(--panel);border-radius:20px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:clamp(24px,5vw,44px);display:flex}.home-cta__title{margin:0 0 6px;font-size:clamp(23px,3.5vw,30px)}.home-cta__text{color:var(--muted);margin:0}.course__toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 32px;margin-bottom:12px;display:flex}.course-search{flex:320px;max-width:520px;position:relative}.course-search__icon{top:50%;color:var(--muted);pointer-events:none;position:absolute;inset-inline-start:15px;translate:0 -50%}.course-search__input{border:1px solid var(--line-strong);background:var(--panel);width:100%;min-height:50px;color:var(--ink);font:inherit;border-radius:12px;padding:10px 46px 10px 14px;font-size:16px}.course-search__input::placeholder{color:var(--muted);opacity:.8}.course-search__input:focus-visible{border-color:var(--acid-dim);outline-offset:0}.course-progress{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:12px;font-size:14.5px;display:flex}.course-progress strong{color:var(--ink)}.course-progress__track{width:120px;height:6px}.course-stage{padding-top:32px;padding-bottom:8px}.course-stage__head{align-items:flex-start;gap:14px;margin-bottom:18px;display:flex}.course-stage__num{border:1px solid var(--acid-dim);background:var(--pill);color:var(--acid);font-family:var(--mono);direction:ltr;border-radius:9px;flex-shrink:0;padding:4px 9px;font-size:13px;font-weight:600}.course-stage__title{margin:0;font-size:21px;font-weight:700;line-height:1.45}.course-stage__intro{max-width:60ch;color:var(--muted);margin:6px 0 0;font-size:14.5px}.course-stage__count{color:var(--muted);font-variant-numeric:tabular-nums;margin:8px 0 0;font-size:13px}.course-list{border:1px solid var(--line);border-radius:var(--radius);background:var(--line);flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.course-row{background:var(--panel);color:var(--ink);grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:4px 14px;padding:16px 18px;text-decoration:none;transition:background-color .15s ease-out;display:grid}.course-row:hover{background:var(--panel-2)}.course-row__num{color:var(--muted);font-family:var(--mono);font-variant-numeric:tabular-nums;direction:ltr;padding-top:3px;font-size:13px}.course-row__title{font-size:16px;font-weight:600;line-height:1.55;display:block}.course-row__blurb{color:var(--muted);margin-top:2px;font-size:14px;line-height:1.65;display:block}.course-row__aside{flex-direction:column;align-items:flex-end;gap:8px;padding-top:2px;display:flex}.course-row__time{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12.5px}.course-row__status{border:1px solid var(--line-strong);color:#0000;border-radius:50%;place-items:center;width:22px;height:22px;font-size:12px;line-height:1;display:grid}.course-row[data-done] .course-row__status{border-color:var(--acid);background:var(--acid);color:var(--acid-ink)}.course-row[data-done] .course-row__num{color:var(--acid)}.course-empty{border:1px dashed var(--line-strong);border-radius:var(--radius);color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:16px;margin-top:24px;padding:40px 20px;display:flex}.course-empty p{margin:0}@media (min-width:1024px){.course-stage{grid-template-columns:290px minmax(0,1fr);align-items:start;gap:48px;padding-top:40px;display:grid}.course-stage__head{top:calc(var(--header-h) + 24px);flex-direction:column;gap:12px;margin:0;position:sticky}}.page-head{max-width:720px;padding-top:clamp(28px,5vw,56px);padding-bottom:12px}.page-head__title{margin:14px 0 12px;font-size:clamp(32px,5.5vw,48px);font-weight:700;line-height:1.2}.page-head__intro{color:var(--muted);margin:0;font-size:17px}.page-lessons{padding-bottom:clamp(56px,8vw,96px)}.page-not-found{text-align:center;padding-top:clamp(64px,12vw,128px);padding-bottom:clamp(64px,12vw,128px)}.page-not-found .page-head__intro{max-width:48ch;margin-inline:auto}.page-not-found__actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px;display:flex}.reading-progress{top:var(--header-h);z-index:var(--z-progress);pointer-events:none;height:3px;position:fixed;left:0;right:0}.reading-progress__bar{background:var(--acid);transform-origin:100%;height:100%;transform:scaleX(0)}.lesson-layout{width:100%;max-width:1280px;margin-inline:auto;padding-top:20px;padding-bottom:80px}.lesson-layout__main{min-width:0}.lesson-layout__aside{display:none}.lesson-chrome{max-width:680px;margin-inline:auto;padding-inline:22px}@media (min-width:640px){.lesson-chrome{padding-inline:0}}.lesson-meta{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 18px;margin:10px 0 0;font-size:13.5px;display:flex}.lesson-layout .lesson{background:0 0;padding-bottom:8px}.lesson-layout .lesson .hero{padding-top:32px}.lesson-layout .lesson [id]{scroll-margin-top:0}.lesson-layout .lesson :not(pre)>code,.lesson-layout .lesson .en{overflow-wrap:anywhere}.lesson-end{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:44px;padding:20px 22px;display:flex}.lesson-end__text{color:var(--muted);margin:0;font-size:14.5px}.lesson-end__text strong{color:var(--ink);font-size:17px;display:block}.lesson-extra{margin-top:52px}.lesson-extra__title{margin:0 0 18px;font-size:23px;font-weight:700}.lesson-related{gap:10px;margin:0;padding:0;list-style:none;display:grid}.lesson-related__link{border:1px solid var(--line);background:var(--panel);border-radius:12px;align-items:flex-start;gap:14px;padding:16px 18px;text-decoration:none;transition:border-color .15s ease-out;display:flex}.lesson-related__link:hover{border-color:var(--acid-dim)}.lesson-related__num{color:var(--acid);font-family:var(--mono);direction:ltr;padding-top:2px;font-size:13px}.lesson-related__title{font-weight:600;line-height:1.55;display:block}.lesson-related__blurb{color:var(--muted);margin-top:2px;font-size:14px;display:block}.lesson-pager{gap:12px;margin-top:52px;display:grid}.lesson-pager__link{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:16px 18px;text-decoration:none;transition:border-color .15s ease-out;display:block}.lesson-pager__link:hover{border-color:var(--acid-dim)}.lesson-pager__link--next{text-align:end}.lesson-pager__dir{color:var(--muted);font-size:13px;display:block}.lesson-pager__title{margin-top:4px;font-weight:600;line-height:1.5;display:block}@media (min-width:560px){.lesson-pager{grid-template-columns:repeat(2,minmax(0,1fr))}.lesson-pager__link--next{grid-column:2}}.lesson-aside{top:calc(var(--header-h) + 28px);max-height:calc(100dvh - var(--header-h) - 56px);padding-bottom:16px;position:sticky;overflow-y:auto}.lesson-aside__meta{color:var(--muted);font-variant-numeric:tabular-nums;margin:0;font-size:13px}.lesson-aside__title{margin:2px 0 20px;font-size:16px;font-weight:700;line-height:1.5}.lesson-toc{margin-bottom:20px}.lesson-toc__label{color:var(--muted);margin:0 0 8px;font-size:13px;font-weight:600}.lesson-toc__list{border-inline-start:1px solid var(--line);margin:0;padding:0;list-style:none}.lesson-toc__link{color:var(--muted);border-inline-start:2px solid #0000;gap:10px;margin-inline-start:-1px;padding:6px 14px;font-size:14px;line-height:1.55;text-decoration:none;display:flex}.lesson-toc__link:hover{color:var(--ink)}.lesson-toc__link[aria-current]{border-inline-start-color:var(--acid);color:var(--acid)}.lesson-toc__num{color:var(--dim);font-family:var(--mono);font-variant-numeric:tabular-nums;direction:ltr;padding-top:2px;font-size:12px}.lesson-toc__link[aria-current] .lesson-toc__num{color:var(--acid)}@media (min-width:1100px){.lesson-layout{padding-inline:var(--gutter);grid-template-columns:minmax(0,1fr) 260px;gap:40px;display:grid}.lesson-layout__aside{display:block}.lesson-layout .lesson .toc{display:none}}.site-header__lang{display:none}@media (min-width:880px){.site-header__lang{display:inline-flex}}.ui-quick-answer{border:1px solid var(--acid-dim);background:var(--pill);border-inline-start-width:4px;border-radius:12px;margin-block:22px 8px;padding:16px 18px}.ui-quick-answer__label{color:var(--acid);margin:0 0 6px;font-size:13px;font-weight:700}.ui-quick-answer__text{color:var(--ink);margin:0;font-size:16px;line-height:1.85}[dir=ltr] .reading-progress__bar,[dir=ltr] .course-path__fill,[dir=ltr] .course-progress__fill{transform-origin:0}[dir=ltr] .ui-breadcrumbs li:not(:last-child):after{content:"›"}.page-blog,.page-glossary{padding-bottom:clamp(56px,8vw,96px)}.post-list{gap:14px;margin:28px 0 0;padding:0;list-style:none;display:grid}.post-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:20px 22px;transition:border-color .15s ease-out;position:relative}.post-card:hover{border-color:var(--acid-dim)}.post-card__title{margin:0;font-size:20px;line-height:1.5}.post-card__title a{text-decoration:none}.post-card__title a:after{content:"";position:absolute;inset:0}.post-card__desc{color:var(--muted);margin:8px 0 0;font-size:15px}.post-card__meta{color:var(--muted);font-variant-numeric:tabular-nums;margin:10px 0 0;font-size:13.5px}.page-feed{margin:28px 0 0;font-size:14px}.page-feed a{color:var(--acid)}.post-inner{max-width:720px;margin-inline:auto;padding-inline:22px}@media (min-width:760px){.post-inner{padding-inline:0}}.post__title{margin:16px 0 12px;font-size:clamp(30px,5vw,42px);font-weight:700;line-height:1.3}.post__meta{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 18px;margin:0;font-size:14px;display:flex}.post__meta a{color:var(--acid)}.post-prose{margin-top:30px;font-size:17px;line-height:1.9}.post-prose p,.post-prose ul,.post-prose ol{margin:0 0 1.1em}.post-prose h2{scroll-margin-top:calc(var(--header-h) + 20px);margin:2em 0 .6em;font-size:26px;line-height:1.4}.post-prose h3{scroll-margin-top:calc(var(--header-h) + 20px);margin:1.6em 0 .5em;font-size:20px;line-height:1.5}.post-prose a{color:var(--acid);text-underline-offset:3px}.post-prose strong{color:var(--ink)}.post-prose ul,.post-prose ol{padding-inline-start:1.4em}.post-prose li+li{margin-top:.35em}.post-prose li::marker{color:var(--acid)}.post-prose code{background:var(--pill);color:var(--acid);font-family:var(--mono);overflow-wrap:anywhere;direction:ltr;unicode-bidi:isolate;border-radius:5px;padding:1px 6px;font-size:.86em}.post-prose blockquote{border-inline-start:3px solid var(--acid-dim);background:var(--panel);color:var(--muted);margin:0 0 1.2em;padding:12px 16px}.post-prose blockquote p:last-child{margin-bottom:0}.post-prose ul:has(>li>input[type=checkbox]){padding-inline-start:0;list-style:none}.post-prose li>input[type=checkbox]{accent-color:var(--acid);margin-inline-end:10px}.post-code{border:1px solid var(--line);background:var(--bg-deep);border-radius:10px;margin:0 0 1.2em;position:relative;overflow:hidden}.post-code__lang{color:var(--acid);font-family:var(--mono);text-transform:uppercase;font-size:11px;position:absolute;top:8px;right:12px}.post-code pre{color:#c9e6d4;font-family:var(--mono);text-align:left;margin:0;padding:32px 16px 16px;font-size:13.5px;line-height:1.7;overflow-x:auto}.post-code pre code{color:inherit;font-size:inherit;background:0 0;padding:0}.post-table{border:1px solid var(--line);border-radius:10px;margin:0 0 1.2em;overflow-x:auto}.post-table table{border-collapse:collapse;width:100%;font-size:15px;line-height:1.6}.post-table th,.post-table td{border-bottom:1px solid var(--line);text-align:start;vertical-align:top;padding:10px 14px}.post-table th{background:var(--panel-2);color:var(--ink);font-weight:700}.post-table tr:last-child td{border-bottom:0}.post-section{margin-top:48px}.post-section__title{margin:0 0 12px;font-size:23px}.post-section__note{color:var(--muted);margin:0 0 12px;font-size:14.5px}.post-sources{margin:0;padding-inline-start:1.4em;font-size:14.5px}.post-sources li+li{margin-top:6px}.post-sources a{color:var(--acid);overflow-wrap:anywhere}.glossary-letters{direction:ltr;flex-wrap:wrap;gap:6px;margin:24px 0 0;display:flex}[dir=rtl] .glossary-letters{justify-content:flex-end}.glossary-letters a{border:1px solid var(--line-strong);min-width:44px;height:44px;color:var(--muted);font-family:var(--mono);border-radius:10px;place-items:center;padding:0 10px;font-size:14px;text-decoration:none;display:grid}.glossary-letters a:hover{border-color:var(--acid-dim);color:var(--acid)}.glossary-group{scroll-margin-top:calc(var(--header-h) + 16px);margin-top:36px}.glossary-group__letter{color:var(--acid);font-family:var(--mono);margin:0 0 12px;font-size:22px}.glossary-list{gap:12px;margin:0;display:grid}.glossary-item{border:1px solid var(--line);background:var(--panel);scroll-margin-top:calc(var(--header-h) + 16px);border-radius:12px;padding:16px 18px}.glossary-item dt{font-size:18px;font-weight:700}.glossary-item dfn{direction:ltr;unicode-bidi:isolate;font-style:normal}.glossary-item dd{margin:6px 0 0}.glossary-item dd p{color:var(--muted);margin:0;font-size:15.5px}.glossary-item__lesson{color:var(--acid);margin-top:8px;font-size:14px;display:inline-block}
