.blog-post{--ink:#1f4459;--body:#3a5566;--quiet:#5b7483;--line:#dce5e8;--line-strong:#b9cad1;--mist:#eef6f9;--dove:#d65194;--fold:#a93a73;--petal:#fbe6ef;--cut:14px}.blog-progress{position:fixed;inset:0 0 auto 0;z-index:60;height:3px;pointer-events:none}.blog-progress span{display:block;height:100%;background:var(--dove);transform:scaleX(0);transform-origin:left}.blog-back{max-width:46rem;margin:0 auto;padding:2rem 1rem 0}.blog-back a{display:inline-flex;gap:.5rem;font-family:var(--font-geist-mono),ui-monospace,monospace;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--quiet);transition:color .15s}.blog-back a:hover{color:var(--dove)}.blog-toc{display:none}@media (min-width:1280px){.blog-toc{display:block;position:fixed;top:7.5rem;left:calc(50% + 23rem + 2.5rem);width:13.5rem;max-height:calc(100vh - 10rem);overflow-y:auto;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}.blog-toc[data-show=true]{opacity:1;visibility:visible}}.blog-toc p{font-family:var(--font-geist-mono),ui-monospace,monospace;font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--quiet)}.blog-toc ol{margin-top:.75rem;border-left:1px solid var(--line)}.blog-toc a{display:block;margin-left:-1px;padding:.3rem 0 .3rem .875rem;border-left:2px solid transparent;font-size:.8125rem;line-height:1.35;color:var(--quiet);transition:color .15s,border-color .15s}.blog-toc a:hover{color:var(--ink)}.blog-toc a[aria-current]{color:var(--ink);font-weight:600;border-left-color:var(--dove)}.blog-post article{max-width:46rem;padding-top:1.25rem;color:var(--ink)}.blog-post article h1,.blog-post article h2,.blog-post article h3{font-family:var(--font-display),system-ui,sans-serif;text-wrap:balance}.blog-post article h1{font-size:clamp(2.25rem,5.4vw,3.25rem);line-height:1.04;letter-spacing:-.03em;margin-bottom:1.25rem}.blog-post article header>p{font-size:1.1875rem;line-height:1.65;color:var(--body)}.blog-post article h2[class*=text-2xl],.blog-post article h2[class*=text-xl]{margin-top:.5rem;padding-top:2.5rem;border-top:1px solid var(--line);border-bottom:0;font-size:clamp(1.6rem,3.2vw,2rem);line-height:1.12;letter-spacing:-.02em;scroll-margin-top:5rem}.blog-post article [class*=rounded] h2,.blog-post article [class*=text-center] h2,.blog-post article h2[class*=text-center]{margin-top:0;padding-top:0;border-top:0}.blog-post article h3{letter-spacing:-.01em;line-height:1.25}.blog-post article [class~=prose] p,.blog-post article section>p,.blog-post article>p{line-height:1.75}.blog-post article li a,.blog-post article p a{color:var(--ink);font-weight:500;text-decoration:underline;text-decoration-color:var(--dove);text-decoration-thickness:1.5px;text-underline-offset:3px;transition:color .15s}.blog-post article li a:hover,.blog-post article p a:hover{color:var(--dove)}.blog-post article [class*=rounded-]{border-radius:0}.blog-post article [class*=shadow]{box-shadow:none}.blog-post article div[class~=shadow-sm][class~=border]{position:relative;border-color:var(--line);background:#fff;clip-path:polygon(var(--cut) 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%,0 var(--cut))}.blog-post article div[class~=shadow-sm][class~=border]:after,.blog-post article div[class~=shadow-sm][class~=border]:before{content:"";position:absolute;width:calc(var(--cut) * 1.4143);height:1px;background:var(--line-strong);pointer-events:none}.blog-post article div[class~=shadow-sm][class~=border]:before{top:calc(var(--cut) - 1px);left:-1px;transform:rotate(-45deg);transform-origin:0 0}.blog-post article div[class~=shadow-sm][class~=border]:after{right:-1px;bottom:calc(var(--cut) - 1px);transform:rotate(-45deg);transform-origin:100% 100%}.blog-post article div[class*=border]:has(>[class*=text-center] a[href]),.blog-post article div[class*=border][class*=text-center]:has(a[href]){border-color:transparent;background:var(--petal);clip-path:polygon(var(--cut) 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%,0 var(--cut))}.blog-post article div[class*=border]:has(>[class*=text-center] a[href]):after,.blog-post article div[class*=border]:has(>[class*=text-center] a[href]):before,.blog-post article div[class*=border][class*=text-center]:has(a[href]):after,.blog-post article div[class*=border][class*=text-center]:has(a[href]):before{display:none}.blog-post article [class*=rounded-full][class*=text-xs]{padding:.4rem .625rem;border-color:transparent;background:#edf2f3;font-family:var(--font-geist-mono),ui-monospace,monospace;font-size:.6875rem;font-weight:500;line-height:1;text-transform:uppercase;letter-spacing:.06em;color:var(--ink);clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px)}.blog-post article div[class*=overflow-x-auto]{border:1px solid var(--line);background:#fff}.blog-post article table{width:100%;border-collapse:collapse;font-size:.9375rem}.blog-post article table td,.blog-post article table th{border-width:0 0 1px;border-color:var(--line);padding:.875rem 1rem;vertical-align:top}.blog-post article table thead th{background:var(--mist);font-family:var(--font-geist-mono),ui-monospace,monospace;font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--quiet);white-space:nowrap}.blog-post article table thead tr{background:var(--mist)}.blog-post article table tbody tr:last-child td,.blog-post article table tbody tr:last-child th{border-bottom-width:0}.blog-post article table tbody tr:hover{background:#f6fafb}.blog-post article pre{overflow-x:auto;padding:1.25rem 1.375rem;background:var(--ink);color:#e3f3fa;font-size:.8125rem;line-height:1.65;clip-path:polygon(var(--cut) 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%,0 var(--cut))}.blog-post article :not(pre)>code,.blog-post article pre{font-family:var(--font-geist-mono),ui-monospace,monospace}.blog-post article :not(pre)>code{padding:.1rem .35rem;background:#edf2f3;font-size:.875em;color:var(--ink)}.blog-post article pre code{background:none;color:inherit}@media (max-width:639px){.blog-post{--cut:10px}}@media (min-width:640px){.blog-back{padding-inline:1.5rem}}