.blog-head{margin-bottom:40px}.blog-feat{border-top:1px solid var(--border);border-bottom:1px solid var(--border);color:inherit;grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:center;gap:32px;margin-bottom:48px;padding:24px 0 32px;text-decoration:none;display:grid}.blog-feat .blog-cover{border-radius:14px}.blog-feat-body{flex-direction:column;gap:14px;min-width:0;display:flex}.blog-feat-title{letter-spacing:-.01em;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:24px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.blog-feat-sum{color:var(--text-dim);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:15px;line-height:1.7;display:-webkit-box;overflow:hidden}.blog-feat-more{color:var(--text-faint);font-size:13.5px;transition:color .16s ease-out}.blog-feat:hover .blog-feat-more{color:var(--text)}.blog-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 28px;display:grid}.blog-item{min-width:0;color:inherit;flex-direction:column;gap:12px;text-decoration:none;display:flex}.blog-cover{aspect-ratio:16/9;border:1px solid var(--border);background:var(--surface-2) center / cover no-repeat;border-radius:10px;transition:border-color .2s ease-out;overflow:hidden}.blog-item:hover .blog-cover,.blog-feat:hover .blog-cover{border-color:#ffffff3d}.blog-cover.empty{color:var(--text-faint);letter-spacing:.06em;justify-content:center;align-items:center;font-size:13px;display:flex}.blog-item-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:15.5px;font-weight:600;line-height:1.45;display:-webkit-box;overflow:hidden}.blog-item-sum{color:var(--text-dim);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:13.5px;line-height:1.65;display:-webkit-box;overflow:hidden}.blog-meta{color:var(--text-faint);align-items:center;gap:8px;font-size:12.5px;display:flex}.blog-meta .dot:before{content:"·"}.blog-more{justify-content:center;margin-top:56px;display:flex}.blog-more button{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:999px;padding:10px 28px;font-size:14px;transition:border-color .16s ease-out,color .16s ease-out}.blog-more button:hover:not(:disabled){color:var(--text);border-color:#ffffff4d}.blog-more button:disabled{opacity:.5;cursor:default}.blog-skel{background:var(--surface-2);border-radius:10px}.blog-skel.cover{aspect-ratio:16/9}.blog-skel.line{height:14px;margin-top:12px}.blog-skel.line.short{width:60%}.blog-empty{text-align:center;color:var(--text-faint);padding:96px 0;font-size:14px}@media (max-width:960px){.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.blog-feat{grid-template-columns:1fr;gap:20px}}@media (max-width:620px){.blog-grid{grid-template-columns:1fr}}.blog-article{max-width:720px;margin:0 auto}.blog-back{color:var(--text-faint);margin-bottom:28px;font-size:13.5px;text-decoration:none;transition:color .16s ease-out;display:inline-block}.blog-back:hover{color:var(--text)}.blog-article h1{letter-spacing:-.015em;margin:0 0 16px;font-size:clamp(26px,3.4vw,32px);font-weight:700;line-height:1.3}.blog-article .blog-meta{margin-bottom:28px}.blog-article-cover{border:1px solid var(--border);border-radius:14px;width:100%;margin-bottom:32px;display:block}.blog-md{color:var(--text);font-size:15.5px;line-height:1.85}.blog-md p{margin:0 0 1.25em}.blog-md h2{margin:2em 0 .8em;font-size:20px;font-weight:600;line-height:1.4}.blog-md h3{margin:1.6em 0 .7em;font-size:17px;font-weight:600}.blog-md a{color:var(--text);text-underline-offset:3px;-webkit-text-decoration:underline #ffffff59;text-decoration:underline #ffffff59}.blog-md a:hover{text-decoration-color:#ffffffb3}.blog-md img{border:1px solid var(--border);border-radius:10px;max-width:100%;margin:8px 0;display:block}.blog-md video.blog-video{border:1px solid var(--border);background:#000;border-radius:10px;width:100%;max-height:78vh;margin:8px 0 20px;display:block}.blog-md code{font-family:var(--mono);background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:1px 6px;font-size:.9em}.blog-md pre{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin:0 0 1.25em;padding:16px;overflow-x:auto}.blog-md pre code{background:0 0;border:none;padding:0}.blog-md blockquote{color:var(--text-dim);border-left:2px solid #fff3;margin:0 0 1.25em;padding:2px 0 2px 16px}.blog-md ul,.blog-md ol{margin:0 0 1.25em;padding-left:1.4em}.blog-md li{margin-bottom:.4em}.blog-md hr{border:none;border-top:1px solid var(--border);margin:2em 0}
