.blog{padding:64px 0 96px}.blog .container{max-width:1200px;margin:0 auto;padding:0 32px}.blog__header{text-align:center;margin-bottom:48px}.blog__title{color:#0f172a;letter-spacing:-.03em;margin:0 0 12px;font-size:38px;font-weight:800}.blog__subtitle{color:#64748b;max-width:600px;margin:0 auto;font-size:18px}.blog__grid{grid-template-columns:repeat(3,1fr);gap:28px;display:grid}.blog__pagination{justify-content:center;margin-top:40px;display:flex}.blog__pagination nav{gap:4px;display:flex}.blog__pagination a,.blog__pagination span{color:#64748b;background:#ffffff0a;border:1px solid #e2e8f0;border-radius:8px;justify-content:center;align-items:center;min-width:36px;height:36px;padding:0 8px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.blog__pagination a:hover{color:#8b5cf6;background:#f5f3ff;border-color:#8b5cf626}.blog__pagination span[aria-current=page]{color:#fff;background:#8b5cf6;border-color:#8b5cf6;font-weight:600}.blog__empty{text-align:center;color:#94a3b8;padding:64px 0}.blog__empty svg{opacity:.5;margin-bottom:16px}.blog__empty p{margin:0;font-size:16px}.blog-card{color:inherit;background:#fff;border:1px solid #f1f5f9;border-radius:8px;flex-direction:column;text-decoration:none;transition:all .2s;display:flex;overflow:hidden}.blog-card:hover{color:inherit;border-color:#8b5cf640;transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.blog-card__image{aspect-ratio:16/9;background:#ffffff0a;overflow:hidden}.blog-card__image img{object-fit:cover;width:100%;height:100%;transition:transform .2s}.blog-card:hover .blog-card__image img{transform:scale(1.05)}.blog-card__body{flex-direction:column;flex:1;padding:20px;display:flex}.blog-card__meta{color:#94a3b8;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;display:flex}.blog-card__title{color:#0f172a;letter-spacing:-.01em;margin:0 0 8px;font-size:17px;font-weight:700;line-height:1.4}.blog-card__excerpt{color:#64748b;-webkit-line-clamp:3;-webkit-box-orient:vertical;flex:1;margin:0;font-size:14px;line-height:1.6;display:-webkit-box;overflow:hidden}.blog-post{color:#374151;background:#fff;padding:48px 0 96px}.blog-post .container{max-width:1200px;margin:0 auto;padding:0 32px}.blog-post__header{margin-bottom:36px}.blog-post__breadcrumbs{color:#6b7280;align-items:center;gap:6px;margin-bottom:24px;font-size:14px;display:flex}.blog-post__breadcrumbs a{color:#6b7280;text-decoration:none;transition:color .15s}.blog-post__breadcrumbs a:hover{color:#8b5cf6}.blog-post__breadcrumbs span:last-child{color:#374151;text-overflow:ellipsis;white-space:nowrap;max-width:300px;overflow:hidden}.blog-post__breadcrumbs-sep{color:#d1d5db;font-weight:300}.blog-post__title{color:#111827;letter-spacing:-.03em;margin:0 0 14px;font-size:36px;font-weight:800;line-height:1.2}.blog-post__meta{color:#6b7280;align-items:center;gap:8px;margin-top:16px;font-size:14px;display:flex}.blog-post__excerpt{color:#4b5563;margin:0;font-size:18px;line-height:1.6}.blog-post__cover{border-radius:8px;margin-bottom:40px;overflow:hidden}.blog-post__cover img{width:100%;display:block}.blog-post__main{min-width:0}.blog-post__layout{grid-template-columns:1fr 200px;gap:40px;display:grid}.blog-post__sidebar{align-self:start;position:sticky;top:80px}.blog-post__sidebar-title{text-transform:uppercase;letter-spacing:.08em;color:#6b7280;border-bottom:1px solid #f3f4f6;margin-bottom:14px;padding-bottom:8px;font-size:12px;font-weight:700}.blog-post__toc{flex-direction:column;gap:0;display:flex;position:relative}.blog-post__toc-link{color:#6b7280;align-items:baseline;gap:8px;padding:5px 0;font-size:13px;line-height:1.4;text-decoration:none;transition:all .2s;display:flex}.blog-post__toc-link:before{content:"";background:#d1d5db;border-radius:50%;flex-shrink:0;width:4px;height:4px;margin-top:5px;transition:all .2s}.blog-post__toc-link:hover{color:#374151}.blog-post__toc-link:hover:before{background:#6b7280}.blog-post__toc-link.is-active{color:#111827;font-weight:600}.blog-post__toc-link.is-active:before{background:#8b5cf6;width:6px;height:6px;box-shadow:0 0 0 3px #8b5cf626}.blog-post__toc-link--sub{padding-left:12px;font-size:12px}.blog-post__toc-link--sub:before{width:3px;height:3px}.blog-post__content{color:#374151;font-size:16px;line-height:1.8}.blog-post__content h2{color:#111827;letter-spacing:-.02em;margin:40px 0 14px;font-size:26px;font-weight:700}.blog-post__content h3{color:#111827;margin:32px 0 10px;font-size:20px;font-weight:600}.blog-post__content p{margin:0 0 18px}.blog-post__content ul,.blog-post__content ol{margin:0 0 18px;padding-left:24px}.blog-post__content li{margin-bottom:6px}.blog-post__content code{color:#8b5cf6;background:#f3f4f6;border-radius:4px;padding:2px 6px;font-family:JetBrains Mono,SF Mono,monospace;font-size:14px}.blog-post__content pre{-webkit-overflow-scrolling:touch;background:#1e1e2e;border:1px solid #ffffff0f;border-radius:8px;margin:0 0 20px;padding:20px;position:relative;overflow-x:auto}.blog-post__content pre code{color:#e2e8f0;background:0 0;border-radius:0;padding:0;font-size:14px;line-height:1.7}.blog-post__content pre .hljs{color:#e2e8f0;padding:0;background:0 0!important}.blog-post__content pre .hljs-keyword,.blog-post__content pre .hljs-selector-tag,.blog-post__content pre .hljs-type,.blog-post__content pre .hljs-built_in{color:#c792ea}.blog-post__content pre .hljs-string,.blog-post__content pre .hljs-regexp,.blog-post__content pre .hljs-addition{color:#c3e88d}.blog-post__content pre .hljs-comment,.blog-post__content pre .hljs-quote{color:#6b7280;font-style:italic}.blog-post__content pre .hljs-variable,.blog-post__content pre .hljs-template-variable,.blog-post__content pre .hljs-params{color:#e2e8f0}.blog-post__content pre .hljs-title,.blog-post__content pre .hljs-section{color:#ffcb6b}.blog-post__content pre .hljs-number,.blog-post__content pre .hljs-literal{color:#f78c6c}.blog-post__content pre .hljs-attr,.blog-post__content pre .hljs-attribute{color:#82aaff}.blog-post__content pre .hljs-operator,.blog-post__content pre .hljs-punctuation{color:#89ddff}.blog-post__content pre .hljs-name,.blog-post__content pre .hljs-selector-class,.blog-post__content pre .hljs-selector-id{color:#ffcb6b}.blog-post__content pre .hljs-meta,.blog-post__content pre .hljs-meta .hljs-keyword{color:#82aaff}.blog-post__content pre .hljs-deletion{color:#ef4444}.blog-post__content pre .hljs-emphasis{font-style:italic}.blog-post__content pre .hljs-strong{font-weight:700}.blog-post__content .code-copy-btn{color:#fff6;cursor:pointer;opacity:0;background:#ffffff14;border:1px solid #ffffff1a;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;transition:opacity .15s,background .15s,color .15s;display:flex;position:absolute;top:8px;right:8px}.blog-post__content .code-copy-btn:hover{color:#fffc;background:#ffffff26}.blog-post__content .code-copy-btn--copied{color:#c3e88d}.blog-post__content pre:hover .code-copy-btn{opacity:1}.blog-post__content blockquote{color:#4b5563;border-left:3px solid #8b5cf6;margin:20px 0;padding-left:18px;font-style:italic}.blog-post__content img{border-radius:8px;max-width:100%;margin:20px 0}.blog-post__content a{color:#8b5cf6;text-underline-offset:2px;text-decoration:underline}.blog-post__content a:hover{color:#a78bfa}.blog-post__content hr{border:none;border-top:1px solid #e5e7eb;margin:36px 0}.blog-post__content table{border-collapse:collapse;-webkit-overflow-scrolling:touch;width:100%;margin:24px 0;font-size:14px;display:block;overflow-x:auto}@media (width<=768px){.blog-post__content table{display:table}}.blog-post__content thead th{text-align:left;color:#111827;background:#f9fafb;font-weight:600}.blog-post__content th,.blog-post__content td{vertical-align:top;border:1px solid #e5e7eb;padding:10px 14px}.blog-post__content tbody tr:hover{background:#f9fafb}.blog-post__content strong,.blog-post__content b{color:#111827;font-weight:600}.blog-post__content mark{color:#111827;background:#8b5cf61f;border-radius:4px;padding:1px 4px}.blog-post__content kbd{color:#111827;background:#f3f4f6;border:1px solid #d1d5db;border-radius:4px;padding:2px 6px;font-family:JetBrains Mono,SF Mono,monospace;font-size:.85em;display:inline-block;box-shadow:0 1px #d1d5db}.blog-post__content details{border:1px solid #e5e7eb;border-radius:4px;margin:18px 0;padding:12px 16px}.blog-post__content details[open] summary{border-bottom:1px solid #e5e7eb;margin-bottom:12px;padding-bottom:12px}.blog-post__content summary{color:#111827;cursor:pointer;font-weight:600}.blog-post__content summary:hover{color:#8b5cf6}.blog-post__content figure{margin:24px 0}.blog-post__content figure img{margin:0}.blog-post__content figure figcaption{color:#6b7280;text-align:center;margin-top:8px;font-size:14px}.blog-post__content iframe,.blog-post__content video{border-radius:8px;max-width:100%;margin:24px 0}.blog-post__meta-author{color:#4b5563;align-items:center;gap:6px;text-decoration:none;transition:color .15s;display:inline-flex}.blog-post__meta-author:hover{color:#8b5cf6}.blog-post__meta-avatar{object-fit:cover;border-radius:50%;width:20px;height:20px}.blog-post__author{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;gap:16px;margin-top:48px;padding:24px;display:flex}.blog-post__author-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:56px;height:56px}.blog-post__author-info{flex:1;min-width:0}.blog-post__author-label{text-transform:uppercase;letter-spacing:.06em;color:#6b7280;margin-bottom:2px;font-size:12px;font-weight:600}.blog-post__author-name{color:#111827;font-size:17px;font-weight:700;text-decoration:none}.blog-post__author-name:hover{color:#8b5cf6}.blog-post__author-bio{color:#4b5563;margin:6px 0 0;font-size:14px;line-height:1.6}.blog-post__author-socials{gap:8px;margin-top:10px;display:flex}.blog-post__author-social-link{color:#6b7280;background:#fff;border:1px solid #e5e7eb;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;text-decoration:none;transition:all .15s;display:flex}.blog-post__author-social-link:hover{color:#8b5cf6;background:#f5f3ff;border-color:#8b5cf626}.blog-author-header{margin-bottom:40px}.blog-author-header__profile{align-items:flex-start;gap:20px;margin-top:24px;display:flex}.blog-author-header__avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:72px;height:72px}.blog-author-header__avatar-placeholder{color:#8b5cf6;background:#f5f3ff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;font-size:28px;font-weight:700;display:flex}.blog-author-header__info{flex:1}.blog-author-header__label{text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;margin-bottom:4px;font-size:12px;font-weight:600}.blog-author-header__name{color:#0f172a;letter-spacing:-.02em;margin:0 0 8px;font-size:28px;font-weight:800}.blog-author-header__bio{color:#64748b;max-width:600px;margin:0 0 12px;font-size:15px;line-height:1.6}.blog-author-header__posts-title{color:#0f172a;align-items:center;gap:10px;margin:0 0 24px;font-size:20px;font-weight:700;display:flex}.blog-author-header__posts-count{color:#94a3b8;background:#ffffff0f;border-radius:100px;padding:2px 10px;font-size:13px;font-weight:600}@media (width<=1024px){.blog__grid{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.blog__grid{grid-template-columns:1fr;gap:20px}.blog__title{font-size:28px}.blog-post__title{font-size:26px}.blog-post__layout{grid-template-columns:1fr;gap:0}.blog-post__sidebar{border-bottom:1px solid #e5e7eb;order:-1;margin-bottom:28px;padding-bottom:20px;position:static}.blog-post__author{flex-direction:column;gap:12px}.blog-author-header__profile{flex-direction:column;gap:16px}.blog-author-header__name{font-size:22px}}
