PageSourceSearch

https://abdullahdiaa.com/blog/

html abdullahdiaa.com collected 2026-10-03 20:27:43 UTC 89,903 bytes, 2 lines download raw bytes

1<!DOCTYPE html><html dir="ltr" lang="en"><head><meta charSet="utf-8" data-next-head=""/><meta charSet="utf-8"/><meta name="viewport" content="width=device-width" data-next-head=""/><meta name="description" content="Abdullah Diaa is a Senior Software Engineer &amp; Educator." data-next-head=""/><meta name="twitter:card" content="summary_large_image" data-next-head=""/><meta name="twitter:site" content="@abdullahdiaa" data-next-head=""/><meta name="twitter:creator" content="@abdullahdiaa" data-next-head=""/><meta property="og:description" content="Abdullah Diaa is a Senior Software Engineer &amp; Educator." data-next-head=""/><meta property="og:url" content="https://abdullahdiaa.com" data-next-head=""/><meta property="og:type" content="website" data-next-head=""/><meta property="og:image" content="https://abdullahdiaa.com/static/images/banner.png" data-next-head=""/><meta property="og:image:alt" content="Abdullah Diaa - Senior Software Engineer &amp; Educator" data-next-head=""/><meta property="og:image:width" content="1200" data-next-head=""/><meta property="og:image:height" content="630" data-next-head=""/><meta property="og:locale" content="en_US" data-next-head=""/><meta property="og:site_name" content="Abdullah Diaa" data-next-head=""/><title data-next-head="">Blog | Abdullah Diaa</title><meta name="robots" content="index,follow" data-next-head=""/><meta property="og:title" content="Blog" data-next-head=""/><link href="/static/favicons/favicon.ico" rel="shortcut icon"/><link href="/static/favicons/site.webmanifest" rel="manifest"/><link href="/static/favicons/apple-touch-icon.png" rel="apple-touch-icon" sizes="180x180"/><link href="/static/favicons/favicon-32x32.png" rel="icon" sizes="32x32" type="image/png"/><link href="/static/favicons/favicon-16x16.png" rel="icon" sizes="16x16" type="image/png"/><meta content="#191e27" name="theme-color"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="preload" href="/_next/static/chunks/3a60c061f3a36edd.css" as="style"/><link rel="preload" as="image" imageSrcSet="/_next/image/?url=%2Fstatic%2Fimages%2Fabdullahdiaa-headshot.png&amp;w=32&amp;q=75 1x, /_next/image/?url=%2Fstatic%2Fimages%2Fabdullahdiaa-headshot.png&amp;w=64&amp;q=75 2x" data-next-head=""/><link rel="preload" as="image" imageSrcSet="/_next/image/?url=%2Fstatic%2Fimages%2Fios-traffic-interception.jpg&amp;w=384&amp;q=75 1x, /_next/image/?url=%2Fstatic%2Fimages%2Fios-traffic-interception.jpg&amp;w=640&amp;q=75 2x" data-next-head=""/><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Arabic:wght@400;700&amp;
1family=Roboto+Mono:wght@400;700&amp;display=swap" rel="stylesheet"/><link rel="stylesheet" href="/_next/static/chunks/3a60c061f3a36edd.css" data-n-g=""/><noscript data-n-css=""></noscript>
1<script src="/_next/static/chunks/273eff2c5906af05.js" defer=""></script>
1<script src="/_next/static/chunks/2a9dd8513855fafa.js" defer=""></script>
1<script src="/_next/static/chunks/db27248b440c0dc6.js" defer=""></script>
1<script src="/_next/static/chunks/79b595c675ef16c7.js" defer=""></script>
1<script src="/_next/static/chunks/002dcc2fb8e70de8.js" defer=""></script>
1<script src="/_next/static/chunks/40bb0130923b6e11.js" defer=""></script>
1<script src="/_next/static/chunks/turbopack-b56e7f8b36b23c73.js" defer=""></script>
1<script src="/_next/static/chunks/348880382a0afa64.js" defer=""></script>
1<script src="/_next/static/chunks/aeb792faba8ed1ac.js" defer=""></script>
1<script src="/_next/static/chunks/3b43a3f6352e6af7.js" defer=""></script>
1<script src="/_next/static/chunks/eabbde521ef12f17.js" defer=""></script>
1<script src="/_next/static/chunks/e298a354b21b4ad8.js" defer=""></script>
1<script src="/_next/static/chunks/turbopack-473242f705a718f0.js" defer=""></script>
1<script src="/_next/static/RxXiLndgEat9Ba_kV8MSi/_ssgManifest.js" defer=""></script>
1<script src="/_next/static/RxXiLndgEat9Ba_kV8MSi/_buildManifest.js" defer=""></script>
1</head><body><link rel="preload" as="image" imageSrcSet="/_next/image/?url=%2Fstatic%2Fimages%2Fabdullahdiaa-headshot.png&amp;w=32&amp;q=75 1x, /_next/image/?url=%2Fstatic%2Fimages%2Fabdullahdiaa-headshot.png&amp;w=64&amp;q=75 2x"/><link rel="preload" as="image" imageSrcSet="/_next/image/?url=%2Fstatic%2Fimages%2Fios-traffic-interception.jpg&amp;w=384&amp;q=75 1x, /_next/image/?url=%2Fstatic%2Fimages%2Fios-traffic-interception.jpg&amp;w=640&amp;q=75 2x"/><div id="__next"><style data-emotion="css-global ad1llf">@layer reset,base,tokens,recipes;</style><style data-emotion="css-global 1b44bvc">@layer reset{html{line-height:1.5;--font-fallback:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Noto Sans',sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol','Noto Color Emoji';-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;touch-action:manipulation;-moz-tab-size:4;tab-size:4;font-family:var(--global-font-body, var(--font-fallback));}*{margin:0px;padding:0px;font:inherit;word-wrap:break-word;-webkit-tap-highlight-color:transparent;}*,*::before,*::after,*::backdrop{box-sizing:border-box;border-width:0px;border-style:solid;border-color:var(--global-color-border, currentColor);}hr{height:0px;color:inherit;border-top-width:1px;}body{min-height:100dvh;position:relative;}img{border-style:none;}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle;}iframe{border:none;}img,video{max-width:100%;height:auto;}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;}ol,ul{list-style:none;}code,kbd,pre,samp{font-size:1em;}button,[type='button'],[type='reset'],[type='submit']{-webkit-appearance:button;background-color:transparent;background-image:none;}button,input,optgroup,select,textarea{color:inherit;}button,select{text-transform:none;}table{text-indent:0px;border-color:inherit;border-collapse:collapse;}*::-webkit-input-placeholder{opacity:unset;color:#9ca3af;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}*::-moz-placeholder{opacity:unset;color:#9ca3af;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}*:-ms-input-placeholder{opacity:unset;color:#9ca3af;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}*::placeholder{opacity:unset;color:#9ca3af;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}textarea{resize:vertical;}summary{display:-webkit-box;display:-webkit-list-item;display:-ms-list-itembox;display:list-item;}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sub{bottom:-0.25em;}sup{top:-0.5em;}dialog{padding:0px;}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit;}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder;}code,kbd,samp,pre{font-size:1em;--font-mono-fallback:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New';font-family:var(--global-font-mono, var(--font-mono-fallback));}input[type="text"],input[type="email"],input[type="search"],input[type="password"]{-webkit-appearance:none;-moz-appearance:none;}input[type='search']{-webkit-appearance:textfield;outline-offset:-2px;}::-webkit-search-decoration,::-webkit-search-cancel-button{-webkit-appearance:none;}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto;}input[type='number']{-moz-appearance:textfield;}:-moz-ui-invalid{box-shadow:none;}:-moz-focusring{outline:auto;}[hidden]:where(:not([hidden='until-found'])){display:none!important;}}@layer base{@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}@keyframes spin{0%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}@-webkit-keyframes pulse{50%{opacity:0.5;}}@keyframes pulse{50%{opacity:0.5;}}@-webkit-keyframes ping{75%,100%{-webkit-transform:scale(2);-moz-transform:scale(2);-ms-transform:scale(2);transform:scale(2);opacity:0;}}@keyframes ping{75%,100%{-webkit-transform:scale(2);-moz-transform:scale(2);-ms-transform:scale(2);transform:scale(2);opacity:0;}}@-webkit-keyframes bounce{0%,100%{-webkit-transform:translateY(-25%);-moz-transform:translateY(-25%);-ms-transform:translateY(-25%);transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(0.8,0,1,1);animation-timing-function:cubic-bezier(0.8,0,1,1);}50%{-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,0.2,1);animation-timing-function:cubic-bezier(0,0,0.2,1);}}@keyframes bounce{0%,100%{-webkit-transform:translateY(-25%);-moz-transform:translateY(-25%);-ms-transform:translateY(-25%);transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(0.8,0,1,1);animation-timing-function:cubic-bezier(0.8,0,1,1);}50%{-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,0.2,1);animation-timing-function:cubic-bezier(0,0,0.2,1);}}@-webkit-keyframes bg-position{from{-webkit-background-position:var(--animate-from, 1rem) 0;background-position:var(--animate-from, 1rem) 0;}to{-webkit-background-position:var(--animate-to, 0) 0;background-position:var(--animate-to, 0) 0;}}@keyframes bg-position{from{-webkit-background-position:var(--animate-from, 1rem) 0;background-position:var(--animate-from, 1rem) 0;}to{-webkit-background-position:var(--animate-to, 0) 0;background-position:var(--animate-to, 0) 0;}}@-webkit-keyframes position{from{inset-inline-start:var(--animate-from-x);inset-block-start:var(--animate-from-y);}to{inset-inline-start:var(--animate-to-x);inset-block-start:var(--animate-to-y);}}@keyframes position{from{inset-inline-start:var(--animate-from-x);inset-block-start:var(--animate-from-y);}to{inset-inline-start:var(--animate-to-x);inset-block-start:var(--animate-to-y);}}@-webkit-keyframes circular-progress{0%{stroke-dasharray:1,400;stroke-dashoffset:0;}50%{stroke-dasharray:400,400;stroke-dashoffset:-100%;}100%{stroke-dasharray:400,400;stroke-dashoffset:-260%;}}@keyframes circular-progress{0%{stroke-dasharray:1,400;stroke-dashoffset:0;}50%{stroke-dasharray:400,400;stroke-dashoffset:-100%;}100%{stroke-dasharray:400,400;stroke-dashoffset:-260%;}}@-webkit-keyframes expand-height{from{height:0;}to{height:var(--height);}}@keyframes expand-height{from{height:0;}to{height:var(--height);}}@-webkit-keyframes collapse-height{from{height:var(--height);}to{height:0;}}@keyframes collapse-height{from{height:var(--height);}to{height:0;}}@-webkit-keyframes expand-width{from{width:0;}to{width:var(--width);}}@keyframes expand-width{from{width:0;}to{width:var(--width);}}@-webkit-keyframes collapse-width{from{height:var(--width);}to{height:0;}}@keyframes collapse-width{from{height:var(--width);}to{height:0;}}@-webkit-keyframes fade-in{from{opacity:0;}to{opacity:1;}}@keyframes fade-in{from{opacity:0;}to{opacity:1;}}@-webkit-keyframes fade-out{from{opacity:1;}to{opacity:0;}}@keyframes fade-out{from{opacity:1;}to{opacity:0;}}@-webkit-keyframes slide-from-left-full{from{-webkit-translate:-100% 0;-moz-translate:-100% 0;-ms-translate:-100% 0;translate:-100% 0;}to{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}}@keyframes slide-from-left-full{from{-webkit-translate:-100% 0;-moz-translate:-100% 0;-ms-translate:-100% 0;translate:-100% 0;}to{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}}@-webkit-keyframes slide-from-right-full{from{-webkit-translate:100% 0;-moz-translate:100% 0;-ms-translate:100% 0;translate:100% 0;}to{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}}@keyframes slide-from-right-full{from{-webkit-translate:100% 0;-moz-translate:100% 0;-ms-translate:100% 0;translate:100% 0;}to{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}}@-webkit-keyframes slide-from-top-full{from{-webkit-translate:0 -100%;-moz-translate:0 -100%;-ms-translate:0 -100%;translate:0 -100%;}to{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}}@keyframes slide-from-top-full{from{-webkit-translate:0 -100%;-moz-translate:0 -100%;-ms-translate:0 -100%;translate:0 -100%;}to{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}}@-webkit-keyframes slide-from-bottom-full{from{-webkit-translate:0 100%;-moz-translate:0 100%;-ms-translate:0 100%;translate:0 100%;}to{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}}@keyframes slide-from-bottom-full{from{-webkit-translate:0 100%;-moz-translate:0 100%;-ms-translate:0 100%;translate:0 100%;}to{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}}@-webkit-keyframes slide-to-left-full{from{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}to{-webkit-translate:-100% 0;-moz-translate:-100% 0;-ms-translate:-100% 0;translate:-100% 0;}}@keyframes slide-to-left-full{from{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}to{-webkit-translate:-100% 0;-moz-translate:-100% 0;-ms-translate:-100% 0;translate:-100% 0;}}@-webkit-keyframes slide-to-right-full{from{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}to{-webkit-translate:100% 0;-moz-translate:100% 0;-ms-translate:100% 0;translate:100% 0;}}@keyframes slide-to-right-full{from{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}to{-webkit-translate:100% 0;-moz-translate:100% 0;-ms-translate:100% 0;translate:100% 0;}}@-webkit-keyframes slide-to-top-full{from{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}to{-webkit-translate:0 -100%;-moz-translate:0 -100%;-ms-translate:0 -100%;translate:0 -100%;}}@keyframes slide-to-top-full{from{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}to{-webkit-translate:0 -100%;-moz-translate:0 -100%;-ms-translate:0 -100%;translate:0 -100%;}}@-webkit-keyframes slide-to-bottom-full{from{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}to{-webkit-translate:0 100%;-moz-translate:0 100%;-ms-translate:0 100%;translate:0 100%;}}@keyframes slide-to-bottom-full{from{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}to{-webkit-translate:0 100%;-moz-translate:0 100%;-ms-translate:0 100%;translate:0 100%;}}@-webkit-keyframes slide-from-top{0%{-webkit-translate:0 -0.5rem;-moz-translate:0 -0.5rem;-ms-translate:0 -0.5rem;translate:0 -0.5rem;}to{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}}@keyframes slide-from-top{0%{-webkit-translate:0 -0.5rem;-moz-translate:0 -0.5rem;-ms-translate:0 -0.5rem;translate:0 -0.5rem;}to{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}}@-webkit-keyframes slide-from-bottom{0%{-webkit-translate:0 0.5rem;-moz-translate:0 0.5rem;-ms-translate:0 0.5rem;translate:0 0.5rem;}to{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}}@keyframes slide-from-bottom{0%{-webkit-translate:0 0.5rem;-moz-translate:0 0.5rem;-ms-translate:0 0.5rem;translate:0 0.5rem;}to{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}}@-webkit-keyframes slide-from-left{0%{-webkit-translate:-0.5rem 0;-moz-translate:-0.5rem 0;-ms-translate:-0.5rem 0;translate:-0.5rem 0;}to{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}}@keyframes slide-from-left{0%{-webkit-translate:-0.5rem 0;-moz-translate:-0.5rem 0;-ms-translate:-0.5rem 0;translate:-0.5rem 0;}to{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}}@-webkit-keyframes slide-from-right{0%{-webkit-translate:0.5rem 0;-moz-translate:0.5rem 0;-ms-translate:0.5rem 0;translate:0.5rem 0;}to{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}}@keyframes slide-from-right{0%{-webkit-translate:0.5rem 0;-moz-translate:0.5rem 0;-ms-translate:0.5rem 0;translate:0.5rem 0;}to{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}}@-webkit-keyframes slide-to-top{0%{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}to{-webkit-translate:0 -0.5rem;-moz-translate:0 -0.5rem;-ms-translate:0 -0.5rem;translate:0 -0.5rem;}}@keyframes slide-to-top{0%{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}to{-webkit-translate:0 -0.5rem;-moz-translate:0 -0.5rem;-ms-translate:0 -0.5rem;translate:0 -0.5rem;}}@-webkit-keyframes slide-to-bottom{0%{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}to{-webkit-translate:0 0.5rem;-moz-translate:0 0.5rem;-ms-translate:0 0.5rem;translate:0 0.5rem;}}@keyframes slide-to-bottom{0%{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}to{-webkit-translate:0 0.5rem;-moz-translate:0 0.5rem;-ms-translate:0 0.5rem;translate:0 0.5rem;}}@-webkit-keyframes slide-to-left{0%{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}to{-webkit-translate:-0.5rem 0;-moz-translate:-0.5rem 0;-ms-translate:-0.5rem 0;translate:-0.5rem 0;}}@keyframes slide-to-left{0%{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}to{-webkit-translate:-0.5rem 0;-moz-translate:-0.5rem 0;-ms-translate:-0.5rem 0;translate:-0.5rem 0;}}@-webkit-keyframes slide-to-right{0%{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}to{-webkit-translate:0.5rem 0;-moz-translate:0.5rem 0;-ms-translate:0.5rem 0;translate:0.5rem 0;}}@keyframes slide-to-right{0%{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}to{-webkit-translate:0.5rem 0;-moz-translate:0.5rem 0;-ms-translate:0.5rem 0;translate:0.5rem 0;}}@-webkit-keyframes scale-in{from{scale:0.95;}to{scale:1;}}@keyframes scale-in{from{scale:0.95;}to{scale:1;}}@-webkit-keyframes scale-out{from{scale:1;}to{scale:0.95;}}@keyframes scale-out{from{scale:1;}to{scale:0.95;}}*{font-feature-settings:"cv11";--ring-inset:var(--chakra-empty,/**/ /*!*/)!important;--ring-offset-width:0px;--ring-offset-color:#fff;--ring-color:rgba(66, 153, 225, 0.6);--ring-offset-shadow:0 0 #0000;--ring-shadow:0 0 #0000;--brightness:var(--chakra-empty,/**/ /*!*/)!important;--contrast:var(--chakra-empty,/**/ /*!*/)!important;--grayscale:var(--chakra-empty,/**/ /*!*/)!important;--hue-rotate:var(--chakra-empty,/**/ /*!*/)!important;--invert:var(--chakra-empty,/**/ /*!*/)!important;--saturate:var(--chakra-empty,/**/ /*!*/)!important;--sepia:var(--chakra-empty,/**/ /*!*/)!important;--drop-shadow:var(--chakra-empty,/**/ /*!*/)!important;--backdrop-blur:var(--chakra-empty,/**/ /*!*/)!important;--backdrop-brightness:var(--chakra-empty,/**/ /*!*/)!important;--backdrop-contrast:var(--chakra-empty,/**/ /*!*/)!important;--backdrop-grayscale:var(--chakra-empty,/**/ /*!*/)!important;--backdrop-hue-rotate:var(--chakra-empty,/**/ /*!*/)!important;--backdrop-invert:var(--chakra-empty,/**/ /*!*/)!important;--backdrop-opacity:var(--chakra-empty,/**/ /*!*/)!important;--backdrop-saturate:var(--chakra-empty,/**/ /*!*/)!important;--backdrop-sepia:var(--chakra-empty,/**/ /*!*/)!important;--global-font-mono:var(--chakra-fonts-mono);--global-font-body:var(--chakra-fonts-body);--global-color-border:var(--chakra-colors-border);}html{color:var(--chakra-colors-fg);background:var(--chakra-colors-bg);--bg-currentcolor:var(--chakra-colors-bg);line-height:1.5;--chakra-colors-color-palette-50:var(--chakra-colors-gray-50);--chakra-colors-color-palette-100:var(--chakra-colors-gray-100);--chakra-colors-color-palette-200:var(--chakra-colors-gray-200);--chakra-colors-color-palette-300:var(--chakra-colors-gray-300);--chakra-colors-color-palette-400:var(--chakra-colors-gray-400);--chakra-colors-color-palette-500:var(--chakra-colors-gray-500);--chakra-colors-color-palette-600:var(--chakra-colors-gray-600);--chakra-colors-color-palette-700:var(--chakra-colors-gray-700);--chakra-colors-color-palette-800:var(--chakra-colors-gray-800);
1--chakra-colors-color-palette-900:var(--chakra-colors-gray-900);--chakra-colors-color-palette-950:var(--chakra-colors-gray-950);--chakra-colors-color-palette-contrast:var(--chakra-colors-gray-contrast);--chakra-colors-color-palette-fg:var(--chakra-colors-gray-fg);--chakra-colors-color-palette-subtle:var(--chakra-colors-gray-subtle);--chakra-colors-color-palette-muted:var(--chakra-colors-gray-muted);--chakra-colors-color-palette-emphasized:var(--chakra-colors-gray-emphasized);--chakra-colors-color-palette-solid:var(--chakra-colors-gray-solid);--chakra-colors-color-palette-focus-ring:var(--chakra-colors-gray-focus-ring);}*::-webkit-input-placeholder{--mix-color:color-mix(in srgb, var(--chakra-colors-fg-muted) 80%, transparent);color:var(--mix-color, var(--chakra-colors-fg-muted));}*::-moz-placeholder{--mix-color:color-mix(in srgb, var(--chakra-colors-fg-muted) 80%, transparent);color:var(--mix-color, var(--chakra-colors-fg-muted));}*:-ms-input-placeholder{--mix-color:color-mix(in srgb, var(--chakra-colors-fg-muted) 80%, transparent);color:var(--mix-color, var(--chakra-colors-fg-muted));}*::placeholder,*[data-placeholder]{--mix-color:color-mix(in srgb, var(--chakra-colors-fg-muted) 80%, transparent);color:var(--mix-color, var(--chakra-colors-fg-muted));}*::selection{--mix-background:color-mix(in srgb, var(--chakra-colors-color-palette-emphasized) 80%, transparent);background:var(--mix-background, var(--chakra-colors-color-palette-emphasized));--bg-currentcolor:var(--mix-background, var(--chakra-colors-color-palette-emphasized));}}@layer tokens{:where(html, .chakra-theme){--chakra-aspect-ratios-square:1/1;--chakra-aspect-ratios-landscape:4/3;--chakra-aspect-ratios-portrait:3/4;--chakra-aspect-ratios-wide:16/9;--chakra-aspect-ratios-ultrawide:18/5;--chakra-aspect-ratios-golden:1.618/1;--chakra-animations-spin:spin 1s linear infinite;--chakra-animations-ping:ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;--chakra-animations-pulse:pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;--chakra-animations-bounce:bounce 1s infinite;--chakra-blurs-sm:4px;--chakra-blurs-md:8px;--chakra-blurs-lg:12px;--chakra-blurs-xl:16px;--chakra-blurs-2xl:24px;--chakra-blurs-3xl:40px;--chakra-blurs-4xl:64px;--chakra-borders-xs:0.5px solid;--chakra-borders-sm:1px solid;--chakra-borders-md:2px solid;--chakra-borders-lg:4px solid;--chakra-borders-xl:8px solid;--chakra-colors-transparent:transparent;--chakra-colors-current:currentColor;--chakra-colors-black:#09090B;--chakra-colors-white:#FFFFFF;--chakra-colors-white-alpha-50:rgba(255, 255, 255, 0.04);--chakra-colors-white-alpha-100:rgba(255, 255, 255, 0.06);--chakra-colors-white-alpha-200:rgba(255, 255, 255, 0.08);--chakra-colors-white-alpha-300:rgba(255, 255, 255, 0.16);--chakra-colors-white-alpha-400:rgba(255, 255, 255, 0.24);--chakra-colors-white-alpha-500:rgba(255, 255, 255, 0.36);--chakra-colors-white-alpha-600:rgba(255, 255, 255, 0.48);--chakra-colors-white-alpha-700:rgba(255, 255, 255, 0.64);--chakra-colors-white-alpha-800:rgba(255, 255, 255, 0.80);--chakra-colors-white-alpha-900:rgba(255, 255, 255, 0.92);--chakra-colors-white-alpha-950:rgba(255, 255, 255, 0.95);--chakra-colors-black-alpha-50:rgba(0, 0, 0, 0.04);--chakra-colors-black-alpha-100:rgba(0, 0, 0, 0.06);--chakra-colors-black-alpha-200:rgba(0, 0, 0, 0.08);--chakra-colors-black-alpha-300:rgba(0, 0, 0, 0.16);--chakra-colors-black-alpha-400:rgba(0, 0, 0, 0.24);--chakra-colors-black-alpha-500:rgba(0, 0, 0, 0.36);--chakra-colors-black-alpha-600:rgba(0, 0, 0, 0.48);--chakra-colors-black-alpha-700:rgba(0, 0, 0, 0.64);--chakra-colors-black-alpha-800:rgba(0, 0, 0, 0.80);--chakra-colors-black-alpha-900:rgba(0, 0, 0, 0.92);--chakra-colors-black-alpha-950:rgba(0, 0, 0, 0.95);--chakra-colors-gray-50:#fafafa;--chakra-colors-gray-100:#f4f4f5;--chakra-colors-gray-200:#e4e4e7;--chakra-colors-gray-300:#d4d4d8;--chakra-colors-gray-400:#a1a1aa;--chakra-colors-gray-500:#71717a;--chakra-colors-gray-600:#52525b;--chakra-colors-gray-700:#3f3f46;--chakra-colors-gray-800:#27272a;--chakra-colors-gray-900:#18181b;--chakra-colors-gray-950:#111111;--chakra-colors-red-50:#fef2f2;--chakra-colors-red-100:#fee2e2;--chakra-colors-red-200:#fecaca;--chakra-colors-red-300:#fca5a5;--chakra-colors-red-400:#f87171;--chakra-colors-red-500:#ef4444;--chakra-colors-red-600:#dc2626;--chakra-colors-red-700:#991919;--chakra-colors-red-800:#511111;--chakra-colors-red-900:#300c0c;--chakra-colors-red-950:#1f0808;--chakra-colors-orange-50:#fff7ed;--chakra-colors-orange-100:#ffedd5;--chakra-colors-orange-200:#fed7aa;--chakra-colors-orange-300:#fdba74;--chakra-colors-orange-400:#fb923c;--chakra-colors-orange-500:#f97316;--chakra-colors-orange-600:#ea580c;--chakra-colors-orange-700:#92310a;--chakra-colors-orange-800:#6c2710;--chakra-colors-orange-900:#3b1106;--chakra-colors-orange-950:#220a04;--chakra-colors-yellow-50:#fefce8;
1--chakra-colors-yellow-100:#fef9c3;--chakra-colors-yellow-200:#fef08a;--chakra-colors-yellow-300:#fde047;--chakra-colors-yellow-400:#facc15;--chakra-colors-yellow-500:#eab308;--chakra-colors-yellow-600:#ca8a04;--chakra-colors-yellow-700:#845209;--chakra-colors-yellow-800:#713f12;--chakra-colors-yellow-900:#422006;--chakra-colors-yellow-950:#281304;--chakra-colors-green-50:#f0fdf4;--chakra-colors-green-100:#dcfce7;--chakra-colors-green-200:#bbf7d0;--chakra-colors-green-300:#86efac;--chakra-colors-green-400:#4ade80;--chakra-colors-green-500:#22c55e;--chakra-colors-green-600:#16a34a;--chakra-colors-green-700:#116932;--chakra-colors-green-800:#124a28;--chakra-colors-green-900:#042713;--chakra-colors-green-950:#03190c;--chakra-colors-teal-50:#f0fdfa;--chakra-colors-teal-100:#ccfbf1;--chakra-colors-teal-200:#99f6e4;--chakra-colors-teal-300:#5eead4;--chakra-colors-teal-400:#2dd4bf;--chakra-colors-teal-500:#14b8a6;--chakra-colors-teal-600:#0d9488;--chakra-colors-teal-700:#0c5d56;--chakra-colors-teal-800:#114240;--chakra-colors-teal-900:#032726;--chakra-colors-teal-950:#021716;--chakra-colors-blue-50:#eff6ff;--chakra-colors-blue-100:#dbeafe;--chakra-colors-blue-200:#bfdbfe;--chakra-colors-blue-300:#a3cfff;--chakra-colors-blue-400:#60a5fa;--chakra-colors-blue-500:#3b82f6;--chakra-colors-blue-600:#2563eb;--chakra-colors-blue-700:#173da6;--chakra-colors-blue-800:#1a3478;--chakra-colors-blue-900:#14204a;--chakra-colors-blue-950:#0c142e;--chakra-colors-cyan-50:#ecfeff;--chakra-colors-cyan-100:#cffafe;--chakra-colors-cyan-200:#a5f3fc;--chakra-colors-cyan-300:#67e8f9;--chakra-colors-cyan-400:#22d3ee;--chakra-colors-cyan-500:#06b6d4;--chakra-colors-cyan-600:#0891b2;--chakra-colors-cyan-700:#0c5c72;--chakra-colors-cyan-800:#134152;--chakra-colors-cyan-900:#072a38;--chakra-colors-cyan-950:#051b24;--chakra-colors-purple-50:#faf5ff;--chakra-colors-purple-100:#f3e8ff;--chakra-colors-purple-200:#e9d5ff;--chakra-colors-purple-300:#d8b4fe;--chakra-colors-purple-400:#c084fc;--chakra-colors-purple-500:#a855f7;--chakra-colors-purple-600:#9333ea;--chakra-colors-purple-700:#641ba3;--chakra-colors-purple-800:#4a1772;--chakra-colors-purple-900:#2f0553;--chakra-colors-purple-950:#1a032e;--chakra-colors-pink-50:#fdf2f8;--chakra-colors-pink-100:#fce7f3;--chakra-colors-pink-200:#fbcfe8;--chakra-colors-pink-300:#f9a8d4;--chakra-colors-pink-400:#f472b6;--chakra-colors-pink-500:#ec4899;--chakra-colors-pink-600:#db2777;--chakra-colors-pink-700:#a41752;--chakra-colors-pink-800:#6d0e34;--chakra-colors-pink-900:#45061f;--chakra-colors-pink-950:#2c0514;--chakra-durations-fastest:50ms;--chakra-durations-faster:100ms;--chakra-durations-fast:150ms;--chakra-durations-moderate:200ms;--chakra-durations-slow:300ms;--chakra-durations-slower:400ms;--chakra-durations-slowest:500ms;--chakra-easings-ease-in:cubic-bezier(0.42, 0, 1, 1);--chakra-easings-ease-out:cubic-bezier(0, 0, 0.58, 1);--chakra-easings-ease-in-out:cubic-bezier(0.42, 0, 0.58, 1);--chakra-easings-ease-in-smooth:cubic-bezier(0.32, 0.72, 0, 1);--chakra-fonts-heading:"Roboto Mono",-apple-system,system-ui,sans-serif;--chakra-fonts-body:"Roboto Mono",-apple-system,system-ui,sans-serif;--chakra-fonts-mono:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--chakra-font-sizes-2xs:0.625rem;--chakra-font-sizes-xs:0.75rem;--chakra-font-sizes-sm:0.875rem;--chakra-font-sizes-md:1rem;--chakra-font-sizes-lg:1.125rem;--chakra-font-sizes-xl:1.25rem;--chakra-font-sizes-2xl:1.5rem;--chakra-font-sizes-3xl:1.875rem;--chakra-font-sizes-4xl:2.25rem;--chakra-font-sizes-5xl:3rem;--chakra-font-sizes-6xl:3.75rem;--chakra-font-sizes-7xl:4.5rem;--chakra-font-sizes-8xl:6rem;--chakra-font-sizes-9xl:8rem;--chakra-font-weights-thin:100;--chakra-font-weights-extralight:200;--chakra-font-weights-light:300;--chakra-font-weights-normal:400;--chakra-font-weights-medium:500;--chakra-font-weights-semibold:600;--chakra-font-weights-bold:700;--chakra-font-weights-extrabold:800;--chakra-font-weights-black:900;--chakra-letter-spacings-tighter:-0.05em;--chakra-letter-spacings-tight:-0.025em;--chakra-letter-spacings-wide:0.025em;--chakra-letter-spacings-wider:0.05em;
1--chakra-letter-spacings-widest:0.1em;--chakra-line-heights-shorter:1.25;--chakra-line-heights-short:1.375;--chakra-line-heights-moderate:1.5;--chakra-line-heights-tall:1.625;--chakra-line-heights-taller:2;--chakra-radii-none:0;--chakra-radii-2xs:0.0625rem;--chakra-radii-xs:0.125rem;--chakra-radii-sm:0.25rem;--chakra-radii-md:0.375rem;--chakra-radii-lg:0.5rem;--chakra-radii-xl:0.75rem;--chakra-radii-2xl:1rem;--chakra-radii-3xl:1.5rem;--chakra-radii-4xl:2rem;--chakra-radii-full:9999px;--chakra-spacing-1:0.25rem;--chakra-spacing-2:0.5rem;--chakra-spacing-3:0.75rem;--chakra-spacing-4:1rem;--chakra-spacing-5:1.25rem;--chakra-spacing-6:1.5rem;--chakra-spacing-7:1.75rem;--chakra-spacing-8:2rem;--chakra-spacing-9:2.25rem;--chakra-spacing-10:2.5rem;--chakra-spacing-11:2.75rem;--chakra-spacing-12:3rem;--chakra-spacing-14:3.5rem;--chakra-spacing-16:4rem;--chakra-spacing-20:5rem;--chakra-spacing-24:6rem;--chakra-spacing-28:7rem;--chakra-spacing-32:8rem;--chakra-spacing-36:9rem;--chakra-spacing-40:10rem;--chakra-spacing-44:11rem;--chakra-spacing-48:12rem;--chakra-spacing-52:13rem;--chakra-spacing-56:14rem;--chakra-spacing-60:15rem;--chakra-spacing-64:16rem;--chakra-spacing-72:18rem;--chakra-spacing-80:20rem;--chakra-spacing-96:24rem;--chakra-spacing-0\.5:0.125rem;--chakra-spacing-1\.5:0.375rem;--chakra-spacing-2\.5:0.625rem;--chakra-spacing-3\.5:0.875rem;--chakra-spacing-4\.5:1.125rem;--chakra-spacing-v-gutter:4.25rem;--chakra-sizes-1:0.25rem;--chakra-sizes-2:0.5rem;--chakra-sizes-3:0.75rem;--chakra-sizes-4:1rem;--chakra-sizes-5:1.25rem;--chakra-sizes-6:1.5rem;--chakra-sizes-7:1.75rem;--chakra-sizes-8:2rem;--chakra-sizes-9:2.25rem;--chakra-sizes-10:2.5rem;--chakra-sizes-11:2.75rem;--chakra-sizes-12:3rem;--chakra-sizes-14:3.5rem;--chakra-sizes-16:4rem;--chakra-sizes-20:5rem;--chakra-sizes-24:6rem;--chakra-sizes-28:7rem;--chakra-sizes-32:8rem;--chakra-sizes-36:9rem;--chakra-sizes-40:10rem;--chakra-sizes-44:11rem;--chakra-sizes-48:12rem;--chakra-sizes-52:13rem;--chakra-sizes-56:14rem;--chakra-sizes-60:15rem;--chakra-sizes-64:16rem;--chakra-sizes-72:18rem;--chakra-sizes-80:20rem;--chakra-sizes-96:24rem;--chakra-sizes-3xs:14rem;--chakra-sizes-2xs:16rem;--chakra-sizes-xs:20rem;--chakra-sizes-sm:24rem;--chakra-sizes-md:28rem;--chakra-sizes-lg:32rem;--chakra-sizes-xl:36rem;--chakra-sizes-2xl:42rem;--chakra-sizes-3xl:48rem;--chakra-sizes-4xl:56rem;--chakra-sizes-5xl:64rem;--chakra-sizes-6xl:72rem;--chakra-sizes-7xl:80rem;--chakra-sizes-8xl:90rem;--chakra-sizes-0\.5:0.125rem;--chakra-sizes-1\.5:0.375rem;--chakra-sizes-2\.5:0.625rem;--chakra-sizes-3\.5:0.875rem;--chakra-sizes-4\.5:1.125rem;--chakra-sizes-1\/2:50%;--chakra-sizes-1\/3:33.333333%;--chakra-sizes-2\/3:66.666667%;--chakra-sizes-1\/4:25%;--chakra-sizes-3\/4:75%;--chakra-sizes-1\/5:20%;--chakra-sizes-2\/5:40%;--chakra-sizes-3\/5:60%;--chakra-sizes-4\/5:80%;--chakra-sizes-1\/6:16.666667%;--chakra-sizes-2\/6:33.333333%;--chakra-sizes-3\/6:50%;--chakra-sizes-4\/6:66.666667%;--chakra-sizes-5\/6:83.333333%;--chakra-sizes-1\/12:8.333333%;--chakra-sizes-2\/12:16.666667%;--chakra-sizes-3\/12:25%;--chakra-sizes-4\/12:33.333333%;--chakra-sizes-5\/12:41.666667%;--chakra-sizes-6\/12:50%;--chakra-sizes-7\/12:58.333333%;--chakra-sizes-8\/12:66.666667%;--chakra-sizes-9\/12:75%;--chakra-sizes-10\/12:83.333333%;--chakra-sizes-11\/12:91.666667%;--chakra-sizes-max:max-content;--chakra-sizes-min:min-content;--chakra-sizes-fit:fit-content;--chakra-sizes-prose:60ch;--chakra-sizes-full:100%;--chakra-sizes-dvh:100dvh;--chakra-sizes-svh:100svh;--chakra-sizes-lvh:100lvh;--chakra-sizes-dvw:100dvw;--chakra-sizes-svw:100svw;--chakra-sizes-lvw:100lvw;--chakra-sizes-vw:100vw;--chakra-sizes-vh:100vh;--chakra-sizes-breakpoint-sm:480px;--chakra-sizes-breakpoint-md:768px;--chakra-sizes-breakpoint-lg:1024px;--chakra-sizes-breakpoint-xl:1280px;--chakra-sizes-breakpoint-2xl:1536px;--chakra-z-index-hide:-1;--chakra-z-index-base:0;--chakra-z-index-docked:10;--chakra-z-index-dropdown:1000;--chakra-z-index-sticky:1100;--chakra-z-index-banner:1200;--chakra-z-index-overlay:1300;--chakra-z-index-modal:1400;--chakra-z-index-popover:1500;--chakra-z-index-skip-nav:1600;--chakra-z-index-toast:1700;--chakra-z-index-tooltip:1800;--chakra-z-index-max:2147483647;
1--chakra-cursor-button:pointer;--chakra-cursor-checkbox:default;--chakra-cursor-disabled:not-allowed;--chakra-cursor-menuitem:default;--chakra-cursor-option:default;--chakra-cursor-radio:default;--chakra-cursor-slider:default;--chakra-cursor-switch:pointer;--chakra-shadows-highlight:inset 0 2px 0 0 rgb(255 255 255 / 5%);--chakra-breakpoints-sm:480px;--chakra-breakpoints-md:768px;--chakra-breakpoints-lg:1024px;--chakra-breakpoints-xl:1280px;--chakra-breakpoints-2xl:1536px;--chakra-colors-graybg:var(--chakra-colors-gray-50);--chakra-colors-graybglight:var(--chakra-colors-gray-100);--chakra-colors-chakra-body-text:var(--chakra-colors-gray-800);--chakra-colors-bluebg:var(--chakra-colors-blue-100);--chakra-colors-tealbg:var(--chakra-colors-teal-100);--chakra-radii-l1:var(--chakra-radii-xs);--chakra-radii-l2:var(--chakra-radii-sm);--chakra-radii-l3:var(--chakra-radii-md);}:root,.light{--chakra-colors-bg:var(--chakra-colors-white);--chakra-colors-bg-subtle:var(--chakra-colors-gray-50);--chakra-colors-bg-muted:var(--chakra-colors-gray-100);--chakra-colors-bg-emphasized:var(--chakra-colors-gray-200);--chakra-colors-bg-inverted:var(--chakra-colors-black);--chakra-colors-bg-panel:var(--chakra-colors-white);--chakra-colors-bg-error:var(--chakra-colors-red-50);--chakra-colors-bg-warning:var(--chakra-colors-orange-50);--chakra-colors-bg-success:var(--chakra-colors-green-50);--chakra-colors-bg-info:var(--chakra-colors-blue-50);--chakra-colors-fg:var(--chakra-colors-black);--chakra-colors-fg-muted:var(--chakra-colors-gray-600);--chakra-colors-fg-subtle:var(--chakra-colors-gray-400);--chakra-colors-fg-inverted:var(--chakra-colors-gray-50);--chakra-colors-fg-error:var(--chakra-colors-red-500);--chakra-colors-fg-warning:var(--chakra-colors-orange-600);--chakra-colors-fg-success:var(--chakra-colors-green-600);--chakra-colors-fg-info:var(--chakra-colors-blue-600);--chakra-colors-border:var(--chakra-colors-gray-200);--chakra-colors-border-muted:var(--chakra-colors-gray-100);--chakra-colors-border-subtle:var(--chakra-colors-gray-50);--chakra-colors-border-emphasized:var(--chakra-colors-gray-300);--chakra-colors-border-inverted:var(--chakra-colors-gray-800);--chakra-colors-border-error:var(--chakra-colors-red-500);--chakra-colors-border-warning:var(--chakra-colors-orange-500);--chakra-colors-border-success:var(--chakra-colors-green-500);--chakra-colors-border-info:var(--chakra-colors-blue-500);--chakra-colors-gray-contrast:var(--chakra-colors-white);--chakra-colors-gray-fg:var(--chakra-colors-gray-800);--chakra-colors-gray-subtle:var(--chakra-colors-gray-100);--chakra-colors-gray-muted:var(--chakra-colors-gray-200);--chakra-colors-gray-emphasized:var(--chakra-colors-gray-300);--chakra-colors-gray-solid:var(--chakra-colors-gray-900);--chakra-colors-gray-focus-ring:var(--chakra-colors-gray-400);--chakra-colors-red-contrast:white;--chakra-colors-red-fg:var(--chakra-colors-red-700);--chakra-colors-red-subtle:var(--chakra-colors-red-100);--chakra-colors-red-muted:var(--chakra-colors-red-200);--chakra-colors-red-emphasized:var(--chakra-colors-red-300);--chakra-colors-red-solid:var(--chakra-colors-red-600);--chakra-colors-red-focus-ring:var(--chakra-colors-red-400);--chakra-colors-orange-contrast:white;--chakra-colors-orange-fg:var(--chakra-colors-orange-700);--chakra-colors-orange-subtle:var(--chakra-colors-orange-100);--chakra-colors-orange-muted:var(--chakra-colors-orange-200);--chakra-colors-orange-emphasized:var(--chakra-colors-orange-300);--chakra-colors-orange-solid:var(--chakra-colors-orange-600);--chakra-colors-orange-focus-ring:var(--chakra-colors-orange-400);--chakra-colors-green-contrast:white;--chakra-colors-green-fg:var(--chakra-colors-green-700);--chakra-colors-green-subtle:var(--chakra-colors-green-100);--chakra-colors-green-muted:var(--chakra-colors-green-200);--chakra-colors-green-emphasized:var(--chakra-colors-green-300);--chakra-colors-green-solid:var(--chakra-colors-green-600);--chakra-colors-green-focus-ring:var(--chakra-colors-green-400);--chakra-colors-blue-contrast:white;--chakra-colors-blue-fg:var(--chakra-colors-blue-700);--chakra-colors-blue-subtle:var(--chakra-colors-blue-100);--chakra-colors-blue-muted:var(--chakra-colors-blue-200);--chakra-colors-blue-emphasized:var(--chakra-colors-blue-300);--chakra-colors-blue-solid:var(--chakra-colors-blue-600);--chakra-colors-blue-focus-ring:var(--chakra-colors-blue-400);--chakra-colors-yellow-contrast:black;--chakra-colors-yellow-fg:var(--chakra-colors-yellow-800);--chakra-colors-yellow-subtle:var(--chakra-colors-yellow-100);--chakra-colors-yellow-muted:var(--chakra-colors-yellow-200);--chakra-colors-yellow-emphasized:var(--chakra-colors-yellow-300);--chakra-colors-yellow-solid:var(--chakra-colors-yellow-300);--chakra-colors-yellow-focus-ring:var(--chakra-colors-yellow-400);--chakra-colors-teal-contrast:white;--chakra-colors-teal-fg:var(--chakra-colors-teal-700);--chakra-colors-teal-subtle:var(--chakra-colors-teal-100);--chakra-colors-teal-muted:var(--chakra-colors-teal-200);--chakra-colors-teal-emphasized:var(--chakra-colors-teal-300);--chakra-colors-teal-solid:var(--chakra-colors-teal-600);--chakra-colors-teal-focus-ring:var(--chakra-colors-teal-400);--chakra-colors-purple-contrast:white;--chakra-colors-purple-fg:var(--chakra-colors-purple-700);--chakra-colors-purple-subtle:var(--chakra-colors-purple-100);--chakra-colors-purple-muted:var(--chakra-colors-purple-200);--chakra-colors-purple-emphasized:var(--chakra-colors-purple-300);--chakra-colors-purple-solid:var(--chakra-colors-purple-600);--chakra-colors-purple-focus-ring:var(--chakra-colors-purple-400);--chakra-colors-pink-contrast:white;--chakra-colors-pink-fg:var(--chakra-colors-pink-700);--chakra-colors-pink-subtle:var(--chakra-colors-pink-100);--chakra-colors-pink-muted:var(--chakra-colors-pink-200);--chakra-colors-pink-emphasized:var(--chakra-colors-pink-300);--chakra-colors-pink-solid:var(--chakra-colors-pink-600);--chakra-colors-pink-focus-ring:var(--chakra-colors-pink-400);--chakra-colors-cyan-contrast:white;--chakra-colors-cyan-fg:var(--chakra-colors-cyan-700);--chakra-colors-cyan-subtle:var(--chakra-colors-cyan-100);--chakra-colors-cyan-muted:var(--chakra-colors-cyan-200);--chakra-colors-cyan-emphasized:var(--chakra-colors-cyan-300);--chakra-colors-cyan-solid:var(--chakra-colors-cyan-600);--chakra-colors-cyan-focus-ring:var(--chakra-colors-cyan-400);--chakra-shadows-xs:0px 1px 2px color-mix(in srgb, var(--chakra-colors-gray-900) 10%, transparent),
10px 0px 1px color-mix(in srgb, var(--chakra-colors-gray-900) 20%, transparent);--chakra-shadows-sm:0px 2px 4px color-mix(in srgb, var(--chakra-colors-gray-900) 10%, transparent),0px 0px 1px color-mix(in srgb, var(--chakra-colors-gray-900) 30%, transparent);--chakra-shadows-md:0px 4px 8px color-mix(in srgb, var(--chakra-colors-gray-900) 10%, transparent),0px 0px 1px color-mix(in srgb, var(--chakra-colors-gray-900) 30%, transparent);--chakra-shadows-lg:0px 8px 16px color-mix(in srgb, var(--chakra-colors-gray-900) 10%, transparent),0px 0px 1px color-mix(in srgb, var(--chakra-colors-gray-900) 30%, transparent);--chakra-shadows-xl:0px 16px 24px color-mix(in srgb, var(--chakra-colors-gray-900) 10%, transparent),0px 0px 1px color-mix(in srgb, var(--chakra-colors-gray-900) 30%, transparent);--chakra-shadows-2xl:0px 24px 40px color-mix(in srgb, var(--chakra-colors-gray-900) 16%, transparent),0px 0px 1px color-mix(in srgb, var(--chakra-colors-gray-900) 30%, transparent);--chakra-shadows-inner:inset 0 2px 4px 0 color-mix(in srgb, black 5%, transparent);--chakra-shadows-inset:inset 0 0 0 1px color-mix(in srgb, black 5%, transparent);}.dark,.dark .chakra-theme:not(.light){--chakra-colors-bg:var(--chakra-colors-black);--chakra-colors-bg-subtle:var(--chakra-colors-gray-950);--chakra-colors-bg-muted:var(--chakra-colors-gray-900);--chakra-colors-bg-emphasized:var(--chakra-colors-gray-800);--chakra-colors-bg-inverted:var(--chakra-colors-white);--chakra-colors-bg-panel:var(--chakra-colors-gray-950);--chakra-colors-bg-error:var(--chakra-colors-red-950);--chakra-colors-bg-warning:var(--chakra-colors-orange-950);--chakra-colors-bg-success:var(--chakra-colors-green-950);--chakra-colors-bg-info:var(--chakra-colors-blue-950);--chakra-colors-fg:var(--chakra-colors-gray-50);--chakra-colors-fg-muted:var(--chakra-colors-gray-400);--chakra-colors-fg-subtle:var(--chakra-colors-gray-500);--chakra-colors-fg-inverted:var(--chakra-colors-black);--chakra-colors-fg-error:var(--chakra-colors-red-400);--chakra-colors-fg-warning:var(--chakra-colors-orange-300);--chakra-colors-fg-success:var(--chakra-colors-green-300);--chakra-colors-fg-info:var(--chakra-colors-blue-300);--chakra-colors-border:var(--chakra-colors-gray-800);--chakra-colors-border-muted:var(--chakra-colors-gray-900);--chakra-colors-border-subtle:var(--chakra-colors-gray-950);--chakra-colors-border-emphasized:var(--chakra-colors-gray-700);--chakra-colors-border-inverted:var(--chakra-colors-gray-200);--chakra-colors-border-error:var(--chakra-colors-red-400);--chakra-colors-border-warning:var(--chakra-colors-orange-400);--chakra-colors-border-success:var(--chakra-colors-green-400);--chakra-colors-border-info:var(--chakra-colors-blue-400);--chakra-colors-gray-contrast:var(--chakra-colors-black);--chakra-colors-gray-fg:var(--chakra-colors-gray-200);--chakra-colors-gray-subtle:var(--chakra-colors-gray-900);--chakra-colors-gray-muted:var(--chakra-colors-gray-800);--chakra-colors-gray-emphasized:var(--chakra-colors-gray-700);--chakra-colors-gray-solid:var(--chakra-colors-white);--chakra-colors-gray-focus-ring:var(--chakra-colors-gray-400);--chakra-colors-red-contrast:white;--chakra-colors-red-fg:var(--chakra-colors-red-300);--chakra-colors-red-subtle:var(--chakra-colors-red-900);--chakra-colors-red-muted:var(--chakra-colors-red-800);--chakra-colors-red-emphasized:var(--chakra-colors-red-700);--chakra-colors-red-solid:var(--chakra-colors-red-600);--chakra-colors-red-focus-ring:var(--chakra-colors-red-400);--chakra-colors-orange-contrast:black;--chakra-colors-orange-fg:var(--chakra-colors-orange-300);--chakra-colors-orange-subtle:var(--chakra-colors-orange-900);--chakra-colors-orange-muted:var(--chakra-colors-orange-800);--chakra-colors-orange-emphasized:var(--chakra-colors-orange-700);--chakra-colors-orange-solid:var(--chakra-colors-orange-500);--chakra-colors-orange-focus-ring:var(--chakra-colors-orange-400);--chakra-colors-green-contrast:white;--chakra-colors-green-fg:var(--chakra-colors-green-300);--chakra-colors-green-subtle:var(--chakra-colors-green-900);--chakra-colors-green-muted:var(--chakra-colors-green-800);--chakra-colors-green-emphasized:var(--chakra-colors-green-700);--chakra-colors-green-solid:var(--chakra-colors-green-600);--chakra-colors-green-focus-ring:var(--chakra-colors-green-400);--chakra-colors-blue-contrast:white;--chakra-colors-blue-fg:var(--chakra-colors-blue-300);--chakra-colors-blue-subtle:var(--chakra-colors-blue-900);--chakra-colors-blue-muted:var(--chakra-colors-blue-800);--chakra-colors-blue-emphasized:var(--chakra-colors-blue-700);--chakra-colors-blue-solid:var(--chakra-colors-blue-600);--chakra-colors-blue-focus-ring:var(--chakra-colors-blue-400);--chakra-colors-yellow-contrast:black;--chakra-colors-yellow-fg:var(--chakra-colors-yellow-300);--chakra-colors-yellow-subtle:var(--chakra-colors-yellow-900);--chakra-colors-yellow-muted:var(--chakra-colors-yellow-800);--chakra-colors-yellow-emphasized:var(--chakra-colors-yellow-700);--chakra-colors-yellow-solid:var(--chakra-colors-yellow-300);--chakra-colors-yellow-focus-ring:var(--chakra-colors-yellow-400);--chakra-colors-teal-contrast:white;--chakra-colors-teal-fg:var(--chakra-colors-teal-300);--chakra-colors-teal-subtle:var(--chakra-colors-teal-900);--chakra-colors-teal-muted:var(--chakra-colors-teal-800);--chakra-colors-teal-emphasized:var(--chakra-colors-teal-700);--chakra-colors-teal-solid:var(--chakra-colors-teal-600);--chakra-colors-teal-focus-ring:var(--chakra-colors-teal-400);--chakra-colors-purple-contrast:white;--chakra-colors-purple-fg:var(--chakra-colors-purple-300);--chakra-colors-purple-subtle:var(--chakra-colors-purple-900);--chakra-colors-purple-muted:var(--chakra-colors-purple-800);--chakra-colors-purple-emphasized:var(--chakra-colors-purple-700);--chakra-colors-purple-solid:var(--chakra-colors-purple-600);--chakra-colors-purple-focus-ring:var(--chakra-colors-purple-400);--chakra-colors-pink-contrast:white;--chakra-colors-pink-fg:var(--chakra-colors-pink-300);--chakra-colors-pink-subtle:var(--chakra-colors-pink-900);--chakra-colors-pink-muted:var(--chakra-colors-pink-800);--chakra-colors-pink-emphasized:var(--chakra-colors-pink-700);--chakra-colors-pink-solid:var(--chakra-colors-pink-600);--chakra-colors-pink-focus-ring:var(--chakra-colors-pink-400);--chakra-colors-cyan-contrast:white;--chakra-colors-cyan-fg:var(--chakra-colors-cyan-300);--chakra-colors-cyan-subtle:var(--chakra-colors-cyan-900);--chakra-colors-cyan-muted:var(--chakra-colors-cyan-800);--chakra-colors-cyan-emphasized:var(--chakra-colors-cyan-700);--chakra-colors-cyan-solid:var(--chakra-colors-cyan-600);--chakra-colors-cyan-focus-ring:var(--chakra-colors-cyan-400);--chakra-colors-graybg:var(--chakra-colors-gray-700);--chakra-colors-graybglight:var(--chakra-colors-gray-700);--chakra-colors-chakra-body-text:white;--chakra-colors-bluebg:var(--chakra-colors-blue-700);--chakra-colors-tealbg:var(--chakra-colors-teal-700);--chakra-shadows-xs:0px 1px 1px color-mix(in srgb, black 64%, transparent),
10px 0px 1px inset color-mix(in srgb, var(--chakra-colors-gray-300) 20%, transparent);--chakra-shadows-sm:0px 2px 4px color-mix(in srgb, black 64%, transparent),0px 0px 1px inset color-mix(in srgb, var(--chakra-colors-gray-300) 30%, transparent);--chakra-shadows-md:0px 4px 8px color-mix(in srgb, black 64%, transparent),0px 0px 1px inset color-mix(in srgb, var(--chakra-colors-gray-300) 30%, transparent);--chakra-shadows-lg:0px 8px 16px color-mix(in srgb, black 64%, transparent),0px 0px 1px inset color-mix(in srgb, var(--chakra-colors-gray-300) 30%, transparent);--chakra-shadows-xl:0px 16px 24px color-mix(in srgb, black 64%, transparent),0px 0px 1px inset color-mix(in srgb, var(--chakra-colors-gray-300) 30%, transparent);--chakra-shadows-2xl:0px 24px 40px color-mix(in srgb, black 64%, transparent),0px 0px 1px inset color-mix(in srgb, var(--chakra-colors-gray-300) 30%, transparent);--chakra-shadows-inner:inset 0 2px 4px 0 black;--chakra-shadows-inset:inset 0 0 0 1px color-mix(in srgb, var(--chakra-colors-gray-300) 5%, transparent);}}</style>
1<script>((e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y)}catch(n){}})("class","theme","system",null,["light","dark"],null,true,true)</script>
1<style data-emotion="css-global lfcr2m">@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:400;src:local(''),url('/fonts/roboto-mono-v22-latin-regular.woff2') format('woff2'),url('/fonts/roboto-mono-v22-latin-regular.woff') format('woff');}@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:700;src:local(''),url('/fonts/roboto-mono-v22-latin-700.woff2') format('woff2'),url('/fonts/roboto-mono-v22-latin-700.woff') format('woff');}@font-face{font-family:'Roboto Mono';font-style:italic;font-weight:400;src:local(''),url('/fonts/roboto-mono-v22-latin-italic.woff2') format('woff2'),url('/fonts/roboto-mono-v22-latin-italic.woff') format('woff');}</style><div class="css-0"><style data-emotion="css wpd08i">.css-wpd08i{padding-block:var(--chakra-spacing-6);max-width:var(--chakra-sizes-4xl);margin-inline:auto;padding-inline:var(--chakra-spacing-6);}</style><header class="css-wpd08i"><style data-emotion="css 1lekzkb">.css-1lekzkb{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}</style><div class="css-1lekzkb"><a href="/"><style data-emotion="css 12t6nn4">.css-12t6nn4{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;border-radius:var(--chakra-radii-full);border-width:2px;border-color:brown.600;width:var(--chakra-sizes-10);height:var(--chakra-sizes-10);}</style><div class="css-12t6nn4"><style data-emotion="css 92majj">.css-92majj{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;border-radius:var(--chakra-radii-full);overflow:hidden;width:var(--chakra-sizes-8);height:var(--chakra-sizes-8);}</style><div class="css-92majj"><style data-emotion="css cfk6a1">@layer recipes{.css-cfk6a1{border:0;clip:rect(0, 0, 0, 0);height:1px;width:1px;margin:-1px;padding:0;overflow:hidden;white-space:nowrap;position:absolute;}}</style><span class="css-cfk6a1">Home</span><img alt="Abdullah Diaa" width="32" height="32" decoding="async" data-nimg="1" style="color:transparent;object-fit:cover" srcSet="/_next/image/?url=%2Fstatic%2Fimages%2Fabdullahdiaa-headshot.png&amp;w=32&amp;q=75 1x, /_next/image/?url=%2Fstatic%2Fimages%2Fabdullahdiaa-headshot.png&amp;w=64&amp;q=75 2x" src="/_next/image/?url=%2Fstatic%2Fimages%2Fabdullahdiaa-headshot.png&amp;w=64&amp;q=75"/></div></div></a><style data-emotion="css j8s19n">.css-j8s19n{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:var(--chakra-spacing-4);}</style><div class="css-j8s19n"><style data-emotion="css yquhgu">.css-yquhgu{display:none;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;gap:var(--chakra-spacing-4);}@media screen and (min-width: 48rem){.css-yquhgu{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}</style><nav class="chakra-stack css-yquhgu" aria-label="Main navigation"><style data-emotion="css 1kum1ri">.css-1kum1ri{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;gap:var(--chakra-spacing-2);padding-inline:var(--chakra-spacing-3);padding-block:var(--chakra-spacing-2\.5);border-radius:var(--chakra-radii-lg);}.css-1kum1ri[aria-current=page]{background:var(--chakra-colors-graybg);--bg-currentcolor:var(--chakra-colors-graybg);box-shadow:var(--chakra-shadows-highlight);}</style><a class="chakra-stack css-1kum1ri" aria-current="page" href="/blog/"><style data-emotion="css mkkd0z">.css-mkkd0z{color:brown.600;font-size:var(--chakra-font-sizes-lg);}@layer recipes{.css-mkkd0z{display:inline-block;line-height:1em;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;color:currentcolor;vertical-align:middle;}}</style><svg width="20" height="20" viewBox="0 0 20 20" focusable="false" aria-hidden="true" class="chakra-icon css-mkkd0z"><path d="M17.3337 16.6667H2.66668C2.29867 16.6667 2 16.9654 2 17.3334C2 17.7014 2.29867 18.0001 2.66668 18.0001H17.3337C17.7017 18.0001 18.0004 17.7014 18.0004 17.3334C18.0004 16.9654 17.7017 16.6667 17.3337 16.6667Z" fill="currentColor"></path><path d="M3.33338 15.6089L4.62207 14.3199C5.00408 14.5393 5.43343 14.666 5.88611 14.666C6.56746 14.666 7.20881 14.4006 7.69082 13.9177L15.2497 6.35726C16.245 5.3616 16.245 3.7424 15.2497 2.74674C14.255 1.75109 12.6349 1.75109 11.6402 2.74674L4.08139 10.3072C3.59872 10.79 3.33338 11.4309 3.33338 12.1125C3.33338 12.5646 3.46005 12.9941 3.67938 13.3762L2.39069 14.666L3.33338 15.6089Z" fill="currentColor"></path><path d="M15.7243 8.66406L12.3909 11.9985L13.3336 12.9415L17.6097 8.66406L16.0004 7.0542L15.0577 7.99717L15.7243 8.66406Z" fill="currentColor"></path></svg><style data-emotion="css q8jadd">.css-q8jadd{font-family:var(--chakra-fonts-heading);}</style><p class="css-q8jadd">Blog</p></a><a class="chakra-stack css-1kum1ri" href="/projects/"><svg width="20" height="20" viewBox="0 0 20 20" focusable="false" aria-hidden="true" class="chakra-icon css-mkkd0z"><path d="M10.3351 9.22941L16.9366 5.56191L10.6916 2.09245C10.5825 2.03182 10.4598 2 10.3351 2C10.2103 2 10.0876 2.03182 9.9786 2.09245L3.73358 5.56191L10.3351 9.22941Z" fill="currentColor"></path><path d="M9.6015 10.4998L3 6.83228V14.4695C2.99999 14.6002 3.03495 14.7286 3.10123 14.8413C3.16752 14.9541 3.26274 15.047 3.37702 15.1106L9.6015 18.5683V10.4998Z" fill="currentColor"></path><path d="M11.0685 10.4998V18.5683L17.293 15.1106C17.4073 15.047 17.5025 14.9541 17.5688 14.8413C17.6351 14.7286 17.67 14.6002 17.67 14.4695V6.83301L11.0685 10.4998Z" fill="currentColor"></path></svg><p class="css-q8jadd">Projects</p></a><a class="chakra-stack css-1kum1ri" href="/courses/"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" height="1em" width="1em" focusable="false" aria-hidden="true" class="chakra-icon css-mkkd0z"><path d="M4 18h2v4.081L11.101 18H16c1.103 0 2-.897 2-2V8c0-1.103-.897-2-2-2H4c-1.103 0-2 .897-2 2v8c0 1.103.897 2 2 2z"></path><path d="M20 2H8c-1.103 0-2 .897-2 2h12c1.103 0 2 .897 2 2v8c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2z"></path></svg><p class="css-q8jadd">Courses</p></a></nav><style data-emotion="css wtlmzr">.css-wtlmzr{width:var(--chakra-sizes-8);height:var(--chakra-sizes-8);}@layer recipes{.css-wtlmzr{background:var(--chakra-colors-bg-emphasized);--bg-currentcolor:var(--chakra-colors-bg-emphasized);-webkit-animation:var(--chakra-animations-pulse);animation:var(--chakra-animations-pulse);-webkit-animation-duration:var(--duration, 1.2s);animation-duration:var(--duration, 1.2s);border-radius:var(--chakra-radii-l2);box-shadow:none;-webkit-background-clip:padding-box;background-clip:padding-box;
1cursor:default;color:var(--chakra-colors-transparent);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}.css-wtlmzr::before,.css-wtlmzr::after,.css-wtlmzr *{visibility:hidden;}}</style><div class="chakra-skeleton css-wtlmzr"></div></div><style data-emotion="css k0nuxf">.css-k0nuxf{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:var(--chakra-spacing-2);}@media screen and (min-width: 48rem){.css-k0nuxf{display:none;}}</style><div class="css-k0nuxf"><div class="chakra-skeleton css-wtlmzr"></div><style data-emotion="css 1n7yprm">.css-1n7yprm{width:var(--chakra-sizes-10);height:var(--chakra-sizes-10);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}@layer recipes{.css-1n7yprm{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}}@media screen and (min-width: 48rem){.css-1n7yprm{display:none;}}</style><button aria-label="Toggle navigation menu" data-scope="dialog" data-part="trigger" dir="ltr" id="dialog:«R2n8qn6»:trigger" aria-haspopup="dialog" type="button" aria-expanded="false" data-state="closed" class="chakra-drawer__trigger css-1n7yprm"><svg height="24" width="24" viewBox="0 0 24 24"><g fill="currentColor" stroke="currentColor" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="10" stroke-width="2"><line fill="none" x1="1" x2="23" y1="12" y2="12"></line><line fill="none" x1="1" x2="23" y1="5" y2="5"></line><line fill="none" x1="1" x2="23" y1="19" y2="19"></line></g></svg></button><style data-emotion="css q8f4jk">@layer recipes{.css-q8f4jk{background:var(--chakra-colors-black-alpha-500);--bg-currentcolor:var(--chakra-colors-black-alpha-500);position:fixed;inset-inline-start:0;top:0;width:100vw;height:100dvh;z-index:var(--chakra-z-index-overlay);}.css-q8f4jk:is([open], [data-open], [data-state=open]){-webkit-animation-name:fade-in;animation-name:fade-in;-webkit-animation-duration:var(--chakra-durations-slow);animation-duration:var(--chakra-durations-slow);}.css-q8f4jk:is([closed], [data-closed], [data-state=closed]){-webkit-animation-name:fade-out;animation-name:fade-out;-webkit-animation-duration:var(--chakra-durations-moderate);animation-duration:var(--chakra-durations-moderate);}}</style><style data-emotion="css 18uk76z">@layer recipes{.css-18uk76z{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100vw;height:100dvh;position:fixed;inset-inline-start:0;top:0;z-index:var(--chakra-z-index-modal);overscroll-behavior-y:none;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;}}</style></div></div></header><style data-emotion="css i7zc79">.css-i7zc79{max-width:var(--chakra-sizes-4xl);margin-inline:auto;padding-inline:var(--chakra-spacing-6);}</style><div class="css-i7zc79"><style data-emotion="css rqgsqp">.css-rqgsqp{position:relative;z-index:1;}</style><main id="content" class="css-rqgsqp"><style data-emotion="css s18z74">.css-s18z74{padding-block:var(--chakra-spacing-v-gutter);}</style><div class="css-s18z74"><div class="css-0"><style data-emotion="css 10dr2vo">.css-10dr2vo{margin-bottom:var(--chakra-spacing-6);}@layer recipes{.css-10dr2vo{font-family:var(--chakra-fonts-heading);font-weight:var(--chakra-font-weights-semibold);font-size:var(--chakra-font-sizes-5xl);line-height:3.75rem;letter-spacing:-0.025em;}}</style><h1 class="chakra-heading css-10dr2vo">Blog</h1><style data-emotion="css 1yck0ie">.css-1yck0ie{font-size:var(--chakra-font-sizes-lg);max-width:560px;}</style><p class="css-1yck0ie"></p></div><style data-emotion="css 1i37syw">.css-1i37syw{max-width:var(--chakra-sizes-xl);margin-top:var(--chakra-spacing-10);}</style><div class="css-1i37syw"><style data-emotion="css kjafn5">.css-kjafn5{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:relative;}</style><div role="search" class="css-kjafn5">
1<style data-emotion="css 18nt0ca">.css-18nt0ca{background:var(--chakra-colors-graybg);--bg-currentcolor:var(--chakra-colors-graybg);-webkit-flex:1;-ms-flex:1;flex:1;border-radius:var(--chakra-radii-lg);height:48px;padding-left:var(--chakra-spacing-6);padding-right:var(--chakra-spacing-16);font-size:var(--chakra-font-sizes-lg);font-family:var(--chakra-fonts-heading);}</style><input placeholder="Search" type="search" id="query" class="css-18nt0ca" name="q" value=""/><style data-emotion="css isxyof">.css-isxyof{right:var(--chakra-spacing-16);left:unset;}@layer recipes{.css-isxyof{position:absolute;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;top:50%;-webkit-translate:0 -50%;-moz-translate:0 -50%;-ms-translate:0 -50%;translate:0 -50%;}}</style><div class="css-isxyof"><style data-emotion="css 1vnnept">.css-1vnnept{width:32px;height:32px;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;border-radius:var(--chakra-radii-md);}@media (hover: hover){.css-1vnnept:is(:hover, [data-hover]):not(:disabled, [data-disabled]){background:var(--chakra-colors-white-alpha-300);--bg-currentcolor:var(--chakra-colors-white-alpha-300);}}</style><button hidden="" tabindex="-1" type="button" aria-controls="query" class="css-1vnnept"><style data-emotion="css 1ik7ngk">.css-1ik7ngk{font-size:var(--chakra-font-sizes-lg);}@layer recipes{.css-1ik7ngk{display:inline-block;line-height:1em;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;color:currentcolor;vertical-align:middle;}}</style><svg height="24" width="24" viewBox="0 0 24 24" focusable="false" aria-hidden="true" class="chakra-icon css-1ik7ngk"><g fill="currentColor" stroke="currentColor" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="10" stroke-width="2"><line fill="none" stroke="currentColor" x1="19" x2="5" y1="5" y2="19"></line><line fill="none" stroke="currentColor" x1="19" x2="5" y1="19" y2="5"></line></g></svg></button></div><style data-emotion="css 1u1bvi0">.css-1u1bvi0{pointer-events:none;right:var(--chakra-spacing-5);left:unset;color:var(--chakra-colors-gray-500);}@layer recipes{.css-1u1bvi0{position:absolute;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;top:50%;-webkit-translate:0 -50%;-moz-translate:0 -50%;-ms-translate:0 -50%;translate:0 -50%;}}</style><div class="css-1u1bvi0"><svg width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M22.0001 22L15.6561 15.656" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"></path><path d="M10 18C14.4183 18 18 14.4183 18 10C18 5.58172 14.4183 2 10 2C5.58172 2 2 5.58172 2 10C2 14.4183 5.58172 18 10 18Z" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"></path></svg></div></div></div><style data-emotion="css 18lcbnd">.css-18lcbnd{margin-top:3rem;}</style><div class="css-18lcbnd"><style data-emotion="css h8amo7">.css-h8amo7{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:var(--chakra-spacing-12);padding:var(--chakra-spacing-6);background:var(--chakra-colors-graybg);--bg-currentcolor:var(--chakra-colors-graybg);border-radius:var(--chakra-radii-xl);box-shadow:var(--chakra-shadows-highlight);-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-h8amo7 a[href]:not(.chakra-linkbox__overlay),.css-h8amo7 abbr[title]{position:relative;z-index:1;}@media screen and (min-width: 48rem){.css-h8amo7{padding:var(--chakra-spacing-10);-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}}</style><div data-group="true" class="chakra-linkbox css-h8amo7"><style data-emotion="css 1rv8ooz">.css-1rv8ooz{width:var(--chakra-sizes-full);max-width:320px;height:210px;border-radius:var(--chakra-radii-lg);overflow:hidden;position:relative;}</style><div class="css-1rv8ooz"><img alt="How to Intercept iPhone Traffic for Mobile Applications that Bypass Proxy Settings" width="320" height="210" decoding="async" data-nimg="1" style="color:transparent;object-fit:cover;height:100%" srcSet="/_next/image/?url=%2Fstatic%2Fimages%2Fios-traffic-interception.jpg&amp;w=384&amp;q=75 1x, /_next/image/?url=%2Fstatic%2Fimages%2Fios-traffic-interception.jpg&amp;w=640&amp;q=75 2x" src="/_next/image/?url=%2Fstatic%2Fimages%2Fios-traffic-interception.jpg&amp;w=640&amp;q=75"/></div><style data-emotion="css 1rr4qq7">.css-1rr4qq7{-webkit-flex:1;-ms-flex:1;flex:1;}</style><div class="css-1rr4qq7"><style data-emotion="css 106ga6n">.css-106ga6n{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:var(--chakra-spacing-2);font-size:var(--chakra-font-sizes-sm);}@media screen and (min-width: 48rem){.css-106ga6n{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:var(--chakra-spacing-5);}}</style><div class="css-106ga6n"><style data-emotion="css 10wrni">.css-10wrni{font-weight:var(--chakra-font-weights-semibold);}</style><p class="css-10wrni">🌟 Featured article</p><style data-emotion="css 1hs9hrw">.css-1hs9hrw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;gap:var(--chakra-spacing-2);color:brown.600;}</style><div class="chakra-stack css-1hs9hrw"><time class="css-0" dateTime="2025-11-21T00:00:00.000Z">November 21, 2025</time><span>•</span><div class="css-0">6 min read</div></div></div><div class="css-0"><style data-emotion="css 13lrdv1">.css-13lrdv1{font-weight:var(--chakra-font-weights-semibold);margin-top:var(--chakra-spacing-6);}@layer recipes{.css-13lrdv1{font-family:var(--chakra-fonts-heading);font-weight:var(--chakra-font-weights-semibold);font-size:var(--chakra-font-sizes-lg);line-height:1.75rem;}}</style><h2 class="chakra-heading css-13lrdv1">How to Intercept iPhone Traffic for Mobile Applications that Bypass Proxy Settings</h2><style data-emotion="css k15kx5">.css-k15kx5{margin-top:var(--chakra-spacing-4);margin-bottom:var(--chakra-spacing-8);}</style><p class="css-k15kx5">A comprehensive guide to capturing network traffic from iOS applications that implement SSL pinning and proxy detection</p><style data-emotion="css nzdyzb">.css-nzdyzb{position:static;}.css-nzdyzb::before{content:'';cursor:inherit;display:block;position:absolute;top:0;left:0;z-index:0;width:100%;height:100%;}</style><a class="chakra-linkbox__overlay css-nzdyzb" href="/blog/intercepting-iphone-traffic-with-mitmproxy/"><style data-emotion="css s6e99y">.css-s6e99y{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;gap:0.5rem;}</style><div class="chakra-stack css-s6e99y" data-group="true"><style data-emotion="css 1s05uxr">.css-1s05uxr{font-weight:var(--chakra-font-weights-bold);color:brown.600;}</style><p class="css-1s05uxr">Read the article</p><style data-emotion="css 1scdzo3">.css-1scdzo3{-webkit-transform:translateX(var(--translate-x, 0)) translateY(var(--translate-y, 0)) rotate(var(--rotate, 0)) scaleX(var(--scale-x, 1)) scaleY(var(--scale-y, 1)) skewX(var(--skew-x, 0)) skewY(var(--skew-y, 0));-moz-transform:translateX(var(--translate-x, 0)) translateY(var(--translate-y, 0)) rotate(var(--rotate, 0)) scaleX(var(--scale-x, 1)) scaleY(var(--scale-y, 1)) skewX(var(--skew-x, 0)) skewY(var(--skew-y, 0));-ms-transform:translateX(var(--translate-x, 0)) translateY(var(--translate-y, 0)) rotate(var(--rotate, 0)) scaleX(var(--scale-x, 1)) scaleY(var(--scale-y, 1)) skewX(var(--skew-x, 0)) skewY(var(--skew-y, 0));transform:translateX(var(--translate-x, 0)) translateY(var(--translate-y, 0)) rotate(var(--rotate, 0)) scaleX(var(--scale-x, 1)) scaleY(var(--scale-y, 1)) skewX(var(--skew-x, 0)) skewY(var(--skew-y, 0));-webkit-transition:-webkit-transform 0.2s;transition:transform 0.2s;}.group:is(:hover, [data-hover]):not(:disabled, [data-disabled]) .css-1scdzo3{--translate-x:3px;}</style><div class="css-1scdzo3"><svg width="23" height="19" viewBox="0 0 23 19" color="brown.600"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 1.43932L13 0.378662L10.8787 2.49998L11.9393 3.56064L16.3787 7.99998H0V11H16.3787L11.9393 15.4393L10.8787 16.5L13 18.6213L14.0607 17.5606L21.0607 10.5606L22.1213 9.49998L21.0607 8.43932L14.0607 1.43932Z" fill="currentColor"></path></svg></div></div></a></div></div></div><style data-emotion="css 1wng35v">.css-1wng35v{display:grid;grid-template-columns:repeat(1, minmax(0, 1fr));margin-top:4rem;gap:var(--chakra-spacing-10);}@media screen and (min-width: 48rem){.css-1wng35v{grid-template-columns:repeat(3, minmax(0, 1fr));}}</style><div class="css-1wng35v"><style data-emotion="css 105q7rl">.css-105q7rl{position:relative;background:var(--chakra-colors-graybg);--bg-currentcolor:var(--chakra-colors-graybg);border-radius:var(--chakra-radii-xl);box-shadow:var(--chakra-shadows-highlight);}.css-105q7rl a[href]:not(.chakra-linkbox__overlay),.css-105q7rl abbr[title]{position:relative;z-index:1;}</style><div class="chakra-linkbox css-105q7rl"><style data-emotion="css 139oatc">
1.css-139oatc{height:210px;border-radius:var(--chakra-radii-lg);overflow:hidden;position:relative;}</style><div class="css-139oatc"><img alt="How to Intercept iPhone Traffic for Mobile Applications that Bypass Proxy Settings" loading="lazy" width="340" height="210" decoding="async" data-nimg="1" style="color:transparent;object-fit:cover" srcSet="/_next/image/?url=%2Fstatic%2Fimages%2Fios-traffic-interception.jpg&amp;w=384&amp;q=75 1x, /_next/image/?url=%2Fstatic%2Fimages%2Fios-traffic-interception.jpg&amp;w=750&amp;q=75 2x" src="/_next/image/?url=%2Fstatic%2Fimages%2Fios-traffic-interception.jpg&amp;w=750&amp;q=75"/></div><style data-emotion="css 9byhcm">.css-9byhcm{-webkit-flex:1;-ms-flex:1;flex:1;margin-top:var(--chakra-spacing-5);}</style><div class="css-9byhcm"><style data-emotion="css 1enujq5">.css-1enujq5{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;gap:var(--chakra-spacing-5);font-size:var(--chakra-font-sizes-sm);}</style><div class="chakra-stack css-1enujq5"><div class="chakra-stack css-1hs9hrw"><time class="css-0" dateTime="2025-11-21T00:00:00.000Z">November 21, 2025</time><span aria-hidden="true">•</span><div class="css-0">6 min read</div></div></div><style data-emotion="css gzp225">.css-gzp225{font-weight:var(--chakra-font-weights-semibold);margin-block:var(--chakra-spacing-4);}@layer recipes{.css-gzp225{font-family:var(--chakra-fonts-heading);font-weight:var(--chakra-font-weights-semibold);font-size:var(--chakra-font-sizes-lg);line-height:1.75rem;}}</style><h2 class="chakra-heading css-gzp225"><a class="chakra-linkbox__overlay css-nzdyzb" href="/blog/intercepting-iphone-traffic-with-mitmproxy/">How to Intercept iPhone Traffic for Mobile Applications that Bypass Proxy Settings</a></h2></div></div></div></div></div></main></div><style data-emotion="css r7nwmo">.css-r7nwmo{position:relative;padding-block:var(--chakra-spacing-4);}</style><footer class="css-r7nwmo"><div class="css-i7zc79"><div class="css-1lekzkb"><style data-emotion="css i7ffpq">.css-i7ffpq{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:var(--chakra-spacing-8);margin-top:var(--chakra-spacing-9);}@media screen and (min-width: 30rem){.css-i7ffpq{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}}@media screen and (min-width: 48rem){.css-i7ffpq{gap:var(--chakra-spacing-10);}}</style><div class="chakra-stack css-i7ffpq"><style data-emotion="css vyigcq">.css-vyigcq{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;gap:var(--chakra-spacing-3);}</style><a class="chakra-stack css-vyigcq" href="https://www.linkedin.com/in/abdiaa" rel="noopener" target="_blank"><style data-emotion="css 1j4xnpf">.css-1j4xnpf{font-size:var(--chakra-font-sizes-xl);color:brown.600;}@layer recipes{.css-1j4xnpf{display:inline-block;line-height:1em;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;color:currentcolor;vertical-align:middle;}}</style><svg width="24" height="24" viewBox="0 0 24 24" focusable="false" aria-hidden="true" class="chakra-icon css-1j4xnpf"><path d="M20.25 3H3.75C3.3 3 3 3.3 3 3.75V20.25C3 20.7 3.3 21 3.75 21H20.25C20.7 21 21 20.7 21 20.25V3.75C21 3.3 20.7 3 20.25 3ZM8.325 18.375H5.7V9.75H8.4V18.375H8.325ZM6.975 8.55C6.15 8.55 5.4 7.875 5.4 6.975C5.4 6.15 6.075 5.4 6.975 5.4C7.8 5.4 8.55 6.075 8.55 6.975C8.55 7.875 7.875 8.55 6.975 8.55ZM18.375 18.375H15.675V14.175C15.675 13.2 15.675 11.925 14.325 11.925C12.9 11.925 12.75 12.975 12.75 14.1V18.375H10.05V9.75H12.6V10.95C12.975 10.275 13.8 9.6 15.15 9.6C17.85 9.6 18.375 11.4 18.375 13.725V18.375Z" fill="currentColor"></path></svg><style data-emotion="css 1aclp07">.css-1aclp07{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;}</style><p class="css-1aclp07">LinkedIn</p></a><a class="chakra-stack css-vyigcq" href="https://github.com/abdullahdiaa" rel="noopener" target="_blank"><svg width="24" height="24" viewBox="0 0 24 24" focusable="false" aria-hidden="true" class="chakra-icon css-1j4xnpf"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 0.300003C5.4 0.300003 0 5.7 0 12.3C0 17.6 3.4 22.1 8.2 23.7C8.8 23.8 9 23.4 9 23.1C9 22.8 9 22.1 9 21.1C5.7 21.8 5 19.5 5 19.5C4.5 18.1 3.7 17.7 3.7 17.7C2.5 17 3.7 17 3.7 17C4.9 17.1 5.5 18.2 5.5 18.2C6.6 20 8.3 19.5 9 19.2C9.1 18.4 9.4 17.9 9.8 17.6C7.1 17.3 4.3 16.3 4.3 11.7C4.3 10.4 4.8 9.3 5.5 8.5C5.5 8.1 5 6.9 5.7 5.3C5.7 5.3 6.7 5 9 6.5C10 6.2 11 6.1 12 6.1C13 6.1 14 6.2 15 6.5C17.3 4.9 18.3 5.3 18.3 5.3C19 7 18.5 8.2 18.4 8.5C19.2 9.3 19.6 10.4 19.6 11.7C19.6 16.3 16.8 17.3 14.1 17.6C14.5 18 14.9 18.7 14.9 19.8C14.9 21.4 14.9 22.7 14.9 23.1C14.9 23.4 15.1 23.8 15.7 23.7C20.5 22.1 23.9 17.6 23.9 12.3C24 5.7 18.6 0.300003 12 0.300003Z" fill="currentColor"></path></svg><p class="css-1aclp07">GitHub</p></a><a class="chakra-stack css-vyigcq" href="/cdn-cgi/l/email-protection#dbb6be9bbab9bfaeb7b7bab3bfb2babaf5b8b4b6" rel="noopener" target="_blank"><svg width="20" height="20" viewBox="0 0 20 20" focusable="false" aria-hidden="true" class="chakra-icon css-1j4xnpf"><path d="M10.8289 12.2421C10.5274 12.4485 10.167 12.5515 9.802 12.5355C9.43696 12.5515 9.07659 12.4485 8.7751 12.2421L1 8.06116V15.4695C1 16.0531 1.23184 16.6128 1.64451 17.0255C2.05719 17.4382 2.61689 17.67 3.2005 17.67H16.4035C16.9871 17.67 17.5468 17.4382 17.9595 17.0255C18.3722 16.6128 18.604 16.0531 18.604 15.4695V8.06116L10.8289 12.2421Z" fill="currentColor"></path><path d="M16.4035 3H3.20051C2.6169 3 2.0572 3.23184 1.64452 3.64451C1.23185 4.05719 1.00001 4.61689 1.00001 5.2005V5.934C0.99931 6.06627 1.03269 6.19649 1.09692 6.31211C1.16116 6.42773 1.25409 6.52487 1.36676 6.59415L9.43526 10.9951C9.54788 11.0544 9.67524 11.0799 9.80201 11.0685C9.92877 11.0799 10.0561 11.0544 10.1688 10.9951L18.2373 6.59415C18.3499 6.52487 18.4429 6.42773 18.5071 6.31211C18.5713 6.19649 18.6047 6.06627 18.604 5.934V5.2005C18.604 4.61689 18.3722 4.05719 17.9595 3.64451C17.5468 3.23184 16.9871 3 16.4035 3Z" fill="currentColor"></path></svg><p class="css-1aclp07">Email</p></a><a class="chakra-stack css-vyigcq" href="https://www.youtube.com/@abdullahdiaa" rel="noopener" target="_blank"><svg width="24" height="24" viewBox="0 0 24 24" focusable="false" aria-hidden="true" class="chakra-icon css-1j4xnpf"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z" fill="currentColor"></path></svg><p class="css-1aclp07">YouTube</p></a></div><style data-emotion="css 1m5zh3r">.css-1m5zh3r{margin-top:var(--chakra-spacing-9);}</style><div class="css-1m5zh3r"><style data-emotion="css 9r8n2t">@layer recipes{.css-9r8n2t{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
1-webkit-justify-content:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;border-radius:var(--chakra-radii-l2);white-space:nowrap;vertical-align:middle;border-width:1px;border-color:var(--chakra-colors-transparent);cursor:var(--chakra-cursor-button);-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;outline:0;line-height:1.25rem;isolation:isolate;font-weight:var(--chakra-font-weights-medium);transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,translate,transform;transition-duration:var(--chakra-durations-moderate);--focus-ring-color:var(--chakra-colors-color-palette-focus-ring);height:var(--chakra-sizes-9);min-width:var(--chakra-sizes-9);padding-inline:var(--chakra-spacing-3\.5);font-size:var(--chakra-font-sizes-sm);gap:var(--chakra-spacing-2);background:var(--chakra-colors-transparent);--bg-currentcolor:var(--chakra-colors-transparent);color:var(--chakra-colors-color-palette-fg);}.css-9r8n2t:is(:focus-visible, [data-focus-visible]){outline-width:var(--focus-ring-width, 2px);outline-offset:var(--focus-ring-offset, 2px);outline-style:var(--focus-ring-style, solid);outline-color:var(--focus-ring-color);}.css-9r8n2t:is(:disabled, [disabled], [data-disabled], [aria-disabled=true]){opacity:0.5;cursor:not-allowed;}.css-9r8n2t :where(svg){-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;width:var(--chakra-sizes-4);height:var(--chakra-sizes-4);}.css-9r8n2t:is([aria-expanded=true], [data-expanded], [data-state=expanded]){background:var(--chakra-colors-color-palette-subtle);--bg-currentcolor:var(--chakra-colors-color-palette-subtle);}@media (hover: hover){.css-9r8n2t:is(:hover, [data-hover]):not(:disabled, [data-disabled]){background:var(--chakra-colors-color-palette-subtle);--bg-currentcolor:var(--chakra-colors-color-palette-subtle);}}}</style><button type="button" aria-label="Select language" data-scope="popover" data-part="trigger" dir="ltr" id="popover:«Rajaan6»:trigger" aria-haspopup="dialog" aria-expanded="false" data-state="closed" aria-controls="popover:«Rajaan6»:content" class="chakra-button chakra-popover__trigger css-9r8n2t"><style data-emotion="css vs34a8">.css-vs34a8{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:var(--chakra-spacing-1);}</style><div class="css-vs34a8"><style data-emotion="css 1auzp06">.css-1auzp06{font-size:var(--chakra-font-sizes-xs);}</style><p class="css-1auzp06">English</p><style data-emotion="css onkibi">.css-onkibi{width:1em;height:1em;display:inline-block;line-height:1em;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;color:currentColor;vertical-align:middle;}</style><svg viewBox="0 0 24 24" focusable="false" class="chakra-icon css-onkibi"><path fill="currentColor" d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"></path></svg></div></button><div id="popover:«Rajaan6»:popper" data-scope="popover" data-part="positioner" dir="ltr" style="position:absolute;isolation:isolate;min-width:max-content;pointer-events:none;top:0px;left:0px;transform:translate3d(0, -100vh, 0);z-index:var(--z-index)" class="chakra-popover__positioner css-0"><style data-emotion="css 1b6ej1w">.css-1b6ej1w{width:140px;}@layer recipes{.css-1b6ej1w{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;font-size:var(--chakra-font-sizes-sm);line-height:1.25rem;--popover-bg:var(--chakra-colors-bg-panel);background:var(--popover-bg);--bg-currentcolor:var(--popover-bg);box-shadow:var(--chakra-shadows-lg);--popover-size:var(--chakra-sizes-xs);--popover-mobile-size:calc(100dvw - 1rem);width:min(var(--popover-mobile-size), var(--popover-size));border-radius:var(--chakra-radii-l3);--popover-z-index:var(--chakra-z-index-popover);z-index:calc(var(--popover-z-index) + var(--layer-index, 0));outline:0;transform-origin:var(--transform-origin);max-height:var(--available-height);--popover-padding:var(--chakra-spacing-5);}.css-1b6ej1w:is([open], [data-open], [data-state=open]){transform-origin:var(--transform-origin);-webkit-animation-name:scale-in,fade-in;animation-name:scale-in,fade-in;-webkit-animation-duration:var(--chakra-durations-fast);animation-duration:var(--chakra-durations-fast);}.css-1b6ej1w:is([closed], [data-closed], [data-state=closed]){transform-origin:var(--transform-origin);-webkit-animation-name:scale-out,fade-out;animation-name:scale-out,fade-out;-webkit-animation-duration:var(--chakra-durations-faster);animation-duration:var(--chakra-durations-faster);}@media screen and (min-width: 30rem){.css-1b6ej1w{width:var(--popover-size);}}}</style><div data-scope="popover" data-part="content" dir="ltr" id="popover:«Rajaan6»:content" tabindex="-1" role="dialog" hidden="" data-state="closed" aria-labelledby="popover:«Rajaan6»:title" aria-describedby="popover:«Rajaan6»:desc" class="chakra-
1popover__content css-1b6ej1w"><style data-emotion="css 1k6mua3">.css-1k6mua3{position:absolute;top:var(--chakra-spacing-1);inset-inline-end:var(--chakra-spacing-1);}</style><style data-emotion="css 1aewuuu">.css-1aewuuu{padding-inline:0;padding-block:0;position:absolute;top:var(--chakra-spacing-1);inset-inline-end:var(--chakra-spacing-1);}@layer recipes{.css-1aewuuu{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;border-radius:var(--chakra-radii-l2);white-space:nowrap;vertical-align:middle;border-width:1px;border-color:var(--chakra-colors-transparent);cursor:var(--chakra-cursor-button);-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;outline:0;line-height:1.25rem;isolation:isolate;font-weight:var(--chakra-font-weights-medium);transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,translate,transform;transition-duration:var(--chakra-durations-moderate);--focus-ring-color:var(--chakra-colors-color-palette-focus-ring);height:var(--chakra-sizes-9);min-width:var(--chakra-sizes-9);padding-inline:var(--chakra-spacing-3\.5);font-size:var(--chakra-font-sizes-sm);gap:var(--chakra-spacing-2);background:var(--chakra-colors-transparent);--bg-currentcolor:var(--chakra-colors-transparent);color:var(--chakra-colors-color-palette-fg);}.css-1aewuuu:is(:focus-visible, [data-focus-visible]){outline-width:var(--focus-ring-width, 2px);outline-offset:var(--focus-ring-offset, 2px);outline-style:var(--focus-ring-style, solid);outline-color:var(--focus-ring-color);}.css-1aewuuu:is(:disabled, [disabled], [data-disabled], [aria-disabled=true]){opacity:0.5;cursor:not-allowed;}.css-1aewuuu :where(svg){-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;width:var(--chakra-sizes-4);height:var(--chakra-sizes-4);}.css-1aewuuu:is([aria-expanded=true], [data-expanded], [data-state=expanded]){background:var(--chakra-colors-color-palette-subtle);--bg-currentcolor:var(--chakra-colors-color-palette-subtle);}@media (hover: hover){.css-1aewuuu:is(:hover, [data-hover]):not(:disabled, [data-disabled]){background:var(--chakra-colors-color-palette-subtle);--bg-currentcolor:var(--chakra-colors-color-palette-subtle);}}}.css-1aewuuu :where(svg){font-size:1.2em;}</style><button type="button" aria-label="close" data-scope="popover" data-part="close-trigger" dir="ltr" id="popover:«Rajaan6»:close" style="display:none" class="chakra-button chakra-popover__closeTrigger css-1aewuuu"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button><style data-emotion="css 1lm9tg6">.css-1lm9tg6{padding:var(--chakra-spacing-2);}@layer recipes{.css-1lm9tg6{padding:var(--popover-padding);-webkit-flex:1;-ms-flex:1;flex:1;}}</style><div class="chakra-popover__body css-1lm9tg6"><style data-emotion="css 44c6y4">.css-44c6y4{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:var(--chakra-spacing-1);}</style><div class="chakra-stack css-44c6y4"><style data-emotion="css 10gd3n5">.css-10gd3n5{font-weight:var(--chakra-font-weights-bold);cursor:pointer;padding:var(--chakra-spacing-2);position:relative;border-radius:var(--chakra-radii-md);}@media (hover: hover){.css-10gd3n5:is(:hover, [data-hover]):not(:disabled, [data-disabled]){background:var(--chakra-colors-graybg);--bg-currentcolor:var(--chakra-colors-graybg);}}</style><div class="css-10gd3n5"><style data-emotion="css 14fyjnu">.css-14fyjnu{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:var(--chakra-spacing-2);}</style><div class="css-14fyjnu"><style data-emotion="css 1d1x1cj">.css-1d1x1cj{width:2px;height:100%;position:absolute;
1left:0;background:var(--chakra-colors-blue-500);--bg-currentcolor:var(--chakra-colors-blue-500);border-radius:var(--chakra-radii-full);}</style><div class="css-1d1x1cj"></div>English</div></div><style data-emotion="css 11mxp0y">.css-11mxp0y{font-weight:var(--chakra-font-weights-normal);cursor:pointer;padding:var(--chakra-spacing-2);position:relative;border-radius:var(--chakra-radii-md);}@media (hover: hover){.css-11mxp0y:is(:hover, [data-hover]):not(:disabled, [data-disabled]){background:var(--chakra-colors-graybg);--bg-currentcolor:var(--chakra-colors-graybg);}}</style><div class="css-11mxp0y"><div class="css-14fyjnu">العربية</div></div><div class="css-11mxp0y"><div class="css-14fyjnu">Deutsch</div></div></div></div></div></div></div></div><style data-emotion="css qewat3">.css-qewat3{margin-top:var(--chakra-spacing-20);opacity:0.7;}</style><p class="css-qewat3">All rights reserved<!-- --> © <!-- -->Abdullah Diaa<!-- --> <!-- -->2026</p></div></footer></div></div>
vendor: 108 bytes, line 1
1<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1<script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/blog","query":{},"buildId":"RxXiLndgEat9Ba_kV8MSi","nextExport":true,"autoExport":true,"isFallback":false,"locale":"en","locales":["en","ar","de"],"defaultLocale":"en","scriptLoader":[{"id":"umami-init","defer":true,"src":"https://data.pushbots.com/script.js","data-website-id":"e7a926a1-900f-4243-8eae-f0541e5834ec","strategy":"lazyOnload"},{"src":"https://www.googletagmanager.com/gtag/js?id=G-W21DY9PDG3","strategy":"afterInteractive"},{"id":"google-analytics","strategy":"afterInteractive","children":"\n          window.dataLayer = window.dataLayer || [];\n          function gtag(){dataLayer.push(arguments);}\n          gtag('config', 'G-W21DY9PDG3');\n  "}]}</script>
1<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"0c8de3f099cf44338ed65c38dc108780","r":1,"spa":2}' crossorigin="anonymous"></script>
1
2</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.