.ip-stage{display:grid;gap:var(--space-6);align-content:start;min-width:0}.ip-hero{display:grid;gap:var(--space-3)}.ip-main{display:flex;align-items:center;gap:var(--space-3);min-width:0}.ip-value{min-width:0;font-family:var(--font-mono);font-size:clamp(1.75rem,1.1rem + 3.2vw,3.25rem);font-weight:500;letter-spacing:-.03em;line-height:1.1;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.is-long .ip-value{font-size:clamp(1.25rem,.9rem + 1.9vw,2.25rem)}.ip-value .sk{height:.8em}[data-state=ready] .ip-value{animation:t-in var(--dur-3) var(--ease-out)}.ip-none{color:var(--ink-3)}.ip-sub{min-height:1lh;font-size:var(--text-sm);color:var(--ink-2)}.ip-fams{display:grid;gap:var(--space-2)}@media(min-width:640px){.ip-fams{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}}.ip-fam{display:flex;align-items:center;gap:var(--space-3);min-height:var(--target-min);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--paper);min-width:0}.ip-fam-k{flex:none;padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--paper-2);font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-wide);color:var(--ink-2)}.ip-fam[data-state=on] .ip-fam-k{background:var(--accent-soft);color:var(--accent)}.ip-fam-v{flex:1;min-width:0;font-size:var(--text-sm);overflow-wrap:anywhere}.ip-fam .muted{font-family:var(--font-text)}.ip-fam .btn[hidden]{display:none}.ip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13.5rem,1fr));gap:1px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--line);overflow:hidden}.ip-cell{display:grid;align-content:start;gap:var(--space-2);padding:var(--space-4);background:var(--paper);min-width:0}.ip-cell dt{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--ink-3)}.ip-cell dt .i{color:var(--accent);font-size:var(--text-sm)}.ip-cell dd{display:grid;gap:var(--space-1);min-height:2lh;margin:0;font-size:var(--text-base)}.ip-cell dd .mono{font-size:var(--text-sm)}.ip-cell dd .s{font-size:var(--text-xs);color:var(--ink-3)}.ip-cell dd .tag{justify-self:start}.wrap-any{overflow-wrap:anywhere}.tag{display:inline-flex;align-items:center;padding:1px var(--space-2);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:600;background:var(--paper-2);color:var(--ink-2)}.tag.ok,.tag.vpn{background:var(--accent-soft);color:var(--accent)}.tag.hosting{background:color-mix(in oklab,var(--warn) 14%,transparent);color:var(--warn-ink)}.ip-browser{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper)}.ip-browser summary{display:flex;align-items:center;gap:var(--space-2);min-height:var(--target-min);padding:0 var(--space-4);font-size:var(--text-sm);font-weight:500;cursor:pointer;list-style:none}.ip-browser summary::-webkit-details-marker{display:none}.ip-browser summary .i{color:var(--accent)}.ip-browser summary .chev{margin-left:auto;color:var(--ink-3);transition:transform var(--dur-2) var(--ease-move)}.ip-browser[open] summary .chev{transform:rotate(180deg)}.ip-browser .spec{margin:0 var(--space-4) var(--space-2);width:calc(100% - 2 * var(--space-4));font-size:var(--text-sm)}.ip-browser .spec th{width:30%}.ip-browser .spec tr:last-child th,.ip-browser .spec tr:last-child td{border-bottom:0}.ip-checks-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.ip-checks-head h2{font-size:var(--text-lg);font-weight:500}.ip-score{padding:2px var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:600;animation:t-pop var(--dur-3) var(--ease-out)}.ip-score[hidden]{display:none}.ip-score[data-state=ok]{background:var(--accent-soft);color:var(--accent)}.ip-score[data-state=warn]{background:color-mix(in oklab,var(--danger) 12%,transparent);color:var(--danger)}.ip-checks{display:grid;gap:var(--space-4);list-style:none;padding:0;margin:0}.ip-check{display:grid;grid-template-columns:var(--space-6) 1fr;gap:var(--space-3);align-items:start}.ip-check strong{font-size:var(--text-sm);font-weight:600}.ip-check p{min-height:2lh;font-size:var(--text-sm);color:var(--ink-2)}.ip-check p b{font-weight:600;color:var(--ink);overflow-wrap:anywhere}.ip-check .mark{display:grid;place-items:center;width:var(--space-6);height:var(--space-6);border-radius:50%;background:var(--paper-2);color:var(--ink-3);font-size:var(--text-sm);transition:background-color var(--dur-2) var(--ease-move),color var(--dur-2) var(--ease-move)}.ip-check[data-state=pending] .mark{animation:ip-wait .9s var(--ease-in-out) infinite alternate}.ip-check[data-state=pending] p{color:var(--ink-3)}.ip-check[data-state=ok] .mark,.ip-check[data-state=vpn] .mark{background:var(--accent);color:var(--accent-ink)}.ip-check[data-state=bad] .mark{background:var(--danger);color:#fff}.ip-check[data-state=warn] .mark{background:color-mix(in oklab,var(--danger) 14%,var(--paper));color:var(--danger)}.ip-check[data-state=info] .mark{background:var(--paper-3);color:var(--ink-2)}.ip-check:not([data-state=pending]) .mark{animation:t-pop var(--dur-3) var(--ease-out)}@keyframes ip-wait{to{opacity:.4}}.ip-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.ip-actions .btn{flex:1 1 9rem}.ip-actions .btn[hidden]{display:none}.btn.is-done .i{color:var(--accent)}.ip-lookup{gap:var(--space-3);padding-top:var(--space-5);border-top:1px solid var(--line)}.ip-lookup-row{display:flex;gap:var(--space-2)}.ip-lookup-row .control{flex:1;min-width:0}.ip-tool:not(.has-more) .ip-cell-more{display:none}.ip-more{display:grid;gap:var(--space-5);min-width:0}.ip-more h2{font-size:var(--text-lg);font-weight:500}.ip-more-ask{display:grid;gap:var(--space-5);padding:var(--space-5);border:1px dashed var(--line);border-radius:var(--radius-lg);background:var(--paper)}@media(min-width:720px){.ip-more-ask{grid-template-columns:minmax(0,1fr) auto;align-items:center}}.ip-more-ask[hidden],.ip-more-out[hidden]{display:none}.ip-more-text{display:grid;gap:var(--space-2);font-size:var(--text-sm);color:var(--ink-2)}.ip-tip-wrap{position:relative;display:inline-block}.ip-tip{padding:0;border:0;background:none;font:inherit;color:var(--ink);cursor:help;text-decoration:underline dotted;text-decoration-color:var(--accent);text-underline-offset:3px}.ip-tip:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.ip-tip-pop{position:absolute;top:calc(100% + var(--space-2));left:50%;z-index:20;display:grid;gap:var(--space-2);width:min(20rem,calc(100vw - 2rem));padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--paper);box-shadow:var(--shadow-lg);font-size:var(--text-xs);line-height:1.5;color:var(--ink-2);text-align:left;opacity:0;visibility:hidden;transform:translate(calc(-50% + var(--shift, 0px)),-4px);transition:opacity var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out),visibility 0s linear var(--dur-2)}.ip-tip-pop:before{content:"";position:absolute;inset:calc(-1 * var(--space-2)) 0 auto;height:var(--space-2)}.ip-tip-pop b{font-size:var(--text-sm);font-weight:600;color:var(--ink)}.ip-tip-wrap:is(:hover,:focus-within) .ip-tip-pop,.ip-tip[aria-expanded=true]+.ip-tip-pop{opacity:1;visibility:visible;transform:translate(calc(-50% + var(--shift, 0px)));transition-delay:0s}.ip-tip-wrap.is-closed .ip-tip-pop{opacity:0;visibility:hidden}.ip-more-who{display:grid;gap:var(--space-1);padding-left:var(--space-5);margin:0}.ip-more-who b{font-weight:600;color:var(--ink)}.ip-more-go{display:grid;gap:var(--space-2);justify-items:stretch}.ip-more-go .switch-row{gap:var(--space-3)}.ip-more[data-state=loading] #ip-more-btn{opacity:.6}.ip-more-out{display:grid;gap:var(--space-5);min-width:0;animation:t-in var(--dur-3) var(--ease-out)}.ip-more-reg{display:grid;gap:var(--space-3)}.ip-more-reg .spec{font-size:var(--text-sm)}.ip-more-reg .spec th{width:34%}.ip-more-end{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2)}.ip-more-end .btn{font-size:var(--text-sm)}@media(prefers-reduced-motion:reduce){.ip-check[data-state=pending] .mark{animation:none}}.ipl-form{gap:var(--space-3)}.ipl-row{display:flex;gap:var(--space-2)}.ipl-row .control{flex:1;min-width:0;font-size:var(--text-base)}.ipl-row .btn{flex:none}.ipl-try{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.ipl-try .chip,.ipl-resolved .chip{font:inherit;font-size:var(--text-sm);cursor:pointer}.ipl-try .chip{min-height:var(--space-8);padding:0 var(--space-3);font-family:var(--font-mono);font-size:var(--text-xs)}.ipl-mine{margin-left:auto;min-height:var(--space-8);font-size:var(--text-sm)}.ipl-msg:empty{display:none}.ipl-msg{font-size:var(--text-sm);color:var(--ink-2)}.ipl-msg.is-error{color:var(--danger)}.ipl-resolved{display:grid;gap:var(--space-2);font-size:var(--text-sm);color:var(--ink-2);animation:t-in var(--dur-3) var(--ease-out)}.ipl-resolved[hidden]{display:none}.ipl-resolved ul{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:0;margin:0;list-style:none}.ipl-resolved .chip{font-family:var(--font-mono);font-size:var(--text-xs);min-height:var(--space-8);padding:0 var(--space-3);overflow-wrap:anywhere}.ipl-resolved .chip[aria-pressed=true]{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.ipl-result{display:grid;gap:var(--space-6);min-width:0}.ipl-result[hidden]{display:none}.ipl-tool:not([data-state=empty]) .ipl-result{animation:t-in var(--dur-3) var(--ease-out)}.ipl-tool[data-state=loading] .ip-value{opacity:.6}.ip-cell dd a{overflow-wrap:anywhere}.ip-cell dd .tag+.s,.ip-cell dd .btn{justify-self:start}.ipl-inner{min-height:var(--space-8);padding:0 var(--space-3);font-size:var(--text-sm)}.ipl-map{display:grid;gap:var(--space-2);margin:0}.ipl-map[hidden]{display:none}.ipl-map-canvas,.ipl-map-off{grid-area:1 / 1}.ipl-map-canvas{aspect-ratio:16 / 10;min-height:15rem;max-height:30rem;width:100%;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper);overflow:hidden}.ipl-map-off{display:none;place-content:center;justify-items:center;gap:var(--space-3);padding:var(--space-6);text-align:center;font-size:var(--text-sm);color:var(--ink-2);z-index:1}.ipl-map-off>.i{font-size:var(--text-2xl);color:var(--ink-3)}.ipl-map:is([data-state=off],[data-state=error]) .ipl-map-off{display:grid}.ipl-map:is([data-state=off],[data-state=error]) .ipl-map-canvas{visibility:hidden}.ipl-map:is([data-state=off],[data-state=error]) .ipl-map-off+figcaption{visibility:hidden}.ipl-map:is([data-state=off],[data-state=error]){border:1px dashed var(--line);border-radius:var(--radius-lg);background:var(--paper)}.ipl-map[data-state=error] #ipl-map-show{display:none}.ipl-map figcaption{font-size:var(--text-xs);color:var(--ink-3)}.ipl-pin{width:var(--space-4);height:var(--space-4);border-radius:50%;background:var(--accent);border:3px solid var(--paper);box-shadow:0 1px 4px hsl(var(--shade) / .35)}.ipl-map .maplibregl-ctrl-attrib{font-size:11px}.ipl-side h2{font-size:var(--text-lg);font-weight:500}.ipl-block{display:grid;gap:var(--space-2);min-width:0}.ipl-spec{font-size:var(--text-sm)}.ipl-spec th{width:42%}.ipl-spec td{overflow-wrap:anywhere}.ipl-spec tr:last-child th,.ipl-spec tr:last-child td{border-bottom:0}.ipl-spec .mono{font-size:var(--text-xs)}.ipl-spec .muted{padding-right:0}
