body,html{font-family:var(--font-content)}*{scroll-behavior:smooth;scroll-margin:4em}a:focus-visible,button:focus-visible{outline-offset:4px;outline-style:solid;outline-color:#11cfff95!important}:root{--max-w-page:min(100vw - 32px,50rem);--line-height:1.5em;line-height:1.5;--font-display:nohemi,geist,inter,"sans-serif",-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;--font-content:geist,"Roboto","sans-serif",-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;--font-mono:SpaceMono,"JetBrainsMono","Roboto",IRANSans,"sans-serif",-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.style-scroll-bar{--scrollbar-color-thumb:var(--rx-slate6);--scrollbar-color-track:var(--rx-slate3);--scrollbar-width:thin;--scrollbar-width-legacy:12px}@supports (scrollbar-width:auto){.style-scroll-bar{scrollbar-color:var(--scrollbar-color-thumb) var(--scrollbar-color-track);scrollbar-width:var(--scrollbar-width)}}@supports selector(::-webkit-scrollbar){.style-scroll-bar::-webkit-scrollbar-thumb{background:var(--scrollbar-color-thumb)}.style-scroll-bar::-webkit-scrollbar-track{background:var(--scrollbar-color-track)}.style-scroll-bar::-webkit-scrollbar{max-width:var(--scrollbar-width-legacy);max-height:var(--scrollbar-width-legacy)}}.H1,.H2,.H3,.H4,.H5,.H6,.font-display,.large-title{font-family:var(--font-display)}:root{--shadow-1:0px 3px 5px -2px oklch(89% 0 256);--shadow-2:0px 14px 15px -8px oklch(98% 0 256);--shadow-3:0px 22px 35px -10px oklch(85% 0 256);--shadow-4:0px 36px 70px -18px oklch(84% 0 256);--shadow-5:0px 54px 90px -24px oklch(83% 0 256);--blured:1;--shadow-tinted-1:0px 3px 5px -2px oklch(89% 0.022 56.09);--shadow-tinted-2:0px 14px 15px -8px oklch(88% 0.022 56.09);--shadow-tinted-3:0px 22px 35px -10px oklch(85% 0.022 56.09);--shadow-tinted-4:0px 36px 70px -8px oklch(84% 0.022 56.09);--shadow-tinted-5:0px 54px 90px -24px oklch(83% 0.022 56.09)}input[type=text]{min-width:0!important}:root{--sidebar-width:14.5rem;--side-menu-transition-time:0.6s}@media (prefers-reduced-motion:reduce){:root{--side-menu-transition-time:1ms}}.side-menu-container{display:grid;grid-template-rows:1fr;grid-template-columns:min-content 1fr;grid-template-areas:"aside main"}.aside{grid-area:aside}.main{grid-area:main}@media (max-width:640px){.aside{grid-area:main}}.aside{--easeOutExpo:cubic-bezier(0.16,1,0.3,1);--side-menu-transition-time:0.6s}@media (min-width:641px){.aside{position:-webkit-sticky;position:sticky;inset-block-start:0;max-height:100vh;overflow:hidden auto}}@media (max-width:640px){.aside{position:fixed;inset-block:0;inset-inline-start:0;max-height:100vh;overflow:hidden auto;overscroll-behavior:contain;visibility:hidden;transform:translateX(-110vw);will-change:transform;transition:transform var(--side-menu-transition-time) var(--easeOutExpo),visibility 0s linear var(--side-menu-transition-time)}[lang=fa] .aside{transform:translateX(110vw)}.aside.drawer-open{visibility:visible;transform:translateX(0);transition:transform var(--side-menu-transition-time) var(--easeOutExpo)}}input,label{display:block}.in-text-link,p a{-webkit-text-decoration-line:underline;text-decoration-line:underline;text-underline-offset:.15em}.rating{--dir:right;--fill:gold;--fillbg:hsla(0,0%,39%,.15);--star:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 17.25l-6.188 3.75 1.641-7.031-5.438-4.734 7.172-0.609 2.813-6.609 2.813 6.609 7.172 0.609-5.438 4.734 1.641 7.031z"/></svg>');--stars:5;--starsize:3rem;--symbol:var(--star);--value:0;--w:calc(var(--stars) * var(--starsize));--x:calc(100% * (var(--value) / var(--stars)));block-size:var(--starsize);inline-size:var(--w);position:relative;touch-action:manipulation;-webkit-appearance:none}.rating::-moz-range-track{background:linear-gradient(to var(--dir),var(--fill) 0 var(--x),var(--fillbg) 0 var(--x));block-size:100%;mask:repeat left center/var(--starsize) var(--symbol)}.rating::-webkit-slider-runnable-track{background:linear-gradient(to var(--dir),var(--fill) 0 var(--x),var(--fillbg) 0 var(--x));block-size:100%;mask:repeat left center/var(--starsize) var(--symbol);-webkit-mask:repeat left center/var(--starsize) var(--symbol)}.rating::-moz-range-thumb{height:var(--starsize);opacity:0;width:var(--starsize)}.rating::-webkit-slider-thumb{height:var(--starsize);opacity:0;width:var(--starsize);-webkit-appearance:none}.moz-appearance-textfield{-moz-appearance:textfield}.with-sidebar{grid-template-columns:1fr;grid-auto-flow:dense}@media screen and (min-width:768px){.with-sidebar{grid-template-columns:1fr 23rem}}.\?\?\?{outline:3px solid rgba(255,0,195,.237);outline-offset:-1px}.\?\?\?\?{outline:2px dashed rgba(0,229,255,.345);outline-offset:-1px}.\?\?\?\?\?{outline:2px dotted rgba(255,251,0,.237);outline-offset:-1px}.\?\?\?\?\?\?{outline:2px dotted rgba(0,255,4,.237);outline-offset:-1px}.tiptap.ProseMirror:focus{outline:none}.tiptap.ProseMirror h1{font-size:2em;font-weight:700;margin:.67em 0}.tiptap.ProseMirror h2{font-size:1.5em;font-weight:700;margin:.83em 0}.tiptap.ProseMirror h3{font-size:1.17em;font-weight:700;margin:1em 0}.tiptap.ProseMirror h4{font-size:1em;font-weight:700;margin:1.33em 0}.tiptap.ProseMirror h5{font-size:.83em;font-weight:700;margin:1.67em 0}.tiptap.ProseMirror h6{font-size:.67em;font-weight:700;margin:2.33em 0}.tiptap.ProseMirror ul{list-style-type:disc;padding-left:40px}.tiptap.ProseMirror ol{list-style-type:decimal;padding-left:40px}.tiptap.ProseMirror li{margin-bottom:.5em}.tiptap.ProseMirror blockquote{margin:1em 0;padding-left:1em;border-left:2px solid #ddd}.tiptap.ProseMirror pre{padding:1em;background:#f5f5f5;border-radius:5px}.tiptap.ProseMirror code{font-family:monospace}.tiptap.ProseMirror a{color:#0366d6;text-decoration:none}.tiptap.ProseMirror a:hover{text-decoration:underline}.tiptap.ProseMirror img{max-width:100%;height:auto}.video-container{position:relative;width:100%;padding-bottom:56.25%;height:0;overflow:hidden}.video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}.primary-gradient{background-image:linear-gradient(90deg,#f77808,#f75808)}.fade-x{--jh-fade-x-margin:2%;--jh-fade-x-padding:25%;-webkit-mask-image:linear-gradient(to right,transparent var(--jh-fade-x-margin),#000 var(--jh-fade-x-padding),#000 calc(100% - var(--jh-fade-x-padding)),transparent calc(100% - var(--jh-fade-x-margin)));mask-image:linear-gradient(to right,transparent var(--jh-fade-x-margin),#000 var(--jh-fade-x-padding),#000 calc(100% - var(--jh-fade-x-padding)),transparent calc(100% - var(--jh-fade-x-margin)))}:root{--fade-to-opacity:0}.fade-to-b{-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 30%,rgba(0 0 0/var(--fade-to-opacity)) 95%);mask-image:linear-gradient(to bottom,#000 0,#000 30%,rgba(0 0 0/var(--fade-to-opacity)) 95%);transition:--fade-to-opacity 1s ease}@property --fade-to-opacity{syntax:"<number>";initial-value:0;inherits:false}@media (min-width:1300px){.blog-section-fade-x{--container-size:120rem;--fade-x-margin:2%;-webkit-mask-image:linear-gradient(to right,transparent var(--fade-x-margin),#000 calc((var(--container-size) - 72rem) / 2),#000 calc(var(--container-size) - (var(--container-size) - 72rem) / 2),transparent calc(100% - var(--fade-x-margin)));mask-image:linear-gradient(to right,transparent var(--fade-x-margin),#000 calc((var(--container-size) - 72rem) / 2),#000 calc(var(--container-size) - calc((var(--container-size) - 72rem) / 2)),transparent calc(100% - var(--fade-x-margin)))}.recommended-classes-section-fade-x{--jh-fade-x-margin:2%;-webkit-mask-image:linear-gradient(90deg,transparent 1%,#000 6%,#000 93%,transparent 97%);mask-image:linear-gradient(90deg,transparent 1%,#000 6%,#000 93%,transparent 97%)}}.max-w-classes-like-this{max-width:calc(100vw - 4rem)}@media (min-width:768px){.max-w-classes-like-this{max-width:min(45rem + 4rem,100vw - 2rem - 23rem + 1rem)}}.toolkit__grid{display:grid;--grid-width:var(--max-w-page)}@media screen and (max-width:419.9px){.toolkit__grid{grid-template-columns:repeat(4,.22 * var(--grid-width));grid-auto-rows:calc(.22 * var(--grid-width));grid-auto-columns:calc(.22 * var(--grid-width));gap:calc(.04 * var(--grid-width))}.toolkit__grid-item{border-radius:calc(.04 * var(--grid-width))}}@media screen and (min-width:420px){.toolkit__grid{grid-template-columns:repeat(8,1fr);gap:calc(.02 * var(--grid-width));grid-auto-rows:calc(.11 * var(--grid-width))}.toolkit__grid-item{border-radius:calc(.02 * var(--grid-width))}}.dashed-border-box{--border-color:#f77808;background-image:repeating-linear-gradient(0deg,var(--border-color),var(--border-color) 10px,transparent 10px,transparent 20px,var(--border-color) 20px),repeating-linear-gradient(90deg,var(--border-color),var(--border-color) 10px,transparent 10px,transparent 20px,var(--border-color) 20px),repeating-linear-gradient(180deg,var(--border-color),var(--border-color) 10px,transparent 10px,transparent 20px,var(--border-color) 20px),repeating-linear-gradient(270deg,var(--border-color),var(--border-color) 10px,transparent 10px,transparent 20px,var(--border-color) 20px);background-size:3px calc(100% + 20px),calc(100% + 20px) 3px,3px calc(100% + 20px),calc(100% + 20px) 3px;background-position:0 0,0 0,100% 0,0 100%;background-repeat:no-repeat;animation:borderAnimation 1.5s linear infinite}@keyframes borderAnimation{0%{background-position:0 0,-20px 0,100% -20px,0 100%}to{background-position:0 -20px,0 0,100% 0,-20px 100%}}.cursor-pulse{--cursor-color:currentColor;animation:cursorPulse 1.3s linear infinite}@keyframes cursorPulse{0%{background-color:var(--cursor-color)}50%{background-color:var(--cursor-color)}55%{background-color:transparent}to{background-color:transparent}}.stroke-text{-webkit-text-stroke-width:1px;-webkit-text-stroke-color:var(--stroke-color,#777b84)}.fade-to-r{-webkit-mask-image:linear-gradient(to right,#000 0,rgba(0 0 0/var(--fade-to-opacity)) 75%);mask-image:linear-gradient(to right,#000 0,rgba(0 0 0/var(--fade-to-opacity)) 75%)}.fade-to-l,.fade-to-r{--fade-to-opacity:100%;transition:--fade-to-opacity 1s ease}.fade-to-l{-webkit-mask-image:linear-gradient(to left,#000 0,rgba(0 0 0/var(--fade-to-opacity)) 75%);mask-image:linear-gradient(to left,#000 0,rgba(0 0 0/var(--fade-to-opacity)) 75%)}.subtle-glow{background:inset 0 1px 1px 0 hsla(0,0%,100%,.1),0 2px 40px 10px rgba(154,170,255,.05),0 0 16px -7px rgba(154,170,255,.05)}:where(*){--color-0:oklch(99% 0.03 var(--color-hue,0));--color-1:oklch(95% 0.06 var(--color-hue,0));--color-2:oklch(88% 0.12 var(--color-hue,0));--color-3:oklch(80% 0.14 var(--color-hue,0));--color-4:oklch(74% 0.16 var(--color-hue,0));--color-5:oklch(68% 0.19 var(--color-hue,0));--color-6:oklch(63% 0.2 var(--color-hue,0));--color-7:oklch(58% 0.21 var(--color-hue,0));--color-8:oklch(53% 0.2 var(--color-hue,0));--color-9:oklch(49% 0.19 var(--color-hue,0));--color-10:oklch(42% 0.17 var(--color-hue,0));--color-11:oklch(35% 0.15 var(--color-hue,0));--color-12:oklch(27% 0.12 var(--color-hue,0));--color-13:oklch(20% 0.09 var(--color-hue,0));--color-14:oklch(14% 0.07 var(--color-hue,0));--color-15:oklch(11% 0.05 var(--color-hue,0));--color-bright:oklch(65% 0.3 var(--color-hue,0))}:where(html){--hue-red:25;--hue-pink:350;--hue-purple:310;--hue-violet:290;--hue-indigo:270;--hue-blue:240;--hue-cyan:210;--hue-teal:185;--hue-green:145;--hue-lime:125;--hue-yellow:100;--hue-orange:75}.gray-cool{--gray-hue:270;--gray-chroma:0.02}.gray-warm{--gray-hue:50;--gray-chroma:0.01}.gray-hueless{---chroma:none}:where(*){--gray-0:oklch(99% var(--gray-chroma,none) var(--gray-hue,none));--gray-1:oklch(95% var(--gray-chroma,none) var(--gray-hue,none));--gray-2:oklch(88% var(--gray-chroma,none) var(--gray-hue,none));--gray-3:oklch(80% var(--gray-chroma,none) var(--gray-hue,none));--gray-4:oklch(74% var(--gray-chroma,none) var(--gray-hue,none));--gray-5:oklch(68% var(--gray-chroma,none) var(--gray-hue,none));--gray-6:oklch(63% var(--gray-chroma,none) var(--gray-hue,none));--gray-7:oklch(58% var(--gray-chroma,none) var(--gray-hue,none));--gray-8:oklch(53% var(--gray-chroma,none) var(--gray-hue,none));--gray-9:oklch(49% var(--gray-chroma,none) var(--gray-hue,none));--gray-10:oklch(43% var(--gray-chroma,none) var(--gray-hue,none));--gray-11:oklch(37% var(--gray-chroma,none) var(--gray-hue,none));--gray-12:oklch(31% var(--gray-chroma,none) var(--gray-hue,none));--gray-13:oklch(25% var(--gray-chroma,none) var(--gray-hue,none));--gray-14:oklch(18% var(--gray-chroma,none) var(--gray-hue,none));--gray-15:oklch(10% var(--gray-chroma,none) var(--gray-hue,none))}.lch :where(*){--color-0:lch(99% 0.03 var(--color-hue,350));--color-1:lch(95% 0.06 var(--color-hue,350));--color-2:lch(88% 0.12 var(--color-hue,350));--color-3:lch(80% 0.14 var(--color-hue,350));--color-4:lch(74% 0.16 var(--color-hue,350));--color-5:lch(68% 0.19 var(--color-hue,350));--color-6:lch(63% 0.2 var(--color-hue,350));--color-7:lch(58% 0.21 var(--color-hue,350));--color-8:lch(53% 0.2 var(--color-hue,350));--color-9:lch(49% 0.19 var(--color-hue,350));--color-10:lch(42% 0.17 var(--color-hue,350));--color-11:lch(35% 0.15 var(--color-hue,350));--color-12:lch(27% 0.12 var(--color-hue,350));--color-13:lch(20% 0.09 var(--color-hue,350));--color-14:lch(14% 0.07 var(--color-hue,350));--color-15:lch(11% 0.05 var(--color-hue,350));--color-bright:lch(65% 0.3 var(--color-hue,350))}.lch :where(html){--hue-red:25;--hue-pink:350;--hue-purple:310;--hue-violet:290;--hue-indigo:270;--hue-blue:240;--hue-cyan:210;--hue-teal:185;--hue-green:145;--hue-lime:125;--hue-yellow:100;--hue-orange:75}.lch .gray-cool{--gray-hue:270;--gray-chroma:0.02}.lch .gray-warm{--gray-hue:50;--gray-chroma:0.01}.lch .gray-hueless{---chroma:none}.lch :where(*){--gray-0:lch(99% var(--gray-chroma,none) var(--gray-hue,none));--gray-1:lch(95% var(--gray-chroma,none) var(--gray-hue,none));--gray-2:lch(88% var(--gray-chroma,none) var(--gray-hue,none));--gray-3:lch(80% var(--gray-chroma,none) var(--gray-hue,none));--gray-4:lch(74% var(--gray-chroma,none) var(--gray-hue,none));--gray-5:lch(68% var(--gray-chroma,none) var(--gray-hue,none));--gray-6:lch(63% var(--gray-chroma,none) var(--gray-hue,none));--gray-7:lch(58% var(--gray-chroma,none) var(--gray-hue,none));--gray-8:lch(53% var(--gray-chroma,none) var(--gray-hue,none));--gray-9:lch(49% var(--gray-chroma,none) var(--gray-hue,none));--gray-10:lch(43% var(--gray-chroma,none) var(--gray-hue,none));--gray-11:lch(37% var(--gray-chroma,none) var(--gray-hue,none));--gray-12:lch(31% var(--gray-chroma,none) var(--gray-hue,none));--gray-13:lch(25% var(--gray-chroma,none) var(--gray-hue,none));--gray-14:lch(18% var(--gray-chroma,none) var(--gray-hue,none));--gray-15:lch(10% var(--gray-chroma,none) var(--gray-hue,none))}.triangle{--r:20px;width:180px;aspect-ratio:1/cos(30deg);--_g:calc(tan(60deg) * var(--r)) bottom var(--r),#000 98%,#0000 101%;-webkit-mask:conic-gradient(from -30deg at 50% calc(200% - 3 * var(--r) / 2),#000 60deg,#0000 0) 0 100%/100% calc(100% - 3 * var(--r) / 2) no-repeat,radial-gradient(var(--r) at 50% calc(2 * var(--r)),#000 98%,#0000 101%),radial-gradient(var(--r) at left var(--_g)),radial-gradient(var(--r) at right var(--_g));-webkit-clip-path:polygon(50% 0,100% 100%,0 100%);clip-path:polygon(50% 0,100% 100%,0 100%)}.article-spacing>*+*{--un-space-y-reverse:0;margin-top:1em}pre code{padding:1.25rem!important;border-radius:.75rem!important;background:transparent!important}@font-face{font-family:nohemi;font-style:normal;font-weight:900;src:url(/_next/static/media/Nohemi-Black.eb1127ed.woff2);font-display:block}@font-face{font-display:swap;font-family:nohemi;font-style:normal;font-weight:800;src:url(/_next/static/media/Nohemi-ExtraBold.4b39da5c.woff2)}@font-face{font-display:swap;font-family:nohemi;font-style:normal;font-weight:700;src:url(/_next/static/media/Nohemi-Bold.351dcc88.woff2)}@font-face{font-display:swap;font-family:nohemi;font-style:normal;font-weight:600;src:url(/_next/static/media/Nohemi-SemiBold.7db74b55.woff2)}@font-face{font-display:swap;font-family:nohemi;font-style:normal;font-weight:500;src:url(/_next/static/media/Nohemi-Medium.6fd75a4a.woff2)}@font-face{font-display:swap;font-family:nohemi;font-style:normal;font-weight:300;src:url(/_next/static/media/Nohemi-Light.98ce81e1.woff2)}@font-face{font-display:swap;font-family:nohemi;font-style:normal;font-weight:200;src:url(/_next/static/media/Nohemi-ExtraLight.67270f88.woff2)}@font-face{font-display:swap;font-family:nohemi;font-style:normal;font-weight:100;src:url(/_next/static/media/Nohemi-Thin.f7e358af.woff2)}@font-face{font-display:swap;font-family:nohemi;font-style:normal;font-weight:400;src:url(/_next/static/media/Nohemi-Regular.32939795.woff2)}@font-face{font-display:swap;font-family:geist;font-style:normal;font-weight:900;src:url(/_next/static/media/Geist-UltraBlack.0912b6f5.woff2)}@font-face{font-display:swap;font-family:geist;font-style:normal;font-weight:800;src:url(/_next/static/media/Geist-Black.3e521957.woff2)}@font-face{font-display:swap;font-family:geist;font-style:normal;font-weight:700;src:url(/_next/static/media/Geist-Bold.c848758d.woff2)}@font-face{font-display:swap;font-family:geist;font-style:normal;font-weight:600;src:url(/_next/static/media/Geist-SemiBold.e3434d09.woff2)}@font-face{font-display:swap;font-family:geist;font-style:normal;font-weight:500;src:url(/_next/static/media/Geist-Medium.5b17810d.woff2)}@font-face{font-display:swap;font-family:geist;font-style:normal;font-weight:300;src:url(/_next/static/media/Geist-Light.b0a3f757.woff2)}@font-face{font-display:swap;font-family:geist;font-style:normal;font-weight:200;src:url(/_next/static/media/Geist-UltraLight.939391cf.woff2)}@font-face{font-display:swap;font-family:geist;font-style:normal;font-weight:400;src:url(/_next/static/media/Geist-Regular.1dbd71be.woff2)}@font-face{font-display:block;font-family:SpaceMono;font-style:normal;font-weight:700;src:url(/_next/static/media/SpaceMono-Bold.b4f8aa3f.woff2)}@font-face{font-display:block;font-family:SpaceMono;font-style:normal;font-weight:400;src:url(/_next/static/media/SpaceMono-Regular.72405274.woff2)}