.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:3rem;align-items:start;padding:1.5rem 0 0}.article-header{margin-bottom:2rem}.article-header .tag{margin-bottom:.9rem}.article-header h1{margin-bottom:.85rem;line-height:1.2}.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;font-size:.84rem;color:var(--text-tertiary);padding-bottom:1.25rem;border-bottom:1px solid var(--border)}.article-meta time{color:var(--text-tertiary)}.article-meta .sep{color:var(--border)}.article-lead{font-size:1.08rem;color:var(--text-secondary);margin:1.5rem 0;line-height:1.7}.article-body{font-size:1rem}.article-body>* + *{margin-top:1.15rem}.article-body h2{margin-top:2.75rem;margin-bottom:.35rem;padding-top:.35rem;scroll-margin-top:calc(var(--header-h) + 30px)}.article-body h3{margin-top:1.9rem;margin-bottom:.2rem;scroll-margin-top:calc(var(--header-h) + 30px)}.article-body h4{margin-top:1.4rem;margin-bottom:.1rem}.article-body p{color:var(--text-secondary)}.article-body strong{color:var(--text-primary);font-weight:600}.article-body ul,.article-body ol{padding-left:1.4rem;color:var(--text-secondary)}.article-body li + li{margin-top:.45rem}.article-body li::marker{color:var(--text-tertiary)}.article-body ul ul,.article-body ol ol{margin-top:.45rem}.article-body a{text-decoration:underline;text-underline-offset:2px}.article-body a:hover{color:var(--primary-dark)}.article-body img{border-radius:var(--radius);border:1px solid var(--border);margin:1.5rem 0;width:100%}.article-body figure{margin:1.5rem 0}.article-body figcaption{font-size:.82rem;color:var(--text-tertiary);text-align:center;margin-top:.5rem}.article-body blockquote{border-left:3px solid var(--primary);padding:.25rem 0 .25rem 1.15rem;color:var(--text-secondary);font-style:italic;margin:1.5rem 0}.article-body hr{border:none;border-top:1px solid var(--border);margin:2.25rem 0}.steps{list-style:none;padding-left:0;counter-reset:step}.steps>li{position:relative;padding-left:2.6rem;margin-top:1.1rem;color:var(--text-secondary)}.steps>li::before{counter-increment:step;content:counter(step);position:absolute;left:0;top:.05rem;width:1.85rem;height:1.85rem;display:grid;place-items:center;border-radius:50%;background:var(--primary-light);color:var(--primary-dark);font-size:.82rem;font-weight:700;font-family:var(--font-mono)}[data-theme="dark"] .steps>li::before{color:#BFDBFE}.steps>li strong{display:block;color:var(--text-primary);margin-bottom:.15rem}.toc{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-secondary);padding:1.15rem 1.35rem;margin:2rem 0}.toc h2{font-size:.82rem !important;text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary);margin:0 0 .75rem !important;padding:0 !important}.toc ol{list-style:none;padding-left:0;counter-reset:toc}.toc li{margin-top:.4rem}.toc li::before{counter-increment:toc;content:counter(toc) ".";font-family:var(--font-mono);font-size:.78rem;color:var(--text-tertiary);margin-right:.5rem}.toc a{color:var(--text-secondary);text-decoration:none;font-size:.92rem}.toc a:hover{color:var(--primary);text-decoration:underline}.article-faq{margin-top:3rem}.article-faq h2{margin-bottom:1rem}.faq-list{display:flex;flex-direction:column;gap:.7rem}.faq-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-primary);overflow:hidden}.faq-item summary{cursor:pointer;padding:.95rem 1.15rem;font-weight:600;font-size:.96rem;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;color:var(--text-primary)}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary::after{content:"+";font-size:1.25rem;font-weight:400;color:var(--text-tertiary);line-height:1;flex-shrink:0}.faq-item[open] summary::after{content:"\2212"}.faq-item[open] summary{border-bottom:1px solid var(--border)}.faq-item .faq-answer{padding:.95rem 1.15rem;color:var(--text-secondary);font-size:.92rem}.faq-item .faq-answer p + p{margin-top:.7rem}.faq-item .faq-answer ul{padding-left:1.2rem;margin-top:.6rem}.article-footer-note{margin-top:2.5rem;padding:1.15rem 1.3rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-secondary);font-size:.85rem;color:var(--text-secondary);line-height:1.65}.article-footer-note strong{color:var(--text-primary)}.article-nav{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2.5rem}.article-nav a{border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.15rem;text-decoration:none;background:var(--bg-primary);transition:background .15s,border-color .15s}.article-nav a:hover{background:var(--bg-tertiary);border-color:color-mix(in srgb,var(--primary) 30%,var(--border));text-decoration:none}.article-nav span{display:block;font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin-bottom:.3rem}.article-nav strong{font-size:.92rem;color:var(--text-primary);font-weight:600;line-height:1.45}.article-nav .next{text-align:right}.article-sidebar{position:sticky;top:calc(var(--header-h) + 20px);display:flex;flex-direction:column;gap:1.25rem}.side-box{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-secondary);padding:1.2rem 1.3rem}.side-box h2,.side-box h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary);margin-bottom:.85rem;font-weight:600}.side-box dl{display:grid;grid-template-columns:auto 1fr;gap:.45rem .8rem;font-size:.85rem}.side-box dt{color:var(--text-tertiary)}.side-box dd{color:var(--text-primary);text-align:right;font-weight:500}.side-box dd.version{font-family:var(--font-mono);font-size:.82rem}.side-box p{font-size:.85rem;color:var(--text-secondary)}.side-links{list-style:none;display:flex;flex-direction:column;gap:.1rem}.side-links li + li{border-top:1px solid var(--border)}.side-links a{display:block;padding:.6rem 0;font-size:.9rem;color:var(--text-secondary);text-decoration:none;line-height:1.45}.side-links a:hover{color:var(--primary)}.side-tags{display:flex;flex-wrap:wrap;gap:.4rem}.side-note{border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);background:var(--bg-primary);padding:1rem 1.15rem;font-size:.82rem;color:var(--text-secondary);line-height:1.6}.side-note strong{display:block;color:var(--text-primary);margin-bottom:.3rem;font-size:.85rem}@media (max-width:1024px){.article-layout{grid-template-columns:1fr;gap:2.25rem}.article-sidebar{position:static}}@media (max-width:768px){.article-body{font-size:.98rem}.article-lead{font-size:1rem}.article-nav{grid-template-columns:1fr}.article-nav .next{text-align:left}.article-body h2{margin-top:2.1rem}}
