:root{
  --bg:#ffffff;
  --fg:#0b0b0b;
  --muted:#6a6a6a;
  --line:#d9d9d9;
  --hard:#111111;
  --max:1120px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family: Avenir, "Avenir Next", "Segoe UI", Arial, sans-serif;
  color:var(--fg);
  background:var(--bg);
}

a{ color:inherit; }

/* Layout */
.wrap{ max-width:var(--max); margin:0 auto; padding:0 24px; }
.section{ padding:120px 0; border-top:1px solid var(--line); }
.section:first-of-type{ border-top:none; }

/* Navbar (simple, black/white, no rounding) */
.site-header{
  position:sticky;
  top:0;
  z-index:10;
  background:var(--bg);
  border-bottom:1px solid var(--line);
}
.navbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:18px 0;
}
.logo{
  text-decoration:none;
  display:flex;
  align-items:baseline;
  letter-spacing:-0.02em;
  border:2px solid transparent;
  padding:2px 0;
}
.logo span{
  font-weight:800;
  font-size:34px;
  line-height:1;
}
.logo:focus-visible{ outline:none; border-color:var(--hard); }

.nav-right{ display:flex; align-items:center; gap:22px; }
.nav-menu{
  list-style:none;
  display:flex;
  align-items:center;
  gap:18px;
  margin:0;
  padding:0;
  flex-wrap:wrap;
}
.nav-link{
  text-decoration:none;
  font-size:14px;
  letter-spacing:0.02em;
  padding:10px 2px;
  border-bottom:2px solid transparent;
}
.nav-link:hover, .nav-link:focus-visible{
  outline:none;
  border-bottom-color:var(--hard);
}

.nav-auth{
  display:flex;
  align-items:center;
  gap:10px;
  padding-left:18px;
  border-left:1px solid var(--line);
}
.auth-link{
  text-decoration:none;
  font-size:14px;
  padding:10px 10px;
  border:1px solid transparent;
}
.auth-link:hover, .auth-link:focus-visible{
  outline:none;
  border-color:var(--hard);
}
.auth-btn{
  text-decoration:none;
  font-size:14px;
  padding:10px 14px;
  border:1px solid var(--hard);
  background:var(--hard);
  color:var(--bg);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
}
.auth-btn:hover, .auth-btn:focus-visible{
  outline:none;
  background:var(--bg);
  color:var(--hard);
}

/* Hero */
.hero{
  min-height:calc(100vh - 78px);
  display:flex;
  align-items:center;
  border-bottom:1px solid var(--line);
}
.hero-inner{
  padding:100px 0 80px;
  width:100%;
}
.kicker{
  font-size:12px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--muted);
  margin:0 0 18px 0;
}
h1{
  margin:0 0 22px 0;
  font-size:56px;
  letter-spacing:-0.03em;
  line-height:1.05;
  max-width:18ch;
}
.sub{
  margin:0 0 46px 0;
  color:var(--muted);
  font-size:16px;
  line-height:1.7;
  max-width:80ch;
}
.hero-actions{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}
.btn{
  text-decoration:none;
  border:1px solid var(--hard);
  padding:14px 18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-size:14px;
  letter-spacing:0.02em;
  background:var(--hard);
  color:var(--bg);
  white-space:nowrap;
}
.btn:hover, .btn:focus-visible{
  outline:none;
  background:var(--bg);
  color:var(--hard);
}
.btn-ghost{
  background:transparent;
  color:var(--hard);
}
.btn-ghost:hover, .btn-ghost:focus-visible{
  background:var(--hard);
  color:var(--bg);
}

.scroll-hint{
  margin-top:70px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  color:var(--muted);
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  border-top:1px solid var(--line);
  padding-top:22px;
}
.scroll-btn{
  border:1px solid var(--line);
  background:transparent;
  color:var(--hard);
  padding:10px 12px;
  font:inherit;
  letter-spacing:inherit;
  text-transform:inherit;
  cursor:pointer;
}
.scroll-btn:hover, .scroll-btn:focus-visible{
  outline:none;
  border-color:var(--hard);
}

/* Section headings */
.eyebrow{
  margin:0 0 18px 0;
  font-size:12px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--muted);
}
.title{
  margin:0 0 14px 0;
  font-size:34px;
  letter-spacing:-0.02em;
  line-height:1.15;
  max-width:28ch;
}
.desc{
  margin:0;
  color:var(--muted);
  font-size:15px;
  line-height:1.8;
  max-width:70ch;
}

/* Cards / grids (minimal, spacious) */
.grid{
  margin-top:56px;
  display:grid;
  grid-template-columns:repeat(12, 1fr);
  gap:18px;
}
.card{
  grid-column:span 6;
  border:1px solid var(--line);
  padding:28px;
  background:#fff;
  min-height:160px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:18px;
}
.card h3{
  margin:0;
  font-size:18px;
  letter-spacing:-0.01em;
}
.card p{
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.7;
  max-width:52ch;
}
.card a{
  display:inline-flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  font-size:13px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--hard);
  border-bottom:1px solid transparent;
  width:max-content;
  padding-bottom:2px;
}
.card a:hover, .card a:focus-visible{
  outline:none;
  border-bottom-color:var(--hard);
}

/* Impact stats */
.stats{
  margin-top:56px;
  display:grid;
  grid-template-columns:repeat(12, 1fr);
  gap:18px;
}
.stat{
  grid-column:span 4;
  border:1px solid var(--line);
  padding:28px;
}
.stat .num{
  font-size:42px;
  letter-spacing:-0.03em;
  margin:0 0 10px 0;
}
.stat .label{
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.7;
}

/* Testimonials */
.quotes{
  margin-top:56px;
  display:grid;
  grid-template-columns:repeat(12, 1fr);
  gap:18px;
}
blockquote{
  grid-column:span 4;
  margin:0;
  border:1px solid var(--line);
  padding:28px;
}
blockquote p{
  margin:0 0 16px 0;
  line-height:1.8;
  color:var(--fg);
  font-size:14px;
}
blockquote footer{
  color:var(--muted);
  font-size:12px;
  letter-spacing:0.12em;
  text-transform:uppercase;
}

/* Get started */
.cta{
  border:1px solid var(--line);
  padding:64px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.cta h2{
  margin:0 0 12px 0;
  font-size:32px;
  letter-spacing:-0.02em;
  line-height:1.15;
  max-width:22ch;
}
.cta p{
  margin:0;
  color:var(--muted);
  line-height:1.8;
  max-width:60ch;
}

/* Responsive */
@media (max-width: 980px){
  h1{ font-size:44px; }
  .card{ grid-column:span 12; }
  .stat{ grid-column:span 12; }
  blockquote{ grid-column:span 12; }
  .cta{ padding:42px; flex-direction:column; align-items:flex-start; }
  .nav-auth{ border-left:none; padding-left:0; }
  .nav-right{ width:100%; justify-content:space-between; }
  .navbar{ flex-wrap:wrap; }
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
}

/* Skip link */
.skip{
  position:absolute;
  left:-999px;
  top:12px;
  background:#fff;
  border:1px solid var(--hard);
  padding:10px 12px;
  z-index:999;
}
.skip:focus{ left:12px; }

.form-box{
  width:min(420px, 100%);
  border:1px solid var(--line);
  padding:36px;
  margin:0 auto;
  background:var(--bg);
}
.form-box h4{
  margin:0 0 22px 0;
  font-size:18px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--fg);
  font-weight:700;
}

.form-box input{
  width:100%;
  border:1px solid var(--line);
  padding:14px 14px;
  font-size:14px;
  outline:none;
  margin:0 0 12px 0;
  background:transparent;
  color:var(--fg);
}
.form-box input::placeholder{
  color:var(--muted);
}
.form-box input:focus{
  border-color:var(--hard);
}

.form-box button{
  width:100%;
  border:1px solid var(--hard);
  background:var(--hard);
  color:var(--bg);
  padding:14px 14px;
  font-size:14px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  cursor:pointer;
  margin-top:6px;
}
.form-box button:hover,
.form-box button:focus-visible{
  outline:none;
  background:var(--bg);
  color:var(--hard);
}

.hint{
  width:min(420px, 100%);
  margin:14px auto 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.7;
  text-align:left;
}
.hint a{
  text-decoration:none;
  border-bottom:1px solid transparent;
  padding-bottom:2px;
}
.hint a:hover, .hint a:focus-visible{
  outline:none;
  border-bottom-color:var(--hard);
  color:var(--fg);
}