.blog-index{max-width:860px;margin:0 auto;padding:120px 32px 80px}.blog-index__header{margin-bottom:48px}.blog-index__title{margin:0 0 12px;font-size:clamp(32px,5vw,48px);font-weight:800;letter-spacing:-.02em}.blog-index__sub{margin:0 0 16px;font-size:17px;color:hsl(var(--lp-muted));line-height:1.6}.blog-index__rss{font-size:14px;color:hsl(var(--lp-accent));text-decoration:none;font-weight:600}.blog-index__rss:hover{text-decoration:underline}.blog-index__list{display:flex;flex-direction:column;gap:32px}.blog-card{display:block;text-decoration:none;color:inherit;padding:28px;border-radius:16px;background:hsl(var(--lp-surface));border:1px solid hsl(var(--lp-border)/.5);transition:transform .25s,border-color .25s,box-shadow .25s}.blog-card:hover{transform:translateY(-3px);border-color:hsl(var(--lp-accent)/.3);box-shadow:0 12px 40px hsl(var(--lp-bg)/.5),0 0 20px hsl(var(--lp-accent)/.05)}.blog-card__hero{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:10px;margin-bottom:16px;background:hsl(var(--lp-surface-raised))}.blog-card__title{margin:0 0 8px;font-size:22px;font-weight:700;line-height:1.3}.blog-card__excerpt{margin:0 0 12px;font-size:15px;color:hsl(var(--lp-muted));line-height:1.6}.blog-card__meta{font-size:13px;color:hsl(var(--lp-muted)/.6)}.blog-post{max-width:760px;margin:0 auto;padding:120px 32px 80px}.blog-post__hero{width:100%;max-height:420px;object-fit:cover;border-radius:12px;margin-bottom:32px;background:hsl(var(--lp-surface-raised))}.blog-post__title{margin:0 0 12px;font-size:clamp(28px,5vw,42px);font-weight:800;letter-spacing:-.02em;line-height:1.15}.blog-post__excerpt{margin:0 0 12px;font-size:18px;color:hsl(var(--lp-muted));line-height:1.6}.blog-post__meta{font-size:14px;color:hsl(var(--lp-muted)/.6);margin-bottom:40px}.ui-blog-content{font-size:16.5px;line-height:1.75;color:hsl(var(--lp-ink))}.ui-blog-content h1{font-size:32px;font-weight:800;margin:48px 0 16px;letter-spacing:-.02em}.ui-blog-content h2{font-size:24px;font-weight:700;margin:40px 0 12px;letter-spacing:-.01em}.ui-blog-content h3{font-size:20px;font-weight:700;margin:32px 0 8px}.ui-blog-content p{margin:0 0 20px}.ui-blog-content a{color:hsl(var(--lp-accent));text-decoration:underline;text-underline-offset:3px;transition:color .2s}.ui-blog-content a:hover{color:hsl(var(--lp-accent-2))}.ui-blog-content strong{font-weight:700;color:hsl(var(--lp-ink))}.ui-blog-content em{font-style:italic}.ui-blog-content ol,.ui-blog-content ul{margin:0 0 20px;padding-left:24px}.ui-blog-content li{margin-bottom:8px}.ui-blog-content li::marker{color:hsl(var(--lp-accent)/.5)}.ui-blog-content blockquote{margin:24px 0;padding:16px 24px;border-left:3px solid hsl(var(--lp-accent)/.4);background:hsl(var(--lp-surface));border-radius:0 8px 8px 0;color:hsl(var(--lp-muted));font-style:italic}.ui-blog-content code{font-family:JetBrains Mono,Fira Code,monospace;font-size:.9em;padding:2px 6px;border-radius:4px;background:hsl(var(--lp-surface-raised));color:hsl(var(--lp-accent-2))}.ui-blog-content pre{margin:24px 0;padding:20px;border-radius:12px;background:hsl(var(--lp-surface));border:1px solid hsl(var(--lp-border)/.5);overflow-x:auto}.ui-blog-content pre code{padding:0;background:none;color:hsl(var(--lp-ink));font-size:14px}.ui-blog-content hr{border:none;height:1px;background:hsl(var(--lp-border));margin:40px 0}.ui-blog-content img{max-width:100%;border-radius:10px;margin:24px 0}.blog-post__related{margin-top:56px;padding-top:32px;border-top:1px solid hsl(var(--lp-border)/.4)}.blog-post__related h3{font-size:16px;font-weight:700;margin:0 0 16px;color:hsl(var(--lp-muted));text-transform:uppercase;letter-spacing:.08em;font-size:12px}.blog-post__related ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.blog-post__related a{color:hsl(var(--lp-accent));text-decoration:none;font-weight:600;font-size:15px;transition:color .2s}.blog-post__related a:hover{color:hsl(var(--lp-ink));text-decoration:underline}.blog-index__empty{text-align:center;padding:80px 32px;color:hsl(var(--lp-muted))}@media (max-width:600px){.blog-index,.blog-post{padding:100px 20px 60px}.blog-card{padding:20px}}