/* W3Doc — deferred.css — loaded async, non-critical styles */

/* Sidebar transitions (not needed for first paint) */
.doc-sidebar-link{transition:background .12s,color .12s,border-color .12s}
.doc-sidebar::-webkit-scrollbar{width:4px}
.doc-sidebar::-webkit-scrollbar-track{background:transparent}
.doc-sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}
.doc-toc::-webkit-scrollbar{width:4px}
.doc-toc::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}
.doc-toc-list a.toc-active{color:var(--accent);font-weight:600}

/* Breadcrumb */
.doc-breadcrumb{margin-bottom:20px}
.doc-breadcrumb ol{display:flex;list-style:none;flex-wrap:wrap;gap:4px;font-size:.8rem;color:var(--muted-text)}
.doc-breadcrumb li+li::before{content:"›";margin-right:4px}
.doc-breadcrumb a{color:var(--muted-text)}
.doc-breadcrumb a:hover{color:var(--accent)}

/* Content typography */
.doc-post-content ul,.doc-post-content ol{margin:.9em 0;padding-left:1.8em}
.doc-post-content li+li{margin-top:.3em}
.doc-post-content ul{list-style:disc}
.doc-post-content ol{list-style:decimal}
.doc-post-content blockquote{border-left:4px solid var(--accent);background:var(--accent-light);margin:1.5em 0;padding:14px 20px;border-radius:0 4px 4px 0;font-size:.95rem;color:var(--body-text)}
.dark .doc-post-content blockquote{background:rgba(4,170,109,.1)}
.doc-post-content blockquote p{margin:0}
.doc-post-content :not(pre)>code{font-family:var(--font-code);font-size:.875em;background:var(--inline-code-bg);color:var(--inline-code-text);padding:.15em .4em;border-radius:3px;white-space:nowrap}
.doc-post-content pre,pre[class*="language-"]{font-family:var(--font-code);font-size:.875rem;background:var(--code-bg);color:var(--code-text);padding:18px 20px;border-radius:4px;overflow-x:auto;margin:1.5em 0;line-height:1.55;tab-size:2}
.doc-post-content pre code{background:none;color:inherit;padding:0;font-size:inherit;white-space:pre}
.doc-post-content table{width:100%;border-collapse:collapse;margin:1.5em 0;font-size:.9rem;overflow-x:auto;display:block}
.doc-post-content th{background:var(--accent);color:#fff;font-weight:600;text-align:left;padding:10px 14px}
.doc-post-content td{padding:9px 14px;border-bottom:1px solid var(--border)}
.doc-post-content tr:nth-child(even) td{background:rgba(4,170,109,.04)}
.doc-post-content tr:hover td{background:rgba(4,170,109,.08)}
.doc-post-content img{max-width:100%;height:auto;border-radius:4px;margin:1.2em 0;border:1px solid var(--border)}
.doc-post-content .kg-callout-card{border-radius:4px;padding:14px 18px;margin:1.5em 0;border-left:4px solid var(--accent);background:var(--accent-light);font-size:.95rem}
.dark .doc-post-content .kg-callout-card{background:rgba(4,170,109,.1)}
.doc-post-content hr{border:none;border-top:1px solid var(--border);margin:2em 0}
.hover-title{position:relative}
.hover-title .anchor{position:absolute;left:-1.5em;padding:0 .3em;color:var(--muted-text);opacity:0;visibility:hidden;transition:opacity .2s;font-size:.85em}
.hover-title:hover .anchor{opacity:1;visibility:visible}
.docstoc::before{content:"— ";opacity:.5;font-weight:400}
.doc-edit-github{margin-top:2.5em;padding-top:1.5em;border-top:1px solid var(--border)}
.doc-edit-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;background:var(--code-bg);color:var(--code-text);border-radius:4px;font-size:.875rem;font-weight:600;text-decoration:none;transition:background .15s}
.doc-edit-btn:hover{background:#3a3d50;text-decoration:none}
.doc-btn-icon{width:16px;height:16px;flex-shrink:0}

/* Pagination */
.doc-pagination{display:flex;justify-content:space-between;gap:16px;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--border)}
.doc-pagination__item{display:flex;flex-direction:column;gap:4px;padding:14px 18px;border:1px solid var(--border);border-radius:4px;max-width:45%;text-decoration:none;transition:border-color .15s,background .15s;background:var(--content-bg)}
.doc-pagination__item:hover{border-color:var(--accent);background:var(--accent-light);text-decoration:none}
.dark .doc-pagination__item:hover{background:rgba(4,170,109,.1)}
.doc-pagination__item--next{margin-left:auto;text-align:right}
.doc-pagination__label{font-size:.78rem;color:var(--muted-text);font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.doc-pagination__title{font-size:.925rem;font-weight:600;color:var(--body-text);line-height:1.3}

/* Home grid */



















/* Post template */
.post-hero{margin-bottom:0}
.post-hero__img{width:100%;max-height:480px;object-fit:cover;display:block}
.post-hero__caption{font-size:.8rem;color:var(--muted-text);text-align:center;padding:6px 0}
.post-article{padding-top:28px}
.post-header{margin-bottom:20px}
.post-tag{display:inline-block;background:var(--accent-light);color:var(--accent-dark);font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:20px;margin-bottom:12px;text-decoration:none;letter-spacing:.04em;text-transform:uppercase}
.dark .post-tag{background:rgba(4,170,109,.15);color:#4ade90}
.post-tag:hover{background:var(--accent);color:#fff;text-decoration:none}
.post-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:.82rem;color:var(--muted-text);margin-top:12px}
.post-meta__author{font-weight:600;color:var(--body-text)}
.post-meta__read::before{content:"·";margin-right:14px}
.post-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}

/* Page template */
.page-wrap{max-width:840px;margin:0 auto;padding:40px 24px 80px}

/* Error 404 */
.error-msg{font-size:1.8rem;font-weight:700;margin:8px 0}
.error-desc{color:var(--muted-text);margin:0 0 28px}

/* Archive pages */
.archive-wrap{max-width:1200px;margin:0 auto;padding:0 24px 80px}
.archive-header{margin-bottom:40px}
.archive-hero{height:200px;background-size:cover;background-position:center;border-radius:4px;margin-bottom:20px}
.archive-header__inner{padding:28px 0 0}
.archive-header__inner--author{display:flex;align-items:flex-start;gap:20px}
.author-avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;flex-shrink:0;border:3px solid var(--accent)}
.archive-title{font-size:2rem;font-weight:700;color:var(--body-text);margin-bottom:8px}
.archive-desc{color:var(--muted-text);font-size:1.05rem;margin-bottom:8px;max-width:600px}
.archive-meta{font-size:.85rem;color:var(--muted-text);margin-bottom:4px}
.archive-count{font-size:.82rem;color:var(--accent);font-weight:600;margin-top:8px}
.archive-empty{text-align:center;padding:60px 0;color:var(--muted-text)}
.archive-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.archive-card{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:4px;overflow:hidden;background:var(--content-bg);color:var(--body-text);text-decoration:none;transition:border-color .15s,box-shadow .15s;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.archive-card:hover{border-color:var(--accent);box-shadow:0 4px 12px rgba(0,0,0,.15);text-decoration:none}
.archive-card__img-wrap{height:180px;overflow:hidden}
.archive-card__img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.archive-card:hover .archive-card__img{transform:scale(1.03)}
.archive-card__body{padding:16px;flex:1;display:flex;flex-direction:column;gap:8px}
.archive-card__title{font-size:1rem;font-weight:700;line-height:1.3;color:var(--body-text)}
.archive-card__excerpt{font-size:.875rem;color:var(--muted-text);line-height:1.5;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;flex:1}
.archive-card__date{font-size:.75rem;color:var(--muted-text);margin-top:auto}
.archive-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:48px;padding-top:24px;border-top:1px solid var(--border)}
.archive-pagination__info{font-size:.875rem;color:var(--muted-text)}

/* Ghost KG Cards */
.kg-image-card{margin:1.5em 0}
.kg-image-card img{border-radius:4px;border:1px solid var(--border)}
.kg-width-wide{width:100%;max-width:100%;margin-left:auto;margin-right:auto}
.kg-width-wide img{width:100%;height:auto;border-radius:4px;border:1px solid var(--border)}
.kg-width-full{margin-left:-40px;margin-right:-40px}
.kg-width-full img{width:100%;border-radius:0;border:none}
figcaption{font-size:.8rem;color:var(--muted-text);text-align:center;margin-top:6px}
.kg-bookmark-container{display:flex;flex-direction:row-reverse;border:1px solid var(--border);border-radius:4px;overflow:hidden;text-decoration:none;color:var(--body-text);transition:border-color .15s;margin:1.5em 0}
.kg-bookmark-container:hover{border-color:var(--accent);text-decoration:none}
.kg-bookmark-content{padding:14px 16px;flex:1}
.kg-bookmark-title{font-weight:600;font-size:.95rem;margin-bottom:6px;color:var(--body-text)}
.kg-bookmark-description{font-size:.83rem;color:var(--muted-text);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}
.kg-bookmark-metadata{display:flex;align-items:center;font-size:.78rem;color:var(--muted-text);margin-top:10px}
.kg-bookmark-icon{width:16px;height:16px;margin-right:6px}
.kg-bookmark-author::after{content:"·";margin:0 4px}
.kg-bookmark-thumbnail{flex-shrink:0;min-height:120px;min-width:140px;max-width:180px;position:relative;overflow:hidden}
.kg-bookmark-thumbnail img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.kg-video-card,.kg-embed-card{margin:1.5em 0}
.kg-video-card video{width:100%;border-radius:4px}
.kg-embed-card iframe{width:100%;border-radius:4px}

/* Prism overrides */
code[class*="language-"],pre[class*="language-"]{font-family:var(--font-code);font-size:.875rem;text-shadow:none;background:var(--code-bg);color:#e2e8f0;border-radius:4px}
.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#74859a}
.token.punctuation{color:#c5d0de}
.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol{color:#f6c90e}
.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin{color:#a8e6a3}
.token.operator,.token.entity,.token.url{color:#89d3fe}
.token.atrule,.token.attr-value,.token.keyword{color:#ce9cef}
.token.function{color:#62d3f5}
.token.regex,.token.important,.token.variable{color:#ffb347}
.token.important,.token.bold{font-weight:700}
.token.italic{font-style:italic}

/* Accessibility */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Responsive extras */
@media(max-width:768px){.kg-width-full{margin-left:-18px;margin-right:-18px}.doc-pagination{flex-direction:column}.doc-pagination__item{max-width:100%}.post-wrap{padding:0 14px 60px}}
@media(max-width:600px){.archive-grid{grid-template-columns:1fr}.archive-header__inner--author{flex-direction:column}.doc-post-content h2{font-size:1.35rem}.doc-post-content h3{font-size:1.15rem}}
@media(max-width:480px){.doc-content{padding:16px 14px 50px}.doc-title{font-size:1.35rem}.home-wrap{padding:24px 14px 60px}}

/* Print */
@media print{.w3doc-header,.doc-sidebar,.doc-toc,.doc-pagination,.w3doc-footer{display:none!important}.doc-layout{display:block}.doc-content{max-width:100%;padding:0}a[href]::after{content:" (" attr(href) ")";font-size:.75em}}

/* Ghost KG Gallery card (required by gscan) */
.kg-gallery-container{display:flex;flex-direction:column;gap:4px;margin:1.5em 0}
.kg-gallery-row{display:flex;flex-direction:row;gap:4px;justify-content:center}
.kg-gallery-image{flex:1;overflow:hidden;border-radius:4px}
.kg-gallery-image img{width:100%;height:100%;object-fit:cover;display:block;margin:0;border:none}

/* Ghost KG Bookmark card (required by gscan) */
.kg-bookmark-card{position:relative;margin:1.5em 0}
.kg-bookmark-publisher{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--muted-text);margin-top:8px}
.home-card{transition:border-color .15s,box-shadow .15s}.home-card:hover{border-color:var(--accent);box-shadow:0 4px 12px rgba(0,0,0,.15);text-decoration:none}
