:root{--color-bg: #0A0814;--color-surface: #14101F;--color-surface-raised: #1E1830;--color-surface-bright: #2A2240;--color-border: rgba(168, 85, 247, .12);--color-text: #FFFFFF;--color-text-muted: #8B859B;--color-accent: #7C3AED;--color-accent-light: #A855F7;--color-accent-dim: rgba(168, 85, 247, .18);--color-accent-hover: rgba(168, 85, 247, .45);--color-pink: #E879F9;--color-cyan: #67E8F9;--color-success: #16a34a;--color-error: #b91c1c;--blog-bg: #15121F;--blog-surface: #1F1B2D;--blog-surface-elevated: #2A2540;--blog-text: #D8D2E5;--blog-heading: #F0EBF7;--blog-text-muted: #9A93AD;--blog-border: #2D293D;--blog-accent: #A855F7;--blog-accent-warm: #E879F9;--blog-link: #C9A1F0;--blog-code-bg: #14111E;--blog-code-text: #D8D2E5;--blog-shimmer-a: #1F1B2D;--blog-shimmer-b: #2A2540;--blog-inline-code-color: #67E8F9;--blog-inline-code-bg: rgba(103, 232, 249, .08);--blog-inline-code-border: rgba(103, 232, 249, .18);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--font-sans: "Inter", "Roboto", sans-serif;--font-mono: "Fira Code", monospace;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease}*{margin:0;padding:0;box-sizing:border-box;text-decoration:none}::-webkit-scrollbar{width:5px;background:#0e0b17;border-radius:10px}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#a855f7,#e879f9);border-radius:20px}::selection{background-color:#e879f9;color:#fff}html{font-family:Roboto,sans-serif;scroll-behavior:smooth;scroll-padding-top:50px}body{position:relative;width:100%;height:100%;background-color:#0a0814;background-image:radial-gradient(ellipse at top right,rgba(168,85,247,.05) 0%,transparent 60%),radial-gradient(ellipse at bottom left,rgba(232,121,249,.04) 0%,transparent 60%);background-attachment:fixed;overflow-x:hidden;color:#fff}main{overflow:clip}header{position:sticky;background:#0a0814d9;backdrop-filter:blur(14px) saturate(180%);-webkit-backdrop-filter:blur(14px) saturate(180%);color:#fff;top:0;z-index:1001;border-bottom:1px solid rgba(168,85,247,.15);overflow:hidden}header:after{content:"";position:absolute;bottom:-1px;left:0;height:1px;width:30%;background:linear-gradient(90deg,transparent 0%,#A855F7 50%,transparent 100%);box-shadow:0 0 12px #a855f7;animation:header-scan 8s linear infinite;will-change:transform}footer{width:100%;padding:1rem;background-color:#0a0814;border-top:2px solid;border-color:#7c3aed}@media(max-width:480px){footer{padding:1rem .5rem}}@keyframes header-scan{0%{transform:translate(-30vw);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translate(130vw);opacity:0}}@keyframes orb-drift-a{0%,to{transform:translate(0) scale(1)}50%{transform:translate(60px,40px) scale(1.1)}}@keyframes orb-drift-b{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-50px,-30px) scale(1.15)}}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes scroll-line{0%{transform:translateY(-12px);opacity:0}30%{opacity:1}to{transform:translateY(40px);opacity:0}}@keyframes marquee-slide{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes blog-hero-scan{0%,to{opacity:.4}50%{opacity:1}}@keyframes status-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.75}}@keyframes card-glow{0%{background-position:0% 50%}to{background-position:200% 50%}}@keyframes blogShimmer{0%{background-position:-600px 0}to{background-position:600px 0}}fa-icon{color:#a855f7}.content{display:flex;justify-content:center;align-items:center;flex-direction:column;padding:0 100px;gap:40px;width:100%;max-width:1600px!important}@media(max-width:992px){.content{padding:0 20px}}@media(max-width:660px){.content{padding:0 10px}}.container{display:flex;justify-content:center}@media(max-width:660px){.container{min-height:500px}}mat-sidenav-container{display:flex;justify-content:center;min-width:100vw;min-height:100vh;position:absolute!important;overflow:initial!important}mat-sidenav{display:none!important;min-height:100vh;width:70%;position:fixed!important;background:#0a0814!important;color:#fff!important}@media(max-width:992px){mat-sidenav{display:block!important}}mat-sidenav .logo{display:flex;justify-content:center;border-bottom:1px solid;color:#7c3aed;padding:.35rem;gap:10px;font-weight:700}mat-sidenav .logo a{width:80%;font-size:24px;text-decoration:none;color:#fff}@media(max-width:480px){mat-sidenav .logo a{font-size:18px}}@media(max-width:860px){mat-sidenav .logo a{font-size:20px}}mat-sidenav .logo fa-icon{font-size:40px!important;padding:0 1rem}@media(max-width:860px){mat-sidenav .logo fa-icon{font-size:30px!important}}mat-sidenav .logo #close{font-size:35px!important}@media(max-width:992px){mat-sidenav{width:50%}}@media(max-width:860px){mat-sidenav{padding:.8rem 0;width:70%}}@media(max-width:480px){mat-sidenav{width:100%}}mat-sidenav-content{min-width:100vw;min-height:100vh;overflow:initial!important}.logo{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:700}@media(max-width:480px){.logo{font-size:18px}}.logo fa-icon{font-size:32px}@media(max-width:480px){.logo fa-icon{font-size:24px}}.nav-links{display:flex;align-items:center}.nav-links ul{display:flex;flex-direction:row;font-size:20px;font-weight:500;width:100%;height:100%;gap:10px}@media(max-width:992px){.nav-links ul{display:flex;align-items:center;flex-direction:column;margin:40px 0;justify-content:center}}.nav-links li{display:flex;padding:2px}@media(max-width:992px){.nav-links li{padding:10px;min-width:40%;text-align:center}}.link{position:relative;font-size:18px;font-weight:500;width:100%;height:100%;padding:5px 10px;text-decoration:none;transition:.2s;color:#fff}.link:hover{transition:.2s}.link:before{content:"";position:absolute;bottom:0;left:0;height:2px;width:0%;background-image:linear-gradient(90deg,#a855f7,#e879f9);border-radius:0;transition:all .4s ease;box-shadow:0 0 8px #a855f780}.link:hover:before{width:100%}.link.link--active{color:#ad73e8}.link.link--active:before{width:100%}.link.link--section-active:before{width:100%}.link.link--back{color:#8b859b;font-size:16px}.link.link--back:hover{color:#fff}.link.link--back:before{display:none}.link.link--rss{display:inline-flex;align-items:center;justify-content:center;color:#ad73e8;padding:5px 8px}.link.link--rss:hover{color:#a855f7}.link.link--rss:before{display:none}@media(max-width:480px){.link{font-size:18px}}.theme-toggle-btn{background:none;border:none;padding:5px 8px;color:#ad73e8;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:color .2s,filter .2s}.theme-toggle-btn:hover{color:#a855f7;filter:drop-shadow(0 0 6px rgba(168,85,247,.6))}.theme-toggle-btn.active{color:#e879f9;filter:drop-shadow(0 0 6px rgba(232,121,249,.5))}.category--desenvolvimento{--cat-color: #A855F7}.category--backend{--cat-color: #F59E0B}.category--frontend{--cat-color: #06B6D4}.category--devops,.category--devops-cloud{--cat-color: #3B82F6}.category--carreira{--cat-color: #10B981}.category--tutoriais{--cat-color: #EC4899}body.blog-font-sm .blog-list h3,body.blog-font-sm .blog-card-excerpt{font-size:15px!important}body.blog-font-sm .blog-post .post-head-inner h1{font-size:36px!important}body.blog-font-sm .blog-post .post-excerpt{font-size:16px!important}body.blog-font-sm .blog-post .post-body{font-size:15px!important}body.blog-font-sm .related-card-body h3,body.blog-font-md .blog-list h3,body.blog-font-md .blog-card-excerpt{font-size:17px!important}body.blog-font-md .blog-post .post-head-inner h1{font-size:44px!important}body.blog-font-md .blog-post .post-excerpt{font-size:18px!important}body.blog-font-md .blog-post .post-body{font-size:17px!important}body.blog-font-md .related-card-body h3{font-size:19px!important}body.blog-font-lg .blog-list h3,body.blog-font-lg .blog-card-excerpt{font-size:20px!important}body.blog-font-lg .blog-post .post-head-inner h1{font-size:52px!important}body.blog-font-lg .blog-post .post-excerpt{font-size:21px!important}body.blog-font-lg .blog-post .post-body{font-size:20px!important}body.blog-font-lg .related-card-body h3{font-size:22px!important}body.blog-width-narrow .blog-post .post-content-inner,body.blog-width-narrow .blog-post .post-head-inner{max-width:580px!important}body.blog-width-normal .blog-post .post-content-inner,body.blog-width-normal .blog-post .post-head-inner{max-width:720px!important}body.blog-width-wide .blog-post .post-content-inner,body.blog-width-wide .blog-post .post-head-inner{max-width:900px!important}body.blog-theme-dark{background-color:var(--blog-bg)!important;background-image:none!important}body.blog-theme-light{--blog-bg: #FAF7EE;--blog-surface: #F2EDD8;--blog-surface-elevated: #FDF9EF;--blog-text: #2D2417;--blog-heading: #1A1208;--blog-text-muted: #6B5D45;--blog-inline-code-color: #0e7490;--blog-inline-code-bg: rgba(6, 182, 212, .08);--blog-inline-code-border: rgba(6, 182, 212, .22);--blog-border: #DDD5B8;--blog-accent: #374151;--blog-accent-warm: #B45309;--blog-link: #1F2937;--blog-code-bg: #EDE8D5;--blog-code-text: #2D2417;--blog-shimmer-a: #EDE8D5;--blog-shimmer-b: #DDD5B8;background-color:var(--blog-bg)!important;background-image:none!important;scrollbar-color:#9CA3AF var(--blog-border)}body.blog-theme-light ::-webkit-scrollbar{background:var(--blog-border)!important}body.blog-theme-light ::-webkit-scrollbar-thumb{background:#9ca3af!important;border-radius:10px}body.blog-theme-light ::-webkit-scrollbar-track{background:var(--blog-border)!important}body.blog-theme-light ::selection{background-color:var(--blog-accent);color:#fff}body.blog-theme-light header{background:#faf7eef2!important;-webkit-backdrop-filter:blur(14px) saturate(180%);backdrop-filter:blur(14px) saturate(180%);border-bottom-color:var(--blog-border)!important;color:var(--blog-text)!important}body.blog-theme-light header .logo fa-icon,body.blog-theme-light header .logo .fa-icon{color:#7c3aed!important}body.blog-theme-light header .logo a{color:var(--blog-text-muted)!important}body.blog-theme-light header .logo a:hover{color:var(--blog-text-muted)!important}body.blog-theme-light header .logo-context{color:#7c3aed!important}body.blog-theme-light header .link{color:var(--blog-text-muted)!important}body.blog-theme-light header .link:before{background-image:linear-gradient(90deg,var(--blog-accent) 0%,var(--blog-link) 100%)!important;box-shadow:none!important}body.blog-theme-light header .link:hover{color:var(--blog-accent)!important}body.blog-theme-light header .link.link--active,body.blog-theme-light header .link.link--section-active{color:var(--blog-accent)!important}body.blog-theme-light header .link.link--back{color:var(--blog-text-muted)!important}body.blog-theme-light header .link.link--back:hover{color:var(--blog-text)!important}body.blog-theme-light header .link.link--rss{color:var(--blog-accent)!important}body.blog-theme-light header .link.link--rss:hover{color:var(--blog-link)!important}body.blog-theme-light header .nav-links li.theme-toggle .theme-toggle-btn{background:none;border:none;color:var(--blog-text-muted)}body.blog-theme-light header .nav-links li.theme-toggle .theme-toggle-btn:hover{color:var(--blog-accent-warm);filter:drop-shadow(0 0 5px rgba(180,83,9,.5))}body.blog-theme-light header .nav-links li.theme-toggle .theme-toggle-btn.active{color:var(--blog-accent-warm);filter:drop-shadow(0 0 5px rgba(180,83,9,.4))}body.blog-theme-light footer{background-color:var(--blog-bg)!important;border-top-color:var(--blog-border)!important;color:var(--blog-text-muted)!important}body.blog-theme-light footer a{color:var(--blog-text-muted)!important}body.blog-theme-light footer a:hover{color:var(--blog-accent-warm)!important}body.blog-theme-light footer p{color:var(--blog-text-muted)!important}body.blog-theme-light .blog-hero{background:var(--blog-bg);border-bottom:1px solid var(--blog-border)}body.blog-theme-light .blog-hero:before{background-image:repeating-linear-gradient(90deg,transparent 0,transparent 120px,rgba(180,83,9,.04) 120px,rgba(180,83,9,.04) 121px)}body.blog-theme-light .blog-hero:after{background:linear-gradient(90deg,transparent 0%,var(--blog-accent-warm) 50%,transparent 100%);box-shadow:none;opacity:.5;animation:none}body.blog-theme-light .blog-hero.blog-hero--category{border-bottom-color:var(--blog-border)}body.blog-theme-light .blog-hero.blog-hero--category:after{background:linear-gradient(90deg,transparent 0%,var(--cat-color, var(--blog-accent-warm)) 50%,transparent 100%)}body.blog-theme-light .blog-card{background:var(--blog-surface-elevated);border-color:var(--blog-border);box-shadow:0 1px 4px #0000000f}body.blog-theme-light .blog-card:hover{border-color:var(--blog-accent);box-shadow:0 4px 16px #00000014}body.blog-theme-light .blog-card:hover h3{text-shadow:none}body.blog-theme-light .blog-list mat-card{background:transparent!important;border:none!important;box-shadow:none!important}body.blog-theme-light .blog-category-filter.active{background:#7c3aed1a;border-color:var(--blog-accent);color:var(--blog-accent);font-weight:700}body.blog-theme-light .blog-category-filter.active:hover{transform:translateY(-1px);box-shadow:none}body.blog-theme-light .post-content pre[class*=language-] code,body.blog-theme-light .post-content code[class*=language-]{color:var(--blog-text);text-shadow:none}body.blog-theme-light .post-content .token.comment,body.blog-theme-light .post-content .token.prolog,body.blog-theme-light .post-content .token.doctype,body.blog-theme-light .post-content .token.cdata{color:#8b7a5e;font-style:italic}body.blog-theme-light .post-content .token.punctuation{color:#5a4a3a}body.blog-theme-light .post-content .token.namespace{opacity:.75}body.blog-theme-light .post-content .token.property,body.blog-theme-light .post-content .token.tag,body.blog-theme-light .post-content .token.boolean,body.blog-theme-light .post-content .token.number,body.blog-theme-light .post-content .token.constant,body.blog-theme-light .post-content .token.symbol,body.blog-theme-light .post-content .token.deleted{color:var(--blog-accent)}body.blog-theme-light .post-content .token.selector,body.blog-theme-light .post-content .token.attr-name,body.blog-theme-light .post-content .token.string,body.blog-theme-light .post-content .token.char,body.blog-theme-light .post-content .token.builtin,body.blog-theme-light .post-content .token.inserted{color:#15803d}body.blog-theme-light .post-content .token.operator,body.blog-theme-light .post-content .token.entity,body.blog-theme-light .post-content .token.url{color:var(--blog-accent)}body.blog-theme-light .post-content .token.atrule,body.blog-theme-light .post-content .token.attr-value,body.blog-theme-light .post-content .token.keyword,body.blog-theme-light .post-content .token.control,body.blog-theme-light .post-content .token.directive,body.blog-theme-light .post-content .token.unit{color:var(--blog-accent-warm);font-weight:600}body.blog-theme-light .post-content .token.function,body.blog-theme-light .post-content .token.class-name{color:var(--blog-accent)}body.blog-theme-light .post-content .token.regex,body.blog-theme-light .post-content .token.important,body.blog-theme-light .post-content .token.variable{color:var(--blog-accent-warm)}body.blog-theme-light .post-content blockquote{border-left-color:var(--blog-accent-warm);color:var(--blog-text-muted);background:var(--blog-surface)}body.blog-theme-light .post-content ul,body.blog-theme-light .post-content ol li::marker{color:var(--blog-accent)}body.blog-theme-light .post-content hr{background:var(--blog-border)}body.blog-theme-light .post-content .callout.callout--tip{background:#7c3aed0f;border-color:#7c3aed}body.blog-theme-light .post-content .callout.callout--info{background:#06b6d40f;border-color:#0891b2}body.blog-theme-light .post-content .callout.callout--warning{background:#b4530914;border-color:#b45309}body.blog-theme-light .post-content .callout.callout--danger{background:#dc26260f;border-color:#dc2626}body.blog-theme-light .post-content .callout .callout-body{color:var(--blog-text)}body.blog-theme-light .post-content .video-embed .video-wrapper{background:var(--blog-surface)}
