.blog-header{margin-top:0}.tag-filter{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 0}.tag-filter-btn{padding:6px 14px;font-size:13px;font-weight:500;letter-spacing:.02em;background:var(--secondary-bg);color:var(--muted);border:2px solid var(--border);border-radius:999px;cursor:pointer;transition:background-color .14s ease,color .14s ease,border-color .14s ease}.tag-filter-btn:hover{border-color:var(--text);color:var(--text)}.tag-filter-btn.is-active{background:var(--text);color:var(--bg);border-color:var(--text)}.post-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.tag-pill{display:inline-block;padding:3px 10px;font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;background:var(--secondary-bg);color:var(--muted);border:2px solid var(--border);border-radius:999px}.post-list{list-style:none;padding:0;margin:28px 0 0}.post-list.post-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.post-item{width:100%;margin:0;background:var(--secondary-bg);color:var(--text);border:2px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;padding:0;font:inherit;line-height:1.4;display:flex;flex-direction:column;transition:transform .14s ease,border-color .14s ease,background-color .14s ease}.post-link{display:flex;flex-direction:column;flex:1;color:inherit;text-decoration:none}.post-link:hover{color:inherit}.post-image-wrapper{width:100%;aspect-ratio:16 / 9;overflow:hidden}.post-image{width:100%;height:100%;object-fit:cover;border-radius:0;transition:transform .2s ease}.post-item:hover .post-image{transform:scale(1.03)}.post-content-wrapper{padding:20px;flex:1;display:flex;flex-direction:column}.post-item:not(.has-image) .post-content-wrapper{padding:24px}.post-meta{margin-top:auto;padding-top:12px}.post-title{font-size:22px;font-weight:650;letter-spacing:-.012em;line-height:1.2}.post-description{margin:8px 0 0;max-width:100%;font-size:15px;font-weight:400;line-height:1.45;color:var(--text);opacity:.75}.post-date{display:inline-block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);opacity:.7}@media(hover:hover)and (pointer:fine){.post-item:hover{transform:translateY(-3px) scale(1.01);border-color:var(--text);cursor:pointer}.post-item:hover .post-title{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-skip-ink:auto}}.post-item:focus-within{transform:translateY(-3px) scale(1.01);border-color:var(--text)}@media(prefers-reduced-motion:reduce){.post-item,.post-image{transition:none}.post-item:hover,.post-item:focus-within{transform:none}.post-item:hover .post-image{transform:none}}.post{margin-top:0}.post-header time{display:inline-block;font-size:15px;color:var(--muted)}.reading-time{display:block;font-size:15px;color:var(--muted);margin-top:4px}.reading-time svg{vertical-align:-2.3px;margin-right:2px}.post-back-nav{margin-top:0}.post-back-link{display:inline-block;font-size:15px;font-weight:500;color:var(--muted);text-decoration:none;margin-bottom:16px}.post-back-link:hover{color:var(--text)}.post-content a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}.post-content{margin-top:18px}.post-content h2,h3{margin-top:28px!important}.post-content img{display:block;margin:22px auto;width:100%;height:auto;max-height:600px;object-fit:contain}.post-content :not(pre)>code{padding:.12em .28em;border:1px solid var(--border);border-radius:var(--radius)}.post-content a[target=_blank]:not(.project-link-btn):after{content:" ↗";font-size:.85em}.post-content .project-link-btn,.post-content .project-link-btn:hover{text-decoration:none}.post-header .post-tags{margin-top:14px}.tag-pill-link{text-decoration:none;transition:border-color .14s ease,color .14s ease}.tag-pill-link:hover{border-color:var(--text);color:var(--text)}.featured-image-figure{margin:24px 0}.featured-image{display:block;margin:0 auto;width:100%;height:auto;max-height:600px;object-fit:contain;border-radius:var(--radius)}.image-attribution,.post-content figcaption{margin-top:8px;font-size:13px;font-style:italic;color:var(--muted);text-align:center}.image-attribution a,.post-content figcaption a{color:var(--muted);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.image-attribution a:hover,.post-content figcaption a:hover{color:var(--text)}.post-content figure{margin:22px 0}.post-content figure img{margin:0 auto}@media(max-width:700px){.post-list.post-grid{grid-template-columns:1fr;gap:20px}.tag-filter{gap:6px}.tag-filter-btn{padding:5px 12px;font-size:12px}.post-title{font-size:20px}.post-description{font-size:14.5px}.post-content-wrapper{padding:16px}.post-item:not(.has-image) .post-content-wrapper{padding:16px}}.project-links{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0}.project-link-btn{display:inline-block;padding:10px 18px;font-size:15px;font-weight:600;text-decoration:none;background:var(--secondary-bg);color:var(--tint);border:2px solid var(--border);border-radius:var(--radius);transition:background-color .14s ease,border-color .14s ease,color .14s ease}.project-link-btn:hover{border-color:var(--tint);color:var(--tint-visited)}.project-link-btn.project-link-primary{background:var(--tint);color:var(--bg);border-color:var(--tint)}.project-link-btn.project-link-primary:hover{background:var(--tint-visited);border-color:var(--tint-visited);color:var(--bg)}@media(max-width:700px){.project-links{gap:10px}.project-link-btn{padding:8px 14px;font-size:14px}}
