.article-content{color:#374151;font-size:1.125rem;letter-spacing:-.01em;line-height:1.75}.dark .article-content{color:#d1d5db}.article-content>p:first-of-type{color:#1f2937;font-size:1.25rem;font-weight:400;line-height:1.8}.dark .article-content>p:first-of-type{color:#e5e7eb}.article-content>p:first-of-type:first-letter{color:#7c3aed;float:left;font-size:4rem;font-weight:700;line-height:1;margin-right:.5rem;margin-top:.25rem}.code-block{background:#1e293b;border-radius:.75rem;box-shadow:0 4px 6px -1px rgba(0,0,0,.1);margin:2rem 0;overflow:hidden;position:relative}.code-block:before{background:hsla(0,0%,100%,.1);color:#94a3b8;content:attr(data-language);font-family:monospace;font-size:.75rem;padding:.5rem 1rem;position:absolute;right:0;text-transform:uppercase;top:0}.code-block code{display:block;font-size:.875rem;line-height:1.7;overflow-x:auto;padding:1.5rem}.code-block-wrapper{border-radius:.75rem;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);margin:2rem 0;overflow:hidden;position:relative}.code-block-header{border-bottom:1px solid hsla(0,0%,100%,.1)}.code-copy-button{font-family:system-ui,-apple-system,sans-serif}.code-copy-button:focus{outline:2px solid #8b5cf6;outline-offset:2px}.code-block-content{font-family:Fira Code,Consolas,Monaco,monospace}.code-block-content pre{font-size:.875rem;line-height:1.7;margin:0}.code-block-content::-webkit-scrollbar{height:8px}.code-block-content::-webkit-scrollbar-track{background:hsla(0,0%,100%,.05)}.code-block-content::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.2);border-radius:4px}.code-block-content::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.3)}.inline-code{background-color:rgba(139,92,246,.1);border-radius:.25rem;color:#8b5cf6;font-family:Fira Code,monospace;font-size:.875em;font-weight:500;padding:.125rem .375rem}.dark .inline-code{background-color:rgba(139,92,246,.2);color:#a78bfa}.copyable-code{position:relative;transition:all .2s ease}.copyable-code:hover{background-color:rgba(139,92,246,.2);box-shadow:0 0 0 2px rgba(139,92,246,.3)}.dark .copyable-code:hover{background-color:rgba(139,92,246,.3)}.copyable-code.copied{background-color:rgba(34,197,94,.2)!important;box-shadow:0 0 0 2px rgba(34,197,94,.3)!important;color:#16a34a!important}.dark .copyable-code.copied{background-color:rgba(34,197,94,.3)!important;color:#22c55e!important}.copyable-code:after{background:#1f2937;border-radius:.25rem;bottom:100%;color:#fff;content:"Click to copy";font-size:.75rem;font-weight:400;left:50%;opacity:0;padding:.25rem .5rem;pointer-events:none;position:absolute;transform:translateX(-50%) translateY(-4px);transition:opacity .2s ease;white-space:nowrap}.copyable-code:hover:after{opacity:1}.copyable-code.copied:after{background:#16a34a;content:"Copied!"}.article-content blockquote{background:linear-gradient(135deg,#f9fafb,#f3f4f6);border-left:4px solid #8b5cf6;border-radius:.5rem;font-style:italic;margin:2rem 0;padding:1.5rem 2rem;position:relative}.dark .article-content blockquote{background:linear-gradient(135deg,#1f2937,#111827);border-left-color:#a78bfa}.article-content table{border-radius:.75rem;box-shadow:0 1px 3px 0 rgba(0,0,0,.1);margin:2rem 0;overflow:hidden}.article-content th{background:#f3f4f6;font-weight:600;padding:1rem;text-align:left}.dark .article-content th{background:#1f2937}.article-content td{border-top:1px solid #e5e7eb;padding:1rem}.dark .article-content td{border-top-color:#374151}.article-content tr:hover{background:#f9fafb}.dark .article-content tr:hover{background:#1f2937}html{scroll-behavior:smooth;scroll-padding-top:5rem}.article-content ol,.article-content ul{margin:1.5rem 0;padding-left:2rem}.article-content li{line-height:1.75;margin:.5rem 0}.article-content ul li::marker{color:#8b5cf6}.article-content ol li::marker{color:#8b5cf6;font-weight:600}@keyframes fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}.animate-fade-in{animation:fade-in .3s ease-out}.animate-fade-out{animation:fade-out .3s ease-out}.hover-lift{transition:transform .2s ease,box-shadow .2s ease}.hover-lift:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1);transform:translateY(-2px)}.focus-ring{transition:box-shadow .2s ease}.focus-ring:focus{box-shadow:0 0 0 3px rgba(139,92,246,.5);outline:none}@media print{.article-content{font-size:12pt;line-height:1.5;max-width:100%}.article-content a{text-decoration:underline}.article-content a[href^=http]:after{content:" (" attr(href) ")";font-size:.8em}}.skip-link{background:#1f2937;border-radius:.375rem;color:#fff;left:-9999px;padding:1rem;position:absolute;text-decoration:none;z-index:999}.skip-link:focus{left:50%;top:1rem;transform:translateX(-50%)}.tooltip{cursor:help;position:relative}.tooltip:hover:after{background:#1f2937;border-radius:.375rem;color:#fff;content:attr(data-tooltip);font-size:.875rem;margin-bottom:.5rem;padding:.5rem 1rem;white-space:nowrap;z-index:10}.tooltip:hover:after,.tooltip:hover:before{animation:fade-in .2s ease;bottom:100%;left:50%;position:absolute;transform:translateX(-50%)}.tooltip:hover:before{border:6px solid transparent;border-top-color:#1f2937;content:"";margin-bottom:-.5rem;z-index:11}.code-block-wrapper{transition:transform .2s ease,box-shadow .2s ease}.code-block-wrapper:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);transform:translateY(-2px)}.code-copy-button{opacity:0;transform:translateX(10px);transition:all .2s ease}.code-block-header:hover .code-copy-button,.code-block-wrapper:hover .code-copy-button{opacity:1;transform:translateX(0)}.code-block-content table{border-collapse:collapse;width:100%}.code-block-content td{padding:0;vertical-align:top}.code-block-content tr:hover{background-color:rgba(139,92,246,.05)}@media (max-width:640px){.code-copy-button{opacity:1;transform:translateX(0)}.code-block-header{align-items:flex-start;flex-direction:column;gap:.5rem}}.backlink-wrapper{display:inline-block;position:relative}.backlink{font-weight:500;position:relative}.blog-image{margin:3rem 0}.blog-image figure{margin:0}.blog-image img{border-radius:.5rem;box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.cursor-zoom-in{cursor:zoom-in}.image-gallery{margin:3rem 0}.image-gallery img{transition:transform .3s ease}.image-gallery .group:hover img{transform:scale(1.1)}.enhanced-content a:not(.backlink){color:#8b5cf6;text-decoration:underline;text-decoration-color:rgba(139,92,246,.3);text-decoration-thickness:2px;text-underline-offset:2px;transition:all .2s ease}.enhanced-content a:not(.backlink):hover{text-decoration-color:rgba(139,92,246,.8)}.dark .enhanced-content a:not(.backlink){color:#a78bfa;text-decoration-color:rgba(167,139,250,.3)}.dark .enhanced-content a:not(.backlink):hover{text-decoration-color:rgba(167,139,250,.8)}figcaption{color:#6b7280;font-style:italic;margin-top:.75rem}.dark figcaption{color:#9ca3af}@media (max-width:768px){.image-gallery{grid-template-columns:1fr}}.line-numbers{counter-reset:linenumber;padding-left:3.8em!important;position:relative}.line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{border-right:1px solid #4b5563;font-size:100%;left:-3.8em;letter-spacing:-1px;pointer-events:none;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:3em}.line-numbers-rows>span{counter-increment:linenumber;display:block}.line-numbers-rows>span:before{color:#6b7280;content:counter(linenumber);display:block;padding-right:.8em;text-align:right}.line-highlight{background-color:rgba(217,119,6,.2)!important;display:block;margin-left:-1em;margin-right:-1em;margin-top:-1em;padding-bottom:1em;padding-left:1em;padding-top:1em}.terminal-style{background-color:#000!important;color:#4ade80;font-family:Courier New,Courier,monospace!important}.token.comment{color:#6b7280;font-style:italic}.token.punctuation{color:#9ca3af}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#f87171}.token.char,.token.inserted,.token.selector,.token.string{color:#4ade80}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#67e8f9}.token.keyword{color:#c084fc}.token.class-name,.token.function{color:#fde047}.token.important,.token.regex,.token.variable{color:#fb923c}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}@keyframes copy-success{0%{transform:scale(1) rotate(0deg)}50%{transform:scale(1.2) rotate(5deg)}to{transform:scale(1) rotate(0deg)}}.code-copy-button svg{transition:transform .2s ease}.code-copy-button:active svg{animation:copy-success .4s ease}@media (max-width:640px){.line-numbers{padding-left:2.5em!important}.line-numbers .line-numbers-rows{left:-2.5em;width:2em}}