:root { --fundo: #fff; --texto: #080808; --borda: #ddd; --texto-suave: #555; --link: #0066cc; --link-hover: #004499; --codigo-fundo: #f4f4f4; --citacao-texto: #444; --citacao-borda: #aaa; --tabela-header: #f4f4f4; --tabela-par: #fafafa; --destaque-fundo: #fdf6e3; --destaque-borda: #e0d9c3; }

[data-tema="escuro"] { --fundo: #1a1a1a; --texto: #e0e0e0; --borda: #333; --texto-suave: #888; --link: #5ba3f5; --link-hover: #85bbf7; --codigo-fundo: #252525; --citacao-texto: #aaa; --citacao-borda: #555; --tabela-header: #252525; --tabela-par: #1f1f1f; --destaque-fundo: #242118; --destaque-borda: #343020; }

@media (prefers-color-scheme: dark) { :root:not([data-tema]) { --fundo: #1a1a1a; --texto: #e0e0e0; --borda: #333; --texto-suave: #888; --link: #5ba3f5; --link-hover: #85bbf7; --codigo-fundo: #252525; --citacao-texto: #aaa; --citacao-borda: #555; --tabela-header: #252525; --tabela-par: #1f1f1f; --destaque-fundo: #242118; --destaque-borda: #343020; } }

*, *::before, *::after { box-sizing: border-box; }

body { font-family: sans-serif; font-size: 1rem; line-height: 1.6; color: var(--texto); background: var(--fundo); margin: 0; padding: 0; min-height: 100vh; display: flex; flex-direction: column; }

body > main { flex: 1; }

h1, h2, h3, h4, h5, h6 { line-height: 1.25; margin-top: 1.75rem; margin-bottom: 0.5rem; }

p { margin-top: 0; margin-bottom: 1rem; }

a { color: var(--link); text-decoration: underline; }

a:hover { color: var(--link-hover); }

ul, ol { margin: 0 0 1rem; padding-left: 1.5rem; }

hr { border: none; border-top: 1px solid var(--borda); margin: 2rem 0; }

header { border-bottom: 1px solid var(--borda); }

header > div { max-width: 920px; margin: 0 auto; padding: 0.75rem 1rem; display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; }

header > div .seletor-idioma { margin-left: auto; }

header > div .seletor-idioma-menu { bottom: auto; top: calc(100% + 6px); }

header > div .seletor-tema-menu { bottom: auto; top: calc(100% + 6px); }

header .titulo-site { font-weight: bold; text-decoration: none; color: var(--texto); }

header .titulo-site:hover { color: var(--link); }

header nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 1.25rem; }

header nav ul a { text-decoration: none; }

header nav ul a:hover { text-decoration: underline; }

main, body > footer { max-width: 920px; width: 100%; margin: 0 auto; padding: 0 1rem; }

body > footer { position: relative; margin-top: 3rem; padding-top: 1rem; padding-bottom: 2rem; font-size: 0.875rem; color: var(--texto-suave); display: flex; align-items: center; }

body > footer > span { flex: 1; }

body > footer::before { content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 100vw; height: 1px; background: var(--borda); }

.seletor-idioma { text-align: right; font-size: 0.875rem; margin: 1rem 0 0; }

.seletor-idioma a { text-decoration: none; }

.seletor-idioma a:hover { text-decoration: underline; }

.seletor-idioma, .seletor-tema { position: relative; display: inline-block; margin-top: 0; }

.seletor-idioma-botao, .seletor-tema-botao { background: none; border: none; cursor: pointer; color: var(--texto-suave); padding: 0.25rem; border-radius: 4px; display: flex; align-items: center; line-height: 1; }

.seletor-idioma-botao:hover, .seletor-tema-botao:hover { color: var(--texto); }

.seletor-idioma-menu, .seletor-tema-menu { position: absolute; bottom: calc(100% + 6px); left: 0; background: var(--fundo); border: 1px solid var(--borda); border-radius: 6px; padding: 0.25rem; display: flex; flex-direction: column; min-width: 120px; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15); z-index: 10; }

.seletor-idioma-menu[hidden], .seletor-tema-menu[hidden] { display: none; }

.seletor-idioma-menu button, .seletor-tema-menu button { background: none; border: none; cursor: pointer; color: var(--texto); padding: 0.4rem 0.6rem; border-radius: 4px; display: flex; align-items: center; gap: 0.5rem; font-family: inherit; font-size: 0.875rem; text-align: left; width: 100%; }

.seletor-idioma-menu button:hover, .seletor-tema-menu button:hover { background: var(--codigo-fundo); }

.seletor-idioma-menu button.ativo, .seletor-tema-menu button.ativo { font-weight: bold; }

.seletor-tema-botao span { display: flex; align-items: center; }

.seletor-tema-botao span[hidden] { display: none; }

.botao-download-header { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.25rem 0.6rem; border: 1px solid var(--borda); border-radius: 4px; text-decoration: none; font-size: 0.8rem; color: var(--texto-suave); white-space: nowrap; }

.botao-download-header:hover { background: var(--codigo-fundo); color: var(--texto); text-decoration: none; }

.botao-download { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.45rem 0.9rem; border: 1px solid var(--borda); border-radius: 4px; text-decoration: none; font-size: 0.875rem; color: var(--texto); margin-bottom: 2rem; }

.botao-download:hover { background: var(--codigo-fundo); color: var(--texto); text-decoration: none; }

.highlight { background: #1e1e1e; border: 1px solid #333; border-radius: 4px; margin: 1.5rem 0; overflow-x: auto; }

.highlight pre { background: none; border: none; border-radius: 0; margin: 0; padding: 1rem; }

.highlight pre code { font-size: 0.875rem; font-family: 'Noto Sans Mono', monospace; color: #d4d4d4; }

.highlight table td { padding: 5px; }

.highlight table pre { margin: 0; }

.highlight, .highlight .w { color: #d4d4d4; background: #1e1e1e; }

.highlight .err { color: #f44747; background: none; }

.highlight .c, .highlight .ch, .highlight .cd, .highlight .cm, .highlight .cpf, .highlight .c1, .highlight .cs { color: #6a9955; font-style: italic; }

.highlight .cp { color: #6a9955; }

.highlight .nt { color: #569cd6; }

.highlight .o, .highlight .ow { color: #d4d4d4; }

.highlight .p, .highlight .pi { color: #d4d4d4; }

.highlight .gi { color: #4ec9b0; }

.highlight .gd { color: #f44747; }

.highlight .gh { color: #569cd6; font-weight: bold; }

.highlight .k, .highlight .kn, .highlight .kp, .highlight .kr, .highlight .kv { color: #569cd6; }

.highlight .kc { color: #569cd6; }

.highlight .kt { color: #4ec9b0; }

.highlight .kd { color: #569cd6; }

.highlight .s, .highlight .sa, .highlight .sb, .highlight .sc, .highlight .dl, .highlight .sd, .highlight .s2, .highlight .sh, .highlight .sx, .highlight .s1 { color: #ce9178; }

.highlight .sr { color: #d16969; }

.highlight .si { color: #569cd6; }

.highlight .se { color: #d7ba7d; }

.highlight .nn { color: #4ec9b0; }

.highlight .nc { color: #4ec9b0; }

.highlight .no { color: #4fc1ff; }

.highlight .na { color: #9cdcfe; }

.highlight .m, .highlight .mb, .highlight .mf, .highlight .mh, .highlight .mi, .highlight .il, .highlight .mo, .highlight .mx { color: #b5cea8; }

.highlight .ss { color: #ce9178; }

.highlight .nf, .highlight .fm { color: #dcdcaa; }

.highlight .nb { color: #9cdcfe; }

.highlight .nd { color: #dcdcaa; }

.highlight .ni { color: #4ec9b0; }

.highlight .ne { color: #f44747; }

.highlight .go { color: #d4d4d4; }

.highlight .gp { color: #d4d4d4; font-weight: bold; }

.highlight .ge { font-style: italic; }

.highlight .gs { font-weight: bold; }

body:has(main.pagina-inicial) header { display: none; }

main.pagina-inicial { flex: 1; display: flex; align-items: center; justify-content: center; width: 100%; padding: 2rem 1rem; }

main.pagina-inicial .conteudo { width: 100%; max-width: 920px; }

main.pagina-inicial .conteudo .foto-perfil { float: left; width: 220px; margin: 0.25rem 2rem 1rem 0; border-radius: 4px; }

main.pagina-inicial .conteudo .limpa-float { clear: both; }

main.inicio { padding-top: 2rem; }

.lista-artigos { display: grid; grid-template-columns: max-content 1fr; gap: 0.4rem 1.25rem; align-items: baseline; }

.lista-artigos .data { color: var(--texto-suave); font-size: 0.875rem; white-space: nowrap; }

.lista-artigos a { text-decoration: none; }

.lista-artigos a:hover { text-decoration: underline; }

nav.paginacao { margin-top: 2rem; display: flex; justify-content: space-between; }

nav.paginacao a { text-decoration: none; }

nav.paginacao a:hover { text-decoration: underline; }

main > article { margin-top: 2rem; margin-bottom: 3rem; }

main > article h1 { margin-top: 0; }

main > article h1 small { display: block; font-size: 0.875rem; font-weight: normal; color: var(--texto-suave); margin-top: 0.25rem; }

main > article img { display: block; max-width: 100%; height: auto; margin: 0 auto; }

main > article table { display: block; overflow-x: auto; }

blockquote { margin: 1.5rem 0; padding: 0.5rem 1rem; border-left: 3px solid var(--citacao-borda); color: var(--citacao-texto); font-style: italic; }

blockquote p:last-child { margin-bottom: 0; }

table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: 0.9375rem; }

table th, table td { padding: 0.5rem 0.75rem; border: 1px solid var(--borda); text-align: left; }

table th { background: var(--tabela-header); font-weight: bold; }

table tr:nth-child(even) td { background: var(--tabela-par); }

code { background: var(--codigo-fundo); padding: 0.1em 0.3em; border-radius: 3px; font-size: 0.875em; font-family: 'Noto Sans Mono', monospace; }

pre { overflow-x: auto; margin: 1.5rem 0; }

pre code { background: none; padding: 0; border-radius: 0; font-size: 0.875rem; font-family: 'Noto Sans Mono', monospace; }

article.curriculo .botao-download { display: block; margin-left: auto; width: fit-content; margin-top: 1.5rem; margin-bottom: 0; }

article.curriculo h2 { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.08em; border-bottom: 2px solid var(--texto); padding-bottom: 0.25rem; margin-top: 2.25rem; margin-bottom: 0.75rem; }

article.curriculo .entrada-cabecalho { display: flex; justify-content: space-between; align-items: baseline; margin-top: 1.25rem; }

article.curriculo .entrada-cabecalho strong { font-size: 1.05rem; }

article.curriculo .entrada-cabecalho span { font-size: 0.8rem; color: var(--texto-suave); white-space: nowrap; margin-left: 1rem; }

article.curriculo .entrada-cargo { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 0.5rem; }

article.curriculo .entrada-cargo span:first-child { font-size: 0.9rem; font-style: italic; color: var(--texto-suave); }

article.curriculo .entrada-cargo span:last-child { font-size: 0.8rem; color: var(--texto-suave); white-space: nowrap; margin-left: 1rem; }

article.curriculo p { margin-bottom: 0.4rem; text-align: justify; }

@media (max-width: 480px) { article.curriculo .entrada-cabecalho, article.curriculo .entrada-cargo { flex-direction: column; } article.curriculo .entrada-cabecalho span, article.curriculo .entrada-cabecalho span:last-child, article.curriculo .entrada-cargo span, article.curriculo .entrada-cargo span:last-child { white-space: normal; margin-left: 0; } }

/*# sourceMappingURL=estilos.css.map */