.cat-pill:where(.astro-zpuxggef){display:inline-flex;align-items:center;gap:var(--sp-1);font-family:var(--f-ui);font-size:var(--fs-2xs);font-weight:600;color:var(--cat-color, var(--t-muted));text-decoration:none;text-transform:capitalize}a:where(.astro-zpuxggef).cat-pill:hover{opacity:.8}.cat-md:where(.astro-zpuxggef){font-size:var(--fs-xs)}.cat-dot:where(.astro-zpuxggef){width:6px;height:6px;border-radius:50%;background:var(--cat-color, var(--accent));flex-shrink:0}.category-craft{--cat-color: var(--color-success);--cat-bg: var(--color-success-bg)}.category-product{--cat-color: var(--accent);--cat-bg: var(--accent-bg)}.category-worldbuilding{--cat-color: var(--color-warning);--cat-bg: var(--color-warning-bg)}.category-ai{--cat-color: #8e8ec9;--cat-bg: rgba(142, 142, 201, .1)}.category-announcements{--cat-color: var(--accent-text);--cat-bg: var(--accent-bg)}.reading-progress{position:fixed;top:var(--nav-h);left:0;width:100%;height:3px;z-index:var(--z-progress);background:var(--b-hairline)}.reading-progress-bar{height:100%;background:var(--accent);width:0%;transition:width 80ms linear}.toc{font-family:var(--f-ui);font-size:var(--fs-xs)}.toc-title{font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--t-dim);margin:0 0 var(--sp-3);font-size:var(--fs-2xs)}.toc-list{list-style:none;padding:0;margin:0}.toc-link{display:block;padding:var(--sp-1) 0;padding-left:var(--sp-3);color:var(--t-muted);text-decoration:none;border-left:2px solid transparent;transition:all var(--dur-micro) var(--ease-out);line-height:1.4}.toc-link:hover{color:var(--t-primary)}.toc-link.active{color:var(--accent-text);border-left-color:var(--accent)}.toc-link[data-level="3"]{padding-left:var(--sp-6);font-size:var(--fs-2xs)}.share-bar{display:flex;gap:var(--sp-2)}.share-btn{width:36px;height:36px;border-radius:50%;background:var(--s-overlay);border:1px solid var(--b-subtle);color:var(--t-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--dur-micro) var(--ease-out);text-decoration:none}.share-btn:hover{color:var(--accent-text);border-color:var(--accent-border);background:var(--accent-bg)}.share-btn svg{width:16px;height:16px;fill:currentColor}.prose>p:first-of-type:first-letter{font-size:3.5em;float:left;line-height:.8;margin-right:var(--sp-2);margin-top:var(--sp-1);color:var(--accent-text);font-family:var(--f-ui);font-weight:700}.prose blockquote[data-type=pull-quote]{border-left:none;padding:var(--sp-4) 0;margin:var(--sp-6) 0;text-align:center;font-size:var(--fs-h3);font-weight:600;color:var(--t-primary);line-height:1.4;border-top:2px solid var(--accent);border-bottom:2px solid var(--accent)}.prose .full-bleed{margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);max-width:100vw;border-radius:0}.prose figcaption{font-family:var(--f-ui);font-size:var(--fs-xs);color:var(--t-dim);text-align:center;margin-top:var(--sp-2)}.card-image-placeholder{aspect-ratio:16 / 9;background:linear-gradient(135deg,var(--s-sunken) 0%,var(--cat-bg, var(--s-raised)) 100%);border-radius:var(--r-lg) var(--r-lg) 0 0}.blog-card{display:block;text-decoration:none;background:var(--s-raised);border:1px solid var(--b-subtle);border-radius:var(--r-lg);overflow:hidden;transition:border-color var(--dur-micro) var(--ease-out),transform var(--dur-micro) var(--ease-out),box-shadow var(--dur-micro) var(--ease-out)}.blog-card:hover{border-color:var(--b-default);transform:translateY(-2px);box-shadow:var(--shadow-card)}.blog-card-image{width:100%;aspect-ratio:16 / 9;object-fit:cover;display:block;border-bottom:1px solid var(--b-subtle)}.blog-card-body{padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}.blog-card-meta{display:flex;align-items:center;gap:var(--sp-2);font-family:var(--f-ui);font-size:var(--fs-xs);color:var(--t-dim)}.blog-card-title{font-family:var(--f-ui);font-weight:700;color:var(--t-primary);margin:0;line-height:1.3}.blog-card:hover .blog-card-title{color:var(--accent-text)}.blog-card-excerpt{font-family:var(--f-ui);font-size:var(--fs-sm);color:var(--t-muted);line-height:1.6;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.blog-card-date{font-family:var(--f-mono);font-size:var(--fs-2xs);color:var(--t-dim)}.blog-card-hero{display:grid;grid-template-columns:55% 45%;border-radius:var(--r-lg)}.blog-card-hero .blog-card-image{border-bottom:none;border-right:1px solid var(--b-subtle);border-radius:var(--r-lg) 0 0 var(--r-lg);height:100%;aspect-ratio:auto}.blog-card-hero .blog-card-body{padding:var(--sp-6);justify-content:center;gap:var(--sp-3)}.blog-card-hero .blog-card-title{font-size:var(--fs-h3)}.blog-card-hero .blog-card-excerpt{-webkit-line-clamp:4}.blog-card-compact .blog-card-body{padding:var(--sp-3)}.blog-card-compact .blog-card-title{font-size:var(--fs-sm)}@media(max-width:768px){.blog-card-hero{grid-template-columns:1fr}.blog-card-hero .blog-card-image{border-right:none;border-bottom:1px solid var(--b-subtle);border-radius:var(--r-lg) var(--r-lg) 0 0;aspect-ratio:16 / 9;height:auto}.blog-card-hero .blog-card-body{padding:var(--sp-4)}.blog-card-hero .blog-card-title{font-size:var(--fs-h4)}.prose>p:first-of-type:first-letter{font-size:2.8em}}.category-bar{display:flex;gap:var(--sp-1-5);flex-wrap:wrap}.category-pill{padding:var(--sp-1) var(--sp-3);border-radius:9999px;font-family:var(--f-ui);font-size:var(--fs-xs);font-weight:600;color:var(--t-muted);text-decoration:none;background:var(--s-raised);border:1px solid var(--b-subtle);transition:all var(--dur-micro) var(--ease-out)}.category-pill:hover{border-color:var(--accent);color:var(--t-primary)}.category-pill.active{background:var(--accent-bg);color:var(--accent-text);border-color:var(--accent-bg)}.reading-time{display:inline-flex;align-items:center;gap:var(--sp-1);font-family:var(--f-mono);font-size:var(--fs-2xs);color:var(--t-dim)}.reading-time svg{width:12px;height:12px;fill:currentColor;opacity:.6}.blog-pagination{display:flex;align-items:center;justify-content:center;gap:var(--sp-4);font-family:var(--f-ui);font-size:var(--fs-sm);padding:var(--sp-4) 0}.blog-pagination a{color:var(--accent);text-decoration:none;font-weight:600}.blog-pagination a:hover{text-decoration:underline}.blog-pagination .page-info{color:var(--t-dim)}
