:root{--bg:#f3f6fa;--bg-elev:#fff;--texto:#1c2430;--suave:#5b6878;--borda:#dbe2ea;--link:#1d4ed8;--link-hover:#1e3a8a;--codigo-bg:#e8eef6;--destaque:#dbe7fb;--contraste:#12295f;--contraste-suave:#dbe3f5;--card-bg:#12295f;--card-texto:#fff;--card-suave:#b7c6ea;--fonte:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "JetBrains Mono", "Cascadia Code", "SF Mono", Menlo, Consolas, monospace;--largura:1600px;--gutter:clamp(1rem, 3.5vw, 3rem);color-scheme:light}:root[data-theme=dark]{--bg:#0f1419;--bg-elev:#151b22;--texto:#dfe5ec;--suave:#8d99a8;--borda:#252e39;--link:#7db0ff;--link-hover:#b3d0ff;--codigo-bg:#161d26;--destaque:#1c2a40;--contraste:#6f95e8;--contraste-suave:#1a2540;--card-bg:#e2e5ea;--card-texto:#12295f;--card-suave:#3d507a;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:4.5rem;font-size:18px}body{background:var(--bg);color:var(--texto);font:1.0625rem/1.7 var(--fonte);text-rendering:optimizelegibility;flex-direction:column;min-height:100vh;margin:0;display:flex}main{width:100%;padding-block:2.5rem 4rem}.corpo{flex-direction:column;flex:1;display:flex;position:relative}.corpo>main{flex:1}@media (width>=90rem){body{font-size:1.125rem}}.contorno{width:100%;max-width:var(--largura);padding-inline:var(--gutter);margin-inline:auto}a{color:var(--link);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{color:var(--link-hover)}:focus-visible{outline:2px solid var(--link);outline-offset:2px;border-radius:2px}.sr-only,.pular:not(:focus){clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.pular{background:var(--bg-elev);z-index:10;padding:.5rem 1rem;position:absolute;top:1rem;left:1rem}.topo{border-bottom:1px solid var(--borda);background:color-mix(in srgb, var(--bg) 96%, transparent);backdrop-filter:blur(8px);z-index:5;position:sticky;top:0}.topo-in{justify-content:space-between;align-items:center;height:3.5rem;display:flex}.topo{border-bottom-width:3px}.marca{color:var(--contraste);letter-spacing:-.01em;font-size:1.1rem;font-weight:700;text-decoration:none}.topo nav{align-items:center;gap:1.1rem;font-size:.95rem;display:flex}.topo nav a{color:var(--suave);text-decoration:none}.topo nav a:hover,.topo nav a[aria-current]{color:var(--texto)}.icone{color:var(--suave);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;padding:.25rem;display:inline-grid}.icone:hover{color:var(--texto)}#tema .sol{display:none}:root[data-theme=dark] #tema .sol{display:block}:root[data-theme=dark] #tema .lua{display:none}.rodape{border-top:1px solid var(--borda);color:var(--suave);padding-block:1.5rem;font-size:.875rem}.rodape .contorno{flex-wrap:wrap;justify-content:space-between;gap:1rem;display:flex}.rodape a{color:inherit}h1.pagina{letter-spacing:-.02em;margin:0 0 .5rem;font-size:2rem;line-height:1.2}.sub{color:var(--suave);margin:0 0 2rem}.lista{margin:0;padding:0;list-style:none}.lista li{align-items:baseline;gap:1.25rem;padding-block:.4rem;display:flex}.lista time{white-space:nowrap;width:7.4rem;color:var(--suave);font-variant-numeric:tabular-nums;flex:none;font-size:.875rem}.lista a{color:var(--texto);text-decoration:none}.lista a:hover{color:var(--link);text-decoration:underline}h2.secao{text-transform:uppercase;letter-spacing:.08em;color:var(--contraste);margin:2.25rem 0 .5rem;font-size:.8rem;font-weight:600}h2.secao:before{content:"▶ "}.chips{flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.chip{border:2px solid var(--borda);color:var(--suave);background:var(--bg-elev);border-radius:0;padding:.1rem .7rem;font-size:.85rem;line-height:1.6;text-decoration:none;display:inline-block}.chip:hover,.chip[aria-current]{color:var(--contraste);border-color:var(--contraste)}.chip small{opacity:.7;margin-left:.25rem}.mais{margin-top:1.25rem;display:inline-block}.apresentacao h1{letter-spacing:-.03em;margin:0 0 .5rem;font-size:2.25rem;line-height:1.15}.apresentacao p{color:var(--suave);max-width:46rem;margin:0;font-size:1.1rem}.artigo-cab h1{letter-spacing:-.025em;text-wrap:balance;margin:0 0 .75rem;font-size:2.25rem;line-height:1.2}.meta{color:var(--suave);flex-wrap:wrap;align-items:center;gap:.25rem .9rem;margin-bottom:1.75rem;font-size:.9rem;display:flex}.meta .chip{padding-inline:.55rem;font-size:.78rem}.prosa{overflow-wrap:break-word}.prosa>:first-child{margin-top:0}.prosa h2,.prosa h3,.prosa h4{letter-spacing:-.015em;text-wrap:balance;margin:2.2em 0 .6em;line-height:1.3}.prosa h2{border-bottom:3px solid var(--contraste);padding-bottom:.3rem;font-size:1.55rem}.prosa h3{font-size:1.28rem}.prosa h4{font-size:1.1rem}.prosa p,.prosa ul,.prosa ol,.prosa blockquote,.prosa table,.prosa figure,.prosa pre{margin:0 0 1.2em}.prosa li{margin-block:.25em}.prosa li>p{margin-bottom:.5em}.prosa li>ul,.prosa li>ol{margin:.25em 0}.prosa strong{font-weight:650}.prosa hr{border:0;border-top:1px solid var(--borda);margin:2.5rem 0}.prosa blockquote{border-left:4px solid var(--contraste);color:var(--suave);padding:.1rem 0 .1rem 1.1rem}.prosa img,.prosa video{image-rendering:auto;border-radius:0;max-width:100%;height:auto;margin-inline:auto;display:block}.prosa figure{text-align:center}.prosa figcaption{color:var(--suave);margin-top:.6rem;font-size:.875rem;line-height:1.5}.prosa :not(pre)>code{font:.88em var(--mono);background:var(--codigo-bg);border-radius:5px;padding:.12em .4em}.prosa .footnotes{color:var(--suave);border-top:1px solid var(--borda);margin-top:3rem;font-size:.9rem}.prosa .footnotes h2{text-transform:uppercase;letter-spacing:.08em;border:0;margin-top:1rem;font-size:.8rem}.prosa sup a{text-decoration:none}.prosa table{border-collapse:collapse;max-width:100%;font-size:.95rem;display:block;overflow-x:auto}.prosa th,.prosa td{border:1px solid var(--borda);text-align:left;vertical-align:top;padding:.45rem .8rem}.prosa th{background:var(--bg-elev);font-weight:600}.prosa tbody tr:nth-child(2n) td{background:color-mix(in srgb, var(--bg-elev) 55%, transparent)}.prosa pre{background:var(--codigo-bg);border:2px solid var(--borda);font:.86rem/1.6 var(--mono);tab-size:4;border-radius:0;padding:1rem 1.1rem;position:relative;overflow-x:auto}.prosa pre code{font:inherit;background:0 0;padding:0}.astro-code,.astro-code span{color:var(--shiki-light)}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)}.prosa pre[data-language]:not([data-language=text],[data-language=plaintext],[data-language=txt]){padding-top:2.4rem}.prosa pre[data-language]:before{content:attr(data-language);font:600 .72rem/1 var(--fonte);letter-spacing:.03em;color:var(--contraste);user-select:none;pointer-events:none;position:absolute;top:.6rem;left:1.1rem}.prosa pre[data-language=cpp]:before{content:"C++"}.prosa pre[data-language=csharp]:before{content:"C#"}.prosa pre[data-language=javascript]:before{content:"JavaScript"}.prosa pre[data-language=typescript]:before{content:"TypeScript"}.prosa pre[data-language=sql]:before{content:"SQL"}.prosa pre[data-language=json]:before{content:"JSON"}.prosa pre[data-language=html]:before{content:"HTML"}.prosa pre[data-language=css]:before{content:"CSS"}.prosa pre[data-language=php]:before{content:"PHP"}.prosa pre[data-language=yaml]:before{content:"YAML"}.prosa pre[data-language=r]:before{content:"R"}.prosa pre[data-language=c]:before{content:"C"}.prosa pre[data-language=bash]:before,.prosa pre[data-language=shell]:before{content:"Bash"}.prosa pre[data-language=python]:before{content:"Python"}.prosa pre[data-language=text]:before,.prosa pre[data-language=plaintext]:before,.prosa pre[data-language=txt]:before{content:none}.copiar{font:.72rem var(--fonte);color:var(--suave);background:var(--bg-elev);border:1px solid var(--borda);cursor:pointer;opacity:0;border-radius:5px;padding:.15rem .5rem;transition:opacity .15s;position:absolute;top:.45rem;right:.45rem}.prosa pre:hover .copiar,.copiar:focus-visible{opacity:1}@media (hover:none){.copiar{opacity:1}}.katex-display{margin:1.2em 0;padding-block:.4rem;overflow:auto hidden}.katex{font-size:1.08em}pre.mermaid{text-align:center;font-family:var(--fonte);visibility:hidden;background:0 0;border:0}pre.mermaid[data-processed]{visibility:visible}pre.mermaid svg{max-width:100%;height:auto}.prosa figure.video{margin-inline:auto}.yt,.prosa figure.video iframe{aspect-ratio:16/9;background:#000;border:0;border-radius:8px;width:100%;display:block;position:relative;overflow:hidden}.yt img{object-fit:cover;opacity:.88;border-radius:0;width:100%;height:100%;transition:opacity .2s}.yt:hover img{opacity:1}.yt-play{background:#e62117;border-radius:.8rem;width:4.2rem;height:2.9rem;margin:auto;position:absolute;inset:0}.yt-play:after{content:"";border:.6rem solid #0000;border-left:1.05rem solid #fff;border-right-width:0;width:0;height:0;margin:auto;position:absolute;inset:0}.toc{z-index:6;overscroll-behavior:contain;background:var(--bg-elev);border:2px solid var(--contraste);width:max-content;max-width:min(22rem,100vw - 2rem);max-height:70vh;box-shadow:4px 4px 0 var(--contraste);border-radius:0;font-size:.8rem;position:fixed;bottom:1rem;right:1rem;overflow-y:auto}.toc summary{cursor:pointer;color:var(--contraste);padding:.6rem 1rem;font-size:.8rem;font-weight:600}.toc ol{counter-reset:toc;margin:0;padding:0 1rem .8rem;list-style:none}.toc li{border-top:1px solid var(--borda);counter-increment:toc;line-height:1.35}.toc li.n3{margin-left:.9rem}.toc a{color:var(--suave);padding:.4rem 0 .4rem 1.1rem;text-decoration:none;display:block;position:relative}.toc a:before{content:"";background:var(--borda);width:.45rem;height:.45rem;position:absolute;top:.8em;left:0}.toc a:hover{color:var(--texto)}.toc a:hover:before{background:var(--link)}.toc a.ativo,.toc a[aria-current]{color:var(--texto);font-weight:700}.toc a.ativo:before,.toc a[aria-current]:before{background:var(--contraste)}@media (width<=71.99rem){body:has(.toc) .rodape{padding-bottom:4.5rem}}@media (width>=72rem){.com-toc{padding-left:17.5rem}.trilho{top:0;bottom:2rem;left:max(var(--gutter), calc((100% - var(--largura)) / 2 + var(--gutter)));pointer-events:none;width:15rem;position:absolute}.toc{z-index:4;pointer-events:auto;background:var(--bg-elev);border:1px solid var(--borda);border-top:4px solid var(--contraste);width:auto;max-width:none;max-height:calc(100vh - 6rem);box-shadow:none;position:sticky;top:4.75rem;bottom:auto;right:auto}.toc summary{pointer-events:none;border-bottom:1px solid var(--borda);list-style:none}.toc summary::-webkit-details-marker{display:none}.toc ol{padding-top:0}.toc li:first-child{border-top:0}}.trilha-sup{color:var(--contraste);text-transform:uppercase;letter-spacing:.08em;margin:0 0 .25rem;font-size:.8rem;font-weight:700}.xp{max-width:36rem;margin:.5rem 0 2rem}.xp-barra{border:2px solid var(--card-bg);background:var(--bg-elev);height:.9rem}.xp-preenche{background:repeating-linear-gradient(90deg, var(--card-bg) 0 .6rem, var(--link) .6rem .75rem);width:0;height:100%;transition:width .3s;display:block}.xp-texto{color:var(--suave);margin:.4rem 0 0;font-size:.85rem}.fase{margin-bottom:2.5rem}.fase-titulo{flex-wrap:wrap;align-items:center;gap:.6rem;margin:0;font-size:1.3rem;display:flex}.fase-n{background:var(--card-bg);color:var(--card-texto);text-transform:uppercase;letter-spacing:.06em;padding:.15rem .6rem;font-size:.75rem;font-weight:700}.fase-estrelas{color:var(--contraste);letter-spacing:.15em;margin-left:auto}.fase-dica{color:var(--suave);margin:.25rem 0 1rem;font-size:.9rem}.cards{grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.card{background:var(--card-bg);color:var(--card-texto);border:2px solid var(--card-bg);box-shadow:4px 4px 0 color-mix(in srgb, var(--card-bg) 35%, transparent);flex-direction:column;gap:.5rem;padding:1rem 1.1rem;transition:transform .12s,box-shadow .12s;display:flex}.card:hover{box-shadow:6px 6px 0 color-mix(in srgb, var(--card-bg) 35%, transparent);transform:translate(-2px,-2px)}.card-ordem{color:var(--card-suave);text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;font-weight:700}.card-titulo{color:var(--card-texto);font-size:1.05rem;font-weight:700;line-height:1.3;text-decoration:none}.card-titulo:hover{color:var(--card-texto);text-decoration:underline}.card-desc{color:var(--card-suave);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:.85rem;line-height:1.5;display:-webkit-box;overflow:hidden}.card-rodape{color:var(--card-suave);justify-content:space-between;align-items:center;gap:.5rem;margin-top:auto;padding-top:.5rem;font-size:.75rem;display:flex}.card-feito{font:inherit;cursor:pointer;color:var(--card-texto);border:2px solid var(--card-suave);background:0 0;border-radius:0;padding:.15rem .6rem;font-weight:700}.card-feito:hover{border-color:var(--card-texto)}.card.feito{background:color-mix(in srgb, var(--card-bg) 55%, var(--bg))}.card.feito .card-feito{background:var(--card-texto);color:var(--card-bg);border-color:var(--card-texto)}.redes{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.75rem;max-width:52rem;margin:0;padding:0;list-style:none;display:grid}.rede{background:var(--card-bg);height:100%;color:var(--card-texto);border:2px solid var(--card-bg);border-left:6px solid var(--link);box-shadow:4px 4px 0 color-mix(in srgb, var(--card-bg) 35%, transparent);grid-template-columns:1fr auto;align-items:center;column-gap:1.5rem;padding:.55rem 1rem;text-decoration:none;transition:transform .12s;display:grid}.rede:hover{color:var(--card-texto);transform:translate(-2px,-2px)}.rede-nome{font-weight:700}.rede-user{color:var(--card-suave);grid-column:1;font-size:.8rem}.rede-seta{grid-area:1/2/span 2;font-size:1.2rem}.navegar{border-top:1px solid var(--borda);grid-template-columns:1fr 1fr;gap:1rem;margin-top:3.5rem;padding-top:1.5rem;font-size:.95rem;display:grid}.navegar a{color:var(--texto);text-decoration:none;display:block}.navegar a:hover{color:var(--link)}.navegar small{color:var(--suave);display:block}.navegar .prox{text-align:right;grid-column:2}@media (width<=36rem){.navegar{grid-template-columns:1fr}.navegar .prox{text-align:left;grid-column:1}}#pesquisa{--pagefind-ui-scale:1;--pagefind-ui-primary:var(--link);--pagefind-ui-text:var(--texto);--pagefind-ui-background:var(--bg-elev);--pagefind-ui-border:var(--borda);--pagefind-ui-tag:var(--destaque);--pagefind-ui-font:var(--fonte)}@media (width<=36rem){body{font-size:1rem}.artigo-cab h1,.apresentacao h1{font-size:1.8rem}.lista li{flex-direction:column;gap:0;padding-block:.5rem}.lista time{width:auto}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.topo,.rodape,.toc,.copiar,.navegar{display:none}body{color:#000;background:#fff}}
