.blog{--surface:#101326;--surface-raised:#171b33;--surface-edge:#262b47;--text:#e4e7f3;--text-soft:#a8adc7;--text-faint:#878ea9;--accent:#a8b2ff;background:var(--nyx-void);color:var(--text);min-height:100vh;padding-top:128px}.blog-intro{padding-block:8px 44px}.blog-intro h1{text-wrap:balance;max-width:16ch;margin:18px 0 0;font-size:clamp(34px,4vw,58px);font-weight:550;line-height:1.35}.blog-intro-row{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:40px;display:flex}.blog-intro-row p{color:var(--text-soft);max-width:42ch;margin:0;font-size:15px;line-height:2}.blog-intro-rule{color:var(--text-soft);border-top:1px solid #303345;justify-content:space-between;align-items:center;gap:20px;margin-top:34px;padding-top:16px;font-size:12px;display:flex}.blog-rss{align-items:center;gap:8px;display:inline-flex}.blog-rss:hover{color:#bdc2ff}.blog-tags{flex-wrap:wrap;gap:10px;padding-bottom:40px;display:flex}.blog-tags a{border:1px solid #3a3e55;border-radius:30px;align-items:center;gap:9px;padding:8px 14px;font-size:13px;transition:border-color .2s,color .2s;display:inline-flex}.blog-tags a:hover{color:#cdd1ff;border-color:#7d84d8}.blog-tags b{color:var(--text-soft);font-size:11px;font-weight:500}.blog-empty{color:var(--text-soft);padding-block:60px 120px;font-size:15px}.post-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:30px;margin:0;padding:0 0 120px;list-style:none;display:grid}.post-card{background:var(--surface);border:1px solid var(--surface-edge);border-radius:14px;flex-direction:column;transition:border-color .25s,transform .25s;display:flex;position:relative;overflow:hidden}.post-card:hover{border-color:#434a78;transform:translateY(-3px)}.post-card:has(.post-card-title a:focus-visible){outline-offset:4px;outline:3px solid #98a3ff}.post-card-title a:focus-visible{outline:none}.post-card-cover{aspect-ratio:16/10;background:var(--surface-raised);position:relative;overflow:hidden}.post-card-cover img{object-fit:cover;width:100%;height:100%;transition:transform .5s}.post-card:hover .post-card-cover img{transform:scale(1.04)}.post-card-mark{text-align:center;color:#e2e5ff;background:linear-gradient(135deg,hsl(var(--hue)40% 27%),hsl(calc(var(--hue) + 46)36% 15%));place-items:center;height:100%;padding:18px;font-size:15px;display:grid}.post-card-text{flex-direction:column;flex:1;gap:10px;padding:22px 24px 24px;display:flex}.post-card-meta{color:var(--text-faint);font-variant-numeric:tabular-nums;align-items:center;gap:8px;font-size:12px;display:flex}.post-card-title{text-wrap:balance;margin:0;font-size:20px;font-weight:550;line-height:1.75;transition:color .2s}.post-card-title a:after{content:"";position:absolute;inset:0}.post-card:hover .post-card-title{color:#cdd1ff}.post-card-summary{-webkit-line-clamp:3;line-clamp:3;color:var(--text-soft);-webkit-box-orient:vertical;margin:0;font-size:14px;line-height:1.95;display:-webkit-box;overflow:hidden}.post-card-foot{border-top:1px solid var(--surface-edge);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:auto;padding-top:16px;display:flex}.post-card-tags{min-width:0;color:var(--text-faint);flex-wrap:wrap;gap:8px;margin:0;padding:0;font-size:11px;list-style:none;display:flex}.post-card-tags li:not(:last-child):after{content:"،"}:root:lang(en) .post-card-tags li:not(:last-child):after{content:","}.byline{align-items:center;gap:10px;font-size:12px;display:inline-flex}.byline-faces{display:inline-flex}.byline-faces>*{object-fit:cover;border-radius:50%;width:26px;height:26px}.byline-faces>:not(:first-child){margin-inline-start:-8px}.author-chip{color:#cdd1ff;background:#2b3050;border:1px solid #454a72;place-items:center;font-size:11px;font-weight:600;display:grid}.byline-names a:hover{color:#bdc2ff}.post-progress{z-index:40;pointer-events:none;height:2px;position:fixed;inset-block-start:0;inset-inline:0}.post-progress i{transform-origin:100%;background:#a8b2ff;height:100%;display:block}:root:lang(en) .post-progress i{transform-origin:0}.post-shell{padding-bottom:120px}.post-back{color:var(--text-soft);align-items:center;gap:10px;font-size:12px;display:inline-flex}.post-back span{display:inline-block;transform:rotate(180deg)}.post-back:hover{color:var(--text)}.post-header{max-width:78ch;padding-block:10px 46px}.post-header h1{text-wrap:balance;margin:26px 0 0;font-size:clamp(30px,3.9vw,54px);font-weight:550;line-height:1.45}.post-summary{color:#b6bace;max-width:56ch;margin:18px 0 0;font-size:16px;line-height:2}.post-meta{color:var(--text-soft);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:16px;margin-top:26px;font-size:12px;display:flex}.post-meta-rule{background:#3a3e55;width:24px;height:1px}.post-tags{flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;font-size:11px;list-style:none;display:flex}.post-tags a{color:#9ba0bd;border:1px solid #343850;border-radius:20px;padding:5px 11px;display:inline-block}.post-tags a:hover{color:#cdd1ff;border-color:#7d84d8}.post-cover{aspect-ratio:21/9;border:1px solid var(--surface-edge);background:var(--surface-raised);border-radius:14px;margin-bottom:40px;position:relative;overflow:hidden}.post-cover img{object-fit:cover;width:100%;height:100%}.post-layout{grid-template-columns:minmax(0,1fr) 212px;align-items:start;gap:46px;display:grid}.post-toc{max-height:calc(100vh - 150px);padding-inline-end:8px;font-size:12px;position:sticky;top:118px;overflow-y:auto}.post-toc-title{color:#7d829b;letter-spacing:.04em;margin:0 0 12px;font-size:11px}.post-toc ol{border-inline-start:1px solid #2a2e42;margin:0;padding:0;list-style:none}.post-toc li[data-depth="2"]{padding-inline-start:14px}.post-toc a{color:#8f94b0;border-inline-start:1px solid #0000;margin-inline-start:-1px;padding:7px 0;padding-inline-start:16px;line-height:1.7;transition:color .2s,border-color .2s;display:block}.post-toc a:hover{color:#cdd1ff}.post-toc a[aria-current]{color:#cdd1ff;border-inline-start-color:#a8b2ff}.post-body{background:var(--surface);color:var(--text);border:1px solid var(--surface-edge);overflow-wrap:break-word;border-radius:14px;padding:clamp(28px,4vw,62px);font-size:17px;line-height:2.1}.post-body :is(p,ul,ol,blockquote){max-width:68ch}:root:lang(en) .post-body{line-height:1.8}.post-body>:first-child{margin-top:0}.post-body>:last-child{margin-bottom:0}.post-body p{margin:0 0 1.5em}.post-body h2,.post-body h3,.post-body h4{margin:2.2em 0 .8em;scroll-margin-top:118px;font-weight:600;line-height:1.6;position:relative}.post-body h2{font-size:1.45em}.post-body h3{font-size:1.2em}.post-body h4{font-size:1.05em}.post-anchor{color:var(--text-faint);opacity:0;padding-inline-end:12px;font-weight:400;transition:opacity .2s;position:absolute;inset-inline-end:100%}.post-body :is(h2,h3,h4):hover .post-anchor{opacity:1}.post-body a{color:var(--accent);text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}.post-body a:hover{text-decoration-thickness:2px}.post-body strong{font-weight:650}.post-body :is(ul,ol){margin:0 0 1.5em;padding-inline-start:1.4em}.post-body li{margin-bottom:.5em}.post-body li::marker{color:var(--text-faint)}.post-body blockquote{border-inline-start:2px solid var(--accent);color:var(--text-soft);margin:1.8em 0;padding-inline-start:20px}.post-body hr{border:0;border-top:1px solid var(--surface-edge);margin:2.4em 0}.post-body img{border-radius:8px;max-width:100%;height:auto;margin-block:.6em}.post-body table{border-collapse:collapse;width:100%;margin:0 0 1.6em;font-size:.92em}.post-body :is(th,td){border-bottom:1px solid var(--surface-edge);text-align:start;padding:10px 12px}.post-body th{color:var(--text-soft);font-weight:600}.post-body :not(pre)>code{font-family:var(--nyx-font-mono);background:var(--surface-raised);color:#cdd3ee;border:1px solid var(--surface-edge);direction:ltr;unicode-bidi:isolate;border-radius:4px;padding:2px 6px;font-size:.86em}.post-code{margin:0 0 1.7em;position:relative}.post-code pre{tab-size:2;background:#121212;border-radius:8px;padding:20px 22px;font-size:13.5px;line-height:1.75;overflow-x:auto}.post-code code{font-family:var(--nyx-font-mono)}.post-code pre[data-title]:before{content:attr(data-title);color:#8d92a4;border-bottom:1px solid #ffffff14;margin:-20px -22px 16px;padding:9px 22px;font-size:11px;display:block;position:sticky;inset-inline-start:0}.post-code .line.highlighted{background:#ffffff12;width:100%;display:inline-block;box-shadow:inset 2px 0 #a8b2ff}.post-code .line.diff.add{background:#4ade8018;width:100%;display:inline-block;box-shadow:inset 2px 0 #4ade80}.post-code .line.diff.remove{opacity:.65;background:#f8717118;width:100%;display:inline-block;box-shadow:inset 2px 0 #f87171}.post-code .highlighted-word{background:#ffffff1f;border-radius:2px;padding:1px 2px}.post-code:has(.has-focused) .line:not(.focused){filter:blur(2px);opacity:.5;transition:filter .25s,opacity .25s}.post-code:has(.has-focused):hover .line:not(.focused){filter:none;opacity:1}.post-code-copy{color:#cfd2e4;opacity:0;background:#ffffff12;border-radius:5px;place-items:center;width:32px;height:32px;transition:opacity .2s,background .2s;display:grid;position:absolute;inset-block-start:10px;inset-inline-end:10px}.post-code:hover .post-code-copy,.post-code-copy:focus-visible{opacity:1}@media (hover:none){.post-code-copy{opacity:1}}.post-code-copy:hover{background:#ffffff26}.post-code-copy svg{width:15px;height:15px}.post-note{border-inline-start:2px solid var(--accent);background:#181d38;border-radius:8px;margin:1.8em 0;padding:18px 20px;font-size:.95em}.post-note[data-kind=warning]{background:#2a2118;border-inline-start-color:#e0904e}.post-note>:last-child{margin-bottom:0}.post-foot{grid-template-columns:minmax(0,1fr) 212px;gap:46px;display:grid}.post-foot>*{grid-column:1}.post-share{color:var(--text-soft);border-top:1px solid #262a3c;flex-wrap:wrap;align-items:center;gap:14px;margin-top:34px;padding-top:20px;font-size:12px;display:flex}.post-share :is(a,button){color:#cbcfe2;border:1px solid #343850;border-radius:22px;align-items:center;gap:8px;padding:8px 14px;transition:border-color .2s;display:inline-flex}.post-share :is(a,button):hover{border-color:#7d84d8}.post-share svg{width:14px;height:14px}.post-translations{color:var(--text-soft);flex-wrap:wrap;align-items:center;gap:14px;margin-top:22px;font-size:12px;display:flex}.post-translations a{border-bottom:1px solid #4a4f6b;padding-bottom:3px}.post-translations a:hover{color:#cdd1ff}.post-adjacent{grid-template-columns:1fr 1fr;gap:16px;margin-top:40px;display:grid}.post-adjacent a{border:1px solid #262a3c;border-radius:5px;flex-direction:column;gap:8px;padding:20px;transition:border-color .2s;display:flex}.post-adjacent a:hover{border-color:#4a5080}.post-adjacent small{color:#7d829b;font-size:11px}.post-adjacent span{font-size:14px;line-height:1.8}.post-adjacent a[rel=next]{text-align:end}.post-related{margin-top:52px}.post-related h2{color:var(--text-soft);margin:0 0 14px;font-size:15px;font-weight:500}.post-related ul{margin:0;padding:0;list-style:none}.post-related li{border-top:1px solid #262a3c}.post-related a{justify-content:space-between;align-items:baseline;gap:20px;padding:16px 0;font-size:15px;line-height:1.8;display:flex}.post-related a:hover{color:#cdd1ff}.post-related small{color:#7d829b;flex-shrink:0;font-size:11px}.post-comments{border-top:1px solid #262a3c;margin-top:56px;padding-top:26px}.post-comments h2{margin:0;font-size:15px;font-weight:500}.post-comments>p{color:#7d829b;margin:8px 0 20px;font-size:12px}@media (max-width:1000px){.post-layout{grid-template-columns:1fr;gap:26px}.post-toc{border:1px solid #262a3c;border-radius:5px;max-height:none;padding:16px 18px;position:static}.post-foot{grid-template-columns:1fr}}@media (max-width:760px){.blog{padding-top:104px}.post-grid{gap:22px}.post-cover{aspect-ratio:16/10;margin-bottom:28px}.post-body{border-inline:0;border-radius:0;margin-inline:calc(-50vw + 50%);padding-inline:22px;font-size:16px;line-height:2}.post-adjacent{grid-template-columns:1fr}.post-adjacent a[rel=next]{text-align:start}.post-anchor{display:none}}@media (prefers-reduced-motion:reduce){.post-card,.post-card-cover img{transition:none}.post-code:has(.has-focused) .line:not(.focused){transition:none}.post-card:hover,.post-card:hover .post-card-cover img{transform:none}}.blog-search{padding-bottom:26px;position:relative}.blog-search-field{border:1px solid #2c3044;border-radius:30px;align-items:center;gap:12px;padding:12px 18px;transition:border-color .2s;display:flex}.blog-search-field:focus-within{border-color:#6d74be}.blog-search-field svg{color:#7d829b;flex-shrink:0;width:16px;height:16px}.blog-search-field input{min-width:0;color:var(--text);background:0 0;border:0;outline:none;flex:1;font-size:14px}.blog-search-field input::placeholder{color:#6e7390}.blog-search-field button{color:#7d829b;place-items:center;display:grid}.blog-search-field button:hover{color:var(--text)}.blog-search-results{background:#0d101c;border:1px solid #262a3c;border-radius:8px;margin-top:12px;overflow:hidden}.blog-search-results ol{margin:0;padding:0;list-style:none}.blog-search-results li+li{border-top:1px solid #1d2131}.blog-search-results a{flex-direction:column;gap:6px;padding:14px 18px;display:flex}.blog-search-results a:hover{background:#141827}.blog-search-results strong{font-size:14px;font-weight:550}.blog-search-results span{color:#9ba0bd;font-size:12px;line-height:1.9}.blog-search-results mark{color:#cdd1ff;background:0 0;font-weight:600}.blog-search-results p{color:#7d829b;margin:0;padding:16px 18px;font-size:13px}
