:root{--color-text: #24292e;--color-muted: #6a737d;--color-link: #0366d6;--color-border: #eaecef;--color-bg: #ffffff;--color-bg-code: #f6f8fa;--color-bg-hover: #f3f4f6;--color-keyword-bg: #edf2ff;--color-keyword-fg: #3451b2;--shadow-code: 0 1px 3px rgba(0,0,0,0.08)}@media (prefers-color-scheme: dark){:root{--color-text: #e6edf3;--color-muted: #8b949e;--color-link: #58a6ff;--color-border: #30363d;--color-bg: #0d1117;--color-bg-code: #161b22;--color-bg-hover: #1c2128;--color-keyword-bg: #1c2d4a;--color-keyword-fg: #79b8ff;--shadow-code: 0 1px 3px rgba(0,0,0,0.4)}}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:-apple-system,system-ui,"Segoe UI",Roboto,sans-serif;font-size:clamp(15px,2.5vw,17px);line-height:1.7;transition:background .2s,color .2s}html:lang(fa) body,html:lang(fa),html[dir=rtl] body,html[dir=rtl]{font-family:Vazir,-apple-system,system-ui,sans-serif}a{color:var(--color-link);text-decoration:none}a:hover{text-decoration:underline}.site-wrapper{min-height:100vh;display:flex;flex-direction:column;max-width:720px;margin:0 auto;padding:0 24px}.site-header{padding:20px 0;border-bottom:1px solid var(--color-border);margin-bottom:40px}.site-nav{display:flex;align-items:center;justify-content:space-between}.site-title{font-weight:700;font-size:1.1em;color:var(--color-text)}.site-title:hover{text-decoration:none;color:var(--color-link)}.nav-links{font-size:.9em;color:var(--color-muted)}.nav-links a{color:var(--color-muted)}.nav-links a:hover{color:var(--color-link)}.nav-sep{margin:0 6px;color:var(--color-border)}.site-footer{margin-top:auto;padding:32px 0 24px;border-top:1px solid var(--color-border);font-size:.85em;color:var(--color-muted);text-align:center}.site-footer p{margin:0}.site-footer a{color:var(--color-muted)}.site-footer a:hover{color:var(--color-link)}.home{padding:60px 0;text-align:center}.home-title{font-size:clamp(1.8em,6vw,2.5em);font-weight:700;margin:0 0 8px}.home-subtitle{color:var(--color-muted);margin:0 0 40px}.home-links{list-style:none;padding:0;margin:0;display:flex;gap:24px;justify-content:center;font-size:1.1em}.section-header h1{font-size:clamp(1.3em,3vw,1.6em);font-weight:700;margin:0 0 24px;padding-bottom:12px;border-bottom:1px solid var(--color-border)}.post-list{list-style:none;padding:0;margin:0}.post-list-item{display:flex;align-items:baseline;gap:16px;padding:10px 0;border-bottom:1px solid var(--color-border)}.post-list-item:last-child{border-bottom:none}[dir=rtl] .post-list-item{flex-direction:row-reverse}.post-date{font-size:.85em;color:var(--color-muted);white-space:nowrap;font-variant-numeric:tabular-nums}.empty{color:var(--color-muted);font-style:italic}.post-header{margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.post-title{font-size:clamp(1.4em,4vw,1.8em);font-weight:700;margin:0 0 8px;line-height:1.3}.post-meta{display:flex;align-items:center;gap:12px;font-size:.85em;color:var(--color-muted);flex-wrap:wrap}.post-keywords{display:flex;gap:6px;flex-wrap:wrap}.keyword{background:var(--color-keyword-bg);color:var(--color-keyword-fg);border-radius:4px;padding:1px 7px;font-size:.85em;font-weight:500}.back-to-top{display:block;text-align:center;margin-top:48px;padding-top:24px;border-top:1px solid var(--color-border);font-size:.85em;color:var(--color-muted)}.back-to-top a{color:var(--color-muted)}.back-to-top a:hover{color:var(--color-link);text-decoration:none}.reading-progress{position:fixed;top:0;left:0;width:0%;height:3px;background:var(--color-link);z-index:100;transition:width .1s linear}.markdown-body{flex:1}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25;color:var(--color-text)}.markdown-body h2{padding-bottom:.3em;border-bottom:1px solid var(--color-border);font-size:1.4em}.markdown-body h3{font-size:1.2em}.markdown-body p{margin:0 0 16px}.markdown-body ol,.markdown-body ul{padding-left:2em;padding-right:0;margin:0 0 16px}[dir=rtl] .markdown-body ol,[dir=rtl] .markdown-body ul{padding-right:2em;padding-left:0}.markdown-body blockquote{margin:0 0 16px;padding:0 1em;color:var(--color-muted);border-left:.25em solid var(--color-border)}[dir=rtl] .markdown-body blockquote{border-left:none;border-right:.25em solid var(--color-border)}.markdown-body table{display:block;width:100%;overflow:auto;border-spacing:0;border-collapse:collapse;margin:0 0 16px}.markdown-body table th{font-weight:600}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid var(--color-border)}.markdown-body table tr{background:var(--color-bg);border-top:1px solid var(--color-border)}.markdown-body table tr:nth-child(2n){background:var(--color-bg-code)}.markdown-body img{max-width:100%}.markdown-body code{font-family:"JetBrains Mono","SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;font-size:85%;background:var(--color-bg-code);border-radius:4px;padding:.2em .4em;color:var(--color-text)}.markdown-body pre{position:relative;background:var(--color-bg-code);border:1px solid var(--color-border);border-radius:8px;padding:16px;padding-top:36px;overflow:auto;margin:0 0 20px;box-shadow:var(--shadow-code);direction:ltr;unicode-bidi:isolate}.markdown-body pre code{background:none;padding:0;font-size:.875em;line-height:1.6;border-radius:0}.markdown-body pre[class]::before{content:attr(class);position:absolute;top:0;left:0;right:0;padding:4px 12px;font-family:"JetBrains Mono","SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;font-size:.75em;color:var(--color-muted);background:var(--color-bg-hover);border-bottom:1px solid var(--color-border);border-radius:8px 8px 0 0}.markdown-body hr{height:.25em;margin:24px 0;background:var(--color-border);border:0}.markdown-body>:first-child{margin-top:0 !important}.markdown-body>:last-child{margin-bottom:0 !important}@media (max-width: 600px){.site-wrapper{padding:0 16px}.home{padding:40px 0}.post-list-item{flex-direction:column;gap:2px}[dir=rtl] .post-list-item{flex-direction:column}.markdown-body pre{border-radius:6px;padding:12px;padding-top:32px}}