.blog-page{min-height:100vh;background:var(--bg);color:var(--ink);padding:clamp(48px,8vw,96px) var(--container-pad) 96px}.blog-container{max-width:var(--container-max);margin:0 auto}.blog-container--reading{max-width:720px}.blog-header{margin-bottom:clamp(32px,5vw,56px)}.blog-back{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:var(--muted);transition:color .2s}.blog-back:hover{color:var(--accent)}.blog-title{font-size:clamp(34px,5vw,56px);font-weight:500;line-height:1.06;letter-spacing:-.035em;text-wrap:balance;color:var(--ink);margin-top:12px}.blog-title em{font-family:var(--font-serif);font-style:italic;font-weight:400;color:var(--accent)}.blog-lede{margin-top:16px;font-size:18px;line-height:1.6;color:var(--muted);max-width:60ch;text-wrap:pretty}.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:24px;gap:24px}.article-card{display:flex;flex-direction:column;overflow:hidden;background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-xl);transition:box-shadow .2s,transform .2s,border-color .2s}.article-card:hover{box-shadow:0 12px 32px oklch(.25 .012 75/.08);border-color:oklch(.55 .12 250/.3);transform:translateY(-2px)}.article-card__media{position:relative;aspect-ratio:16/9;width:100%;overflow:hidden;background:oklch(.94 .006 85)}.article-card__media img{object-fit:cover;transition:transform .4s}.article-card:hover .article-card__media img{transform:scale(1.04)}.article-card__body{display:flex;flex:1 1;flex-direction:column;padding:20px}.article-card__date{font-family:var(--font-mono);font-size:12px;font-weight:500;color:var(--muted)}.article-card__title{margin-top:8px;font-size:19px;font-weight:500;line-height:1.25;letter-spacing:-.02em;color:var(--ink);transition:color .2s}.article-card:hover .article-card__title{color:var(--accent)}.article-card__excerpt{margin-top:10px;font-size:14.5px;line-height:1.6;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.article{margin-top:24px}.article__header{margin-bottom:32px}.article__title{font-size:clamp(32px,4.5vw,48px);font-weight:500;line-height:1.08;letter-spacing:-.03em;text-wrap:balance;color:var(--ink)}.article__date{display:block;margin-top:16px;font-family:var(--font-mono);font-size:14px;color:var(--muted)}.article__footer{margin-top:48px;padding-top:24px;border-top:1px solid var(--rule)}.tag-list{display:flex;flex-wrap:wrap;gap:8px}.tag-list__item{border-radius:var(--radius-full);background:oklch(.55 .12 250/.08);color:var(--accent);padding:5px 12px;font-size:12.5px;font-weight:500;transition:background .2s}.tag-list__item:hover{background:oklch(.55 .12 250/.15)}.blog-pagination{margin-top:48px;display:flex;align-items:center;justify-content:space-between;gap:16px}.blog-pagination__link{display:inline-flex;align-items:center;border:1px solid var(--rule);border-radius:var(--radius-full);padding:10px 20px;font-size:14px;font-weight:500;color:var(--ink);transition:background .2s,border-color .2s,color .2s}.blog-pagination__link:hover{background:var(--paper);border-color:oklch(.55 .12 250/.3);color:var(--accent)}.blog-pagination__link--disabled{color:oklch(.25 .012 75/.3);cursor:not-allowed}.blog-pagination__status{font-size:14px;color:var(--muted)}.blog-empty{color:var(--muted);font-size:16px}.blog-content{font-family:var(--font-sans);color:oklch(.34 .012 75);font-size:1.0625rem;line-height:1.75}.blog-content>:first-child{margin-top:0}.blog-content h2{margin-top:2.5rem;margin-bottom:1rem;font-size:1.5rem;font-weight:700;line-height:1.3;color:var(--ink)}.blog-content h3{margin-top:2rem;margin-bottom:.75rem;font-size:1.25rem;font-weight:600;color:var(--ink)}.blog-content h4{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.125rem;font-weight:600;color:var(--ink)}.blog-content p{margin:1.25rem 0}.blog-content a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.blog-content a:hover{text-decoration:none}.blog-content ol,.blog-content ul{margin:1.25rem 0;padding-left:1.5rem}.blog-content ul{list-style:disc}.blog-content ol{list-style:decimal}.blog-content li{margin:.5rem 0}.blog-content blockquote{margin:1.5rem 0;padding-left:1rem;border-left:4px solid #e5e7eb;color:#6b7280;font-style:italic}.blog-content img{margin:1.5rem 0;border-radius:.75rem;max-width:100%;height:auto}.blog-content figure{margin:1.5rem 0}.blog-content figcaption{margin-top:.5rem;font-size:.875rem;color:#6b7280;text-align:center}.blog-content pre{margin:1.5rem 0;padding:1rem;border-radius:.5rem;background:#0f172a;color:#e2e8f0;overflow-x:auto;font-size:.875rem}.blog-content code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.blog-content :not(pre)>code{padding:.15rem .35rem;border-radius:.25rem;background:#f1f5f9;color:#0f172a}.blog-content table{width:100%;margin:1.5rem 0;border-collapse:collapse;font-size:.95rem}.blog-content td,.blog-content th{padding:.5rem .75rem;border:1px solid #e5e7eb;text-align:left}.blog-content th{background:#f9fafb;font-weight:600}.blog-content hr{margin:2.5rem 0;border:0;border-top:1px solid #e5e7eb}