.article-content .code-block{position:relative}.article-content .copy-button{cursor:pointer;justify-content:center;align-items:center;display:flex}.article-content .copy-button:hover{transform:scale(1.05)}.article-content .copy-button:active{transform:scale(.95)}.article-content .code-block code::-webkit-scrollbar{height:8px}.article-content .code-block code::-webkit-scrollbar-track{background:0 0}.article-content .code-block code::-webkit-scrollbar-thumb{background:#10b98133;border-radius:4px}.article-content .code-block code::-webkit-scrollbar-thumb:hover{background:#10b98166}.article-content ::selection{color:#fff;background:#10b9814d}.article-content ::selection{color:#fff;background:#10b9814d}.article-content h2[id],.article-content h3[id],.article-content h4[id]{scroll-margin-top:6rem}.article-content h2:hover,.article-content h3:hover,.article-content h4:hover{cursor:pointer}.article-content a[target=_blank]:after{content:"↗";opacity:.5;margin-left:.25em;font-size:.75em;transition:opacity .2s}.article-content a[target=_blank]:hover:after{opacity:1}.article-content table{border-collapse:separate;border-spacing:0;border:1px solid #10b9811a;border-radius:.75rem;width:100%;margin:2rem 0;overflow:hidden}.article-content thead{background:#10b9810d}.article-content th{text-align:left;color:#10b981;border-bottom:2px solid #10b9811a;padding:.75rem 1rem;font-weight:600}.article-content td{color:#d1d5db;border-bottom:1px solid #10b9810d;padding:.75rem 1rem}.article-content tr:last-child td{border-bottom:none}.article-content p .inline-code,.article-content li .inline-code{position:relative;top:-.05em}.article-content h2+h3{margin-top:2rem}.article-content h3+h4,.article-content h2+p,.article-content h3+p{margin-top:1.5rem}.article-content .image-wrapper img{background:linear-gradient(90deg,#ffffff0d 25%,#ffffff1a 50%,#ffffff0d 75%) 0 0/200% 100%;animation:2s infinite shimmer}.article-content .image-wrapper img[src]{background:0 0;animation:none}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.article-content .image-wrapper img{opacity:0;transition:opacity .3s ease-in-out}.article-content .image-wrapper img[src]{opacity:1}@media (max-width:640px){.article-content .code-block code{padding:1rem;font-size:.875rem}.article-content .code-block:before{padding:.5rem .75rem;font-size:.625rem}.article-content h2{font-size:1.5rem}.article-content h3{font-size:1.25rem}.article-content h4{font-size:1.125rem}}@media print{.article-content .code-block{page-break-inside:avoid;border:1px solid #333}.article-content h2,.article-content h3,.article-content h4{page-break-after:avoid}.article-content a:after{content:" (" attr(href)")";color:#666;font-size:.8em}}
.article-content code[class*=language-],.article-content pre[class*=language-]{color:#e5e7eb;text-shadow:0 1px #00000080;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;tab-size:4;-webkit-hyphens:none;hyphens:none;direction:ltr;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;line-height:1.6}.token.keyword,.token.control,.token.directive,.token.unit{color:#10b981;font-weight:600}.token.class-name,.token.type-definition,.token.builtin,.token.primitive{color:#34d399;font-weight:500}.token.function,.token.method{color:#6ee7b7}.token.string,.token.char,.token.attr-value,.token.regex,.token.variable{color:#fbbf24}.token.number,.token.boolean,.token.constant{color:#fb923c}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#6b7280;opacity:.8;font-style:italic}.token.operator,.token.punctuation{color:#9ca3af}.token.property,.token.attr-name,.token.tag{color:#059669;font-weight:500}.token.selector,.token.important,.token.atrule{color:#10b981;font-weight:600}.token.entity,.token.url,.token.symbol,.token.inserted{color:#34d399}.token.deleted{color:#ef4444;text-decoration:line-through}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.namespace{opacity:.7}.language-javascript .token.template-string,.language-typescript .token.template-string{color:#fbbf24}.language-javascript .token.template-string .token.interpolation,.language-typescript .token.template-string .token.interpolation{color:#e5e7eb}.language-javascript .token.template-string .token.interpolation .token.interpolation-punctuation,.language-typescript .token.template-string .token.interpolation .token.interpolation-punctuation{color:#10b981}.language-css .token.property{color:#059669}.language-css .token.function{color:#6ee7b7}.language-json .token.property{color:#34d399}.language-json .token.string{color:#fbbf24}.language-bash .token.function{color:#10b981;font-weight:600}.language-bash .token.parameter{color:#e5e7eb}.language-python .token.decorator{color:#10b981}.language-python .token.keyword,.language-c .token.directive,.language-cpp .token.directive{color:#10b981;font-weight:600}.language-cpp .token.namespace,.language-cpp .token.std-namespace{color:#34d399;font-weight:600}.language-cpp .token.std-function{color:#6ee7b7;font-weight:500}.language-cpp .token.stl-type{color:#34d399;font-weight:500}.language-cpp .token.std-header{color:#fbbf24;font-weight:400}.language-cpp .token.template-bracket{color:#10b981;font-weight:700}.language-cpp .token.template-content{color:#34d399}.language-cpp .token.stream-operator{color:#10b981;font-weight:700}.language-cpp .token.operator{color:#9ca3af}.language-docker .token.keyword{color:#10b981;text-transform:uppercase;font-weight:700}.language-sql .token.keyword{color:#10b981;text-transform:uppercase;font-weight:600}.line-highlight{background:#10b9811a;border-left:3px solid #10b981}.article-content code[class*=language-]::selection,.article-content pre[class*=language-]::selection,.article-content code[class*=language-] ::selection,.article-content pre[class*=language-] ::selection{color:#fff;background:#10b9814d}
