:root{
  --black:#000000;
  --surface-1:#0c0c0c;
  --surface-2:#141414;
  --border:rgba(255,255,255,.08);
  --text:#eef5f0;
  --text-dim:#a9bdb2;
  --text-faint:#6e8478;
  --green:#4ade80;
  --gold:#eab308;
  --grad: linear-gradient(135deg, var(--green), var(--gold));
  --font-head:'Space Grotesk', sans-serif;
  --font-body:'Inter', sans-serif;
}

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

html{scroll-behavior:smooth; height:100%;}

body{
  background:var(--black);
  color:var(--text);
  font-family:var(--font-body);
  line-height:1.5;
  min-height:100%;
  display:flex;
  flex-direction:column;
  position:relative;
  overflow-x:hidden;
}

.wrap{
  max-width:1100px;
  margin:0 auto;
  padding:0 24px;
}

/* Background effects */
.bg-glow{
  position:fixed;
  border-radius:50%;
  filter:blur(120px);
  z-index:0;
  pointer-events:none;
}
.glow-a{
  width:600px; height:600px;
  top:-200px; left:-150px;
  background:radial-gradient(circle, rgba(74,222,128,.25), transparent 70%);
}
.glow-b{
  width:700px; height:700px;
  bottom:-300px; right:-200px;
  background:radial-gradient(circle, rgba(234,179,8,.15), transparent 70%);
}
.bg-grid{
  position:fixed;
  inset:0;
  z-index:0;
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size:48px 48px;
  mask-image:radial-gradient(circle at 50% 30%, black, transparent 75%);
  pointer-events:none;
}

/* Topbar */
.topbar{
  position:relative;
  z-index:2;
  padding:28px 0;
}
.topbar-inner{
  display:flex;
  align-items:center;
  justify-content:center;
}
.logo{
  display:flex;
  align-items:center;
  text-decoration:none;
}
.logo-img{
  display:block;
  height:110px;
  width:auto;
  filter:drop-shadow(0 0 10px rgba(74,222,128,.25));
}
.logo-img.small{
  height:44px;
}

/* Hero */
.hero{
  position:relative;
  z-index:2;
  flex:1;
  display:flex;
  align-items:center;
}
.hero-inner{
  padding:60px 24px 40px;
  max-width:760px;
}
.hero h1{
  font-family:var(--font-head);
  font-size:clamp(2.4rem, 6vw, 4rem);
  line-height:1.08;
  font-weight:700;
  letter-spacing:-.02em;
  color:var(--text);
  margin-bottom:24px;
}
.hero h1 em{
  font-style:normal;
  background:var(--grad);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.lede{
  font-size:1.1rem;
  color:var(--text-dim);
  max-width:560px;
  margin-bottom:32px;
}

.focus-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:40px;
}
.focus-chip{
  font-size:.8rem;
  font-weight:500;
  color:var(--text-dim);
  border:1px solid var(--border);
  background:var(--surface-1);
  padding:8px 16px;
  border-radius:999px;
}

/* Footer */
.site-footer{
  position:relative;
  z-index:2;
  border-top:1px solid var(--border);
  margin-top:40px;
}
.footer-inner{
  padding:32px 24px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.footer-brand{
  display:flex;
  align-items:center;
}
.footer-meta{
  display:flex;
  flex-direction:column;
  gap:4px;
  align-items:flex-start;
  font-size:.85rem;
}
.footer-link{
  color:var(--text-dim);
  text-decoration:none;
}
.footer-link:hover{
  color:var(--green);
}
.footer-address{
  color:var(--text-faint);
  font-style:italic;
}
.footer-copy{
  font-size:.8rem;
  color:var(--text-faint);
}

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

/* Reveal animation */
.reveal{
  opacity:0;
  transform:translateY(16px);
  transition:opacity .7s ease, transform .7s ease;
}
.reveal.in{
  opacity:1;
  transform:none;
}
