.blog{--b-read:72ch;--b-head:96px}.b-hero-title{font-size:clamp(2.5rem,1.6rem + 3.6vw,4.5rem);line-height:1.02;letter-spacing:-.035em;font-weight:300;text-wrap:balance}.blog:lang(ja) .b-hero-title,.blog:lang(ko) .b-hero-title,.blog:lang(zh-CN) .b-hero-title{letter-spacing:-.01em;line-height:1.15}.b-tabs{max-width:100%;overflow-x:auto;scrollbar-width:none;margin-inline:-.25rem;padding:.25rem}.b-tabs::-webkit-scrollbar{display:none}.b-tab{display:inline-flex;align-items:center;min-height:44px;padding:0 1rem;border:1px solid var(--l-line);border-radius:999px;font-size:.875rem;color:var(--l-muted);white-space:nowrap;transition:color .2s,border-color .2s,background-color .2s}.b-tab:hover{color:var(--l-fg);border-color:var(--l-line-strong)}.b-tab[aria-current=page]{color:#09090b;background:var(--l-fg);border-color:var(--l-fg)}.b-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;font-size:.8125rem;color:var(--l-dim)}.b-cat{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;color:var(--l-accent-text)}.b-dot{width:3px;height:3px;background:var(--l-line-strong)}.b-badge,.b-dot{border-radius:999px}.b-badge{display:inline-flex;align-items:center;height:22px;padding:0 .55rem;font-size:.6875rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--l-fg);background:hsl(220 100% 56%/.18);border:1px solid hsl(220 100% 72%/.35)}.b-cover{position:relative;overflow:hidden;aspect-ratio:1200/630;border-radius:14px;border:1px solid var(--l-line);background:#111113}.b-cover img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--l-ease)}.b-cover--ph{background:radial-gradient(120% 90% at 85% 0,hsl(220 100% 56%/.35),transparent 55%),radial-gradient(80% 80% at 0 100%,rgb(250 250 250/.08),transparent 60%),linear-gradient(160deg,#141418,#09090b 70%)}.b-ph-tri{position:absolute;aspect-ratio:1.15;clip-path:polygon(50% 0,100% 100%,0 100%);background:linear-gradient(180deg,rgb(250 250 250/.5),rgb(250 250 250/0));opacity:.35}.b-ph-tri--a{width:34%;right:12%;top:18%}.b-ph-tri--b{width:18%;right:40%;top:48%;opacity:.18;transform:rotate(180deg)}.b-feature-title{font-size:clamp(1.75rem,1.2rem + 1.8vw,2.75rem);line-height:1.1;letter-spacing:-.03em;font-weight:400;color:var(--l-fg);text-wrap:balance;transition:color .2s}.blog:lang(ja) .b-feature-title,.blog:lang(ko) .b-feature-title,.blog:lang(zh-CN) .b-feature-title{letter-spacing:-.005em;line-height:1.3}.b-card:hover .b-cover img,.b-feature:hover .b-cover img{transform:scale(1.025)}.b-feature:hover .b-feature-title{color:#fff}.b-card{border:1px solid var(--l-line);border-radius:16px;overflow:hidden;background:linear-gradient(180deg,rgb(24 24 27/.55),rgb(9 9 11/.2));transition:border-color .3s,transform .4s var(--l-ease)}.b-card:hover{border-color:var(--l-line-strong);transform:translateY(-3px)}.b-card .b-cover{border:0;border-bottom:1px solid var(--l-line);border-radius:0}.b-card--row .b-cover{border:0;border-right:1px solid var(--l-line)}@media (max-width:639px){.b-card--row .b-cover{border-right:0;border-bottom:1px solid var(--l-line)}}.b-card-title{font-size:1.1875rem;line-height:1.35;font-weight:500;color:var(--l-fg);letter-spacing:-.01em;text-wrap:balance}.b-avatar{display:inline-grid;place-items:center;flex-shrink:0;border-radius:999px;object-fit:cover;border:1px solid var(--l-line-strong)}.b-avatar--initials{background:linear-gradient(135deg,hsl(220 100% 56%/.55),#27272a);color:var(--l-fg);font-weight:500;letter-spacing:.02em}.b-article{max-width:var(--b-read)}@media (min-width:1280px){.b-main{width:100%;max-width:var(--b-read);justify-self:center}}.b-crumbs{display:flex;flex-wrap:wrap;gap:.25rem .5rem;font-size:.875rem;color:var(--l-dim)}.b-crumbs li{display:inline-flex;align-items:center;gap:.5rem}.b-crumbs li+li:before{content:"/";color:var(--l-line-strong)}.b-crumbs a{display:inline-flex;align-items:center;min-height:44px;color:var(--l-muted);transition:color .2s}.b-crumbs a:hover{color:var(--l-fg)}.b-title{font-size:clamp(2.125rem,1.4rem + 2.8vw,3.5rem);line-height:1.08;letter-spacing:-.035em;font-weight:400;text-wrap:balance}.b-title:lang(ja),.b-title:lang(ko),.b-title:lang(zh-CN){letter-spacing:-.01em;line-height:1.25;font-size:clamp(1.875rem,1.3rem + 2.2vw,3rem)}.b-note{border:1px solid hsl(38 92% 50%/.35);background:hsl(38 92% 50%/.08);color:#fde68a;border-radius:10px;padding:.75rem 1rem;font-size:.875rem}.b-tag{height:26px;padding:0 .6rem}.b-tag,.b-topic{display:inline-flex;align-items:center;border-radius:6px;border:1px solid var(--l-line);color:var(--l-muted);font-family:var(--font-mono);font-size:.75rem}.b-topic{min-height:44px;padding:0 .75rem;transition:color .2s,border-color .2s}.b-topic:hover{color:var(--l-fg);border-color:var(--l-line-strong)}.b-toc{display:grid;gap:.125rem;font-size:.875rem}.b-toc a{display:block;padding:.4rem 0 .4rem .875rem;border-left:1px solid var(--l-line);color:var(--l-dim);line-height:1.45;transition:color .2s,border-color .2s}.b-toc .b-toc-sub a{padding-left:1.75rem;font-size:.8125rem}.b-toc a:hover{color:var(--l-fg)}.b-toc a[aria-current=location]{color:var(--l-fg);border-left-color:var(--l-accent);box-shadow:inset 1px 0 0 var(--l-accent)}.b-toc-rail{position:sticky;top:var(--b-head);max-height:calc(100vh - var(--b-head) - 2rem);overflow-y:auto;padding-bottom:2rem}.b-toc-mobile{border:1px solid var(--l-line);border-radius:12px;background:rgb(17 17 19/.7)}.b-toc-mobile summary{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:0 1rem;cursor:pointer;list-style:none;font-size:.9375rem;color:var(--l-fg)}.b-toc-mobile summary::-webkit-details-marker{display:none}.b-toc-mobile summary:after{content:"";width:8px;height:8px;border-right:1.5px solid var(--l-muted);border-bottom:1.5px solid var(--l-muted);transform:rotate(45deg) translateY(-2px);transition:transform .25s var(--l-ease)}.b-toc-mobile[open] summary:after{transform:rotate(-135deg) translateY(-2px)}.b-toc-mobile .b-toc a{min-height:44px;display:flex;align-items:center}.b-panel{border:1px solid var(--l-line);border-radius:14px;background:rgb(17 17 19/.6);transition:border-color .25s,background-color .25s}.b-nav:hover{border-color:var(--l-line-strong);background:rgb(24 24 27/.8)}.b-nav-label{display:flex;align-items:center;gap:.4rem;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--l-dim);font-family:var(--font-mono)}.b-cta{border:1px solid var(--l-line);border-radius:20px;background:#0c0c0e}.blog-content{font-size:1.0625rem;line-height:1.8;color:#d4d4d8;max-width:var(--b-read);overflow-wrap:anywhere}@media (min-width:768px){.blog-content{font-size:1.125rem}}.blog-content>*+*{margin-top:1.25em}.blog-content h2,.blog-content h3{position:relative;color:var(--l-fg);scroll-margin-top:var(--b-head);text-wrap:balance}.blog-content h2{font-size:1.75rem;line-height:1.25;font-weight:500;letter-spacing:-.02em;margin-top:2.4em;padding-top:.2em}.blog-content h3{font-size:1.3rem;line-height:1.35;font-weight:500;letter-spacing:-.01em;margin-top:1.9em}.blog-content h2+*,.blog-content h3+*{margin-top:.8em}.blog-content .heading-wrap{display:flex;align-items:baseline;flex-wrap:wrap}.blog-content .heading-wrap--h2{margin-top:2.4em}.blog-content .heading-wrap--h3{margin-top:1.9em}.blog-content .heading-wrap>:is(h2,h3){margin-top:0}.blog-content .heading-wrap--h2 .heading-anchor{font-size:1.4rem}.blog-content .heading-wrap--h3 .heading-anchor{font-size:1.05rem}.blog-content .heading-wrap+*{margin-top:.8em}.blog-content strong{color:var(--l-fg);font-weight:600}.blog-content a{color:var(--l-accent-text);text-decoration:underline;text-decoration-color:hsl(220 100% 72%/.4);text-underline-offset:4px;transition:text-decoration-color .2s}.blog-content a:hover{text-decoration-color:currentColor}.blog-content ul{list-style:disc;padding-left:1.4em}.blog-content ol{list-style:decimal;padding-left:1.4em}.blog-content li+li{margin-top:.4em}.blog-content li::marker{color:var(--l-dim)}.blog-content hr{border:0;border-top:1px solid var(--l-line);margin:3em 0}.blog-content blockquote{border-left:2px solid var(--l-accent);padding:.1em 0 .1em 1.1em;color:var(--l-muted);font-style:normal}.blog-content .heading-anchor{display:inline-grid;place-items:center;width:1.4em;height:1.4em;margin-left:.3em;vertical-align:.05em;border-radius:6px;color:var(--l-dim);text-decoration:none;font-weight:400;opacity:0;transition:opacity .2s,color .2s}.blog-content .heading-anchor:focus-visible,.blog-content .heading-wrap:hover .heading-anchor{opacity:1}.blog-content .heading-anchor:hover{color:var(--l-accent-text)}@media (hover:none){.blog-content .heading-anchor{opacity:.45}}.blog-content img{max-width:100%;height:auto;border-radius:12px;border:1px solid var(--l-line-strong)}.blog-content img[src$=".svg"]{background:#fafafa;padding:clamp(.5rem,2vw,1.25rem)}.blog-content p:has(>img:only-child){margin-top:2em;margin-bottom:2em}.blog-content :not(pre)>code{font-family:var(--font-mono);font-size:.86em;padding:.12em .4em;border-radius:6px;color:#e4e4e7;background:rgb(39 39 42/.7);border:1px solid var(--l-line)}.blog-content .table-wrap{overflow-x:auto;border:1px solid var(--l-line);border-radius:12px}.blog-content table{width:100%;border-collapse:collapse;font-size:.9em;line-height:1.6}.blog-content td,.blog-content th{padding:.65em .9em;text-align:left;vertical-align:top;border-bottom:1px solid var(--l-line)}.blog-content th{color:var(--l-fg);font-weight:500;background:rgb(24 24 27/.8);white-space:nowrap}.blog-content tr:last-child td{border-bottom:0}.blog-content td+td,.blog-content th+th{border-left:1px solid var(--l-line)}.blog-content .callout{--c:220 100% 64%;border:1px solid hsl(var(--c)/.3);border-left:3px solid hsl(var(--c));border-radius:10px;padding:.9em 1.15em;background:hsl(var(--c)/.07);font-size:.95em}.blog-content .callout-tip{--c:152 62% 48%}.blog-content .callout-warning{--c:38 92% 55%}.blog-content .callout>*+*{margin-top:.5em}.blog-content .callout-title{font-weight:600;color:hsl(var(--c));font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase}.blog-content .callout-title strong{color:inherit}.blog-content .cta{margin-top:1.75em}.blog-content .cta-button{display:inline-flex;align-items:center;min-height:44px;padding:0 1.25rem;border-radius:10px;background:var(--l-fg);color:#09090b;font-weight:500;font-size:.9375rem;text-decoration:none;transition:box-shadow .25s var(--l-ease),background-color .2s}.blog-content .cta-button:hover{background:#fff;box-shadow:0 10px 40px -10px hsl(220 100% 56%/.65),0 0 0 1px hsl(220 100% 72%/.6)}.blog-content .code-block{position:relative}.blog-content .code-block:has(.code-lang)>pre{padding-top:2.6em}.blog-content .code-lang{position:absolute;top:.7rem;left:1.25rem;z-index:1;font-family:var(--font-mono);font-size:.75rem;color:var(--l-dim);text-transform:lowercase}.blog-content .code-copy{position:absolute;top:4px;right:4px;z-index:1;min-height:44px;min-width:44px;padding:0 .75rem;border-radius:8px;font-size:.75rem;color:var(--l-muted);background:rgb(24 24 27/.85);border:1px solid var(--l-line-strong);opacity:.75;transition:opacity .2s,color .2s,background-color .2s,border-color .2s}.blog-content .code-block:hover .code-copy,.blog-content .code-copy:focus-visible,.blog-content .code-copy[data-state]{opacity:1;color:var(--l-fg)}.blog-content .code-copy[data-state=copied]{color:hsl(152 62% 60%)}.blog-content .code-copy[data-state=failed]{color:hsl(0 84% 70%)}.blog-content .code-status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.blog-content .code-block>pre{margin:0;padding-right:5rem}.blog-content pre{overflow-x:auto;border:1px solid var(--l-line);border-radius:12px;padding:1.1em 1.25em;font-family:var(--font-mono);font-size:.8125rem;line-height:1.75;tab-size:2}@media (min-width:768px){.blog-content pre{font-size:.84rem}}.blog-content .shiki{background-color:var(--shiki-dark-bg)}.blog-content .shiki,.blog-content .shiki span{color:var(--shiki-dark)}.blog-content pre code{background:transparent;padding:0;border:0;font-size:inherit;color:inherit}@media (prefers-reduced-motion:reduce){.blog *,.blog :after{transition:none!important}.b-card:hover,.b-card:hover .b-cover img,.b-feature:hover .b-cover img{transform:none}}.b-title:is(:lang(ja),:lang(zh-CN)),.blog:lang(ja) :is(.b-hero-title,.b-feature-title,.b-card-title,.b-title,.blog-content h2,.blog-content h3),.blog:lang(zh-CN) :is(.b-hero-title,.b-feature-title,.b-card-title,.b-title,.blog-content h2,.blog-content h3){word-break:auto-phrase}.b-title:lang(ko),.blog:lang(ko) :is(.b-hero-title,.b-feature-title,.b-card-title,.b-title,.blog-content h2,.blog-content h3){word-break:keep-all}.blog-content .b-mid-cta{margin-top:2.4em;padding:1.25rem 1.5rem;border:1px solid var(--l-line);border-left:2px solid var(--l-line-strong);border-radius:12px;background:rgb(17 17 19/.6);display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem}.blog-content .b-mid-cta p{margin:0;line-height:1.5}.blog-content .b-mid-cta-title{flex:1 1 100%;color:var(--l-fg);font-size:1.0625rem;font-weight:500}.blog-content .b-mid-cta-body{flex:1 1 16rem;font-size:.9375rem;color:var(--l-muted)}.blog-content .b-mid-cta .l-btn{min-height:44px;text-decoration:none}.blog-content .b-mid-cta+.heading-wrap{margin-top:2.4em}