.blog{background:var(--bg);min-height:100vh;display:flex;flex-direction:column}.blog>main{flex:1}.blog-nav{position:sticky;top:0;z-index:50}.blog-wrap{padding:clamp(1.25rem,3vw,2rem) 0 4rem}.blog-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.75rem}.blog-filter{font-size:.82rem;font-weight:600;color:var(--ink-soft);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);padding:.5rem 1.1rem;cursor:pointer;transition:all .15s}.blog-filter:hover{border-color:var(--terra);color:var(--ink)}.blog-filter.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}.blog-empty,.blog-loading{padding:4rem 0;text-align:center;color:var(--ink-soft)}.blog-empty{display:flex;flex-direction:column;align-items:center;gap:.8rem}.blog-empty-clear{color:var(--terra);font-weight:600;font-size:.9rem;background:none;border:none;cursor:pointer}.blog-empty-clear:hover{text-decoration:underline}.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.blog-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:hidden;transition:border-color .15s,transform .1s}.blog-card:hover{border-color:var(--terra);transform:translateY(-2px)}.blog-card-img{position:relative;aspect-ratio:16/10;background:var(--surface-2)}.blog-card-cat{position:absolute;top:.7rem;left:.7rem;font-family:var(--font-mono-stack);font-size:.6rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:var(--terra);padding:.2rem .5rem;border-radius:var(--r-xs)}.blog-card-body{padding:1.1rem 1.2rem 1.3rem;display:flex;flex-direction:column;gap:.5rem;flex:1}.blog-card-title{font-family:var(--font-display-stack);font-weight:700;font-size:1.15rem;line-height:1.15;color:var(--ink);margin:0}.blog-card:hover .blog-card-title{color:var(--terra)}.blog-card-summary{font-size:.85rem;color:var(--ink-soft);line-height:1.45;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.blog-card-meta{margin-top:auto;display:flex;flex-wrap:wrap;gap:.5rem;font-size:.74rem;color:var(--ink-soft)}.blog-card-meta span:not(:last-child):after{content:"·";margin-left:.5rem}.blog-pagination{display:flex;align-items:center;justify-content:center;gap:1.25rem;margin-top:2.5rem}.blog-pagination button{font-size:.85rem;font-weight:600;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);padding:.55rem 1.2rem;cursor:pointer}.blog-pagination button:hover:not(:disabled){border-color:var(--terra);color:var(--terra)}.blog-pagination button:disabled{opacity:.4;cursor:default}.blog-pagination span{font-size:.85rem;color:var(--ink-soft)}.post{max-width:780px;padding:clamp(1.5rem,4vw,2.5rem) 0 3rem}.post-back{display:block;font-size:.85rem;font-weight:600;color:var(--ink-soft);margin-bottom:1.5rem}.post-back:hover{color:var(--terra)}.post-cat{display:table;font-family:var(--font-mono-stack);font-size:.64rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#fff;background:var(--terra);padding:.25rem .6rem;border-radius:var(--r-xs);margin-bottom:1rem}.post-title{font-family:var(--font-display-stack);font-weight:700;font-size:clamp(1.8rem,4.5vw,2.8rem);line-height:1.05;color:var(--ink);margin:0 0 1.25rem}.post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;font-size:.85rem;color:var(--ink-soft);margin-bottom:1.75rem}.post-author{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;color:var(--ink)}.post-author a{color:var(--terra)}.post-author-avatar{width:30px;height:30px;border-radius:var(--r-full)}.post-author-avatar,.post-cover{position:relative;overflow:hidden;background:var(--surface-2)}.post-cover{aspect-ratio:16/9;border-radius:var(--r-lg);margin-bottom:2rem}.post-content{font-size:1.05rem;line-height:1.75;color:var(--ink)}.post-content>*+*{margin-top:1.15rem}.post-content h2{font-family:var(--font-display-stack);font-weight:700;font-size:1.6rem;line-height:1.15;color:var(--ink);margin-top:2.25rem}.post-content h3{font-weight:600;font-size:1.25rem;color:var(--ink);margin-top:1.75rem}.post-content p{color:var(--ink)}.post-content a{color:var(--terra);text-decoration:underline;text-underline-offset:2px}.post-content ol,.post-content ul{padding-left:1.5rem}.post-content li{margin-top:.4rem}.post-content img{max-width:100%;height:auto;border-radius:var(--r-md)}.post-content blockquote{border-left:3px solid var(--terra);padding-left:1rem;color:var(--ink-soft);font-style:italic}.post-content strong{color:var(--ink);font-weight:700}.post-content table{width:100%;border-collapse:collapse;font-size:.92rem;display:block;overflow-x:auto}.post-content td,.post-content th{border:1px solid var(--line);padding:.5rem .7rem;text-align:left}.post-disclaimer{margin-top:2.5rem;padding:1rem 1.2rem;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);font-size:.8rem;color:var(--ink-soft);line-height:1.5}.post-related{max-width:1120px;padding-bottom:4rem}.post-related-title{font-family:var(--font-display-stack);font-weight:900;text-transform:uppercase;font-size:1.3rem;color:var(--ink);margin:0 0 1.25rem}.related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.related-card .blog-card-img{aspect-ratio:4/3}.related-card .blog-card-body{padding:.75rem .85rem .9rem}.related-card .blog-card-title{font-size:.95rem}.related-card .blog-card-cat{font-size:.55rem;padding:.15rem .4rem}@media (max-width:860px){.related-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:460px){.related-grid{grid-template-columns:1fr}}.nl-status{max-width:460px;margin:0 auto;padding:clamp(3rem,8vw,5rem) 0;flex-direction:column;gap:1rem;text-align:center}.nl-status,.nl-status-icon{display:flex;align-items:center}.nl-status-icon{width:56px;height:56px;border-radius:var(--r-full);justify-content:center}.nl-status-icon svg{width:28px;height:28px}.nl-status-icon.ok{background:color-mix(in srgb,var(--terra) 15%,transparent);color:var(--terra)}.nl-status-icon.err{background:color-mix(in srgb,#dc2626 15%,transparent);color:#dc2626}.nl-status-icon.neutral{background:var(--surface-2);color:var(--ink-soft)}.nl-status h1{font-family:var(--font-display-stack);font-weight:900;font-size:1.5rem;color:var(--ink);margin:0}.nl-status p{font-size:.92rem;color:var(--ink-soft);line-height:1.5;margin:0}.nl-status-cta{margin-top:1rem;display:inline-flex;align-items:center;height:42px;padding:0 1.4rem;border-radius:var(--r-pill);background:var(--ink);color:var(--bg);font-weight:600;font-size:.9rem}.nl-status-cta:hover{background:var(--terra)}@media (max-width:560px){.blog-grid{grid-template-columns:1fr}}