.ip-hero{
  position:relative;
  overflow:hidden;
}
.ip-hero::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 78% 30%,var(--color-glow-warm),transparent 42%),
    radial-gradient(circle at 18% 76%,var(--color-glow-accent),transparent 38%);
}
.ip-hero-glow{
  position:absolute;
  top:12%;
  right:5%;
  width:min(38vw,520px);
  aspect-ratio:1;
  border:1px dashed var(--color-border);
  border-radius:var(--radius-pill);
  opacity:.58;
}
.ip-hero-glow::before,
.ip-hero-glow::after{
  content:"";
  position:absolute;
  border:1px solid var(--color-border);
  border-radius:var(--radius-pill);
}
.ip-hero-glow::before{
  inset:14%;
}
.ip-hero-glow::after{
  inset:31%;
  background:var(--color-accent-soft);
  opacity:.48;
}
.ip-hero-grid{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,.84fr) minmax(440px,1.16fr);
  gap:clamp(34px,6vw,82px);
  align-items:center;
}
.ip-intro{
  max-width:610px;
}
.ip-intro h1{
  margin-bottom:24px;
}
.ip-intro .lead{
  font-size:18px;
}
.ip-trust-row{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:26px;
}
.ip-result-card{
  position:relative;
  padding:clamp(24px,4vw,40px);
  border:1px solid var(--color-border);
  border-radius:var(--radius-xl);
  background:var(--color-panel);
  box-shadow:var(--shadow-card);
}
.ip-result-card::before{
  content:"";
  position:absolute;
  top:16px;
  left:16px;
  right:16px;
  height:5px;
  border-radius:var(--radius-pill);
  background:var(--color-accent);
  opacity:.16;
}
.ip-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  padding-top:10px;
  padding-bottom:22px;
  border-bottom:1px solid var(--color-border);
}
.ip-card-head h2{
  margin:0;
  font-size:clamp(25px,3vw,34px);
}
.query-state{
  display:inline-flex;
  min-height:34px;
  flex-shrink:0;
  align-items:center;
  gap:8px;
  padding:6px 12px;
  border:1px solid var(--color-border);
  border-radius:var(--radius-pill);
  background:var(--color-panel-alt);
  color:var(--color-muted);
  font-size:13px;
  font-weight:700;
}
.query-state-dot{
  width:8px;
  height:8px;
  flex-shrink:0;
  border-radius:var(--radius-pill);
  background:var(--color-warn);
}
.query-state.is-ready{
  color:var(--color-success);
}
.query-state.is-ready .query-state-dot{
  background:var(--color-success);
}
.query-state.is-error{
  color:var(--color-error);
}
.query-state.is-error .query-state-dot{
  background:var(--color-error);
}
.ip-result-list{
  margin:0;
}
.ip-result-primary,
.ip-result-row{
  display:grid;
  grid-template-columns:minmax(110px,.55fr) minmax(0,1.45fr);
  gap:20px;
  align-items:center;
  padding:17px 0;
  border-bottom:1px solid var(--color-border);
}
.ip-result-primary{
  padding-top:25px;
  padding-bottom:25px;
}
.ip-result-list dt{
  color:var(--color-muted);
  font-size:13px;
  font-weight:700;
}
.ip-result-list dd{
  min-width:0;
  margin:0;
  overflow-wrap:anywhere;
  text-align:right;
  font-weight:700;
}
.ip-result-primary dd{
  color:var(--color-accent);
  font-size:clamp(23px,4vw,38px);
  line-height:1.2;
}
.query-message{
  min-height:28px;
  margin:18px 0 16px;
  color:var(--color-muted);
  font-size:14px;
}
.ip-action-row{
  align-items:stretch;
}
.ip-action-row button{
  flex:1 1 150px;
}
.copy-feedback{
  min-height:26px;
  margin:10px 0 0;
  color:var(--color-success);
  font-size:13px;
}
.ip-section-heading{
  max-width:760px;
  margin-bottom:36px;
}
.ip-section-heading p:last-child{
  color:var(--color-muted);
  font-size:18px;
}
.explain-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.explain-card{
  position:relative;
  min-width:0;
  padding:clamp(24px,3vw,34px);
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  background:var(--color-panel);
}
.explain-index{
  display:inline-flex;
  min-height:29px;
  align-items:center;
  margin-bottom:22px;
  padding:4px 10px;
  border-radius:var(--radius-pill);
  background:var(--color-accent-soft);
  color:var(--color-accent);
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
}
.explain-card h3{
  margin-bottom:10px;
  font-size:22px;
}
.explain-card p{
  margin:0;
  color:var(--color-muted);
}
.dns-section{
  background:var(--color-panel-alt);
  border-top:1px solid var(--color-border);
  border-bottom:1px solid var(--color-border);
}
.dns-layout{
  display:grid;
  grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);
  gap:clamp(36px,7vw,92px);
  align-items:start;
}
.dns-copy{
  position:sticky;
  top:calc(var(--header-height) + 28px);
}
.dns-copy p:last-child{
  color:var(--color-muted);
  font-size:18px;
}
.dns-checklist{
  padding:clamp(24px,4vw,42px);
}
.dns-checklist ul{
  display:grid;
  gap:0;
  margin:0;
  padding:0;
  list-style:none;
}
.dns-checklist li{
  position:relative;
  padding:22px 0 22px 34px;
  border-bottom:1px solid var(--color-border);
}
.dns-checklist li:first-child{
  padding-top:0;
}
.dns-checklist li:last-child{
  padding-bottom:0;
  border-bottom:0;
}
.dns-checklist li::before{
  content:"";
  position:absolute;
  top:31px;
  left:0;
  width:12px;
  height:12px;
  border:3px solid var(--color-accent);
  border-radius:var(--radius-pill);
  background:var(--color-panel);
}
.dns-checklist li:first-child::before{
  top:9px;
}
.dns-checklist strong{
  display:block;
  margin-bottom:5px;
  font-family:var(--font-display);
  font-size:18px;
}
.dns-checklist p{
  margin:0;
  color:var(--color-muted);
}
.privacy-panel{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:20px;
  align-items:start;
  padding:clamp(24px,4vw,38px);
  border:1px solid var(--color-border);
  border-radius:var(--radius-xl);
  background:var(--color-panel);
}
.privacy-icon{
  display:grid;
  width:54px;
  height:54px;
  flex-shrink:0;
  place-items:center;
  border-radius:var(--radius-md);
  background:var(--color-accent-soft);
  color:var(--color-accent);
}
.privacy-panel h2{
  margin-bottom:8px;
  font-size:clamp(25px,3vw,34px);
}
.privacy-panel p{
  max-width:850px;
  margin:0;
  color:var(--color-muted);
}
@media (max-width:960px){
  .ip-hero-grid,
  .dns-layout{
    grid-template-columns:1fr;
  }
  .ip-intro{
    max-width:760px;
  }
  .ip-result-card{
    max-width:760px;
  }
  .dns-copy{
    position:static;
  }
}
@media (max-width:680px){
  .ip-hero-glow{
    display:none;
  }
  .ip-card-head{
    display:grid;
  }
  .query-state{
    justify-self:start;
  }
  .ip-result-primary,
  .ip-result-row{
    grid-template-columns:1fr;
    gap:5px;
  }
  .ip-result-list dd{
    text-align:left;
  }
  .explain-grid{
    grid-template-columns:1fr;
  }
  .privacy-panel{
    grid-template-columns:1fr;
  }
}
@media (max-width:380px){
  .ip-result-card{
    padding:20px;
  }
  .ip-result-primary dd{
    font-size:22px;
  }
}