.ip-intro{
  background:linear-gradient(180deg,var(--bg-top),var(--bg-bottom));
}
.ip-intro h1{
  margin:var(--space-2) 0 var(--space-3);
}
.ip-result{
  max-width:960px;
}
.ip-result-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:var(--space-2);
}
.ip-result-head h2{
  margin:0;
  font-size:24px;
}
.ip-fields{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--space-3);
  margin:var(--space-3) 0;
}
.ip-fields>div{
  min-width:0;
  padding-top:var(--space-2);
  border-top:1px solid var(--border-soft);
}
.ip-fields .ip-address-field{
  grid-column:1/-1;
  padding:var(--space-3);
  border:1px solid var(--border);
  border-radius:var(--r);
  background:var(--groove);
}
.ip-fields dt{
  margin-bottom:var(--space-1);
  font-size:14px;
  color:var(--muted);
}
.ip-fields dd{
  margin:0;
  overflow-wrap:anywhere;
  font-weight:600;
}
.ip-fields .ip-address{
  font-family:var(--font-mono);
  font-size:clamp(22px,3vw,36px);
  line-height:1.4;
  color:var(--accent-dark);
  user-select:all;
}
.ip-actions{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-2);
}
.ip-status{
  margin:var(--space-3) 0 0;
  color:var(--muted);
  font-size:14px;
}
.ip-copy-status{
  margin:var(--space-1) 0 0;
  color:var(--muted);
  font-size:14px;
}
.ip-copy-status:empty{
  display:none;
}
.ip-explanation .card h3{
  margin-top:0;
}
.ip-explanation .card p:last-child,
.ip-privacy .panel p:last-child{
  margin-bottom:0;
}
.ip-dns .prose{
  max-width:none;
}
.ip-dns .prose h3{
  margin-top:0;
}
.ip-checklist{
  padding-left:var(--space-3);
}
.ip-checklist li+li{
  margin-top:var(--space-2);
}
.ip-privacy{
  padding-top:var(--space-3);
}
@media(max-width:640px){
  .ip-fields{
    grid-template-columns:minmax(0,1fr);
  }
  .ip-fields .ip-address-field{
    padding:var(--space-2);
  }
  .ip-actions .btn{
    flex:1 1 auto;
  }
}