.nodes-intro{
  padding-bottom:40px;
}
.nodes-intro-grid{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);
  align-items:center;
  gap:64px;
}
.nodes-intro-grid>*{
  min-width:0;
}
.nodes-intro h1{
  margin-block:24px;
}
.nodes-intro-text{
  max-width:580px;
  color:var(--text-muted);
}
.nodes-intro .flex-row{
  align-items:center;
  gap:16px;
}
.nodes-account-note{
  margin-top:18px;
  font-size:var(--size-small);
  color:var(--text-muted);
}
.nodes-summary{
  background:linear-gradient(180deg,var(--hero-top),var(--bg-panel-2));
  box-shadow:inset 0 1px 0 var(--hi-line),var(--shadow-panel);
}
.nodes-coverage{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
  margin-bottom:28px;
}
.nodes-coverage p{
  display:grid;
  gap:6px;
  margin:0;
}
.nodes-coverage strong{
  font-family:var(--font-mono);
  font-size:var(--size-h2);
  font-weight:var(--weight-bold);
  line-height:1.2;
  color:var(--accent-dark);
}
.nodes-coverage [data-counter]{
  text-align:start;
}
.nodes-coverage p>span{
  font-size:var(--size-small);
  color:var(--text-muted);
}
.nodes-summary .card{
  position:relative;
}
.nodes-summary .card::before{
  content:"";
  position:absolute;
  left:28px;
  bottom:-9px;
  width:16px;
  height:16px;
  background:var(--bg-panel);
  border-right:1px solid var(--border-soft);
  border-bottom:1px solid var(--border-soft);
  transform:rotate(45deg);
}
.nodes-summary-badges{
  margin-top:28px;
}
.nodes-directory{
  padding-top:40px;
}
.nodes-region-links{
  margin-bottom:28px;
}
.nodes-region{
  margin-top:40px;
  scroll-margin-top:var(--anchor-offset);
}
.nodes-region h3{
  margin-block:0 12px;
}
.nodes-region>p{
  max-width:840px;
}
.nodes-directory-note{
  margin-top:24px;
  max-width:900px;
  color:var(--text-muted);
  font-size:var(--size-small);
}
.nodes-type-stack{
  display:grid;
  gap:24px;
}
.nodes-type{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  align-items:center;
  gap:40px;
}
.nodes-type>*{
  min-width:0;
}
.nodes-type h3{
  margin-block:16px 20px;
}
.nodes-type-copy>p{
  color:var(--text-muted);
  line-height:1.85;
}
.nodes-path ol{
  display:grid;
  gap:0;
  list-style:none;
  margin:20px 0;
  padding:0;
}
.nodes-path li{
  position:relative;
  margin-left:8px;
  padding:0 0 24px 24px;
  border-left:1px solid var(--border);
}
.nodes-path li::before{
  content:"";
  position:absolute;
  left:-5px;
  top:8px;
  width:9px;
  height:9px;
  border-radius:var(--r-circle);
  background:var(--accent);
  box-shadow:0 0 0 4px var(--accent-soft);
}
.nodes-path li:last-child{
  padding-bottom:0;
  border-left-color:var(--clear);
}
.nodes-path>p:last-child{
  font-size:var(--size-small);
}
.nodes-use-list{
  border-top:1px solid var(--border);
}
.nodes-use{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,2fr);
  gap:48px;
  padding-block:36px;
  border-bottom:1px solid var(--border);
}
.nodes-use>*{
  min-width:0;
}
.nodes-use h3{
  max-width:300px;
  margin-block:16px 0;
}
.nodes-use p{
  color:var(--text-muted);
  line-height:1.85;
}
.nodes-use a,
.nodes-check-grid a,
.nodes-check-grid+.callout a{
  color:var(--accent-dark);
}
.nodes-check-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
}
.nodes-check-grid>*{
  min-width:0;
}
.nodes-check-grid h3{
  margin-block:0 20px;
}
.nodes-check-grid p{
  color:var(--text-muted);
  line-height:1.85;
}
@media(max-width:1000px){
  .nodes-intro-grid{
    gap:32px;
  }
  .nodes-type{
    grid-template-columns:minmax(0,1fr);
    gap:24px;
  }
  .nodes-path{
    max-width:600px;
    width:100%;
  }
}
@media(max-width:768px){
  .nodes-intro-grid{
    grid-template-columns:minmax(0,1fr);
  }
  .nodes-intro{
    padding-bottom:28px;
  }
  .nodes-directory{
    padding-top:28px;
  }
  .nodes-use{
    grid-template-columns:minmax(0,1fr);
    gap:24px;
    padding-block:28px;
  }
  .nodes-use h3{
    max-width:none;
  }
  .nodes-check-grid{
    grid-template-columns:minmax(0,1fr);
  }
  .nodes-summary-badges{
    gap:10px;
  }
}
@media(max-width:380px){
  .nodes-intro .flex-row{
    gap:12px;
  }
  .nodes-intro .btn-ghost{
    padding-inline:18px;
  }
  .nodes-coverage{
    gap:16px;
  }
}