.blog-shell{max-width:1200px;margin:0 auto;padding:64px 24px 88px}.blog-head{flex-direction:column;gap:14px;max-width:640px;margin-bottom:48px;display:flex}.blog-head h1{font-family:var(--lp-display);letter-spacing:-.04em;color:var(--text-strong);text-wrap:balance;margin:0;font-size:44px;font-weight:700;line-height:1.06}.blog-head p{color:var(--text-muted);text-wrap:pretty;margin:0;font-size:17px;line-height:1.65}.blog-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;display:grid}.blog-card{border:1px solid var(--lp-panel-border);background:var(--lp-panel-bg);box-shadow:var(--lp-shadow-card);border-radius:18px;flex-direction:column;gap:12px;padding:28px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.blog-card:hover{border-color:color-mix(in oklab, var(--brand) 40%, var(--line-strong));transform:translateY(-2px)}.blog-card h2{letter-spacing:-.02em;color:var(--text-strong);text-wrap:balance;margin:0;font-size:21px;font-weight:600;line-height:1.3}.blog-card p{color:var(--text-muted);margin:0;font-size:15px;line-height:1.6}.blog-meta{font-family:var(--font-mono-stack);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:10px;font-size:11px;display:flex}.blog-meta span+span:before{content:"·";margin-right:10px}.blog-empty{color:var(--text-muted);padding:48px 0;font-size:17px}.article-shell{max-width:760px;margin:0 auto;padding:56px 24px 96px}.article-back{font-family:var(--font-mono-stack);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:8px;margin-bottom:32px;font-size:11px;text-decoration:none;display:inline-flex}.article-back:hover{color:var(--brand)}.article-header{border-bottom:1px solid var(--line-subtle);flex-direction:column;gap:16px;margin-bottom:40px;padding-bottom:32px;display:flex}.article-header h1{font-family:var(--lp-display);letter-spacing:-.04em;color:var(--text-strong);text-wrap:balance;margin:0;font-size:42px;font-weight:700;line-height:1.08}.article-header .article-lead{color:var(--text-muted);text-wrap:pretty;margin:0;font-size:19px;line-height:1.65}.article-notice{background:var(--brand-soft);border:1px solid color-mix(in oklab, var(--brand) 30%, transparent);color:var(--text);border-radius:12px;gap:10px;margin-bottom:32px;padding:12px 18px;font-size:14px;line-height:1.6;display:flex}.article-body{color:var(--text);font-size:17px;line-height:1.75}.article-body>*+*{margin-top:1.4em}.article-body h2{font-family:var(--lp-display);letter-spacing:-.03em;color:var(--text-strong);text-wrap:balance;margin-top:2.2em;margin-bottom:.6em;font-size:28px;font-weight:700;line-height:1.2}.article-body h3{letter-spacing:-.02em;color:var(--text-strong);margin-top:1.8em;margin-bottom:.5em;font-size:20px;font-weight:600}.article-body a{color:var(--brand);border-bottom:1px solid color-mix(in oklab, var(--brand) 40%, transparent);text-decoration:none}.article-body a:hover{border-bottom-color:var(--brand)}.article-body strong{color:var(--text-strong);font-weight:600}.article-body ul,.article-body ol{padding-left:1.3em}.article-body li+li{margin-top:.5em}.article-body blockquote{border-left:2px solid var(--brand);color:var(--text-muted);margin:1.6em 0;padding:4px 0 4px 22px;font-style:italic}.article-body code{font-family:var(--font-mono-stack);background:var(--surface-sunken);border:1px solid var(--line-subtle);border-radius:6px;padding:2px 6px;font-size:.88em}.article-body pre{background:var(--surface-sunken);border:1px solid var(--line);border-radius:14px;padding:20px;font-size:14px;line-height:1.6;overflow-x:auto}.article-body pre code{font-size:inherit;background:0 0;border:0;padding:0}.article-body img{border:1px solid var(--line);border-radius:14px;max-width:100%;height:auto}.article-body hr{border:0;border-top:1px solid var(--line-subtle);margin:2.4em 0}.article-body table{border-collapse:collapse;width:100%;font-size:15px}.article-body th,.article-body td{border-bottom:1px solid var(--line-subtle);text-align:left;padding:10px 12px}.article-body th{color:var(--text-strong);font-weight:600}@media (width<=880px){.blog-shell{padding:40px 18px 64px}.blog-head h1{font-size:33px}.article-shell{padding:32px 18px 72px}.article-header h1{font-size:31px}.article-body h2{font-size:23px}}
