@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-500-normal.BgVn5rGT.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff)format("woff")}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-arabic-arabic-400-normal.CyU-ddYS.woff2)format("woff2"),url(/_astro/ibm-plex-sans-arabic-arabic-400-normal.EA1o-u_Q.woff)format("woff")}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-arabic-arabic-500-normal.C4MQITzh.woff2)format("woff2"),url(/_astro/ibm-plex-sans-arabic-arabic-500-normal.DPXcppbm.woff)format("woff")}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-arabic-arabic-600-normal.0pRdybE_.woff2)format("woff2"),url(/_astro/ibm-plex-sans-arabic-arabic-600-normal.MJZ0liF5.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff)format("woff")}:root{--bg:#fafaf7;--surface:#fff;--ink:#15171c;--muted:#59606f;--line:#e2e2d9;--accent:#0f766e;--accent-ink:#fff;--accent-soft:#e2f1ee;--warn:#a8500a;--warn-soft:#fbf0df;--font-sans:"IBM Plex Sans", "IBM Plex Sans Arabic", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", "IBM Plex Sans Arabic", ui-monospace, "SFMono-Regular", Menlo, monospace;--wrap:68rem;--measure:43rem;--gutter:clamp(1rem, 4vw, 2rem);--radius:10px;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0d1015;--surface:#141920;--ink:#e7e9ee;--muted:#9aa3b3;--line:#252c37;--accent:#5fe0cb;--accent-ink:#05211d;--accent-soft:#11302b;--warn:#f5b454;--warn-soft:#2e2413;color-scheme:dark}}:root[data-theme=dark]{--bg:#0d1015;--surface:#141920;--ink:#e7e9ee;--muted:#9aa3b3;--line:#252c37;--accent:#5fe0cb;--accent-ink:#05211d;--accent-soft:#11302b;--warn:#f5b454;--warn-soft:#2e2413;color-scheme:dark}html[lang=ar]{--font-sans:"IBM Plex Sans Arabic", "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:1.0625rem;line-height:1.65}html[lang=ar] body{line-height:1.9}h1,h2,h3,p,ul,ol,figure,dl,dd{margin:0}h1,h2,h3{letter-spacing:-.015em;text-wrap:balance;font-weight:600;line-height:1.2}html[lang=ar] h1,html[lang=ar] h2,html[lang=ar] h3{letter-spacing:0;line-height:1.45}a{color:inherit;text-decoration-color:color-mix(in srgb, currentColor 35%, transparent);text-underline-offset:.2em}a:hover{text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}::selection{background:var(--accent);color:var(--accent-ink)}img{max-width:100%;height:auto;display:block}.wrap{width:100%;max-width:var(--wrap);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:clamp(3rem,8vw,5.5rem)}.section+.section{border-top:1px solid var(--line)}.section-head{max-width:var(--measure);gap:.5rem;margin-bottom:2rem;display:grid}.section-head h2{font-size:clamp(1.5rem,3vw,1.9rem)}.section-head p{color:var(--muted)}.eyebrow{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:.78rem}html[lang=ar] .eyebrow{letter-spacing:0;font-size:.9rem}.muted{color:var(--muted)}.mono{font-family:var(--font-mono)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.arrow{transition:transform .2s;display:inline-block}html[dir=rtl] .arrow{transform:scaleX(-1)}.btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;align-items:center;gap:.5rem;padding:.7rem 1.15rem;font-size:.98rem;font-weight:500;text-decoration:none;transition:border-color .15s,background-color .15s;display:inline-flex}.btn:hover{border-color:var(--ink)}button.btn{cursor:pointer;font-family:inherit}.btn-row{flex-wrap:wrap;gap:.75rem;display:flex}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 88%, var(--ink))}.tags{flex-wrap:wrap;gap:.4rem;padding:0;list-style:none;display:flex}.tags li{font-family:var(--font-mono);border:1px solid var(--line);color:var(--muted);white-space:nowrap;direction:ltr;border-radius:999px;padding:.15rem .55rem;font-size:.76rem}.prose{max-width:var(--measure)}.prose>*+*{margin-top:1.1rem}.prose h2{border-top:1px solid var(--line);margin-top:3rem;padding-top:1.5rem;font-size:1.45rem}.prose h2:first-child{border-top:0;margin-top:0;padding-top:0}.prose h3{margin-top:2rem;font-size:1.1rem}.prose ul,.prose ol{padding-inline-start:1.25rem}.prose li+li{margin-top:.4rem}.prose li::marker{color:var(--accent)}.prose strong{font-weight:600}.prose code{font-family:var(--font-mono);background:var(--accent-soft);direction:ltr;unicode-bidi:isolate;border-radius:5px;padding:.1em .35em;font-size:.88em}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}.theme-toggle[data-astro-cid-l6lhmie6]{border:1px solid var(--line);width:2.1rem;height:2.1rem;color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;place-items:center;display:grid}.theme-toggle[data-astro-cid-l6lhmie6]:hover{color:var(--ink);border-color:var(--ink)}.sun[data-astro-cid-l6lhmie6]{display:none}:root[data-theme=dark] .sun[data-astro-cid-l6lhmie6]{display:block}:root[data-theme=dark] .moon[data-astro-cid-l6lhmie6]{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .sun[data-astro-cid-l6lhmie6]{display:block}:root:not([data-theme=light]) .moon[data-astro-cid-l6lhmie6]{display:none}}.site-header[data-astro-cid-nen7h5rs]{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:blur(10px);z-index:5;position:sticky;top:0}.bar[data-astro-cid-nen7h5rs]{flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;padding-block:.8rem;display:flex}.brand[data-astro-cid-nen7h5rs]{align-items:center;gap:.6rem;margin-inline-end:auto;font-weight:600;text-decoration:none;display:inline-flex}.mark[data-astro-cid-nen7h5rs]{background:var(--accent);width:2rem;height:2rem;color:var(--accent-ink);font-family:var(--font-mono);border-radius:8px;place-items:center;font-size:.8rem;font-weight:500;display:grid}nav[data-astro-cid-nen7h5rs]{gap:1.25rem;display:flex}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{color:var(--muted);border-bottom:2px solid #0000;padding-block:.25rem;font-size:.97rem;text-decoration:none}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover,nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--ink)}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{border-bottom-color:var(--accent)}.tools[data-astro-cid-nen7h5rs]{align-items:center;gap:.5rem;display:flex}.lang[data-astro-cid-nen7h5rs]{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.3rem .7rem;font-size:.9rem;text-decoration:none}.lang[data-astro-cid-nen7h5rs]:hover{color:var(--ink);border-color:var(--ink)}@media (width<=34rem){.brand[data-astro-cid-nen7h5rs] span[data-astro-cid-nen7h5rs]:last-child{display:none}.bar[data-astro-cid-nen7h5rs]{gap:.5rem .7rem}nav[data-astro-cid-nen7h5rs]{gap:.8rem}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{font-size:.9rem}.contact-link[data-astro-cid-nen7h5rs]{display:none}.lang[data-astro-cid-nen7h5rs]{padding:.25rem .55rem;font-size:.85rem}}.contact[data-astro-cid-he3spzz3]{border-top:1px solid var(--line);background:var(--surface);padding-block:clamp(3rem,8vw,5rem) 2rem}.grid[data-astro-cid-he3spzz3]{grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:2.5rem;display:grid}.intro[data-astro-cid-he3spzz3]{align-content:start;justify-items:start;gap:.75rem;display:grid}.intro[data-astro-cid-he3spzz3] h2[data-astro-cid-he3spzz3]{font-size:clamp(1.6rem,3.4vw,2.2rem)}.intro[data-astro-cid-he3spzz3] .btn-row[data-astro-cid-he3spzz3]{margin-top:.5rem}.details[data-astro-cid-he3spzz3]{align-content:start;gap:1.25rem;display:grid}dt[data-astro-cid-he3spzz3]{font-family:var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.15rem;font-size:.78rem}html[lang=ar] dt[data-astro-cid-he3spzz3]{letter-spacing:0;font-size:.88rem}dd[data-astro-cid-he3spzz3]{font-size:1.1rem}dd[data-astro-cid-he3spzz3] a[data-astro-cid-he3spzz3]{overflow-wrap:anywhere;display:inline-block}.links[data-astro-cid-he3spzz3]{flex-wrap:wrap;gap:.25rem 1.25rem;display:flex}.fine[data-astro-cid-he3spzz3]{border-top:1px solid var(--line);color:var(--muted);margin-top:3rem;padding-top:1.25rem;font-size:.85rem}.cv-dialog[data-astro-cid-zmofjd43]{border:1px solid var(--line);background:var(--surface);width:min(58rem,100vw - 2rem);max-width:none;height:min(94dvh,76rem);max-height:none;color:var(--ink);border-radius:14px;padding:0;overflow:hidden}.cv-dialog[data-astro-cid-zmofjd43][open]{flex-direction:column;animation:.18s ease-out cv-in;display:flex}.cv-dialog[data-astro-cid-zmofjd43]::backdrop{backdrop-filter:blur(3px);background:#080a0e9e}html:has(.cv-dialog[open]){overflow:hidden}.bar[data-astro-cid-zmofjd43]{padding:.7rem .8rem;border-bottom:1px solid var(--line);align-items:center;gap:.6rem;padding-inline-start:1.25rem;display:flex}.bar[data-astro-cid-zmofjd43] h2[data-astro-cid-zmofjd43]{margin-inline-end:auto;font-size:1.05rem}.bar[data-astro-cid-zmofjd43] .btn[data-astro-cid-zmofjd43]{padding:.45rem .95rem;font-size:.9rem}.close[data-astro-cid-zmofjd43]{border:1px solid var(--line);width:2.4rem;height:2.4rem;color:var(--ink);cursor:pointer;background:0 0;border-radius:999px;place-items:center;display:grid}.close[data-astro-cid-zmofjd43]:hover{border-color:var(--ink)}.pages[data-astro-cid-zmofjd43]{overscroll-behavior:contain;background:var(--bg);direction:ltr;flex:1;align-content:start;gap:1rem;min-height:0;padding:1rem;display:grid;overflow:auto}.pages[data-astro-cid-zmofjd43]:focus-visible{outline-offset:-3px}.pages[data-astro-cid-zmofjd43] img{background:#fff;border-radius:4px;width:100%;height:auto;display:block;box-shadow:0 0 0 1px #00000014,0 8px 24px #00000024}@keyframes cv-in{0%{opacity:0;transform:translateY(10px)}}@media (prefers-reduced-motion:reduce){.cv-dialog[data-astro-cid-zmofjd43][open]{animation:none}}@media (width<=34rem){.cv-dialog[data-astro-cid-zmofjd43]{border-radius:10px;width:calc(100vw - 1rem);height:calc(100dvh - 1rem)}.pages[data-astro-cid-zmofjd43]{gap:.5rem;padding:.5rem}}@media (width<=48rem){.pages[data-astro-cid-zmofjd43] img{cursor:zoom-in}.pages[data-astro-cid-zmofjd43].zoomed img{cursor:zoom-out;width:230%;max-width:none}}.skip[data-astro-cid-hkbrpulz]{inset-inline-start:1rem;background:var(--accent);color:var(--accent-ink);z-index:10;border-radius:6px;padding:.5rem .9rem;position:absolute;top:-4rem}.skip[data-astro-cid-hkbrpulz]:focus{top:1rem}
