@font-face{font-family:Vazirmatn Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/vazirmatn-arabic-wght-normal.Cafbb7Zc.woff2)format("woff2-variations");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:Vazirmatn Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/vazirmatn-latin-ext-wght-normal.tDTa1Fj6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Vazirmatn Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/vazirmatn-latin-wght-normal.BFexNX-K.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-cyrillic-ext-400-normal.BQZuk6qB.woff2)format("woff2"),url(/_astro/inter-cyrillic-ext-400-normal.DQukG94-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-cyrillic-400-normal.obahsSVq.woff2)format("woff2"),url(/_astro/inter-cyrillic-400-normal.HOLc17fK.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-greek-ext-400-normal.DGGRlc-M.woff2)format("woff2"),url(/_astro/inter-greek-ext-400-normal.KugGGMne.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-greek-400-normal.B4URO6DV.woff2)format("woff2"),url(/_astro/inter-greek-400-normal.q2sYcFCs.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-vietnamese-400-normal.DMkecbls.woff2)format("woff2"),url(/_astro/inter-vietnamese-400-normal.Bbgyi5SW.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-latin-ext-400-normal.C1nco2VV.woff2)format("woff2"),url(/_astro/inter-latin-ext-400-normal.77YHD8bZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-latin-400-normal.C38fXH4l.woff2)format("woff2"),url(/_astro/inter-latin-400-normal.CyCys3Eg.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-cyrillic-ext-500-normal.B0yAr1jD.woff2)format("woff2"),url(/_astro/inter-cyrillic-ext-500-normal.BmqWE9Dz.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-cyrillic-500-normal.BasfLYem.woff2)format("woff2"),url(/_astro/inter-cyrillic-500-normal.CxZf_p3X.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-greek-ext-500-normal.C4iEst2y.woff2)format("woff2"),url(/_astro/inter-greek-ext-500-normal.2j5mBUwD.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-greek-500-normal.BIZE56-Y.woff2)format("woff2"),url(/_astro/inter-greek-500-normal.Xzm54t5V.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-vietnamese-500-normal.DOriooB6.woff2)format("woff2"),url(/_astro/inter-vietnamese-500-normal.mJboJaSs.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-latin-ext-500-normal.CV4jyFjo.woff2)format("woff2"),url(/_astro/inter-latin-ext-500-normal.BxGbmqWO.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-latin-500-normal.Cerq10X2.woff2)format("woff2"),url(/_astro/inter-latin-500-normal.BL9OpVg8.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/inter-cyrillic-ext-600-normal.Dfes3d0z.woff2)format("woff2"),url(/_astro/inter-cyrillic-ext-600-normal.Bcila6Z-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/inter-cyrillic-600-normal.CWCymEST.woff2)format("woff2"),url(/_astro/inter-cyrillic-600-normal.4D_pXhcN.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/inter-greek-ext-600-normal.DRtmH8MT.woff2)format("woff2"),url(/_astro/inter-greek-ext-600-normal.B8X0CLgF.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/inter-greek-600-normal.plRanbMR.woff2)format("woff2"),url(/_astro/inter-greek-600-normal.BZpKdvQh.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/inter-vietnamese-600-normal.Cc8MFFhd.woff2)format("woff2"),url(/_astro/inter-vietnamese-600-normal.BuLX-rYi.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/inter-latin-ext-600-normal.D2bJ5OIk.woff2)format("woff2"),url(/_astro/inter-latin-ext-600-normal.CIVaiw4L.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/inter-latin-600-normal.LgqL8muc.woff2)format("woff2"),url(/_astro/inter-latin-600-normal.CiBQ2DWP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-cyrillic-ext-700-normal.BjwYoWNd.woff2)format("woff2"),url(/_astro/inter-cyrillic-ext-700-normal.LO58E6JB.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-cyrillic-700-normal.CjBOestx.woff2)format("woff2"),url(/_astro/inter-cyrillic-700-normal.DrXBdSj3.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-greek-ext-700-normal.qfdV9bQt.woff2)format("woff2"),url(/_astro/inter-greek-ext-700-normal.BoQ6DsYi.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-greek-700-normal.C3JjAnD8.woff2)format("woff2"),url(/_astro/inter-greek-700-normal.BUv2fZ6O.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-vietnamese-700-normal.DlLaEgI2.woff2)format("woff2"),url(/_astro/inter-vietnamese-700-normal.BZaoP0fm.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-latin-ext-700-normal.Ca8adRJv.woff2)format("woff2"),url(/_astro/inter-latin-ext-700-normal.TidjK2hL.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-latin-700-normal.Yt3aPRUw.woff2)format("woff2"),url(/_astro/inter-latin-700-normal.BLAVimhd.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(/_astro/inter-cyrillic-ext-900-normal.buRuWz4h.woff2)format("woff2"),url(/_astro/inter-cyrillic-ext-900-normal.BUlv-ou0.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(/_astro/inter-cyrillic-900-normal.CjyCg421.woff2)format("woff2"),url(/_astro/inter-cyrillic-900-normal.BAVML7y5.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(/_astro/inter-greek-ext-900-normal.voj7phVX.woff2)format("woff2"),url(/_astro/inter-greek-ext-900-normal.LVqH4fM3.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(/_astro/inter-greek-900-normal.Clii5heL.woff2)format("woff2"),url(/_astro/inter-greek-900-normal.7n5hB3DA.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(/_astro/inter-vietnamese-900-normal.C4P836tE.woff2)format("woff2"),url(/_astro/inter-vietnamese-900-normal.DBSPUrC7.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(/_astro/inter-latin-ext-900-normal.ty8Tfvw5.woff2)format("woff2"),url(/_astro/inter-latin-ext-900-normal.DG9wZIMw.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(/_astro/inter-latin-900-normal.D4nM5aha.woff2)format("woff2"),url(/_astro/inter-latin-900-normal.EUCDUbiG.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.light-theme{--background-primary:#fff;--background-secondary:#f7f7f7;--action-primary:#e1e7ef;--action-secondary:#edf2f7;--foreground-primary:#2d3748;--foreground-secondary:#728197;--foreground-tertiary:#a0aec0;--accent:#667fea}.dark-theme{--background-primary:#2d3748;--background-secondary:#1a212d;--action-primary:#728197;--action-secondary:#2d3748;--foreground-primary:#edf2f7;--foreground-secondary:#ccd6e0;--foreground-tertiary:#a0aec0;--accent:#667fea}:root{--white:#fff;--fs-base:.85rem;--fs-1:1.875rem;--fs-2:1.5rem;--fs-3:1.25rem;--fs-4:.875rem;--fs-5:.75rem;--py:5rem}*,:before,:after{box-sizing:border-box;margin:0;padding:0}a{text-decoration:none}li{list-style:none}img,button{display:block}a,span{display:inline-block}button{font:inherit;cursor:pointer;background:0 0;border:none}html{font-family:Inter,sans-serif;font-size:var(--fs-base);line-height:1.8}:focus{outline-offset:4px}::-webkit-scrollbar{width:16px}.light-theme::-webkit-scrollbar-thumb{border-color:#e6e6e6}.dark-theme::-webkit-scrollbar-thumb{border-color:#252f41}.light-theme::-webkit-scrollbar-track{background:#e6e6e6}.dark-theme::-webkit-scrollbar-track{background:#252f41}.h1,.h2,.h3,.h4{color:var(--foreground-primary);display:block}.h1{font-size:var(--fs-1);font-weight:900}.h2{font-size:var(--fs-2);font-weight:700}.h3{font-size:var(--fs-3);font-weight:700}.h4{font-size:var(--fs-4);font-weight:700}.text-sm{font-size:var(--fs-4)}.text-tiny{font-size:var(--fs-5)}.container{margin-inline:auto;margin:auto;padding:0 15px}.btn{border-radius:100px;min-width:10rem}.btn-primary{background:var(--accent);color:var(--white);padding:.6875rem 1.1875rem}.btn-primary:hover{background:var(--foreground-secondary);color:var(--action-primary)}.btn-secondary{background:var(--action-secondary);color:var(--foreground-secondary);border:3px solid var(--foreground-tertiary);padding:.5rem 1rem}.btn-secondary:hover{border-color:var(--accent)}.dark-theme .btn-primary:hover{color:var(--background-primary)}.dark-theme .blog-topic{background:var(--action-primary);color:var(--foreground-secondary)}.dark-theme .blog-topic:hover{background:var(--foreground-primary);color:var(--action-primary)}.dark-theme .load-more:hover{color:var(--white)}.dark-theme .aside .h2{color:var(--foreground-primary)}header{background:var(--background-primary)}header .flex-wrapper{display:none}.navbar{justify-content:space-between;align-items:center;gap:15px;padding:15px 0;display:flex}.logo-light,.logo-dark{display:none}.light-theme .logo-light,.dark-theme .logo-dark{display:block}header .btn-group{align-items:center;gap:15px;display:flex}.theme-btn-mobile,.nav-menu-btn,.nav-close-btn{background:var(--action-secondary);color:var(--foreground-tertiary);border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:25px;display:flex}:is(.theme-btn-mobile,.nav-menu-btn,.nav-close-btn):hover{background:var(--accent);color:var(--white)}.theme-btn-mobile ion-icon{display:none}.theme-btn-mobile.light .sun,.theme-btn-mobile.dark .moon{display:block}.mobile-nav{background:var(--background-primary);overscroll-behavior:contain;visibility:hidden;z-index:10;padding:70px 20px;transition:all .5s cubic-bezier(1,0,.3,.7);position:fixed;inset:0;overflow:auto;transform:translate(100%)}.mobile-nav.active{visibility:visible;transform:translate(0)}.nav-close-btn{position:absolute;top:20px;right:20px}.mobile-nav .wrapper{border-bottom:1px solid var(--action-primary);margin-bottom:1.25rem;padding-bottom:1.25rem}.mobile-nav .nav-title{margin-bottom:1rem}.mobile-nav .nav-item{margin-bottom:.5rem}.mobile-nav .nav-link{font-size:var(--fs-3);color:var(--foreground-secondary)}.mobile-nav .nav-link:hover{color:var(--accent)}.hero{background:var(--background-primary);padding-top:2rem;padding-bottom:var(--py);text-align:center}.hero .h1{margin-bottom:1rem;line-height:1.6}.hero b{color:var(--accent);font-weight:inherit}.hero .h3{color:var(--foreground-secondary);margin-bottom:2rem}.hero .btn-group{text-align:center;flex-wrap:wrap;justify-content:center;gap:15px;display:flex}.hero .right{display:none}.main{background:var(--background-secondary);padding:var(--py) 0}.blog .h2{text-align:center;margin-bottom:3rem;line-height:1.3}.blog-card-group{margin-bottom:3rem}.blog-card{background:var(--background-primary);border-radius:10px;margin-bottom:1rem;padding:10px;transition:all .25s;box-shadow:0 10px 10px #0000000d}.blog-card:hover{transform:translateY(-2px);box-shadow:0 10px 10px #0000001a}.blog-card-banner{display:none}.blog-content-wrapper{padding:10px 5px}.blog-topic{background:var(--action-secondary);color:var(--foreground-secondary);border-radius:5px;margin-bottom:1rem;padding:.25rem 1rem;font-weight:600}.blog-topic:hover{background:var(--foreground-secondary);color:var(--action-secondary)}.blog-card .h3{margin-bottom:1rem;line-height:1.4}.blog-card .h3:hover{text-decoration:underline 2px}.blog-text,.profile-wrapper{display:none}.blog .wrapper{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:15px;display:flex}.blog .h4{color:var(--foreground-secondary)}.blog .h4:hover{color:var(--accent)}.blog .text-sm{color:var(--foreground-tertiary);align-items:center;gap:5px;display:flex}.blog .separator{background:var(--foreground-tertiary);margin-inline:3px;border-radius:3px;width:3px;height:3px;margin:0 3px}.blog ion-icon{--ionicon-stroke-width:50px}.load-more{margin-inline:auto;background:var(--foreground-secondary);color:var(--background-secondary);margin:auto;padding:.6875rem 1.1875rem}.load-more:hover{background:var(--accent)}.aside{display:none}footer{background:var(--background-primary)}footer .container{padding:var(--py) 15px;grid-template-columns:1fr;gap:30px;display:grid}footer .wrapper{text-align:center}.footer-logo{margin-bottom:10px}.footer-text{color:var(--foreground-secondary);margin-inline:auto;max-width:300px;margin:auto}.footer-title{color:var(--foreground-primary);margin-bottom:.4rem;font-weight:700}.footer-link{color:var(--foreground-secondary)}.footer-link:hover{color:var(--accent)}.copyright{color:var(--foreground-secondary);font-size:var(--fs-4);text-align:center;border-top:1px solid var(--action-primary);padding:1rem}.copyright a{color:var(--accent);font-weight:500}.copyright a:hover{text-decoration:underline}@media (width>=550px){:root{--fs-base:.9rem}.blog-card{grid-template-columns:3fr 4fr;gap:20px;display:grid}.blog-card-banner{border-radius:5px;display:block;overflow:hidden}.blog-banner-img{object-fit:cover;width:100%;height:100%}}@media (width>=650px){:root{--fs-1:2.25rem}.container{padding:0 30px}.navbar{padding:30px 0}.blog .h2{text-align:left;padding-left:2rem;position:relative}.blog .h2:before{content:"";background:var(--action-primary);border-radius:5px;width:5px;height:100%;position:absolute;top:0;left:0}.blog-text,.profile-wrapper{display:block}.blog-text{color:var(--foreground-secondary);font-size:var(--fs-4);line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-bottom:1rem;display:-webkit-box;overflow:hidden}.blog .wrapper-flex{justify-content:start;align-items:center;gap:10px;display:flex}.profile-wrapper{background:var(--action-primary);border-radius:50%;width:56px;height:56px;padding:3px}.profile-wrapper img{border-radius:50%}.blog .wrapper{flex-direction:column;align-items:start;gap:0}footer .container{padding:var(--py) 30px;grid-template-columns:2fr 1fr 1fr}footer .wrapper{text-align:left}.footer-text{margin:0}}@media (width>=768px){.container{max-width:800px}}@media (width>=1024px){:root{--fs-base:1rem;--fs-1:3rem}.container{max-width:1150px}header .btn-group{display:none}header .flex-wrapper{gap:30px;display:flex}.desktop-nav{align-items:center;gap:30px;display:flex}.desktop-nav .nav-link{color:var(--foreground-secondary);font-weight:700}.desktop-nav .nav-link:hover{color:var(--accent)}.theme-btn-desktop{background:var(--background-secondary);color:var(--white);border-radius:100px;justify-content:center;align-items:center;gap:10px;width:52px;height:26px;display:flex;position:relative}.theme-btn-desktop.light{background:linear-gradient(45deg,#ff7c6b,#ffd54c)}.theme-btn-desktop.dark{background:linear-gradient(45deg,#36f,#ad14b8)}.theme-btn-desktop:before{content:"";background:var(--white);z-index:2;border-radius:30px;width:21px;height:21px;position:absolute;top:50%;left:3px;transform:translateY(-50%);box-shadow:0 2px 10px -2px #0000000d}.theme-btn-desktop.dark:before{left:calc(100% - 24px)}.hero{text-align:left}.hero .container{grid-template-columns:1fr 1fr;align-items:center;gap:50px;display:grid}.hero .btn-group{justify-content:start;gap:30px}.hero .right{justify-content:center;align-items:center;display:flex;position:relative}.hero .pattern-bg{opacity:.2;background:url(/devblog/images/pattern.png) 0 0/contain;width:100%;height:200px;position:absolute;top:50%;transform:translateY(-50%)}.hero .img-box{z-index:2;position:relative}.hero-img{object-fit:contain;border-radius:0 0 280px 230px;width:100%;height:100%;transform:translate(10px,-10px)}.hero .shape{border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-42%)rotate(-20deg)}.hero .shape-1{background:var(--accent);z-index:-1;width:90%;height:90%}.hero .shape-2{width:92%;height:92%;box-shadow:inset 0 -30px 0 var(--action-primary);z-index:2}.main .container{grid-template-columns:5fr 2fr;gap:60px;display:grid}.aside{align-self:stretch;display:block}.aside .h2{color:var(--foreground-secondary);text-align:center;margin-bottom:3rem;line-height:1.3}.aside .wrapper{background:var(--background-primary);border-radius:10px;padding:40px;box-shadow:0 5px 5px #0000000d}.topics{margin-bottom:3rem}.topic-btn{background:var(--background-primary);border-radius:10px;align-items:stretch;display:flex;overflow:hidden;box-shadow:0 5px 5px #0000000d}.topic-btn:not(:last-child){margin-bottom:1rem}.topic-btn .icon-box{background:var(--action-primary);width:70px;color:var(--foreground-secondary);justify-content:center;align-items:center;font-size:22px;display:flex}.topic-btn:hover .icon-box{background:var(--accent);color:var(--white)}.topic-btn ion-icon{--ionicon-stroke-width:40px}.topic-btn p{color:var(--foreground-secondary);padding:15px;font-weight:700}.tags{margin-bottom:3rem}.tags .wrapper{flex-wrap:wrap;gap:.2rem;display:flex}.tags .hashtag{background:var(--action-primary);color:var(--foreground-secondary);font-size:var(--fs-5);border-radius:5px;padding:5px 10px;font-weight:700}.tags .hashtag:hover{background:var(--foreground-secondary);color:var(--action-primary)}.contact{margin-bottom:3rem}.contact p{color:var(--foreground-secondary);margin-bottom:1rem}.social-link{justify-content:center;align-items:center;gap:10px;display:flex}.social-link .icon-box{background:var(--action-secondary);border-radius:50%;justify-content:center;align-items:center;width:45px;height:45px;font-size:22px;display:flex}.social-link .discord{color:#5966f3}.social-link .twitter{color:#1ca0f2}.social-link .facebook{color:#4268b3}.social-link .icon-box:hover{background:var(--accent);color:var(--white)}.newsletter{margin-bottom:98px;position:sticky;top:3rem}.newsletter p{color:var(--foreground-secondary);margin-bottom:1rem}.newsletter input{background:var(--action-primary);width:100%;font:inherit;color:var(--foreground-secondary);border:none;border-radius:5px;margin-bottom:1rem;padding:.5rem 1rem;display:block}.newsletter input::placeholder{color:inherit}.newsletter input:focus{outline-offset:0;outline:2px solid}.newsletter .btn-primary{margin-inline:auto;margin:auto}.footer-title{font-size:1.125rem}.footer-link{margin-bottom:.3rem}}html{font-synthesis:none;background:var(--background-secondary);color:var(--foreground-primary);font-family:Inter,sans-serif;font-size:16px}html[lang=fa]{font-family:Vazirmatn Variable,sans-serif}html.light-theme{--background-secondary:#f2f4fc;--text-body:#465267;--text-muted:#596579;--text-link:#465bc0;--tag-text:#465267;--button-label:#0c1220}html.dark-theme{--background-secondary:#0c1424;--text-body:#d3dce8;--text-muted:#b3c0d3;--text-link:#b4c1ff;--tag-text:#0c1220;--button-label:#0c1220}body{margin:0}img{max-width:100%;height:auto}button,input{font:inherit}a{color:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--text-link);outline-offset:5px}p{color:var(--text-body)}h1,h2,h3{color:var(--foreground-primary)}h1{letter-spacing:-.025em;font-size:clamp(1.875rem,3vw,2.5rem);font-weight:700;line-height:1.35}html[lang=fa] h1{letter-spacing:0}h2{font-size:1.5rem;font-weight:700;line-height:1.5}h3{font-size:1.125rem;font-weight:600;line-height:1.6}.container{width:100%;min-width:0}.site-content{display:block!important}.main{padding-block:64px 80px}.skip-link{top:10px;background:var(--accent);color:var(--button-label);z-index:20;padding:10px;position:fixed;inset-inline-start:10px;transform:translateY(-160%)}.skip-link:focus{transform:none}.btn-secondary{color:var(--text-body)}.button{background:var(--accent);min-width:10rem;min-height:48px;color:var(--white);border-radius:100px;justify-content:center;align-items:center;gap:10px;padding:.6875rem 1.1875rem;font-size:.875rem;font-weight:500;display:inline-flex}.button:hover{background:var(--foreground-secondary);color:var(--action-primary)}.dark-theme .button:hover{color:var(--background-primary)}.button-outline{background:var(--action-secondary);color:var(--text-body);border:3px solid var(--foreground-tertiary);padding:.5rem 1rem}.button-outline:hover,.dark-theme .button-outline:hover{background:var(--action-secondary);border-color:var(--accent);color:var(--text-body)}.navbar{flex-wrap:wrap;gap:0 14px}.brand{color:var(--foreground-primary);flex-shrink:0;align-items:center;gap:10px;display:inline-flex}.brand .brand-icon{flex-shrink:0;width:42px;height:32px;margin:0}.brand-name{white-space:nowrap;font-size:1rem;font-weight:600}.header-actions{order:2;align-items:center;gap:16px;display:flex}.locale-label{color:var(--text-body);padding:8px 4px;font-family:Inter,sans-serif;font-size:13px;font-weight:400}.locale-label:hover{color:var(--text-link)}.nav-menu-btn{color:var(--text-body);order:3;margin-inline-start:0}.main-nav{display:none}.main-nav .nav-link{color:var(--text-body);border-bottom:2px solid #0000;padding:10px 0;font-size:14px;font-weight:400;line-height:1.5;transition:color .2s,border-color .2s}.main-nav .nav-link:hover{color:var(--text-link)}.main-nav .nav-link[aria-current=page]{color:var(--text-link);border-bottom-color:var(--accent)}.main-nav.is-open{border:1px solid var(--action-primary);background:var(--background-secondary);border-radius:10px;flex-direction:column;order:4;gap:8px;width:100%;margin-top:16px;padding:16px;display:flex}.nav-theme{border-top:1px solid var(--action-primary);justify-content:space-between;align-items:center;gap:20px;padding-top:16px;display:flex}.nav-theme>span{color:var(--text-body);font-size:.875rem}.theme-toggle{color:#fff;direction:ltr;background:linear-gradient(45deg,#ff7c6b,#ffd54c);border-radius:100px;justify-content:center;align-items:center;gap:10px;width:52px;height:26px;display:flex;position:relative}.theme-toggle:before{content:"";background:#fff;border-radius:50%;width:21px;height:21px;position:absolute;top:50%;left:3px;transform:translateY(-50%);box-shadow:0 2px 10px -2px #0000000d}.dark-theme .theme-toggle{background:linear-gradient(45deg,#36f,#ad14b8)}.dark-theme .theme-toggle:before{left:28px}.theme-toggle svg{width:16px;height:16px}.hero{padding-block:56px 64px}.hero .left,.hero .right{min-width:0}.hero .h1{margin:0;font-size:clamp(2rem,3.2vw,2.75rem);font-weight:700;line-height:1.3}.hero .hero-role{color:var(--foreground-primary);margin-top:14px;font-size:1.25rem;font-weight:500;line-height:1.65}.hero .hero-description{max-width:490px;color:var(--text-body);margin:20px auto 28px;font-size:1rem;font-weight:400;line-height:1.85}.hero .hero-actions{flex-wrap:wrap;gap:12px}.hero-actions .btn{justify-content:center;align-items:center;gap:9px;min-height:48px;font-size:.875rem;font-weight:500;display:inline-flex}.pdf-label{font-family:Inter,sans-serif;font-size:.75rem}.hero-contact{color:var(--text-link);text-underline-offset:5px;margin-top:20px;font-size:.875rem;text-decoration:underline}.hero .img-box{isolation:isolate;width:100%;max-width:510px}.hero .hero-img{object-fit:contain;border-radius:0;height:auto;transform:none}.home-section+.home-section{margin-top:56px}.section-heading{margin-bottom:24px}.section-heading h2{font-size:1.5rem}.section-heading>p{max-width:720px;margin-top:12px;font-size:1rem;line-height:1.85}.tags{flex-wrap:wrap;gap:6px;margin:16px 0 0;padding:0;font-family:Inter,sans-serif;list-style:none;display:flex}.tags li{overflow-wrap:anywhere;background:var(--action-primary);max-width:100%;color:var(--tag-text);border-radius:5px;padding:5px 9px;font-size:.8125rem;font-weight:500;line-height:1.65;transition:color .2s,background .2s}.tags li:hover{background:var(--foreground-secondary);color:var(--button-label)}.inline-link,.back-link{color:var(--text-link);font-size:.9375rem;font-weight:500}.inline-link:hover,.back-link:hover{text-underline-offset:4px;text-decoration:underline}.page-heading{background:0 0;margin-bottom:40px}.page-heading>p,.page-heading-bottom p{max-width:720px;font-size:1rem;line-height:1.85}.page-heading>p{margin-top:16px}.page-heading-bottom{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;min-height:48px;margin-top:16px;display:flex}.archive-count{color:var(--text-muted);font-size:.875rem}.work-grid{gap:20px;max-width:980px;margin-inline:auto;display:grid}.work-card{background:var(--background-primary);border-radius:10px;padding:10px;transition:transform .25s,box-shadow .25s;box-shadow:0 5px 5px #0000000d}.work-card:hover{transform:translateY(-2px);box-shadow:0 10px 10px #0000001a}.work-card-link{align-items:center;gap:20px;min-width:0;display:grid}.work-image{aspect-ratio:145/80;object-fit:contain;border-radius:6px;width:100%;height:auto;display:block}.work-content{min-width:0;padding:12px}.work-card-top{margin-bottom:12px}.category{background:var(--action-secondary);color:var(--text-body);border-radius:5px;padding:4px 10px;font-size:.8125rem;font-weight:500}.work-card h3{margin-bottom:10px;font-size:1.25rem;line-height:1.5}.work-card p{font-size:.9375rem;line-height:1.8}.work-read{color:var(--text-link);margin-top:20px;font-size:.875rem;font-weight:500}.pagination{color:var(--text-body);justify-content:space-between;gap:15px;margin-top:30px;font-size:.875rem;display:flex}.project-page{max-width:880px;margin-inline:auto}.project-meta{flex-wrap:wrap;align-items:center;gap:16px;margin-top:24px;display:flex}.project-meta .tags{margin:0}.project-cover{border-radius:10px;width:100%;height:auto}.project-figure{margin-bottom:40px}.project-figure figcaption{color:var(--text-muted);margin-top:10px;font-size:.8125rem}.project-actions{border-block:1px solid var(--action-primary);flex-wrap:wrap;gap:20px;margin-bottom:30px;padding-block:20px;display:flex}.prose{overflow-wrap:anywhere;min-width:0}.prose p{font-size:1rem;line-height:1.9}.prose p+p{margin-top:20px}.prose h2{margin-block:36px 14px;font-size:1.375rem}.prose h2:first-child{margin-top:0}.prose h3{margin-block:24px 12px}.prose ul,.prose ol{color:var(--text-body);margin-block:16px;padding-inline-start:22px}.prose li{margin-block:8px;list-style:outside}.prose ol>li{list-style:decimal}.prose a{color:var(--text-link);text-decoration:underline}.prose pre{background:var(--action-secondary);direction:ltr;border-radius:5px;padding:18px;overflow:auto}.prose table{border-collapse:collapse;width:100%;display:block;overflow:auto}.prose td,.prose th{border:1px solid var(--action-primary);padding:8px}.prose blockquote{border-inline-start:3px solid var(--accent);background:var(--action-secondary);padding:16px}.project-prose{background:var(--background-primary);border-radius:10px;padding:32px}.about-page{max-width:880px;margin-inline:auto}.about-body{background:var(--background-primary);border-top:3px solid var(--accent);border-radius:10px;padding:32px}.about-details{border-top:1px solid var(--action-primary);gap:24px;margin-top:32px;padding-top:28px;display:grid}.about-details dt{color:var(--text-muted);margin-bottom:6px;font-size:.875rem}.about-details dd{color:var(--foreground-primary);margin:0}.about-links{flex-wrap:wrap;gap:24px;margin-top:28px;display:flex}.experience-page{max-width:880px;margin-inline:auto}.career-timeline{padding-inline-start:8px;list-style:none}.career-entry{padding-inline-start:28px;border-inline-start:2px solid var(--action-primary);padding-bottom:36px;position:relative}.career-entry:before{content:"";inset-inline-start:-7px;background:var(--accent);width:12px;height:12px;box-shadow:0 0 0 5px var(--background-secondary);border-radius:50%;position:absolute;top:7px}.career-entry:last-child{border-inline-start-color:#0000;padding-bottom:0}.career-date{color:var(--text-link);margin-bottom:12px;font-size:.875rem;font-weight:500}.career-body{background:var(--background-primary);border-radius:10px;padding:24px}.career-organization{color:var(--text-muted);margin-top:4px;font-size:.875rem}.career-body h3{margin-bottom:4px;font-size:1.25rem}.career-body>p:last-of-type{margin-top:16px;font-size:1rem}.career-highlights{color:var(--text-body);margin-top:14px;padding-inline-start:20px;font-size:.9375rem}.career-highlights li{margin-block:6px;list-style:outside}.experience-links{gap:24px;margin-top:32px;display:flex}.contact-page{max-width:880px;margin-inline:auto}.contact-links{gap:16px;display:grid}.contact-item{background:var(--background-primary);border-radius:10px;align-items:center;gap:16px;min-width:0;padding:24px;transition:background .2s,box-shadow .2s;display:flex}.contact-item:hover{background:var(--action-secondary);box-shadow:0 5px 5px #0000000d}.contact-icon{background:var(--action-secondary);width:44px;height:44px;color:var(--text-link);border-radius:8px;flex-shrink:0;place-items:center;display:grid}.contact-copy{gap:6px;min-width:0;display:grid}.contact-copy strong{color:var(--foreground-primary);font-size:1rem;font-weight:600}.contact-copy strong[lang=en]{font-family:Inter,sans-serif}.contact-address{color:var(--text-body);overflow-wrap:anywhere;text-align:start;font-family:Inter,sans-serif;font-size:.9375rem}.contact-caption{color:var(--text-muted);margin-top:28px;font-size:.9375rem}.portfolio-footer{background:var(--background-primary);border-top:1px solid var(--action-primary)}.portfolio-footer .footer-inner{text-align:start;grid-template-columns:minmax(0,1fr);gap:24px;padding-block:36px;display:grid}.footer-inner>*{min-width:0}.footer-brand{color:var(--foreground-primary);align-items:center;gap:10px;font-size:1rem;font-weight:600;display:inline-flex}.footer-brand img{width:40px;height:30px}.footer-role{margin-top:10px;font-size:.875rem}.footer-copyright{color:var(--text-muted);margin-top:12px;font-size:.8125rem}.footer-inner h2{margin-bottom:12px;font-size:.9375rem;font-weight:600}.footer-links{flex-wrap:wrap;gap:8px 20px;display:flex}.footer-links a{color:var(--text-body);padding-block:4px;font-size:.875rem}.footer-links a:hover{color:var(--text-link)}.footer-links a[aria-current=page]{color:var(--text-link);text-underline-offset:4px;text-decoration:underline}.footer-contact .contact-links{flex-wrap:wrap;gap:10px;display:flex}.footer-contact .contact-item{background:var(--action-secondary);border:1px solid var(--action-primary);border-radius:8px;justify-content:center;width:44px;height:44px;padding:0}.footer-contact .contact-item:hover{border-color:var(--accent);background:var(--action-primary)}.footer-contact .contact-icon{width:auto;height:auto;color:var(--text-body);background:0 0}.footer-contact .contact-copy{display:none}.footer-location{color:var(--text-muted);align-items:center;gap:6px;margin-top:12px;font-size:.8125rem;display:flex}.muted,.empty-state{color:var(--text-muted)}.compact-resume{--resume-heading:var(--foreground-primary);--resume-body:var(--text-body);--resume-muted:var(--text-muted);--resume-link:var(--text-link);--resume-line:var(--line);background:var(--background-primary);max-width:980px;color:var(--resume-heading);border:1px solid var(--resume-line);border-radius:10px;margin-inline:auto;padding:36px 40px}.compact-resume h2,.compact-resume h3{color:var(--resume-heading)}.compact-resume p,.compact-resume dd,.compact-resume li{color:var(--resume-body)}.resume-identity{border-bottom:1px solid var(--resume-line);background:0 0;grid-template-columns:minmax(0,1fr);align-items:start;gap:24px;padding-bottom:24px;display:grid}.resume-name{min-width:0}.compact-resume .resume-identity h2{font-size:1.75rem;line-height:1.4}.compact-resume .resume-role{color:var(--resume-link);margin-top:8px}.compact-resume .resume-location{margin-top:4px;font-size:.875rem}.resume-contacts{gap:10px;min-width:0;margin:0;padding:0;list-style:none;display:grid}.resume-contacts li{min-width:0;list-style:none}.resume-contacts a{max-width:100%;color:var(--resume-link);direction:ltr;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"icon address";align-items:center;gap:10px;font-family:Inter,sans-serif;font-size:.8125rem;line-height:1.6;display:grid}.resume-contacts bdi{overflow-wrap:anywhere;text-align:left;grid-area:address;min-width:0}.resume-contacts svg{color:var(--resume-muted);grid-area:icon}.resume-contacts a:hover{text-underline-offset:4px;text-decoration:underline}.compact-resume .resume-section{margin-top:28px}.compact-resume .resume-section>h2{color:var(--resume-link);border-bottom:1px solid var(--resume-line);margin-bottom:14px;padding-bottom:8px;font-size:1rem}.compact-resume .resume-section p,.compact-resume li{font-size:.9375rem;line-height:1.8}.compact-skills{gap:10px;display:grid}.compact-skills>div{grid-template-columns:140px minmax(0,1fr);align-items:baseline;gap:16px;display:grid}.compact-skills dt{font-size:.9375rem;font-weight:500}.compact-skills dd{text-align:start;margin:0;font-family:Inter,sans-serif;font-size:.875rem}.compact-jobs{gap:24px;display:grid}.compact-job-title{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 16px;display:flex}.compact-job h3,.compact-projects h3{font-size:1rem;line-height:1.6}.compact-job-title>span,.compact-resume .compact-organization{color:var(--resume-muted);font-size:.875rem}.compact-job ul{margin-top:8px;padding-inline-start:20px}.compact-job li{list-style:outside}.compact-projects{gap:16px;display:grid}::-webkit-scrollbar{width:16px;height:16px}:root{--scrollbar-track:#e6e6e6}:root.dark-theme{--scrollbar-track:#252f41}::-webkit-scrollbar-thumb{background:var(--accent);border:4px solid var(--scrollbar-track);border-radius:20px}::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:var(--scrollbar-track)}@supports not selector(::-webkit-scrollbar){*{scrollbar-color:var(--accent) var(--scrollbar-track);scrollbar-width:auto}}@media (width>=650px){.resume-identity{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px}.resume-contacts{justify-self:end}.work-card-link.has-image{grid-template-columns:42% minmax(0,1fr)}.about-details{grid-template-columns:repeat(3,minmax(0,1fr))}.contact-page .contact-links{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-page .contact-item:first-child{grid-column:1/-1}.portfolio-footer .footer-inner{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:28px}.footer-identity{grid-column:1/-1}}@media (width>=1024px){.site-header .navbar{flex-wrap:nowrap;height:88px;padding-block:0}.nav-menu-btn{display:none}.main-nav,.main-nav.is-open{flex-direction:row;order:initial;background:0 0;border:0;gap:24px;width:auto;margin:0;padding:0;display:flex}.main-nav .nav-link{padding-block:6px;font-size:13px}.header-actions{order:initial}.nav-theme{border-top:0;border-inline-start:1px solid var(--action-primary);padding:0;padding-inline-start:22px}.nav-theme>span{display:none}.hero{text-align:start;align-items:center;min-height:calc(100svh - 88px);padding-block:48px;display:flex}.hero .container{grid-template-columns:1.1fr .9fr;gap:48px}.hero .hero-description{margin-inline:0}.hero .hero-img{max-height:calc(100svh - 184px)}.portfolio-footer .footer-inner{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,.65fr);gap:48px;padding-block:40px}.footer-identity{grid-column:auto}}@media (width<=1023px){.navbar .brand{margin-inline-end:auto}}@media (width<=649px){.main{padding-block:40px 48px}.page-heading{margin-bottom:28px}.page-heading-bottom{gap:16px}.hero{padding-block:40px 48px}.hero .hero-role{font-size:1.125rem}.hero .hero-description{margin-block:16px 24px;font-size:1rem}.hero .hero-actions{gap:10px}.hero-actions .btn{min-width:0;padding-inline:16px}.brand-name{font-size:.9375rem}.brand .brand-icon{width:36px;height:28px}.home-section+.home-section{margin-top:36px}.work-card h3{font-size:1.125rem}.work-card-link{gap:8px}.project-prose,.about-body{padding:24px 20px}.career-entry{padding-inline-start:20px;padding-bottom:24px}.career-body{padding:20px}.career-body h3{font-size:1.125rem}.contact-item{padding:20px}.contact-address{font-size:.875rem}.compact-resume{padding:24px 20px}.compact-skills>div{grid-template-columns:1fr;gap:4px}.footer-contact{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.footer-contact h2{margin:0}.footer-location{grid-column:1/-1;margin-top:0}}@media (width<=359px){.navbar{column-gap:10px}.brand-name{font-size:.875rem}.brand .brand-icon{width:30px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important}}@media print{@page{size:A4;margin:12mm}html,html.dark-theme{color:#222;background:#fff}.site-header,.site-footer,.skip-link,.resume-heading,astro-dev-toolbar{display:none!important}.main{padding:0}.container{max-width:none;padding:0}.compact-resume{--resume-heading:#17233c;--resume-body:#334155;--resume-muted:#475569;--resume-link:#3344a1;--resume-line:#dfe4f3;background:#fff;border:0;max-width:none;padding:0}.compact-resume .resume-identity h2{font-size:22pt}.compact-resume .resume-section{break-inside:auto;margin-top:9pt}.compact-resume .resume-section>h2{margin-bottom:5pt;padding-bottom:3pt;font-size:11pt}.compact-resume .resume-section p,.compact-resume li{font-size:9.5pt;line-height:1.4}.compact-resume .compact-organization,.compact-job-title>span{font-size:8.5pt}.compact-skills{gap:6px}.compact-skills>div{grid-template-columns:130px minmax(0,1fr);gap:12px}.compact-skills dt,.compact-skills dd{font-size:9pt}.compact-jobs{gap:8pt}.compact-projects{gap:5pt}.resume-identity{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16pt;padding-bottom:8pt}.resume-contacts{justify-self:end;gap:3pt}.resume-contacts a{font-size:8pt}.resume-contacts svg{width:12pt;height:12pt}.compact-job h3,.compact-projects h3{font-size:10.5pt}.compact-job,.compact-projects>div{break-inside:avoid}}html.light-theme{--background-secondary:#f7f7f7}html.dark-theme{--background-secondary:#1a212d}.portfolio{--line:color-mix(in srgb,var(--foreground-primary) 10%,transparent);--panel:var(--background-primary);--soft:var(--action-secondary);background:var(--background-secondary)}.portfolio .container{max-width:1280px;padding-inline:40px}.portfolio main{min-width:0;min-height:calc(100svh - 150px)}.portfolio .main{background:0 0;padding-block:48px 64px}.portfolio .site-header{background:var(--panel);border-bottom:1px solid var(--line)}.portfolio .navbar{gap:12px;min-height:80px;padding-block:14px}.sidebar-header{flex:1;justify-content:space-between;align-items:center;gap:16px;min-width:0;display:flex}.portfolio .brand{flex-direction:column;flex-shrink:1;align-items:flex-start;gap:5px;min-width:0}.portfolio .brand-name{color:var(--accent);letter-spacing:-.02em;font-size:1rem;font-weight:600}.brand-role{color:var(--text-muted);font-size:.6875rem;font-weight:400;line-height:1.7}.rail-controls{direction:ltr;flex-shrink:0;align-items:center;gap:14px;padding:0;display:flex}.rail-controls:before{content:"";background:var(--line);order:2;width:1px;height:22px}.portfolio .rail-controls .theme-toggle,.portfolio .rail-controls .locale-label{border:1px solid var(--line);background:var(--action-secondary);height:36px;color:var(--text-body);border-radius:100px;flex:none;justify-content:center;align-items:center;padding:0;line-height:1;transition:background .2s,color .2s,border-color .2s;display:flex}.portfolio .rail-controls .theme-toggle{order:3;width:36px}.portfolio .rail-controls .theme-toggle:hover,.portfolio .rail-controls .locale-label:hover{color:var(--text-link);background:var(--panel);border-color:var(--accent)}.portfolio .theme-toggle:before{content:none}.portfolio .theme-toggle .theme-moon{display:none}.portfolio .rail-controls .locale-label{letter-spacing:.04em;order:1;gap:8px;width:82px;font-size:13px;font-weight:500}.portfolio .rail-controls .locale-label svg{flex-shrink:0}.portfolio .theme-toggle .theme-sun{display:block}.dark-theme .portfolio .theme-toggle .theme-sun{display:none}.dark-theme .portfolio .theme-toggle .theme-moon{display:block}.portfolio .theme-toggle svg{width:18px;height:18px}.portfolio .nav-menu-btn{border:1px solid var(--line);background:var(--action-secondary);border-radius:10px;place-items:center;width:40px;height:40px;display:grid}.portfolio .nav-menu-btn:hover{color:var(--text-link);border-color:var(--accent)}.rail-navigation{width:100%;display:none}.rail-navigation.is-open{flex-direction:column;order:4;padding-top:16px;display:flex}.portfolio .main-nav{flex-direction:column;align-items:stretch;gap:6px;width:100%;display:flex}.portfolio .main-nav .nav-link{width:100%;min-height:48px;color:var(--text-body);border:1px solid #0000;border-radius:12px;align-items:center;gap:14px;padding:12px 14px;font-size:14px;font-weight:400;line-height:1.5;text-decoration:none;transition:background .2s,color .2s,border-color .2s;display:flex}.portfolio .main-nav .nav-link svg{flex-shrink:0}.portfolio .main-nav .nav-link:hover{background:var(--action-secondary);color:var(--text-link)}.portfolio .main-nav .nav-link[aria-current]{color:var(--text-link);background:color-mix(in srgb,var(--accent) 12%,var(--panel));border-color:color-mix(in srgb,var(--accent) 18%,transparent)}.portfolio .main-nav .nav-link span{text-decoration:none}.rail-contact{border-top:1px solid var(--line);text-align:center;margin-top:22px;padding-top:22px}.rail-contact .contact-links{justify-content:center;gap:10px;display:flex}.portfolio .rail-contact .contact-item{border:1px solid var(--line);background:var(--action-secondary);width:46px;height:44px;box-shadow:none;border-radius:11px;place-items:center;padding:0;display:grid}.portfolio .rail-contact .contact-item:hover{border-color:var(--accent);background:var(--panel);transform:translateY(-2px)}.rail-contact .contact-copy{display:none}.rail-contact .contact-icon{width:auto;height:auto;color:var(--text-body);background:0 0}.rail-contact .contact-item:hover .contact-icon{color:var(--text-link)}.portfolio .hero{text-align:start;background:0 0;min-height:0;padding:28px 0 0}.portfolio .hero>.container{grid-template-columns:minmax(0,1fr);align-items:center;gap:24px;display:grid}.portfolio .hero .left{min-width:0;padding-block:24px}.portfolio .hero .h1{letter-spacing:-.045em;font-size:clamp(2rem,3.2vw,3.125rem);font-weight:700;line-height:1.35}html[lang=fa] .portfolio .hero .h1{letter-spacing:-.02em}html[lang=fa] .portfolio .hero .h1 b{font-weight:900}html[lang=en] .portfolio .hero .h1{font-size:var(--fs-1);letter-spacing:normal;margin-bottom:1rem;font-weight:900;line-height:1.6}.portfolio .hero .hero-role{color:var(--text-link);margin-top:12px;font-size:1.125rem;font-weight:500}.portfolio .hero .hero-description{max-width:620px;margin:22px 0 28px;font-size:1rem;line-height:1.95}.hero-description p+p{margin-top:16px}.portfolio .hero .hero-actions{justify-content:flex-start;gap:15px}.portfolio .btn,.portfolio .button{border-radius:10px}.portfolio .hero-actions .btn,.portfolio .resume-download{min-width:10rem;min-height:0;font-size:var(--fs-base);border-radius:100px;justify-content:center;align-items:center;font-weight:400;line-height:1.8;display:inline-flex}.portfolio .hero-actions .btn-primary{padding:.6875rem 1.1875rem}.portfolio .hero-actions .btn-secondary,.portfolio .resume-download{border:3px solid var(--foreground-tertiary);background:var(--action-secondary);color:var(--foreground-secondary);padding:.5rem 1rem}.portfolio .resume-download:hover{color:var(--accent);border-color:currentColor}.portfolio .hero .hero-portrait{justify-content:center;align-items:center;min-width:0;display:flex;position:relative}.portfolio .hero .img-box{background:0 0;width:100%;max-width:320px;margin:auto;position:relative}.portfolio .hero .hero-img{object-fit:contain;border-radius:0;width:100%;height:auto;max-height:none;display:block;transform:none;mask-image:radial-gradient(70% 63% at 50% 35%,#000 94%,#0000 100%)}.portfolio .section-heading{margin-bottom:24px}.portfolio .section-heading h2{align-items:center;gap:18px;font-size:1.375rem;display:flex}.portfolio .section-heading h2:after{content:"";background:var(--accent);width:40px;height:2px}.portfolio .section-heading>p{max-width:650px;margin-top:10px;font-size:.9375rem}.expertise-list{gap:24px;display:grid}.expertise-panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;min-width:0;box-shadow:0 4px 16px #00000005}.expertise-heading{background:0 0;align-items:flex-start;gap:18px;padding:28px 30px 24px;display:flex}.expertise-heading>div{min-width:0}.expertise-icon{width:48px;height:48px;color:var(--text-link);background:var(--action-secondary);border-radius:13px;flex-shrink:0;place-items:center;display:grid}.expertise-heading h3{font-size:1.25rem;font-weight:600}.expertise-heading p{max-width:720px;margin-top:8px;font-size:.9375rem;line-height:1.85}.expertise-details{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr);gap:24px;margin:0 30px 26px;padding-top:24px;display:grid}.expertise-details>div{min-width:0}.expertise-details h4{color:var(--text-muted);margin-bottom:14px;font-size:.8125rem;font-weight:500}.expertise-capabilities ul{gap:12px;display:grid}.expertise-capabilities li{color:var(--text-body);padding-inline-start:18px;font-size:.9375rem;line-height:1.85;position:relative}.expertise-capabilities li:before{content:"";inset-inline-start:0;background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;top:.9em}.expertise-tools dl{gap:16px;display:grid}.expertise-tools dt{flex-wrap:wrap;gap:6px;display:flex}.expertise-tools bdi{color:var(--tag-text);background:var(--action-primary);border-radius:5px;padding:3px 8px;font-family:Inter,sans-serif;font-size:.8125rem;font-weight:500}.expertise-tools dd{color:var(--text-body);margin:6px 0 0;font-size:.875rem;line-height:1.8}.expertise-example{border-top:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:6px 16px;padding:16px 30px;display:flex}.expertise-example>span{color:var(--text-muted);font-size:.8125rem}.expertise-example a{color:var(--text-link);overflow-wrap:anywhere;font-size:.875rem;font-weight:500}.expertise-example a:hover{text-underline-offset:4px;text-decoration:underline}.development-tools{border:1px solid var(--line);background:var(--panel);border-radius:16px;margin-top:24px;padding:26px 30px}.development-tools h3{margin-bottom:18px;font-size:1rem;font-weight:600}.development-tools dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.development-tools dl>div{border:1px solid var(--line);background:var(--background-secondary);border-radius:10px;min-width:0;padding:18px 20px}.development-tools dt{color:var(--text-link);text-align:start;font-family:Inter,sans-serif;font-size:1rem;font-weight:600}.development-tools dd{color:var(--text-body);margin:8px 0 0;font-size:.875rem;line-height:1.8}.portfolio .tags li{border-radius:6px;font-weight:400}.project-breadcrumbs{z-index:3;border-bottom:1px solid var(--line);background:var(--background-secondary);margin-bottom:28px;padding-block:16px;position:sticky;top:0}.project-breadcrumbs ol{flex-wrap:wrap;gap:6px 12px;list-style:none;display:flex}.project-breadcrumbs li{align-items:baseline;gap:12px;min-width:0;font-size:.8125rem;line-height:1.8;display:flex}.breadcrumb-separator{color:var(--text-muted)}.project-breadcrumbs a{color:var(--text-link)}.project-breadcrumbs a:hover{text-underline-offset:4px;text-decoration:underline}.project-breadcrumbs [aria-current]{color:var(--text-body);overflow-wrap:anywhere}.portfolio .page-heading h1{align-items:center;gap:24px;display:flex}.portfolio .page-heading h1:after{content:"";background:var(--accent);flex-shrink:0;width:48px;height:3px}.portfolio .work-grid{gap:24px}.portfolio .work-card{border:1px solid var(--line);box-shadow:none;background:var(--panel);border-radius:16px;padding:16px}.portfolio .work-image{border-radius:10px}.portfolio .work-content{padding:16px}.portfolio .work-read{text-underline-offset:5px;text-decoration:underline}.portfolio .about-body,.portfolio .project-prose,.portfolio .career-body,.portfolio .contact-item{border:1px solid var(--line);background:var(--panel);border-radius:16px}.portfolio .about-body{border-top:3px solid var(--accent)}.portfolio .career-entry:before{box-shadow:0 0 0 5px var(--background-secondary)}.portfolio .contact-item:hover{border-color:var(--accent)}.portfolio .portfolio-footer{border-top:1px solid var(--line);background:0 0}.portfolio .portfolio-footer .footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 24px;padding-block:22px;font-size:12px;display:flex}.portfolio .footer-inner p,.portfolio .footer-inner>span{color:var(--text-muted)}@media (width>=650px){.portfolio .hero>.container{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:24px}}@media (width>=800px){.expertise-details{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px}.expertise-tools{border-inline-start:1px solid var(--line);padding-inline-start:28px}}@media (width>=1024px){.portfolio{--rail-width:264px;grid-template-columns:var(--rail-width) minmax(0,1fr);display:grid}.portfolio>main,.portfolio>.site-footer{grid-column:2}.portfolio .container{padding-inline:44px}.portfolio .site-header{min-height:100svh;width:var(--rail-width);border:0;border-inline-end:1px solid var(--line);grid-area:1/1/3;align-self:start;position:sticky;top:0;overflow:visible}.portfolio .site-header>.container{padding:24px}.portfolio .site-header .navbar{flex-direction:column;justify-content:flex-start;align-items:stretch;gap:0;height:auto;min-height:calc(100svh - 48px);padding:0;display:flex}.sidebar-header{flex-direction:column;flex:none;align-items:center;gap:28px;padding:10px 0 28px}.portfolio .brand{text-align:center;align-items:center;gap:8px;width:100%}.portfolio .brand-name{font-size:1.625rem;font-weight:700}.brand-role{font-size:.8125rem}.rail-controls{align-self:center}.rail-navigation,.rail-navigation.is-open{flex-direction:column;flex:1;padding-top:20px;display:flex}.portfolio .main-nav{gap:7px}.portfolio .main-nav .nav-link{font-size:13px}.rail-contact{border-top:0;margin-top:auto;padding-top:24px}.portfolio .nav-menu-btn{display:none}.portfolio .hero{padding-top:40px}.portfolio .hero .hero-actions{gap:30px}.portfolio .hero .left{padding-block:32px 20px}}@media (width>=1440px){.portfolio{--rail-width:288px}.portfolio .container{padding-inline:64px}.portfolio .site-header>.container{padding:28px}.portfolio .site-header .navbar{min-height:calc(100svh - 56px)}.portfolio .hero>.container{gap:40px}}@media (width>=1024px) and (height<=760px){.portfolio .site-header>.container{padding:18px 24px}.portfolio .site-header .navbar{min-height:calc(100svh - 36px)}.sidebar-header{gap:18px;padding-bottom:20px}.rail-navigation{padding-top:14px}.rail-contact{padding-top:16px}}@media (width>=1024px) and (height<=700px){.portfolio .site-header{position:static}}@media (width<=1023px){.portfolio .navbar .brand{margin-inline-end:auto}}@media (width<=649px){.portfolio .container{padding-inline:22px}.portfolio .navbar{column-gap:8px;min-height:76px}.sidebar-header{flex-wrap:wrap;gap:10px}.portfolio .brand{gap:3px}.portfolio .brand-name{font-size:.875rem}.rail-controls{gap:8px}.portfolio .rail-controls .theme-toggle{width:34px;height:34px}.portfolio .rail-controls .locale-label{gap:5px;width:64px;height:34px}.portfolio .nav-menu-btn{width:36px}.portfolio .hero{padding-top:10px}.portfolio .hero .left{padding-block:24px 0}.portfolio .hero .h1{font-size:2rem}.portfolio .hero .hero-role{font-size:1rem}.portfolio .hero .hero-description{margin-block:18px 24px}.portfolio .hero .hero-actions{gap:15px}.portfolio .hero .img-box{max-width:240px}.portfolio .main{padding-block:28px 44px}.expertise-heading{gap:14px;padding:22px 20px 20px}.expertise-icon{border-radius:10px;width:38px;height:38px}.expertise-heading h3{font-size:1.0625rem}.expertise-heading p{font-size:.875rem}.expertise-details{gap:22px;margin:0 20px 22px;padding-top:20px}.expertise-example{padding:16px 20px}.development-tools{padding:22px 20px}.development-tools dl{grid-template-columns:1fr;gap:12px}.portfolio .page-heading h1{gap:16px;font-size:1.875rem}.portfolio .page-heading h1:after{width:32px}.portfolio .work-card{padding:10px}.portfolio .work-content{padding:12px}}@media (width<=359px){.portfolio .container{padding-inline:16px}.portfolio .brand-name{font-size:.8125rem}}@media print{.portfolio{background:#fff;display:block}.portfolio .container{max-width:none;padding:0}.portfolio .main{padding:0}.project-breadcrumbs{position:static}}
