/* =========================================================
   Lucas Ventura Vargas
   Minimalista, sério, com um traço cyberpunk:
   raízes-circuito discretas subindo pelo fundo.
   ========================================================= */

:root {
  --bg: #0a0a0a;
  --surface: #111111;
  --text: #f2f2f2;
  --muted: #8c8c8c;
  --faint: #5a5a5a;
  --border: rgba(255, 255, 255, .08);
  --accent: #3ddc84;          /* único acento: verde orgânico */
  --on-accent: #04140b;
  --trace: #3ddc84;           /* cor das raízes no canvas */
  --max: 1080px;
  --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, Consolas, monospace;
  color-scheme: dark;
}

:root[data-theme="light"] {
  --bg: #fafaf9;
  --surface: #ffffff;
  --text: #111111;
  --muted: #666666;
  --faint: #9a9a9a;
  --border: rgba(0, 0, 0, .08);
  --accent: #0f7a52;
  --on-accent: #ffffff;
  --trace: #0f7a52;
  color-scheme: light;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html {
  scroll-behavior: smooth; scroll-padding-top: 72px;
  background: var(--bg);
  transition: background .3s;
}

body {
  font-family: var(--sans);
  color: var(--text);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

/* Raízes-circuito: nascem na base e se dissolvem para cima */
#bg-roots {
  position: fixed; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none;
  -webkit-mask-image: linear-gradient(to top, #000 0%, rgba(0, 0, 0, .5) 35%, transparent 75%);
  mask-image: linear-gradient(to top, #000 0%, rgba(0, 0, 0, .5) 35%, transparent 75%);
}

::selection { background: var(--accent); color: var(--on-accent); }

a { color: var(--text); text-decoration: none; }
a:hover { color: var(--accent); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 4px; }

.container { width: min(100% - 3rem, var(--max)); margin-inline: auto; }

.skip-link {
  position: absolute; left: 1rem; top: -100px; z-index: 60;
  background: var(--text); color: var(--bg); padding: .5rem 1rem; border-radius: 6px;
}
.skip-link:focus { top: 1rem; }

/* ---------- Navegação ---------- */
.nav {
  position: sticky; top: 0; z-index: 10;
  background: color-mix(in srgb, var(--bg) 80%, transparent);
  backdrop-filter: blur(16px) saturate(160%);
  border-bottom: 1px solid var(--border);
}
.nav-inner { display: flex; align-items: center; justify-content: space-between; height: 60px; gap: 1rem; }
.logo { display: flex; align-items: center; gap: 1.1rem; font-weight: 500; font-size: .9rem; letter-spacing: .01em; }
.logo:hover { color: var(--text); }
/* A arara usa a imagem como máscara: assume qualquer cor do tema.
   --logo é o assets/img/logo.png embutido em base64 (máscaras com url() não carregam via file://) */
:root { --logo: url(data:image/png;base64,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); }
.logo-mark {
  width: 30px; height: 17px; flex-shrink: 0;
  background: var(--text);
  -webkit-mask: var(--logo) center / contain no-repeat;
  mask: var(--logo) center / contain no-repeat;
  transition: transform .4s ease, background .3s;
}
.logo:hover .logo-mark { background: var(--accent); transform: translateY(-2px) rotate(-4deg); }

.nav-links { display: flex; gap: 2rem; list-style: none; }
.nav-links a { color: var(--muted); font-size: .85rem; transition: color .2s; }
.nav-links a:hover, .nav-links a.active { color: var(--text); }

.nav-actions { display: flex; gap: .25rem; }
.icon-btn {
  background: none; border: none; color: var(--muted);
  width: 36px; height: 36px; cursor: pointer; font-size: 1rem; border-radius: 8px;
  transition: color .2s, background .2s;
}
.icon-btn:hover { color: var(--text); background: var(--border); }
.menu-btn { display: none; }

/* ---------- Faixa: dinossauro perseguindo o carrinho ---------- */
.chase {
  position: relative; height: 48px; overflow: hidden;
  border-bottom: 2px dotted var(--border);
}
.chase-runners {
  position: absolute; bottom: 0; left: 0;
  display: flex; align-items: flex-end; gap: 30px;
  animation: chase-run 14s steps(280) infinite;   /* avanço "em passos", estilo retrô */
}
.sprite { display: block; line-height: 0; }
.sprite svg { display: block; }
.sprite .px     { fill: currentColor; }
.sprite .px-bg  { fill: var(--bg); }
.sprite .px-hi  { fill: var(--text); }

.dino { color: var(--accent); animation: px-bob .3s steps(1) infinite; }
.car  { color: var(--muted); animation: px-bob .2s steps(1) infinite; }

/* dois quadros alternados: pernas do dino e calotas das rodas */
.frame-b { visibility: hidden; }
.dino .frame-a, .car .frame-a { animation: px-frame .3s steps(1) infinite; }
.dino .frame-b, .car .frame-b { animation: px-frame-b .3s steps(1) infinite; }
.car .frame-a, .car .frame-b { animation-duration: .16s; }

@keyframes chase-run { from { transform: translateX(-160px); } to { transform: translateX(calc(100vw + 20px)); } }
@keyframes px-bob    { 50% { transform: translateY(-2px); } }
@keyframes px-frame   { 0% { visibility: visible; } 50% { visibility: hidden; } }
@keyframes px-frame-b { 0% { visibility: hidden; }  50% { visibility: visible; } }

/* ---------- Hero ---------- */
.hero { min-height: calc(100svh - 60px); display: flex; flex-direction: column; justify-content: center; padding: 4rem 0; }
.eyebrow { font-size: .95rem; font-weight: 500; margin-bottom: 1.5rem; }
.eyebrow span { color: var(--muted); font-weight: 400; }
.hero h1 {
  font-size: clamp(3rem, 9vw, 6.5rem); line-height: 1; font-weight: 600; letter-spacing: -.045em;
  margin-bottom: 2rem;
}
.lead { max-width: 52ch; color: var(--muted); font-size: clamp(1.05rem, 1.6vw, 1.25rem); line-height: 1.55; }
.cta { display: flex; align-items: center; gap: 1.75rem; margin-top: 2.5rem; flex-wrap: wrap; }

.btn {
  display: inline-block; padding: .8rem 1.5rem; border-radius: 999px;
  font-size: .95rem; font-weight: 500; transition: opacity .2s, transform .2s;
}
.btn-primary { background: var(--text); color: var(--bg); }
.btn-primary:hover { color: var(--bg); opacity: .85; }
.btn-link { padding: 0; color: var(--accent); }
.btn-link:hover { opacity: .8; }

.stats {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 2rem;
  margin-top: 5rem; padding-top: 2rem; border-top: 1px solid var(--border);
}
.stats dt { font-size: 1.15rem; font-weight: 600; letter-spacing: -.01em; }
.stats dd { color: var(--muted); font-size: .88rem; }

/* ---------- Declaração ---------- */
.statement { padding: 8rem 0; }
.statement p {
  font-size: clamp(1.8rem, 4.5vw, 3.2rem); line-height: 1.15; font-weight: 600; letter-spacing: -.03em;
  max-width: 22ch; color: var(--faint);
}
.statement span { color: var(--text); }

/* ---------- Seções ---------- */
.section { padding: 8rem 0; border-top: 1px solid var(--border); }
.label { font-family: var(--mono); font-size: .75rem; color: var(--accent); letter-spacing: .04em; margin-bottom: 1rem; }
.section h2 {
  font-size: clamp(2rem, 5vw, 3.4rem); line-height: 1.08; font-weight: 600; letter-spacing: -.035em;
  max-width: 20ch; margin-bottom: 2.5rem;
}
.section-intro { max-width: 60ch; color: var(--muted); font-size: 1.1rem; margin: -1rem 0 3.5rem; }
.meta { font-family: var(--mono); font-size: .75rem; color: var(--muted); letter-spacing: .02em; }

.two-col { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem 4rem; }
.two-col p { color: var(--muted); font-size: 1.05rem; }

/* Três dimensões */
.dimensions { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 2.5rem; margin-top: 5rem; }
.dimension { display: block; padding-top: 1.5rem; border-top: 1px solid var(--border); transition: border-color .3s; }
.dimension:hover { color: var(--text); border-color: var(--accent); }
.dim-num { font-family: var(--mono); font-size: .75rem; color: var(--faint); }
.dimension h3 { font-size: 1.15rem; font-weight: 600; margin: .75rem 0 .4rem; }
.dimension p { color: var(--muted); font-size: .95rem; }

/* ---------- Experiência ---------- */
.job-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .5rem 2rem; margin-bottom: 1rem; }
.job-head h3 { font-size: 1.25rem; font-weight: 600; letter-spacing: -.01em; }

.rows { border-top: 1px solid var(--border); }
.row { display: grid; grid-template-columns: 220px 1fr; gap: 1rem 3rem; padding: 2.5rem 0; border-bottom: 1px solid var(--border); }
.row-side .meta { display: inline-block; padding-top: .3rem; }
.row:first-child .row-side .meta { color: var(--accent); }
.row-main h3 { font-size: 1.2rem; font-weight: 600; letter-spacing: -.01em; margin-bottom: .6rem; }
.row-main p { color: var(--muted); max-width: 62ch; }
.row-main .stack { font-family: var(--mono); font-size: .78rem; color: var(--faint); margin-top: 1rem; }

/* ---------- Investigador ---------- */
.grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 3rem 3.5rem; }
.item { padding-top: 1.5rem; border-top: 1px solid var(--border); }
.item h3 { font-size: 1.05rem; font-weight: 600; margin-bottom: .5rem; }
.item p { color: var(--muted); font-size: .95rem; }

/* ---------- Ebooks ---------- */
.cover {
  position: relative; aspect-ratio: 3 / 4.2; display: flex; flex-direction: column; justify-content: space-between;
  padding: 1.6rem 1.4rem; border-radius: 6px; overflow: hidden;
  background: linear-gradient(165deg, #1a1a1a, #070707);
  border: 1px solid rgba(255, 255, 255, .08);
  box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .6);
  color: #f2f2f2;
}
/* raiz-circuito estilizada subindo pela capa */
.cover::after {
  content: ""; position: absolute; left: 28%; bottom: 0; width: 1px; height: 46%;
  background: linear-gradient(to top, var(--accent), transparent);
}
.cover::before {
  content: ""; position: absolute; left: 28%; bottom: 22%; width: 22%; height: 1px;
  background: linear-gradient(to right, var(--accent), transparent); opacity: .7;
}
.cover-vol { font-family: var(--mono); font-size: .7rem; color: #8c8c8c; letter-spacing: .08em; }
.cover-title { font-size: 1.45rem; line-height: 1.15; font-weight: 600; letter-spacing: -.02em; max-width: 12ch; }
.cover-author { font-size: .75rem; color: #8c8c8c; align-self: flex-end; }

.ebook-featured { display: grid; grid-template-columns: minmax(200px, 300px) 1fr; gap: 4rem; align-items: center; }
.ebook-info { display: flex; flex-direction: column; gap: 1rem; }
.ebook-info .meta { color: var(--accent); }
.ebook-info h3 { font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 600; letter-spacing: -.025em; }
.ebook-info > p { color: var(--muted); font-size: 1.05rem; max-width: 52ch; }
.ebook-buy { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; margin-top: 1rem; }
.price { font-size: 1.5rem; font-weight: 600; }

.list { list-style: none; display: grid; gap: .45rem; }
.list li { position: relative; padding-left: 1.25rem; color: var(--muted); font-size: .95rem; }
.list li::before { content: ""; position: absolute; left: 0; top: .7em; width: 6px; height: 1px; background: var(--accent); }
.list strong { color: var(--text); font-weight: 500; }
.list.numbered { counter-reset: n; }
.list.numbered li { counter-increment: n; padding-left: 1.75rem; }
.list.numbered li::before {
  content: counter(n, decimal-leading-zero); width: auto; height: auto; top: .15em; background: none;
  font-family: var(--mono); font-size: .7rem; color: var(--faint);
}

.series-head { margin: 7rem 0 2.5rem; padding-top: 2.5rem; border-top: 1px solid var(--border); }
.series-head h3 { font-size: 1.5rem; font-weight: 600; letter-spacing: -.02em; }
.series-head p { color: var(--muted); }

.shelf { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 3rem; align-items: start; }
.book { display: flex; flex-direction: column; gap: .75rem; }
.cover.small { aspect-ratio: 4 / 3; padding: 1.25rem; margin-bottom: .75rem; transition: transform .4s; }
.cover.small .cover-title { font-size: 1.2rem; }
.book:hover .cover.small { transform: translateY(-4px); }
.book h4 { font-size: 1.1rem; font-weight: 600; }
.book > p { color: var(--muted); font-size: .95rem; }

details { border-top: 1px solid var(--border); padding-top: .75rem; }
summary {
  cursor: pointer; list-style: none; font-size: .85rem; color: var(--muted);
  display: flex; justify-content: space-between; align-items: center;
}
summary::-webkit-details-marker { display: none; }
summary::after { content: "+"; font-family: var(--mono); color: var(--faint); transition: transform .2s; }
details[open] summary::after { transform: rotate(45deg); }
summary:hover { color: var(--text); }
details .list { margin-top: 1rem; }

.book-link { font-size: .9rem; color: var(--accent); margin-top: .25rem; }
.book-link:hover { opacity: .8; }

.note { margin-top: 4rem; color: var(--muted); font-size: .95rem; }
.note a { color: var(--accent); }

/* ---------- Skills ---------- */
.skills { border-top: 1px solid var(--border); }
.skills div { display: grid; grid-template-columns: 220px 1fr; gap: 1rem 3rem; padding: 1.25rem 0; border-bottom: 1px solid var(--border); }
.skills dt { font-weight: 500; }
.skills dd { color: var(--muted); }

/* ---------- Formação ---------- */
.timeline { list-style: none; border-top: 1px solid var(--border); }
.timeline li { display: grid; grid-template-columns: 220px 1fr; grid-template-rows: auto auto; column-gap: 3rem; padding: 1.75rem 0; border-bottom: 1px solid var(--border); }
.timeline .meta { grid-row: span 2; padding-top: .3rem; }
.timeline h3 { font-size: 1.1rem; font-weight: 600; }
.timeline p { color: var(--muted); }

/* ---------- Humano ---------- */
.quote {
  margin-top: 5rem; max-width: 30ch;
  font-size: clamp(1.4rem, 3vw, 2rem); line-height: 1.3; font-weight: 500; letter-spacing: -.02em;
}

/* ---------- Contato ---------- */
.contact > p:not(.label) { color: var(--muted); font-size: 1.1rem; margin: -1rem 0 2.5rem; }
.socials { display: flex; gap: 2rem; list-style: none; margin-top: 2.5rem; }
.socials a { color: var(--muted); font-size: .95rem; }
.socials a:hover { color: var(--text); }

.footer { padding: 2rem 0 3rem; color: var(--faint); font-size: .85rem; }

/* ---------- Animação de entrada ---------- */
.reveal { opacity: 0; transform: translateY(16px); transition: opacity .9s ease, transform .9s ease; }
.reveal.visible { opacity: 1; transform: none; }

/* ---------- Responsivo ---------- */
@media (max-width: 860px) {
  .menu-btn { display: inline-block; }
  .nav-links {
    display: none; position: absolute; top: 60px; left: 0; right: 0;
    flex-direction: column; gap: 0; padding: .5rem 1.5rem 1.25rem;
    background: var(--bg); border-bottom: 1px solid var(--border);
  }
  .nav-links.open { display: flex; }
  .nav-links a { display: block; padding: .8rem 0; font-size: 1rem; }

  .section { padding: 5.5rem 0; }
  .statement { padding: 5rem 0; }
  .row, .skills div, .timeline li { grid-template-columns: 1fr; }
  .timeline .meta { grid-row: auto; }
  .ebook-featured { grid-template-columns: 1fr; gap: 2.5rem; }
  .ebook-featured .cover { max-width: 260px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .cover.small { transition: none; }
  /* cena parada no meio da faixa */
  .chase-runners, .sprite, .sprite .frame-a, .sprite .frame-b { animation: none; }
  .chase-runners { left: 50%; transform: translateX(-50%); }
}
