@charset "UTF-8";: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{--app-scroll-offset: 50px;font-family:Roboto,sans-serif;scroll-padding-top:var(--app-scroll-offset)}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{position:relative;isolation:isolate;overflow:hidden;width:100%;padding:1.125rem 1rem;background-color:#0a0814eb;backdrop-filter:blur(10px) saturate(130%);-webkit-backdrop-filter:blur(10px) saturate(130%);border-top:1px solid rgba(173,115,232,.2);box-shadow:0 -10px 24px #0a081414}@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:1280px!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;width:100%;min-width:0;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{margin-left:auto;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}mat-sidenav .logo #close fa-icon{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{display:flex!important;flex-direction:column;width:100%;min-width:0;min-height:100vh;min-height:100dvh;overflow:initial!important}mat-sidenav-content>main{width:100%;flex:1 0 auto}mat-sidenav-content>footer{flex:0 0 auto}main:focus{outline:none}.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}}@media(max-width:992px){.link{border-radius:14px;padding:10px 14px}}@media(max-width:992px){mat-sidenav .link.link--active{color:#c9a1f0;background:#a855f71a;box-shadow:inset 0 0 0 1px #a855f72e}mat-sidenav .link.link--back{background:transparent;box-shadow:none}}.theme-toggle-btn{background:none;border:none;padding:5px 4px;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))}body.blog-font-sm .blog-list h3{font-size:18px!important}body.blog-font-sm .blog-card-excerpt{font-size:14px!important}body.blog-font-sm .blog-post .post-head-inner h1{font-size:clamp(1.625rem,4.8vw,2.35rem)!important}body.blog-font-sm .blog-post .post-excerpt,body.blog-font-sm .blog-post .post-body{font-size:16px!important}body.blog-font-md .blog-list h3{font-size:20px!important}body.blog-font-md .blog-card-excerpt{font-size:15px!important}body.blog-font-md .blog-post .post-head-inner h1{font-size:clamp(1.75rem,5.4vw,2.75rem)!important}body.blog-font-md .blog-post .post-excerpt,body.blog-font-md .blog-post .post-body{font-size:18px!important}body.blog-font-lg .blog-list h3{font-size:22px!important}body.blog-font-lg .blog-card-excerpt{font-size:17px!important}body.blog-font-lg .blog-post .post-head-inner h1{font-size:clamp(2.2rem,6vw,3rem)!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}@media(max-width:660px){body.blog-font-sm .blog-post .post-head-inner h1,body.blog-font-md .blog-post .post-head-inner h1,body.blog-font-lg .blog-post .post-head-inner h1{font-family:Inter,Roboto,sans-serif;line-height:1.15}}body.blog-width-narrow{--blog-prose-width: 580px}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-prose-width: 732px}body.blog-width-normal .blog-post .post-content-inner,body.blog-width-normal .blog-post .post-head-inner{max-width:732px!important}body.blog-width-wide{--blog-prose-width: 900px}body.blog-width-wide .blog-post .post-content-inner,body.blog-width-wide .blog-post .post-head-inner{max-width:900px!important}@media(max-width:660px){body.blog-width-narrow,body.blog-width-normal,body.blog-width-wide{--blog-prose-width: 100%}body.blog-width-narrow .blog-post .post-content-inner,body.blog-width-narrow .blog-post .post-head-inner,body.blog-width-normal .blog-post .post-content-inner,body.blog-width-normal .blog-post .post-head-inner,body.blog-width-wide .blog-post .post-content-inner,body.blog-width-wide .blog-post .post-head-inner{max-width:100%!important}}body.blog-theme-dark{--blog-bg: #151515;--blog-surface: #1d1d1f;--blog-surface-elevated: #242428;--blog-text: #cbd5e1;--blog-heading: #f8fafc;--blog-text-muted: #8f98a5;--blog-border: #303037;--blog-accent: #a78bfa;--blog-accent-hover: #c4b5fd;--blog-link: #c4b5fd;--blog-link-hover: #ddd6fe;background-color:var(--blog-bg)!important;background-image:none!important}body.blog-theme-dark footer{background-color:#151515f5;backdrop-filter:none;-webkit-backdrop-filter:none;border-top-color:#303037e6;box-shadow:none}body.blog-theme-dark .blog-post{--blog-bg: #151515;--blog-surface: #1d1d1f;--blog-surface-elevated: #242428;--blog-text: #cbd5e1;--blog-heading: #f8fafc;--blog-text-muted: #8f98a5;--blog-border: #303037;--blog-accent: #a78bfa;--blog-accent-hover: #c4b5fd;--blog-accent-warm: #c9b3a7;--blog-link: #c4b5fd;--blog-link-hover: #ddd6fe;--blog-code-bg: #111113;--blog-code-text: #cbd5e1;--blog-shimmer-a: #221e2a;--blog-shimmer-b: #302a39;--blog-inline-code-color: #b7b9ca;--blog-inline-code-bg: rgba(183, 185, 202, .08);--blog-inline-code-border: rgba(183, 185, 202, .2);background-color:var(--blog-bg)}body.blog-theme-dark .blog-post ::selection{background-color:#a78bfa73;color:#f8fafc}body.blog-theme-dark .blog-post .post-content a:not(.blog-category-badge):not(.related-card):not(.back-link):not(.code-copy-btn):not(.post-share-btn):not(.toc-link){color:var(--blog-link);text-decoration-color:#c4b5fd73}body.blog-theme-dark .blog-post .post-content a:not(.blog-category-badge):not(.related-card):not(.back-link):not(.code-copy-btn):not(.post-share-btn):not(.toc-link):hover{color:var(--blog-link-hover);text-decoration-color:var(--blog-link-hover);text-shadow:none}body.blog-theme-dark .blog-post .post-content .code-block{border-color:var(--blog-border);box-shadow:none}body.blog-theme-dark .blog-post .post-content .code-block:before{background:var(--blog-accent)}body.blog-theme-dark .blog-post .post-content .code-block-header .code-block-lang{color:var(--blog-text-muted)}body.blog-theme-dark .blog-post .post-content .token.comment,body.blog-theme-dark .blog-post .post-content .token.prolog,body.blog-theme-dark .blog-post .post-content .token.doctype,body.blog-theme-dark .blog-post .post-content .token.cdata{color:#928c9d}body.blog-theme-dark .blog-post .post-content .token.punctuation{color:#bdb6c8}body.blog-theme-dark .blog-post .post-content .token.property,body.blog-theme-dark .blog-post .post-content .token.tag,body.blog-theme-dark .blog-post .post-content .token.boolean,body.blog-theme-dark .blog-post .post-content .token.number,body.blog-theme-dark .blog-post .post-content .token.constant,body.blog-theme-dark .blog-post .post-content .token.symbol,body.blog-theme-dark .blog-post .post-content .token.deleted,body.blog-theme-dark .blog-post .post-content .token.operator,body.blog-theme-dark .blog-post .post-content .token.entity,body.blog-theme-dark .blog-post .post-content .token.url,body.blog-theme-dark .blog-post .post-content .token.function,body.blog-theme-dark .blog-post .post-content .token.class-name{color:var(--blog-accent)}body.blog-theme-dark .blog-post .post-content .token.selector,body.blog-theme-dark .blog-post .post-content .token.attr-name,body.blog-theme-dark .blog-post .post-content .token.string,body.blog-theme-dark .blog-post .post-content .token.char,body.blog-theme-dark .blog-post .post-content .token.builtin,body.blog-theme-dark .blog-post .post-content .token.inserted{color:#aabfaf}body.blog-theme-dark .blog-post .post-content .token.atrule,body.blog-theme-dark .blog-post .post-content .token.attr-value,body.blog-theme-dark .blog-post .post-content .token.keyword,body.blog-theme-dark .blog-post .post-content .token.control,body.blog-theme-dark .blog-post .post-content .token.directive,body.blog-theme-dark .blog-post .post-content .token.unit,body.blog-theme-dark .blog-post .post-content .token.regex,body.blog-theme-dark .blog-post .post-content .token.important,body.blog-theme-dark .blog-post .post-content .token.variable{color:#c9b3a7}body.blog-theme-dark .blog-post .post-content blockquote{border-left-color:#a78bfa99;background:var(--blog-surface)}body.blog-theme-dark .blog-post .post-content mark{background:#cbb18433}body.blog-theme-dark .blog-post .post-content .callout.callout--tip{background:#a78bfa12;border-color:#a78bfa}body.blog-theme-dark .blog-post .post-content .callout.callout--info{background:#91b3c212;border-color:#91b3c2}body.blog-theme-dark .blog-post .post-content .callout.callout--warning{background:#cbb18414;border-color:#cbb184}body.blog-theme-dark .blog-post .post-content .callout.callout--danger{background:#ca8b9214;border-color:#ca8b92}body.blog-theme-dark .blog-post .back-link{color:#a875e2}body.blog-theme-dark .blog-post .back-link:hover{color:#c19aef}body.blog-theme-dark .blog-post .post-share-btn:hover{border-color:#a875e2b3;color:#c19aef;box-shadow:0 0 10px #a875e229}body.blog-theme-dark .blog-post .related-card:hover{border-color:#a875e2b3;box-shadow:0 5px 16px #a875e214}body.blog-theme-dark .blog-post .related-card:hover h3{color:#c19aef}body.blog-theme-dark.blog-post-page{background-color:#151515!important}body.blog-theme-dark.blog-post-page header{background:#151515f0;border-bottom-color:#303037}body.blog-theme-dark.blog-post-page header:after{background:linear-gradient(90deg,transparent 0%,#a78bfa 50%,transparent 100%);box-shadow:0 0 10px #a78bfa59}body.blog-theme-dark.blog-post-page header .link{color:#8f98a5}body.blog-theme-dark.blog-post-page header .link:hover,body.blog-theme-dark.blog-post-page header .link.link--active,body.blog-theme-dark.blog-post-page header .link.link--section-active{color:#c19aef}body.blog-theme-dark.blog-post-page header .link:before{background-image:linear-gradient(90deg,#a875e2,#c19aef);box-shadow:none}body.blog-theme-light{--blog-bg: #ffffff;--blog-surface: #f8fafc;--blog-surface-elevated: #ffffff;--blog-text: #334155;--blog-heading: #1e293b;--blog-text-muted: #64748b;--blog-inline-code-color: #6d28d9;--blog-inline-code-bg: rgba(124, 58, 237, .07);--blog-inline-code-border: rgba(124, 58, 237, .18);--blog-border: #e2e8f0;--blog-accent: #7c3aed;--blog-accent-hover: #6d28d9;--blog-accent-warm: #b45309;--blog-link: #574a65;--blog-link-hover: #352c40;--blog-code-bg: #f7f4fc;--blog-code-text: #334155;--blog-shimmer-a: #f3eff9;--blog-shimmer-b: #e8e1f1;background-color:var(--blog-bg)!important;background-image:none!important;scrollbar-color:rgba(124,58,237,.48) var(--blog-surface)}body.blog-theme-light ::-webkit-scrollbar{background:var(--blog-surface)!important}body.blog-theme-light ::-webkit-scrollbar-thumb{background:#7c3aed7a!important;border-radius:10px}body.blog-theme-light ::-webkit-scrollbar-track{background:var(--blog-surface)!important}body.blog-theme-light ::selection{background-color:var(--blog-accent);color:#fff}body.blog-theme-light header{background:#fffffff0!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 .logo-dev{color:#7c3aed!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-accent-hover) 100%)!important;box-shadow:none!important}body.blog-theme-light header .link:hover{color:var(--blog-accent-hover)!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-accent-hover)!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);filter:drop-shadow(0 0 4px rgba(124,58,237,.25))}body.blog-theme-light header .nav-links li.theme-toggle .theme-toggle-btn.active{color:var(--blog-accent);filter:drop-shadow(0 0 4px rgba(124,58,237,.2))}body.blog-theme-light mat-sidenav{background:var(--blog-surface)!important;color:var(--blog-text)!important}body.blog-theme-light mat-sidenav .logo{border-bottom-color:var(--blog-border)!important}body.blog-theme-light mat-sidenav .logo fa-icon,body.blog-theme-light mat-sidenav .logo .fa-icon{color:#7c3aed!important}body.blog-theme-light mat-sidenav .logo a{color:var(--blog-text-muted)!important}body.blog-theme-light mat-sidenav .logo .logo-dev{color:#7c3aed!important}body.blog-theme-light mat-sidenav .nav-links .link{color:var(--blog-text-muted)!important}body.blog-theme-light mat-sidenav .nav-links .link:hover{color:var(--blog-accent)!important}body.blog-theme-light mat-sidenav .nav-links .link.link--active{color:var(--blog-accent)!important;background:#7c3aed14;box-shadow:inset 0 0 0 1px #7c3aed29}body.blog-theme-light footer{background-color:var(--blog-bg)!important;background-image:none!important;backdrop-filter:none;-webkit-backdrop-filter:none;border-top-color:var(--blog-border)!important;color:var(--blog-text-muted)!important;box-shadow:none}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 footer .logo fa-icon,body.blog-theme-light footer .logo .fa-icon{color:#7c3aed!important}body.blog-theme-light footer .logo-dev{color:#7c3aed!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(124,58,237,.04) 120px,rgba(124,58,237,.04) 121px)}body.blog-theme-light .blog-hero:after{background:linear-gradient(90deg,transparent 0%,rgba(124,58,237,.38) 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)) 50%,transparent 100%)}body.blog-theme-light .blog-card{background:var(--blog-surface-elevated);border-color:var(--blog-border);box-shadow:0 2px 10px #2d1c440d}body.blog-theme-light .blog-card:hover{border-color:var(--blog-accent);box-shadow:0 4px 16px #7c3aed1a}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:color-mix(in srgb,var(--cat-color, var(--blog-accent)) 10%,transparent);border-color:var(--cat-color, var(--blog-accent));color:var(--cat-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 .blog-category-filter:not(.active):hover{border-color:var(--cat-color, var(--blog-accent));color:var(--cat-color, var(--blog-accent))}body.blog-theme-light .blog-page-btn{border-color:var(--blog-border);color:var(--blog-text-muted)}body.blog-theme-light .blog-page-btn:hover:not(:disabled){background:#7c3aed0d;border-color:var(--blog-accent);color:var(--blog-accent)}body.blog-theme-light .blog-page-btn.active{background:var(--blog-accent);border-color:var(--blog-accent);color:#fff}body.blog-theme-light .blog-page-ellipsis{color:var(--blog-text-muted)}body.blog-theme-light .post-content code:not([class*=language-]){background:#7c3aed14;border-color:#7c3aed33;color:#6d28d9}body.blog-theme-light .post-content pre,body.blog-theme-light .post-content .code-block{background:#f7f5fa;border-color:#ddd6e7;box-shadow:0 8px 24px #2d1c4412}body.blog-theme-light .post-content .code-block-header{background:#f0ecf5;border-bottom-color:#ddd6e7}body.blog-theme-light .post-content pre code,body.blog-theme-light .post-content .code-block code,body.blog-theme-light .post-content pre[class*=language-] code,body.blog-theme-light .post-content code[class*=language-]{background:transparent;border:0;color:#30283a;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:#756a84;font-style:italic}body.blog-theme-light .post-content .token.punctuation{color:#554b63}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 a:not(.blog-category-badge):not(.related-card):not(.back-link):not(.code-copy-btn):not(.post-share-btn):not(.toc-link){color:var(--blog-link);text-decoration-color:#574a6566}body.blog-theme-light .post-content a:not(.blog-category-badge):not(.related-card):not(.back-link):not(.code-copy-btn):not(.post-share-btn):not(.toc-link):hover{color:var(--blog-link-hover);text-decoration-color:var(--blog-link-hover);text-shadow:none}body.blog-theme-light .post-content pre .code-copy-btn:not(.copied):not(.failed){background:#fff;border-color:#7c3aed3d;color:var(--blog-accent)}body.blog-theme-light .post-content pre .code-copy-btn:not(.copied):not(.failed):hover{background:var(--blog-accent);border-color:var(--blog-accent);color:#fff}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{color:var(--blog-text)}body.blog-theme-light .post-content ul li::marker,body.blog-theme-light .post-content ol li::marker{color:var(--blog-text)}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:#0891b20f;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)}body.blog-theme-light .back-link:hover,body.blog-theme-light .post-share-btn:hover{border-color:var(--blog-accent);color:var(--blog-accent)}body.blog-theme-light .related-card:hover{border-color:var(--blog-accent)}body.blog-theme-light .related-card:hover h3{color:var(--blog-accent)}body.blog-theme-switching,body.blog-theme-switching header,body.blog-theme-switching footer,body.blog-theme-switching .blog-post,body.blog-theme-switching .blog-hero,body.blog-theme-switching .blog-card,body.blog-theme-switching .related-card,body.blog-theme-switching .rp-mobile-panel,body.blog-theme-switching .rp-fab,body.blog-theme-switching .scroll-top-button,body.blog-theme-switching .post-content pre,body.blog-theme-switching .post-content code{transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease}@media(prefers-reduced-motion:reduce){body.blog-theme-switching,body.blog-theme-switching *{transition-duration:.01ms!important}}.image-load-shell{position:relative;isolation:isolate;background:var(--blog-surface)}.image-load-shell:before,.image-load-shell:after{position:absolute;inset:0;pointer-events:none}.image-load-shell:before{content:"";z-index:0;background:linear-gradient(90deg,var(--blog-shimmer-a) 25%,var(--blog-shimmer-b) 50%,var(--blog-shimmer-a) 75%);background-size:600px 100%;animation:blogShimmer 1.6s infinite linear;transition:opacity .2s ease}.image-load-shell:after{content:"";z-index:1;display:grid;place-items:center;color:var(--blog-text-muted);font-size:12px;letter-spacing:.02em}.image-load-shell>img{position:relative;z-index:2;opacity:0}.image-load-shell.image-load-shell--loaded:before{opacity:0;animation:none}.image-load-shell.image-load-shell--loaded>img{opacity:1}.image-load-shell.image-load-shell--error:before{background:var(--blog-shimmer-a);animation:none}.image-load-shell.image-load-shell--error:after{content:"Imagem indispon\edvel"}@media(prefers-reduced-motion:reduce){.image-load-shell:before{animation:none}}#blog .blog-grid{display:flex;gap:12px;overflow-x:auto;padding-bottom:2px;scroll-snap-type:none;scrollbar-width:none;overscroll-behavior-inline:contain;cursor:grab;-webkit-overflow-scrolling:touch}#blog .blog-grid::-webkit-scrollbar{display:none}#blog .blog-grid>*{flex:0 0 calc((100% - 24px) / 3);min-width:0;scroll-snap-align:start;scroll-snap-stop:always}@media(pointer:coarse){#blog .blog-grid{scroll-snap-type:x mandatory}}#blog .blog-grid:focus-visible{outline:1px solid var(--color-accent-light);outline-offset:5px}#blog .blog-grid.is-dragging{cursor:grabbing;scroll-snap-type:none}#blog .blog-grid.is-dragging .blog-card{pointer-events:none;-webkit-user-select:none;user-select:none}@media(max-width:860px){#blog .blog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;padding-bottom:0;scroll-snap-type:none;cursor:default}#blog .blog-grid>*{min-width:0}}@media(max-width:660px){#blog .blog-grid{grid-template-columns:1fr}}#blog .blog-carousel{position:relative;padding-bottom:24px}@media(max-width:860px){#blog .blog-carousel{padding-bottom:0}}#blog .blog-scroll-hint{position:absolute;bottom:0;right:0;display:inline-flex;align-items:center;gap:8px;color:var(--color-text-muted);font-size:9px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;white-space:nowrap}#blog .blog-scroll-hint .blog-scroll-hint-line{width:42px;height:1px;background:linear-gradient(90deg,transparent 0%,var(--color-accent-light) 45%,transparent 100%);background-size:200% 100%;animation:blog-scroll-hint-line 1.8s ease-in-out infinite}#blog .blog-scroll-hint fa-icon{display:inline-flex;color:var(--color-accent-light);font-size:12px;animation:blog-scroll-hint-nudge 1.8s ease-in-out infinite}@media(max-width:860px){#blog .blog-scroll-hint{display:none}}@keyframes blog-scroll-hint-line{0%,to{background-position:100% 0;opacity:.45}50%{background-position:0 0;opacity:1}}@keyframes blog-scroll-hint-nudge{0%,to{transform:translate(-2px)}50%{transform:translate(2px)}}@media(prefers-reduced-motion:reduce){#blog .blog-scroll-hint-line,#blog .blog-scroll-hint fa-icon{animation:none}}
