:root{
  --bg:            #0a0e27;
  --panel:         #121936;
  --panel-border:  rgba(255,255,255,.08);
  --ink:           #f4f3ee;
  --ink-muted:     #b6bcd8;
  --blue:          #3454ff;
  --blue-deep:     #2038c9;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:'Lora', Georgia, serif;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

a{ color:var(--blue); text-decoration:none; }
a:hover{ color:#6b82ff; }
a:focus-visible, button:focus-visible{
  outline:2px solid var(--blue);
  outline-offset:3px;
}

.wrap{
  max-width:720px;
  margin:0 auto;
  padding:0 28px;
}

/* ---------- header / nav ---------- */
header{
  padding:22px 0;
  border-bottom:1px solid var(--panel-border);
  position:relative;
  z-index:10;
}
header .wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.necon-mark{
  font-family:'Archivo Black', sans-serif;
  font-size:1.4rem;
  letter-spacing:-.01em;
  color:var(--blue);
}
.menu-btn{
  background:none;
  border:none;
  cursor:pointer;
  padding:8px;
  display:flex;
  flex-direction:column;
  gap:5px;
  z-index:2;
}
.menu-btn span{
  width:24px;
  height:2px;
  background:var(--ink);
  display:block;
  transition:transform .2s ease, opacity .2s ease;
}
.menu-btn[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.menu-btn[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.menu-btn[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

nav.site-nav{
  position:absolute;
  top:100%;
  left:0;
  right:0;
  background:var(--panel);
  border-bottom:1px solid var(--panel-border);
  display:none;
  flex-direction:column;
  padding:8px 0;
}
nav.site-nav.open{ display:flex; }
nav.site-nav a{
  color:var(--ink);
  padding:14px 28px;
  font-size:1.05rem;
  border-top:1px solid var(--panel-border);
}
nav.site-nav a:first-child{ border-top:none; }
nav.site-nav a:hover, nav.site-nav a[aria-current="page"]{ color:var(--blue); }

@media (min-width:700px){
  .menu-btn{ display:none; }
  nav.site-nav{
    position:static;
    display:flex;
    flex-direction:row;
    background:none;
    border-bottom:none;
    padding:0;
    gap:28px;
  }
  nav.site-nav a{
    padding:0;
    border-top:none;
    font-size:1rem;
  }
}

/* ---------- hero ---------- */
.hero{
  min-height:calc(100svh - 78px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:56px 0 40px;
  opacity:0;
  transform:translateY(10px);
  animation:rise .7s ease-out .1s forwards;
}
@media (prefers-reduced-motion:reduce){
  .hero{ animation:none; opacity:1; transform:none; }
}
@keyframes rise{ to{ opacity:1; transform:translateY(0); } }

.ole-mark{
  font-family:'Archivo Black', sans-serif;
  font-size:clamp(3.5rem, 14vw, 7rem);
  line-height:.85;
  letter-spacing:-.02em;
  color:var(--blue);
  display:flex;
  align-items:center;
  gap:.03em;
  margin-bottom:.5em;
}
.ole-mark .dot{
  width:.78em;
  height:.78em;
  border-radius:50%;
  background:var(--blue);
  flex:none;
}

h1{
  font-family:'Playfair Display', Georgia, serif;
  font-weight:600;
  font-size:clamp(2.1rem, 6.5vw, 3.8rem);
  line-height:1.12;
  margin:0 0 32px;
}

.support{
  margin-top:8px;
}
.support p{
  margin:0;
  font-size:1.1rem;
  color:var(--ink-muted);
}
.alerj-badge{
  margin-top:16px;
}

/* ---------- page header (non-hero pages) ---------- */
.page-head{
  padding-top:56px;
  padding-bottom:40px;
}
.page-head h1{
  font-size:clamp(2.1rem, 6.5vw, 3rem);
  margin:0;
}

/* ---------- sections ---------- */
section{
  padding:52px 0;
  border-top:1px solid var(--panel-border);
}
h2{
  font-family:'Playfair Display', Georgia, serif;
  font-weight:600;
  font-size:1.7rem;
  margin:0 0 22px;
}
section > .wrap > p{
  color:var(--ink-muted);
  max-width:60ch;
}

/* ---------- equipe ---------- */
.team-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
}
.team-list li{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:16px;
  padding:14px 0;
  border-top:1px solid var(--panel-border);
}
.team-list li:first-child{ border-top:none; }
.team-list .name{
  font-size:1.08rem;
  color:var(--ink);
}
.team-list .name:hover{
  color:var(--blue);
}
.team-list .role{
  font-family:'Lora', serif;
  font-style:italic;
  color:var(--ink-muted);
  font-size:.92rem;
  white-space:nowrap;
}

/* ---------- publicações (empty state) ---------- */
.empty-state{
  background:var(--panel);
  border:1px dashed var(--panel-border);
  padding:32px 26px;
  display:flex;
  gap:18px;
  align-items:flex-start;
}
.empty-state svg{ flex:none; margin-top:3px; }
.empty-state h3{
  font-family:'Playfair Display', serif;
  font-weight:600;
  font-size:1.2rem;
  margin:0 0 8px;
}
.empty-state p{
  margin:0;
  color:var(--ink-muted);
  max-width:52ch;
}

/* ---------- footer ---------- */
footer{
  border-top:1px solid var(--panel-border);
  padding:32px 0 44px;
}
footer .wrap{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
}
footer .necon-mark{ font-size:1.1rem; }
footer .credit{
  font-family:'Lora', serif;
  font-size:.85rem;
  color:var(--ink-muted);
}

@media (max-width:520px){
  footer .wrap{ flex-direction:column; align-items:flex-start; }
}
