:root{--petrol:#0F3D3E;--teal:#175558;--paper:#F8F9FA;--white:#F1F3F4;--ink:#202b2b;--slate:#536161;--border:rgba(15,61,62,.16);--blog-accent:#2b7778;--blog-muted:#5e6b6c;--blog-content:760px}
html{scroll-behavior:smooth;scroll-padding-top:6rem;overflow-x:hidden}
.blog-body{min-height:100vh;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:1rem;line-height:1.75}
.blog-body:lang(fa){font-family:'Vazirmatn',Tahoma,sans-serif;line-height:1.85}
.blog-body .site-header{background:rgba(248,249,250,.96);border-color:var(--border)}
.blog-body .brand,.blog-body .nav-cta{color:var(--petrol)}
.blog-body .brand-mark{background:var(--petrol);color:#fff}
.blog-body .nav-cta{background:var(--petrol);color:#fff}
.blog-body .language-toggle{color:var(--petrol)}
.blog-list-main{padding:clamp(3rem,7vw,6rem) 0 3rem}
.blog-intro{max-width:900px;margin-inline:auto;text-align:center}
.blog-eyebrow{margin:0 0 .7rem;color:var(--teal);font-size:.875rem;font-weight:700;letter-spacing:.02em}
.blog-intro h1{max-width:18ch;margin:0 auto;color:var(--petrol);font-size:clamp(2rem,4.8vw,3.4rem);font-weight:800;line-height:1.25;text-wrap:balance}
.blog-lede{max-width:62ch;margin:1.1rem auto 0;color:#435252;font-size:clamp(1rem,1.5vw,1.125rem);line-height:1.9}
.blog-catalogue{padding-top:2.5rem}
.blog-filters{display:flex;justify-content:center;flex-wrap:wrap;gap:.65rem;margin:0 auto 1.8rem}
.blog-filter{min-height:2.7rem;padding:.55rem 1rem;border:1px solid rgba(15,61,62,.25);border-radius:999px;background:transparent;color:var(--petrol);font-family:inherit;font-size:.9375rem;font-weight:600;line-height:1.5;cursor:pointer;transition:background .18s,color .18s,border-color .18s}
.blog-filter:hover,.blog-filter.is-active{border-color:var(--petrol);background:var(--petrol);color:#fff}
.blog-filter:focus-visible,.post-card-link:focus-visible,.post-toc a:focus-visible,.post-breadcrumb a:focus-visible,.post-end-nav a:focus-visible{outline:3px solid #168082;outline-offset:3px}
.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.15rem}
.post-card{min-width:0;border:1px solid var(--border);border-top:3px solid var(--teal);background:var(--white);transition:transform .2s,box-shadow .2s,border-color .2s}
.post-card[hidden]{display:none}
.post-card:hover{transform:translateY(-3px);border-color:rgba(15,61,62,.32);box-shadow:0 16px 34px rgba(15,61,62,.1)}
.post-card-link{height:100%;padding:1.25rem;display:flex;flex-direction:column;color:inherit}
.post-card-meta{display:flex;align-items:center;justify-content:space-between;gap:.7rem;color:#435252;font-size:.875rem}
.post-category{display:inline-flex;width:fit-content;padding:.22rem .62rem;border-radius:999px;background:rgba(23,85,88,.12);color:#0F3D3E;font-size:.8125rem;font-weight:700}
.post-card h2{margin:1.2rem 0 .35rem;color:var(--petrol);font-size:clamp(1.25rem,2vw,1.5rem);font-weight:700;line-height:1.45;text-wrap:balance}
.card-alternate-title,.card-alternate-summary{margin:0;color:#4c5d5d;font-size:.9rem;line-height:1.65}
.post-card-summary{margin:.9rem 0 .35rem;color:#263737;font-size:.98rem;line-height:1.8}
.card-alternate-summary{margin-bottom:1rem}
.metadata-fallback{color:#596969;font-style:italic}
.post-card-readtime{margin-top:auto;padding-top:1.05rem;color:#435252;font-size:.875rem;font-weight:600}
.blog-empty{padding:1.25rem;border:1px dashed var(--border);color:#374949;text-align:center}
.feed-link{padding-top:1.8rem;text-align:center}
.feed-link a,.post-breadcrumb a,.post-end-nav a{color:var(--teal);font-weight:700;text-decoration:underline;text-underline-offset:.2em}
.blog-post-main{padding-top:2.2rem;padding-bottom:4rem}
.post-breadcrumb{display:flex;align-items:center;gap:.65rem;margin-bottom:2.2rem;color:#526060;font-size:.9rem}
.post-header{max-width:var(--blog-content);margin:0 auto 2.4rem;text-align:start}
.post-header h1{margin:.8rem 0 .35rem;color:var(--petrol);font-size:clamp(2rem,4.5vw,3.1rem);font-weight:800;line-height:1.35;text-wrap:balance}
.post-alternate-title,.post-alternate-summary{margin:.4rem 0;color:#435252;font-size:.95rem;line-height:1.75}
.post-summary{margin:1rem 0 0;color:#314444;font-size:clamp(1.05rem,1.6vw,1.2rem);line-height:1.9}
.post-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem;margin-top:1.2rem;color:#405353;font-size:.9rem}
.post-layout{display:grid;grid-template-columns:minmax(14rem,18rem) minmax(0,var(--blog-content));justify-content:center;align-items:start;gap:clamp(1.4rem,4vw,3.5rem)}
.post-toc-wrap{min-width:0}
.post-toc{position:sticky;top:6rem;padding:1.1rem;border:1px solid var(--border);border-radius:.75rem;background:var(--white)}
.post-toc h2{margin:0 0 .75rem;color:var(--petrol);font-size:1.05rem;font-weight:700}
.toc-list{margin:0;padding-inline-start:1.25rem;color:#415151;font-size:.9rem;line-height:1.75}
.toc-list li{margin:.35rem 0}
.toc-list .toc-level-3{margin-inline-start:.75rem;font-size:.875rem}
.post-toc a{color:inherit;text-decoration:none}
.post-toc a:hover{color:var(--teal);text-decoration:underline}
.post-content{min-width:0;color:#202b2b;font-size:1.0625rem;line-height:1.85;overflow-wrap:anywhere}
.post-content h2,.post-content h3{color:var(--petrol);font-weight:700;line-height:1.45;text-wrap:balance;scroll-margin-top:6rem}
.post-content h2{margin:2.4em 0 .7em;font-size:clamp(1.5rem,3vw,1.9rem)}
.post-content h3{margin:1.9em 0 .6em;font-size:1.3rem}
.post-content p,.post-content ul,.post-content ol{max-width:70ch;margin:1rem 0}
.post-content li{padding-inline-start:.2rem;margin:.4rem 0}
.post-content a{color:#0F3D3E;text-decoration:underline;text-underline-offset:.2em}
.post-content blockquote{margin:1.5rem 0;padding:1rem 1.2rem;border-inline-start:4px solid #175558;border-radius:.35rem;background:#e4eeee;color:#243b3b}
.post-content blockquote p{margin:.25rem 0}
.post-content table{display:block;width:100%;max-width:100%;margin:1.4rem 0;border:1px solid #9bb3b3;border-collapse:collapse;overflow-x:auto;background:#fff}
.post-content th,.post-content td{min-width:8rem;padding:.7rem .8rem;border:1px solid #b8caca;text-align:start;vertical-align:top}
.post-content th{background:#e4eeee;color:#0F3D3E;font-weight:700}
.post-content tr:nth-child(even){background:#f4f7f7}
.post-content code{padding:.1em .35em;border-radius:.25rem;background:#e5eded;color:#143b3d;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.9em;direction:ltr;unicode-bidi:isolate}
.post-content pre{max-width:100%;margin:1.25rem 0;padding:1rem 1.1rem;overflow:auto;border:1px solid rgba(23,85,88,.24);border-radius:.65rem;background:#0f292b;color:#edf5f5;direction:ltr;text-align:left;line-height:1.65}
.post-content pre code{padding:0;background:transparent;color:inherit;font-size:.9rem}
.post-content hr{margin:2rem 0;border:0;border-top:1px solid var(--border)}
.post-end-nav{max-width:var(--blog-content);margin:3rem auto 0;padding-top:1.2rem;border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:1rem}
.blog-body .footer{margin-top:1rem;background:var(--white)}
@media(max-width:900px){.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.post-layout{grid-template-columns:minmax(12rem,15rem) minmax(0,1fr);gap:1.25rem}}
@media(max-width:680px){.blog-grid{grid-template-columns:1fr}.post-layout{grid-template-columns:1fr}.post-toc{position:static}.blog-post-main{padding-top:1.4rem}.post-content{font-size:1rem}.post-content table{font-size:.9rem}.post-content th,.post-content td{min-width:7.5rem;padding:.55rem}.post-end-nav{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.post-card{transition:none}.post-card:hover{transform:none}}/* Shared corner radius hierarchy */
.blog-filter,.post-category{border-radius:8px}
.post-card,.post-toc,.post-content pre{border-radius:16px}
.post-card{overflow:hidden}
.post-content blockquote{border-radius:8px}
.post-content table{border-radius:12px;overflow-x:auto;overflow-y:hidden}
.post-content code{border-radius:6px}
