.blog .link{color:var(--text);cursor:pointer;font-weight:500;text-decoration:none;position:relative}.blog .link:after{content:"";transform-origin:100%;height:1.5px;transition:transform var(--dur-base) var(--ease-out);background:currentColor;position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.blog .link:hover:after{transform-origin:0;transform:scaleX(1)}.blog-index{max-width:760px;margin:0 auto;padding:120px 24px 96px}.blog-index .blog-lede h1{letter-spacing:-.03em;font-size:clamp(34px,5vw,52px);font-weight:800;line-height:1.05}.blog-index .blog-lede p{max-width:560px;color:var(--text-secondary);margin:16px 0 0;font-size:clamp(15px,1.6vw,18px);line-height:1.55}.post-list{flex-direction:column;margin-top:56px;display:flex}.post-row{box-shadow:0 1px 0 var(--divider);color:inherit;padding:26px 0;text-decoration:none;display:block}.post-row:first-child{padding-top:0}.post-row time{color:var(--text-tertiary);letter-spacing:0;font-size:13px;font-weight:500;display:block}.post-row h2{letter-spacing:-.02em;color:var(--text);margin:8px 0 0;font-size:clamp(20px,2.4vw,25px);font-weight:700;line-height:1.2}.post-row p{color:var(--text-secondary);max-width:620px;margin:8px 0 0;font-size:15.5px;line-height:1.55}.post-row h2 span{transition:background-size var(--dur-base) var(--ease-out);background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1.5px;padding-bottom:1px}.post-row:hover h2 span{background-size:100% 1.5px}.article{max-width:720px;margin:0 auto;padding:116px 24px 40px}.article .back{color:var(--text-tertiary);cursor:pointer;font-size:14px;font-weight:500;text-decoration:none;display:inline-block}.article .back:hover{color:var(--text-secondary)}.article-head{margin-top:28px}.article-head time{color:var(--text-tertiary);font-size:13px;font-weight:500}.article-head h1{letter-spacing:-.03em;margin:12px 0 0;font-size:clamp(30px,4.4vw,46px);font-weight:800;line-height:1.08}.article-head .desc{color:var(--text-secondary);margin:16px 0 0;font-size:clamp(16px,1.9vw,19px);line-height:1.5}.article-body{max-width:68ch;color:var(--text);margin-top:44px;font-size:17px;line-height:1.72}.article-body>*+*{margin-top:22px}.article-body h2{letter-spacing:-.02em;margin-top:52px;font-size:clamp(22px,2.8vw,28px);font-weight:700;line-height:1.2}.article-body h3{letter-spacing:-.01em;margin-top:36px;font-size:clamp(18px,2.2vw,21px);font-weight:700;line-height:1.25}.article-body p{color:var(--text)}.article-body a{color:var(--text);background-image:linear-gradient(var(--accent), var(--accent));cursor:pointer;transition:background-size var(--dur-fast) var(--ease-out);background-position:0 100%;background-repeat:no-repeat;background-size:100% 1.5px;padding-bottom:1px;font-weight:500;text-decoration:none}.article-body a:hover{background-size:0% 1.5px}.article-body ul,.article-body ol{padding-left:24px}.article-body li{margin-top:10px;line-height:1.65}.article-body li::marker{color:var(--text-tertiary)}.article-body strong{font-weight:700}.article-body blockquote{box-shadow:inset 3px 0 0 var(--divider);color:var(--text-secondary);padding:4px 0 4px 22px;font-style:normal}.article-body h2+p,.article-body h3+p{margin-top:16px}.article-cta{background:var(--capsule-bg);text-align:center;border-radius:20px;max-width:68ch;margin:64px auto 0;padding:30px 32px}.article-cta h3{letter-spacing:-.02em;font-size:clamp(20px,2.4vw,24px);font-weight:800}.article-cta p{max-width:460px;color:var(--text-secondary);margin:10px auto 0;font-size:15px;line-height:1.55}.article-cta .cta-row{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:22px;display:flex}.blog .btn-primary,.blog .btn-ghosted{border-radius:var(--radius-full);height:44px;font-family:var(--font-body);cursor:pointer;transition:opacity var(--dur-fast), transform var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;padding:0 22px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.blog .btn-primary{background:var(--text);color:var(--page-bg)}.blog .btn-primary:hover{opacity:.9}.blog .btn-primary:active{transform:scale(.97)}.blog .btn-ghosted{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001a}.blog .btn-ghosted:hover{opacity:.85}@media (max-width:640px){.blog-index{padding:96px 20px 72px}.article{padding:92px 20px 32px}.article-body{font-size:16.5px}}
