:root{--blog-surface:#1a1b1e;--blog-surface-hover:#222326;--blog-border:rgba(255,255,255,0.06);--blog-border-hover:rgba(255,255,255,0.12);--blog-accent:#d9f85f;--blog-accent-soft:rgba(217,248,95,0.15);--blog-accent-border:rgba(217,248,95,0.3);--blog-radius:16px;--blog-radius-sm:10px;--blog-shadow:0 2px 8px rgba(0,0,0,0.2);--blog-shadow-hover:0 12px 32px rgba(0,0,0,0.4);--blog-transition:all 0.3s cubic-bezier(0.4,0,0.2,1);--blog-font-heading:PPNeueMachina,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}.blog-card{background:var(--blog-surface);border:1px solid var(--blog-border);border-radius:var(--blog-radius);overflow:hidden;transition:var(--blog-transition);display:flex;flex-direction:column;height:100%}
.blog-card:hover{transform:translateY(-4px);box-shadow:var(--blog-shadow-hover);border-color:var(--blog-border-hover)}.blog-card-link{text-decoration:none;color:inherit;display:flex;flex-direction:column;height:100%}
.blog-card-link:hover{color:inherit;text-decoration:none}.blog-card-image{position:relative;overflow:hidden;aspect-ratio:16 / 9;background:#111214}
.blog-card-image img{width:100%;height:100%;object-fit:cover;transition:transform 0.4s cubic-bezier(0.4,0,0.2,1)}
.blog-card:hover .blog-card-image img{transform:scale(1.03)}.blog-card-image-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:rgba(255,255,255,0.08);font-size:3rem}.blog-card-body{padding:20px;display:flex;flex-direction:column;flex:1}.blog-card-title{font-family:var(--blog-font-heading);font-size:1rem;font-weight:600;line-height:1.35;color:#f5f5f7;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.blog-card-excerpt{font-size:0.85rem;line-height:1.5;color:rgba(255,255,255,0.5);margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1}.blog-card-meta{display:flex;align-items:center;gap:12px;font-size:0.78rem;color:rgba(255,255,255,0.35);margin-top:auto}
.blog-card-meta i{font-size:0.85rem;margin-right:2px}.blog-card-badge{position:absolute;top:10px;left:10px;padding:3px 10px;border-radius:100px;font-size:0.7rem;font-weight:600;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:2;line-height:1.4}.blog-badge-ai{background:var(--blog-accent-soft);color:var(--blog-accent);border:1px solid var(--blog-accent-border)}.blog-badge-new{background:var(--blog-accent-soft);color:var(--blog-accent);border:1px solid var(--blog-accent-border);left:auto;right:10px}.blog-badge-video{background:rgba(255,0,0,0.2);color:#f44;border:1px solid rgba(255,0,0,0.3)}.blog-card-featured{background:var(--blog-surface);border:1px solid var(--blog-border);border-radius:var(--blog-radius);overflow:hidden;transition:var(--blog-transition);display:flex;flex-direction:column;margin-bottom:24px}
.blog-card-featured:hover{border-color:var(--blog-border-hover);box-shadow:var(--blog-shadow-hover)}.blog-card-featured-link{text-decoration:none;color:inherit;display:flex;flex-direction:column}
.blog-card-featured-link:hover{color:inherit;text-decoration:none}@media (min-width:768px){.blog-card-featured-link{flex-direction:row}}.blog-card-featured-image{position:relative;overflow:hidden;aspect-ratio:16 / 9;background:#111214}
@media (min-width:768px){.blog-card-featured-image{flex:0 0 55%;max-width:55%;aspect-ratio:auto}}
.blog-card-featured-image img{width:100%;height:100%;object-fit:cover;transition:transform 0.4s cubic-bezier(0.4,0,0.2,1)}
.blog-card-featured:hover .blog-card-featured-image img{transform:scale(1.03)}.blog-card-featured-body{padding:24px;display:flex;flex-direction:column;justify-content:center;flex:1}.blog-card-featured-label{display:inline-flex;align-items:center;gap:6px;font-size:0.75rem;font-weight:600;color:var(--blog-accent);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:12px}.blog-card-featured-title{font-family:var(--blog-font-heading);font-size:1.5rem;font-weight:700;line-height:1.25;color:#f5f5f7;margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.blog-card-featured-excerpt{font-size:0.9rem;line-height:1.6;color:rgba(255,255,255,0.55);margin-bottom:20px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.blog-card-featured-cta{display:inline-flex;align-items:center;gap:6px;padding:8px 20px;background:var(--blog-accent);color:#000;border-radius:100px;font-size:0.85rem;font-weight:600;text-decoration:none;transition:var(--blog-transition);align-self:flex-start}
.blog-card-featured-cta:hover{background:#e4ff7a;color:#000;transform:translateX(2px)}.blog-card-featured-meta{display:flex;align-items:center;gap:14px;font-size:0.8rem;color:rgba(255,255,255,0.4);margin-top:16px}
.blog-card-featured-meta i{margin-right:3px}.blog-tags-card{background:var(--blog-surface);border:1px solid var(--blog-border);border-radius:var(--blog-radius);padding:20px}.blog-tags-header{font-family:var(--blog-font-heading);font-size:0.9rem;font-weight:600;color:rgba(255,255,255,0.7);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:16px;display:flex;align-items:center;gap:8px}
.blog-tags-header i{color:var(--blog-accent)}.blog-tags-list{display:flex;flex-direction:column;gap:2px;list-style:none;padding:0;margin:0}.blog-tag-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:var(--blog-radius-sm);text-decoration:none;color:rgba(255,255,255,0.65);font-size:0.88rem;transition:var(--blog-transition)}
.blog-tag-item:hover{background:rgba(255,255,255,0.04);color:#f5f5f7}
.blog-tag-item.active{background:var(--blog-accent);color:#000;font-weight:600}
.blog-tag-item.active .blog-tag-count{background:rgba(0,0,0,0.15);color:#000}.blog-tag-name{display:flex;align-items:center;gap:4px}
.blog-tag-hash{color:var(--blog-accent);font-weight:700;opacity:0.6}
.blog-tag-item.active .blog-tag-hash{color:#000;opacity:1}.blog-tag-count{font-size:0.72rem;padding:2px 8px;border-radius:100px;background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.4);font-weight:500}.blog-sidebar{position:sticky;top:90px;max-height:calc(100vh - 100px);overflow-y:auto}
.blog-sidebar::-webkit-scrollbar{width:6px}
.blog-sidebar::-webkit-scrollbar-track{background:transparent}
.blog-sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.1);border-radius:3px}.blog-toc{background:var(--blog-surface);border:1px solid var(--blog-border);border-radius:var(--blog-radius);padding:20px}.blog-toc-header{font-family:var(--blog-font-heading);font-size:0.9rem;font-weight:600;color:rgba(255,255,255,0.7);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:16px;display:flex;align-items:center;gap:8px}
.blog-toc-header i{color:var(--blog-accent)}.blog-toc-list{display:flex;flex-direction:column;gap:0;list-style:none;padding:0;margin:0}.blog-toc-item{padding:6px 12px;font-size:0.85rem;color:rgba(255,255,255,0.5);border-left:2px solid transparent;transition:var(--blog-transition);text-decoration:none;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.blog-toc-item:hover{color:rgba(255,255,255,0.8);background:rgba(255,255,255,0.02)}
.blog-toc-item.active{color:var(--blog-accent);border-left-color:var(--blog-accent);font-weight:500}
.blog-toc-item--h3{padding-left:24px}.blog-post-article{background:var(--blog-surface);border:1px solid var(--blog-border);border-radius:var(--blog-radius);overflow:hidden}.blog-post-hero-wrapper{position:relative;overflow:hidden;aspect-ratio:16 / 9;background:#111214}
.blog-post-hero-wrapper .blog-post-hero-image{width:100%;height:100%;display:block;object-fit:cover}.blog-post-content{max-width:720px;margin:0 auto;padding:32px 24px;font-size:1.05rem;line-height:1.75;color:rgba(255,255,255,0.85)}
.blog-post-content h2,
.blog-post-content h3{font-family:var(--blog-font-heading);color:#f5f5f7;margin-top:2em;margin-bottom:0.6em}
.blog-post-content h2{font-size:1.5rem}
.blog-post-content h3{font-size:1.2rem}
.blog-post-content h2[id],
.blog-post-content h3[id]{scroll-margin-top:100px}
.blog-post-content a{color:var(--blog-accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color 0.2s}
.blog-post-content a:hover{border-bottom-color:var(--blog-accent)}
.blog-post-content img{border-radius:12px;border:1px solid var(--blog-border);max-width:100%;height:auto}
.blog-post-content blockquote{border-left:3px solid var(--blog-accent);padding:12px 20px;margin:1.5em 0;color:rgba(255,255,255,0.7);background:rgba(255,255,255,0.02);border-radius:0 var(--blog-radius-sm) var(--blog-radius-sm) 0}
.blog-post-content blockquote p:last-child{margin-bottom:0}
.blog-post-content ul,
.blog-post-content ol{padding-left:1.5em}
.blog-post-content li + li{margin-top:0.4em}.blog-post-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px 24px;border-top:1px solid var(--blog-border)}
.blog-post-actions{display:flex;align-items:center;gap:16px}
.blog-post-action{display:inline-flex;align-items:center;gap:5px;font-size:0.88rem;color:rgba(255,255,255,0.5);text-decoration:none;min-width:44px;min-height:44px;justify-content:center}
.blog-post-action i{font-size:1.1rem}
.blog-post-action a{color:inherit;text-decoration:none}
.blog-post-action a:hover{color:#f5f5f7}
.blog-post-date{font-size:0.85rem;color:rgba(255,255,255,0.4)}.blog-share{display:flex;justify-content:center;gap:10px;margin:24px 0}.blog-share-btn{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:var(--blog-surface);border:1px solid var(--blog-border);color:rgba(255,255,255,0.6);font-size:1.1rem;text-decoration:none;transition:var(--blog-transition);cursor:pointer}
.blog-share-btn:hover{border-color:var(--blog-border-hover);transform:translateY(-2px)}.blog-share-btn--tg:hover{background:#229ED9;color:#fff;border-color:#229ED9}
.blog-share-btn--x:hover{background:#f5f5f7;color:#000;border-color:#f5f5f7}
.blog-share-btn--vk:hover{background:#4680C2;color:#fff;border-color:#4680C2}
.blog-share-btn--copy:hover{background:var(--blog-accent);color:#000;border-color:var(--blog-accent)}.blog-pagination{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:24px}
@media (min-width:768px){.blog-pagination{flex-direction:row;justify-content:space-between}}.blog-pagination .pagination{margin:0}
.blog-pagination .page-link{background:var(--blog-surface);border-color:var(--blog-border);color:rgba(255,255,255,0.6);font-size:0.85rem;transition:var(--blog-transition)}
.blog-pagination .page-link:hover{background:var(--blog-surface-hover);border-color:var(--blog-border-hover);color:#f5f5f7}
.blog-pagination .page-item.active .page-link{background:var(--blog-accent);border-color:var(--blog-accent);color:#000;font-weight:600}
.blog-pagination .page-item.disabled .page-link{background:transparent;border-color:var(--blog-border);color:rgba(255,255,255,0.2)}.blog-pagination .form-select{background-color:var(--blog-surface);border-color:var(--blog-border);color:rgba(255,255,255,0.6);font-size:0.85rem}.blog-grid{display:grid;gap:24px;grid-template-columns:1fr}
@media (min-width:576px){.blog-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:992px){.blog-grid{grid-template-columns:repeat(3,1fr)}.col-lg-8 .blog-grid{grid-template-columns:repeat(2,1fr)}}.blog-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 24px;text-align:center}
.blog-empty-icon{font-size:3rem;color:rgba(255,255,255,0.1);margin-bottom:16px}
.blog-empty-text{font-size:1rem;color:rgba(255,255,255,0.4)}.blog-skeleton-card{background:var(--blog-surface);border:1px solid var(--blog-border);border-radius:var(--blog-radius);overflow:hidden}
.blog-skeleton-image{aspect-ratio:16 / 9;background:linear-gradient(90deg,#1a1b1e 25%,#252629 50%,#1a1b1e 75%);background-size:200% 100%;animation:blog-shimmer 1.5s ease-in-out infinite}
.blog-skeleton-body{padding:20px}
.blog-skeleton-line{height:14px;border-radius:7px;background:linear-gradient(90deg,rgba(255,255,255,0.04) 25%,rgba(255,255,255,0.08) 50%,rgba(255,255,255,0.04) 75%);background-size:200% 100%;animation:blog-shimmer 1.5s ease-in-out infinite;margin-bottom:10px}
.blog-skeleton-line:nth-child(1){width:80%}
.blog-skeleton-line:nth-child(2){width:60%}
.blog-skeleton-line:nth-child(3){width:40%;height:10px;margin-top:16px}@keyframes blog-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}.blog-related-header{font-family:var(--blog-font-heading);font-size:1.1rem;font-weight:600;color:rgba(255,255,255,0.7);margin-bottom:20px;display:flex;align-items:center;gap:8px}
.blog-related-dot{width:8px;height:8px;border-radius:50%;background:var(--blog-accent);flex-shrink:0}pre[class*="language-"]{border:1px solid rgba(255,255,255,0.08);border-radius:12px}div.code-toolbar>.toolbar{opacity:0;transition:opacity 0.2s}
div.code-toolbar:hover>.toolbar{opacity:1}
div.code-toolbar>.toolbar>.toolbar-item>button{background:rgba(255,255,255,0.1);color:rgba(255,255,255,0.6);border-radius:6px;padding:4px 10px;font-size:0.75rem;border:none;cursor:pointer;transition:all 0.2s}
div.code-toolbar>.toolbar>.toolbar-item>button:hover{background:var(--blog-accent);color:#000}.line-numbers .line-numbers-rows{border-right:1px solid rgba(255,255,255,0.08)}.blog-sidebar-cta{display:block;padding:12px 20px;background:var(--blog-surface);border:1px solid var(--blog-border);border-radius:var(--blog-radius);color:rgba(255,255,255,0.7);text-align:center;text-decoration:none;font-size:0.88rem;font-weight:500;transition:var(--blog-transition)}
.blog-sidebar-cta:hover{border-color:var(--blog-accent-border);color:var(--blog-accent)}