.blog-head{padding:clamp(28px,4vw,56px) 0 clamp(20px,3vw,32px)}.blog-head h1{font-size:clamp(44px,6vw,76px)}.blog-head p{color:var(--muted);margin-top:10px;font-size:clamp(17px,1.5vw,20px)}.post-label{color:var(--muted);margin-bottom:10px;font-size:13px;font-weight:700}.post-kicker{font-family:var(--label);color:var(--accent);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.sample-tag{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:1px 8px;font-size:12px}.sample-notice{border:1px dashed var(--line);color:var(--muted);border-radius:6px;margin-top:14px;padding:5px 12px;font-size:14px;display:inline-block}.blog-section-title{font-family:var(--display);font-weight:var(--w);letter-spacing:-.02em;margin-top:clamp(16px,3vw,32px);font-size:clamp(26px,3vw,36px)}.blog-more{justify-content:center;margin-top:40px;display:flex}.post-excerpt{color:var(--muted);margin-top:10px;font-size:16px}.post-meta{color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin-top:14px;font-size:14px;display:flex}.blog-tools{border-block:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.blog-chips{flex-wrap:wrap;gap:8px;display:flex}.blog-chips button{border:1px solid var(--line);border-radius:var(--br);min-height:44px;color:var(--text);cursor:pointer;background:0 0;padding:0 16px;font-size:14px;font-weight:500}.blog-chips button:hover{border-color:var(--accent)}.blog-chips button.on{background:var(--btn);border-color:var(--btn);color:var(--on-btn)}.blog-search{flex:220px;max-width:340px}.blog-search input{border:1px solid var(--line);border-radius:var(--br);background:var(--surface);width:100%;min-height:44px;color:var(--text);padding:0 14px;font-size:15px}.blog-search input::placeholder{color:var(--muted);opacity:1}.tm a.post-featured,.tm a.post-card{color:var(--text);text-decoration:none}.post-featured{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));align-items:center;gap:clamp(24px,4vw,56px);margin-top:32px;padding-bottom:clamp(32px,4vw,48px);display:grid}.post-featured h2{font-family:var(--display);font-weight:var(--w);letter-spacing:-.025em;margin-top:8px;font-size:clamp(28px,3.4vw,44px);line-height:1.1}.post-featured:hover h2{color:var(--accent)}.post-read{color:var(--accent);margin-top:18px;font-weight:700;display:inline-block}.post-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:20px;margin-top:20px;display:grid}.post-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);flex-direction:column;transition:transform .18s,border-color .18s;display:flex;overflow:hidden}.post-card:hover{border-color:var(--accent);transform:translateY(-4px)}.post-card-body{flex-direction:column;flex:1;padding:22px;display:flex}.post-card h3{font-family:var(--display);font-size:22px;font-weight:var(--w);letter-spacing:-.02em;margin-top:6px;line-height:1.15}.post-card .post-meta{margin-top:auto;padding-top:14px}.post-cover{aspect-ratio:16/9;background:var(--raised);position:relative;overflow:hidden}.post-cover.large{border-radius:var(--r)}.post-cover img{object-fit:cover;width:100%;height:100%;display:block}.post-cover.art{color:var(--accent);flex-direction:column;justify-content:space-between;padding:18px;display:flex}.art-category{font-family:var(--label);color:var(--text);font-size:13px}.post-cover.art svg{width:100%;height:32px;overflow:visible}.post-cover.art path{stroke:currentColor;stroke-width:3px;fill:none;vector-effect:non-scaling-stroke}.post-cover.art circle{fill:currentColor}.art-title{font-family:var(--display);color:#0000;-webkit-text-stroke:2px var(--accent);align-self:flex-end;font-size:clamp(56px,8vw,120px);font-weight:700;line-height:.8}.blog-none{text-align:center;padding:64px 0}.blog-none h2{font-family:var(--display);font-size:32px;font-weight:var(--w)}.blog-none p{color:var(--muted);margin:10px 0 22px}.blog-close{margin-top:clamp(48px,7vw,96px)}.reading-progress{z-index:40;background:var(--accent);transform-origin:0;height:4px;position:fixed;inset:0 0 auto;transform:scaleX(0)}.article-head{max-width:920px;padding:clamp(32px,5vw,72px) 0 clamp(28px,4vw,48px)}.article-head nav a{color:var(--accent)}.article-head h1{margin-top:14px;font-size:clamp(36px,5.8vw,80px)}.article-cover{aspect-ratio:16/9;border-radius:var(--r);background:var(--raised);width:100%;margin-bottom:clamp(32px,5vw,64px);position:relative;overflow:hidden}.article-cover img{object-fit:cover;width:100%;height:100%;display:block}.article-layout{grid-template-columns:minmax(0,1fr);gap:32px;display:grid}.article-side .mono{margin-bottom:10px}.article-side nav{margin-bottom:24px}.article-side ol{border-left:2px solid var(--line);list-style:none}.article-side li a{color:var(--muted);padding:7px 0 7px 14px;font-size:14px;line-height:1.35;text-decoration:none;display:block}.article-side li a:hover{color:var(--accent)}.share{flex-wrap:wrap;gap:8px;display:flex}.tm .share a,.share button{border:1px solid var(--line);border-radius:var(--br);min-height:44px;color:var(--text);cursor:pointer;background:0 0;align-items:center;padding:0 14px;font-size:14px;text-decoration:none;display:inline-flex}@media (min-width:1000px){.article-layout{grid-template-columns:240px minmax(0,1fr);gap:64px}.article-side{align-self:start;position:sticky;top:24px}}.article-body{max-width:760px;color:var(--text);overflow-wrap:break-word;font-size:19px;line-height:1.75}.tm .article-body>*+*{margin-top:1.1em}.tm .article-body h2{font-family:var(--display);font-weight:var(--w);letter-spacing:-.02em;margin-top:1.8em;scroll-margin-top:24px;font-size:clamp(28px,3.4vw,40px);line-height:1.15}.tm .article-body h3{font-family:var(--display);font-weight:var(--w);margin-top:1.6em;font-size:24px;line-height:1.25}.tm .article-body h4{margin-top:1.4em;font-size:20px;font-weight:700}.tm .article-body ul,.tm .article-body ol{padding-left:1.4em}.tm .article-body ul{list-style:outside}.tm .article-body ol{list-style:decimal}.tm .article-body li+li{margin-top:.4em}.tm .article-body a{text-underline-offset:3px;text-decoration:underline}.tm .article-body blockquote{border-left:4px solid var(--accent);padding-left:1em;font-size:1.15em;font-weight:500}.tm .article-body img{border-radius:var(--r);max-width:100%;height:auto}.tm .article-body code{font-family:var(--font-tm-mono),monospace;background:var(--raised);border-radius:4px;padding:2px 5px;font-size:.85em}.tm .article-body pre{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:16px;overflow-x:auto}.tm .article-body pre code{background:0 0;padding:0}.tm .article-body table{width:100%;min-width:0;display:block;overflow-x:auto}.article-tags{flex-wrap:wrap;gap:8px;margin:40px 0 0;list-style:none;display:flex}.article-tags li{border:1px solid var(--line);border-radius:var(--br);color:var(--muted);padding:4px 12px;font-size:13px}@media (prefers-reduced-motion:reduce){.post-card{transition:none}.post-card:hover{transform:none}}
