.blog,.blog *,.blog :before,.blog :after{box-sizing:border-box}.blog{background:var(--bg-app);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;min-height:100dvh;overflow-x:clip}.blog a{color:inherit;text-decoration:none}.blog p{margin:0}.blog img{max-width:100%;display:block}.blog .blog-nav{align-items:center;gap:14px;max-width:860px;margin:0 auto;padding:22px 24px 0;display:flex}.blog .blog-nav__logo{font-family:var(--font-display);letter-spacing:-.3px;color:var(--text);align-items:center;gap:9px;font-size:21px;font-weight:600;display:inline-flex}.blog .blog-nav__logo img{width:26px;height:26px}.blog .blog-nav__logo b{color:var(--marigold-600);font-weight:600}.blog .blog-nav__spacer{flex:1}.blog .blog-nav__link{font:var(--fw-bold) var(--fs-sm) var(--font-sans);color:var(--text-muted);border-radius:var(--radius-md);transition:color var(--dur-fast), background var(--dur-fast);padding:8px 14px}.blog .blog-nav__link:hover{color:var(--text);background:var(--ink-50)}.blog .blog-wrap{max-width:860px;margin:0 auto;padding:36px 24px 100px}.blog .blog-wrap--post{max-width:720px}.blog .blog-hero{text-align:center;margin:28px 0 44px}.blog .blog-hero h1{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);max-width:16ch;margin:0 auto 14px;font-size:clamp(38px,6.5vw,60px);font-weight:600;line-height:1.04}.blog .blog-hero__sub{color:var(--text-muted);max-width:46ch;margin:0 auto;font-size:clamp(16px,2.2vw,19px);font-weight:600;line-height:1.5}.blog .blog-list{flex-direction:column;gap:18px;margin:0;padding:0;list-style:none;display:flex}.blog .blog-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);transition:box-shadow var(--dur-fast), transform var(--dur-fast) var(--ease-spring), border-color var(--dur-fast);padding:26px 28px;display:block}.blog .blog-card:hover{box-shadow:var(--shadow-sm);border-color:var(--border-strong);transform:translateY(-2px)}.blog .blog-card__meta{font:var(--fw-bold) var(--fs-xs) var(--font-sans);color:var(--text-faint);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.blog .blog-card__title{font-family:var(--font-display);font-weight:600;font-size:var(--fs-2xl);letter-spacing:-.01em;color:var(--text);margin:0;line-height:1.15}.blog .blog-card__excerpt{font:var(--fw-semibold) var(--fs-base)/1.55 var(--font-sans);color:var(--text-muted);margin:10px 0 0}.blog .blog-card__tags{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.blog .blog-card__more{font:var(--fw-bold) var(--fs-sm) var(--font-sans);color:var(--brand);margin-top:16px;display:inline-block}.blog .blog-card:hover .blog-card__more{color:var(--brand-strong)}.blog .blog-tag{font:var(--fw-bold) var(--fs-2xs) var(--font-sans);color:var(--marigold-700);background:var(--marigold-100);border-radius:999px;align-items:center;padding:4px 11px;display:inline-flex}.blog .blog-empty{text-align:center;color:var(--text-faint);font:var(--fw-semibold) var(--fs-base) var(--font-sans);border:1px dashed var(--border);border-radius:var(--radius-lg);padding:56px 20px}.blog .blog-post__back{font:var(--fw-bold) var(--fs-sm) var(--font-sans);color:var(--text-muted);transition:color var(--dur-fast);display:inline-block}.blog .blog-post__back:hover{color:var(--brand)}.blog .blog-post__meta{font:var(--fw-bold) var(--fs-xs) var(--font-sans);color:var(--text-faint);flex-wrap:wrap;align-items:center;gap:8px;margin:28px 0 10px;display:flex}.blog .blog-post__title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);margin:0;font-size:clamp(32px,5.5vw,50px);font-weight:600;line-height:1.08}.blog .blog-post__tags{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.blog .blog-post__footer{border-top:1px solid var(--divider);margin-top:48px;padding-top:24px}.blog .blog-prose{margin-top:32px}.blog .blog-prose>:first-child{margin-top:0}.blog .blog-prose p,.blog .blog-prose ul,.blog .blog-prose ol{font:var(--fw-semibold) var(--fs-md)/1.7 var(--font-sans);color:var(--text-muted);margin:0 0 20px}.blog .blog-prose h2{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text);font-weight:600;line-height:1.2;font-size:var(--fs-2xl);margin:44px 0 14px}.blog .blog-prose h3{font-family:var(--font-display);color:var(--text);font-weight:600;line-height:1.25;font-size:var(--fs-xl);margin:32px 0 12px}.blog .blog-prose ul,.blog .blog-prose ol{padding-left:24px}.blog .blog-prose li{margin:0 0 8px}.blog .blog-prose li::marker{color:var(--text-faint)}.blog .blog-prose strong{color:var(--text);font-weight:800}.blog .blog-prose a{color:var(--text-link);text-underline-offset:2px;transition:color var(--dur-fast);font-weight:700;text-decoration:underline;text-decoration-thickness:1.5px}.blog .blog-prose a:hover{color:var(--brand-strong)}.blog .blog-prose blockquote{border-left:4px solid var(--brand);background:var(--surface-sunken);border-radius:var(--radius-md);margin:26px 0;padding:18px 22px}.blog .blog-prose blockquote p{color:var(--text);font-size:var(--fs-lg);margin:0;font-style:normal;font-weight:700;line-height:1.45}.blog .blog-prose hr{border:none;border-top:1px solid var(--divider);margin:40px 0}.blog .blog-prose code{font-family:var(--font-mono);background:var(--surface-sunken);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:1px 6px;font-size:.88em}.blog .blog-prose pre{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-md);margin:0 0 22px;padding:16px 18px;overflow-x:auto}.blog .blog-prose pre code{font-size:var(--fs-sm);background:0 0;border:none;padding:0}.blog .blog-prose img{border-radius:var(--radius-md);margin:24px 0}.blog .blog-prose table{border-collapse:collapse;width:100%;font:var(--fw-semibold) var(--fs-sm) var(--font-sans);margin:0 0 22px}.blog .blog-prose th,.blog .blog-prose td{text-align:left;border-bottom:1px solid var(--divider);padding:10px 14px}.blog .blog-prose th{color:var(--text);font-weight:800}.blog .blog-prose td{color:var(--text-muted)}@media (max-width:600px){.blog .blog-card{padding:20px}.blog .blog-card__title{font-size:var(--fs-xl)}.blog .blog-prose p,.blog .blog-prose ul,.blog .blog-prose ol{font-size:var(--fs-base)}}
