:root{
  --navy-950:#0B111C;
  --navy-900:#111A29;
  --navy-800:#1A2436;
  --navy-700:#232F45;
  --amber:#F7A53E;
  --ink:#F5F6F8;
  --grey:#B0B8C4;
  --grey-dim:#6E788D;
  --line:#2A3548;
  --serif:'Fraunces', Georgia, serif;
  --sans:'Inter', -apple-system, sans-serif;
  --mono:'JetBrains Mono', 'SF Mono', Consolas, monospace;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{
  background:var(--navy-950);color:var(--ink);font-family:var(--sans);
  line-height:1.65;-webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
.wrap{max-width:920px;margin:0 auto;padding:0 24px;}

.site-header{border-bottom:1px solid var(--line);padding:22px 0;}
.head-inner{display:flex;justify-content:space-between;align-items:center;}
.brand{font-weight:700;font-size:14px;letter-spacing:0.04em;display:flex;align-items:center;}
.brand-mark{width:22px;height:auto;flex-shrink:0;margin-right:9px;}
.site-header nav a{margin-left:28px;color:var(--grey);font-size:14px;font-weight:500;}
.site-header nav a:hover{color:var(--amber);}

main{padding:64px 0 96px;}
h1{font-family:var(--serif);font-size:clamp(2rem,4vw,2.6rem);font-weight:700;}
.lede{color:var(--grey);margin-top:14px;font-size:17px;max-width:640px;}

.filtros{display:flex;gap:10px;flex-wrap:wrap;margin:36px 0 8px;}
.filtro{
  background:transparent;border:1px solid var(--line);color:var(--grey);
  padding:8px 16px;border-radius:20px;font-size:13px;cursor:pointer;font-family:var(--sans);
}
.filtro.active,.filtro:hover{border-color:var(--amber);color:var(--amber);}

.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:28px;}
@media (max-width:700px){ .grid{grid-template-columns:1fr;} }
.card{
  display:block;background:var(--navy-800);border:1px solid var(--line);
  border-radius:12px;padding:26px;transition:border-color .15s ease,transform .15s ease;
}
.card:hover{border-color:var(--amber);transform:translateY(-2px);}
.card-pilar{
  font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--amber);font-weight:700;
}
.card h3{font-family:var(--serif);font-size:1.2rem;margin:12px 0 8px;line-height:1.3;}
.card p{color:var(--grey);font-size:14.5px;}
.card-date{display:block;margin-top:16px;font-size:12.5px;color:var(--grey-dim);}

.post{max-width:680px;}
.post h1{margin-top:14px;line-height:1.2;}
.post-meta{color:var(--grey-dim);font-size:14px;margin-top:14px;}
.post article{margin-top:36px;font-size:17px;color:var(--ink);}
.post article p{margin-bottom:20px;color:#DCE0E8;}
.post article h2{
  font-family:var(--serif);font-size:1.5rem;margin:40px 0 16px;color:var(--ink);
}
.post article blockquote{
  border-left:2px solid var(--amber);padding-left:20px;margin:28px 0;
  font-family:var(--serif);font-size:1.15rem;color:var(--ink);font-style:italic;
}
.post article ul,.post article ol{margin:0 0 20px 22px;color:#DCE0E8;}
.post article li{margin-bottom:8px;}
.post article a{color:var(--amber);text-decoration:underline;}

.tags{margin-top:36px;display:flex;gap:10px;flex-wrap:wrap;}
.tags span{font-size:12.5px;color:var(--grey-dim);}
.voltar{display:inline-block;margin-top:48px;color:var(--amber);font-size:14px;font-weight:600;}

.site-footer{border-top:1px solid var(--line);padding:32px 0;margin-top:40px;}
.site-footer p{font-size:13px;color:var(--grey-dim);text-align:center;}

/* ---------- Home ---------- */
.wrap-wide{max-width:1140px;margin:0 auto;padding:0 24px;}

.hero-home{
  position:relative;overflow:hidden;border-bottom:1px solid var(--line);
  padding:88px 0 80px;
  background:linear-gradient(180deg,var(--navy-900) 0%,var(--navy-950) 100%);
}
.hero-home::before{
  content:"NES";position:absolute;top:50%;right:-40px;transform:translateY(-50%);
  font-family:var(--serif);font-weight:700;font-size:min(30vw,360px);line-height:1;
  color:transparent;-webkit-text-stroke:1px var(--navy-800);
  pointer-events:none;z-index:0;
}
.hero-home-inner{position:relative;z-index:1;max-width:680px;}
.byline{display:flex;align-items:center;gap:12px;margin-bottom:22px;}
.byline-photo{width:40px;height:40px;border-radius:50%;object-fit:cover;border:1px solid var(--line);}
.kicker{
  font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--amber);
  font-weight:700;
}
.hero-home h1{
  font-family:var(--serif);font-size:clamp(2.2rem,4.4vw,3.1rem);font-weight:700;
  line-height:1.12;letter-spacing:-0.01em;margin-bottom:18px;
}
.hero-home .lede{margin-top:0;font-size:17px;max-width:52ch;}
.hero-ctas{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap;}
.hero-stats{font-family:var(--mono);font-size:12.5px;color:var(--grey-dim);margin-top:22px;letter-spacing:0.01em;}
.btn{display:inline-block;background:var(--amber);color:var(--navy-950);padding:13px 26px;border-radius:8px;font-weight:600;font-size:14px;transition:transform .15s ease,opacity .15s ease;}
.btn:hover{opacity:.88;transform:translateY(-1px);}
.btn-outline{background:transparent;border:1px solid var(--line);color:var(--ink);}
.btn-outline:hover{border-color:var(--amber);color:var(--amber);}

.ultimos-posts{margin-top:80px;}
.post-destaque{
  display:block;background:var(--navy-800);border:1px solid var(--line);border-radius:12px;
  padding:40px;margin-top:24px;transition:border-color .15s ease;
}
.post-destaque:hover{border-color:var(--amber);}
.post-destaque h3{font-family:var(--serif);font-size:1.7rem;margin:14px 0 12px;line-height:1.25;}
.post-destaque p{color:var(--grey);font-size:15.5px;max-width:60ch;}
.post-destaque .saiba-mais{display:inline-block;margin-top:18px;color:var(--amber);font-size:14px;font-weight:600;}

.o-que-faco{margin-top:88px;}
.o-que-faco h2,.ultimos-posts h2{font-family:var(--serif);font-size:1.7rem;}
.servicos-list{margin-top:8px;border-top:1px solid var(--line);}
.servico-item{
  display:grid;grid-template-columns:180px 1fr;gap:32px;align-items:start;
  padding:32px 0;border-bottom:1px solid var(--line);
}
.servico-item .card-pilar{padding-top:2px;}
.servico-item h3{font-family:var(--serif);font-size:1.25rem;margin-bottom:8px;}
.servico-item p{color:var(--grey);font-size:14.5px;max-width:52ch;}
.servico-item .saiba-mais{display:inline-block;margin-top:12px;color:var(--amber);font-size:13.5px;font-weight:600;}
.servico-item:hover .saiba-mais{text-decoration:underline;}

.section-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px;}
.ver-todos{color:var(--amber);font-size:14px;font-weight:600;}

@media (max-width:800px){
  .hero-home{padding:56px 0 48px;}
  .hero-home::before{font-size:34vw;right:-20px;}
  .servico-item{grid-template-columns:1fr;gap:8px;}
  .post-destaque{padding:28px;}
}

/* ---------- textura + tag mono (identidade "dev") ---------- */
.grid-texture{position:relative;}
.grid-texture::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size:44px 44px;
  opacity:0.4;
  mask-image:radial-gradient(ellipse 75% 65% at 50% 0%, black 30%, transparent 100%);
  -webkit-mask-image:radial-gradient(ellipse 75% 65% at 50% 0%, black 30%, transparent 100%);
}

.tag-pill{
  display:inline-flex;align-items:center;font-family:var(--mono);font-size:12px;
  letter-spacing:0.01em;color:var(--amber);background:rgba(247,165,62,0.08);
  border:1px solid rgba(247,165,62,0.28);border-radius:4px;padding:3px 9px;
}
.tag-pill::before{content:"#";opacity:.55;margin-right:2px;}

/* ---------- Blog: listagem changelog ---------- */
.blog-header{border-bottom:1px solid var(--line);padding:64px 0 40px;margin-bottom:8px;}
.blog-header h1{position:relative;z-index:1;}
.blog-header .lede{position:relative;z-index:1;}
.blog-header .filtros{position:relative;z-index:1;}

.changelog-list{margin-top:8px;border-top:1px solid var(--line);}
.log-entry{
  display:grid;grid-template-columns:130px 1fr;gap:28px;
  padding:26px 0;border-bottom:1px solid var(--line);
}
.log-date{font-family:var(--mono);font-size:12.5px;color:var(--grey-dim);padding-top:4px;white-space:nowrap;}
.log-body h3{font-family:var(--serif);font-size:1.2rem;margin:10px 0 6px;line-height:1.3;transition:color .15s ease;}
.log-body p{color:var(--grey);font-size:14px;max-width:62ch;}
.log-entry:hover .log-body h3{color:var(--amber);}
@media (max-width:640px){
  .log-entry{grid-template-columns:1fr;gap:6px;}
  .log-date{order:2;}
}

/* ---------- Páginas institucionais ---------- */
.page-header{border-bottom:1px solid var(--line);padding:64px 0 48px;margin-bottom:8px;}
.page-header .kicker{display:block;margin-bottom:14px;position:relative;z-index:1;}
.page-header h1{position:relative;z-index:1;}
.page-header .lede{position:relative;z-index:1;max-width:60ch;margin-top:0;}

.sobre-layout{display:grid;grid-template-columns:260px 1fr;gap:56px;align-items:start;margin-top:8px;}
.sobre-photo-frame{max-width:260px;width:100%;}
.sobre-photo-box{position:relative;width:100%;padding-bottom:125%;border-radius:4px;overflow:hidden;border:1px solid var(--line);}
.sobre-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.sobre-body p{color:var(--grey);font-size:15px;line-height:1.7;margin-bottom:16px;}
.sobre-body em{color:var(--ink);font-style:normal;font-weight:600;}
.stack-tags{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 24px;}
.sobre-links{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap;}

@media (max-width:700px){
  .sobre-layout{grid-template-columns:1fr;}
  .sobre-photo-frame{max-width:240px;margin:0 auto;}
}

/* ---------- Micro-interações ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease;}
.reveal-in{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;transition:none;}
}

.card,.servico-item,.log-entry,.post-destaque,.mini-card{
  transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.card:hover,.servico-item:hover,.log-entry:hover,.post-destaque:hover{
  border-color:var(--amber);
  transform:translateY(-3px);
  box-shadow:0 12px 28px rgba(0,0,0,0.28);
}
.tag-pill{transition:border-color .2s ease, color .2s ease;}
.btn,.btn-outline{transition:transform .15s ease, opacity .15s ease, border-color .15s ease;}

/* ---------- Landing do livro ---------- */
.livro-hero{border-bottom:1px solid var(--line);padding:80px 0;background:linear-gradient(180deg,var(--navy-900) 0%,var(--navy-950) 100%);}
.livro-hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:260px 1fr;gap:64px;align-items:start;}
.livro-cover-frame{max-width:260px;width:100%;}
.livro-cover-box{position:relative;width:100%;padding-bottom:145%;border-radius:6px;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,0.45);}
.livro-cover-box img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.livro-hero h1{font-family:var(--serif);font-size:clamp(2rem,4vw,2.8rem);font-weight:700;line-height:1.12;margin:14px 0 10px;}
.livro-hero .lede{margin-top:0;font-size:16.5px;color:var(--grey);max-width:52ch;}
.livro-pitch{color:var(--ink);font-size:15px;line-height:1.7;max-width:56ch;margin-top:18px;}

.livro-destaques{margin-top:72px;}
.livro-destaques h2{font-family:var(--serif);font-size:1.5rem;}
.lista-destaques{list-style:none;margin-top:18px;display:grid;grid-template-columns:1fr 1fr;gap:14px 32px;}
.lista-destaques li{position:relative;padding-left:22px;color:var(--grey);font-size:14.5px;line-height:1.5;}
.lista-destaques li::before{content:"→";position:absolute;left:0;color:var(--amber);}

.livro-quote{border-left:3px solid var(--amber);padding:6px 0 6px 26px;margin:64px 0;}
.livro-quote{font-family:var(--serif);font-size:1.35rem;font-style:italic;color:var(--ink);max-width:58ch;line-height:1.4;}
.livro-quote cite{display:block;margin-top:14px;font-family:var(--sans);font-style:normal;font-size:13px;color:var(--grey-dim);}

.sumario{margin-top:72px;}
.sumario h2{font-family:var(--serif);font-size:1.5rem;margin-bottom:8px;}
.sumario-parte{padding:22px 0;border-bottom:1px solid var(--line);}
.sumario-parte:first-of-type{border-top:1px solid var(--line);margin-top:18px;}
.sumario-parte .parte-label{font-family:var(--mono);font-size:12px;color:var(--amber);text-transform:uppercase;letter-spacing:.04em;}
.sumario-parte ul{list-style:none;margin-top:10px;}
.sumario-parte li{color:var(--grey);font-size:14px;padding:5px 0;}

@media (max-width:700px){
  .livro-hero-inner{grid-template-columns:1fr;}
  .livro-cover-frame{max-width:220px;margin:0 auto;}
  .lista-destaques{grid-template-columns:1fr;}
}
