:root{color-scheme:light;--fg: #0f172a;--muted: #475569;--surface: #ffffff;--border: #e2e8f0;--accent: #2563eb;--accent-2: #4f46e5;--accent-fg: #ffffff;--up: #15803d;--up-bg: #f0fdf4;--up-line: #86efac;--warn: #92400e;--warn-bg: #fffbeb;--warn-line: #fcd34d;--down: #b91c1c;--down-bg: #fef2f2;--down-line: #fca5a5;--radius: 16px;--shadow: 0 1px 2px rgb(15 23 42 / .04), 0 10px 30px -8px rgb(37 99 235 / .18);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html{background:#fff}body{margin:0;color:var(--fg);line-height:1.5;min-height:100vh;background:linear-gradient(180deg,#fff,#f6faff)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.backdrop{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0}.globe{position:absolute;left:50%;top:50%;width:min(125vw,118vh);height:auto;transform:translate(-50%,-50%);opacity:.4}.halo{fill:#dbeafe;opacity:.35}.sphere{stroke:#bfdbfe;stroke-width:1.2}.land{fill:#c7dcf7;fill-opacity:.75;stroke:#a9c8f0;stroke-width:.8;stroke-linejoin:round}.graticule{fill:none;stroke:#93c5fd;stroke-width:.7;opacity:.3}.arc{fill:none;stroke-width:1.5;stroke-linecap:round;opacity:.5}.arc-flow{fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-dasharray:3 60;opacity:.95;animation:flow 6s linear infinite}.flow-1{animation-duration:7.5s;animation-delay:-2s}.flow-2{animation-duration:9s;animation-delay:-4s}.flow-3{animation-duration:5.5s;animation-delay:-1s}@keyframes flow{to{stroke-dashoffset:-126}}.city{fill:#fff;stroke:var(--accent);stroke-width:2.2}.hub{fill:var(--accent);stroke:#fff;stroke-width:2.4}.pulse{fill:none;stroke:var(--accent);stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:pulse 2.8s ease-out infinite}@keyframes pulse{0%{transform:scale(1);opacity:.8}to{transform:scale(5);opacity:0}}@media(prefers-reduced-motion:reduce){.arc-flow,.pulse{animation:none}.arc-flow,.pulse{display:none}}.page{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column;max-width:42rem;margin:0 auto;padding:1.25rem}.version-tag{position:fixed;right:.6rem;bottom:.5rem;z-index:1;font-size:.75rem;color:var(--muted);opacity:.6;pointer-events:none}.main{flex:1;padding-top:3vh}.top-nav{position:fixed;top:.6rem;right:.75rem;z-index:2;display:flex;gap:1rem;font-size:.85rem}.top-nav a{color:var(--muted);text-decoration:none}.top-nav a:hover,.top-nav a:focus-visible{color:var(--accent);text-decoration:underline}.static-page{max-width:38rem}.static-page h1{font-size:clamp(1.6rem,5vw,2.2rem)}.static-page h2{font-size:1.15rem;margin:1.6rem 0 .5rem}.static-page p,.static-page li{color:var(--muted)}.static-page ul{padding-left:1.2rem}.back-link{display:inline-block;margin-bottom:1.2rem;color:var(--accent);text-decoration:none;font-size:.9rem}.back-link:hover,.back-link:focus-visible{text-decoration:underline}.faq-list{margin:0}.faq-item{margin:0 0 1.4rem}.faq-item dt{font-weight:600;margin-bottom:.3rem}.faq-item dd{margin:0;color:var(--muted)}.guide-list{list-style:none;padding:0;margin:1rem 0 0}.guide-list li{margin:0 0 1.2rem}.guide-list a{font-weight:600;color:var(--accent);text-decoration:none}.guide-list a:hover,.guide-list a:focus-visible{text-decoration:underline}.guide-list p{margin:.25rem 0 0}.ad-slot{margin-top:2rem}h1{font-size:clamp(2rem,7vw,3.2rem);margin:0 0 .6rem;line-height:1.1;letter-spacing:-.03em}.grad{background:linear-gradient(90deg,var(--accent),var(--accent-2) 70%);-webkit-background-clip:text;background-clip:text;color:transparent}.purpose{display:inline-flex;align-items:center;gap:.5rem;margin:0 0 1rem;padding:.35rem .85rem .35rem .6rem;font-size:.85rem;font-weight:600;color:var(--accent);background:#ffffffe6;border:1px solid #bfdbfe;border-radius:999px;box-shadow:0 1px 2px #0f172a0a}.purpose svg{flex:none}.lead{margin:0 0 1.5rem;font-size:1.05rem;color:var(--muted);max-width:36rem}.form{display:flex;gap:.5rem;flex-wrap:wrap;padding:.45rem;background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) + 6px);box-shadow:var(--shadow)}input[type=text]{flex:1 1 14rem;min-width:0;font:inherit;font-size:1.05rem;padding:.8rem 1rem;border:0;border-radius:var(--radius);background:transparent;color:var(--fg)}input[type=text]::placeholder{color:#94a3b8}input[type=text]:focus-visible{outline:none}.form:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px #2563eb26,var(--shadow)}button{font:inherit;font-weight:600;padding:.8rem 1.5rem;border:0;border-radius:var(--radius);background:linear-gradient(135deg,var(--accent),var(--accent-2));color:var(--accent-fg);cursor:pointer;box-shadow:0 6px 16px -6px #4f46e599;transition:transform .12s ease,box-shadow .12s ease}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 20px -8px #4f46e5b3}button:disabled{opacity:.6;cursor:progress}button:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.hint{color:var(--muted);font-size:.9rem;margin:.6rem 0 0 .4rem}.error-text{color:var(--down);font-weight:600}.steps{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:1.2rem 0 0}.steps li{display:inline-flex;align-items:center;gap:.45rem;padding:.3rem .8rem .3rem .35rem;font-size:.85rem;font-weight:600;color:var(--muted);background:#ffffffd9;border:1px solid var(--border);border-radius:999px}.step-n{display:inline-grid;place-items:center;width:1.35rem;height:1.35rem;border-radius:50%;background:#dbeafe;color:var(--accent);font-size:.75rem}.result{margin-top:1.5rem}.result:focus{outline:none}.checking{display:flex;align-items:center;gap:.6rem;color:var(--muted)}.spinner{width:1.1rem;height:1.1rem;border:3px solid #dbeafe;border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:3s}button{transition:none}}.card{border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.2rem;background:var(--surface);box-shadow:var(--shadow)}.card.up{border-color:var(--up-line);background:var(--up-bg)}.card.warn,.card.notice{border-color:var(--warn-line);background:var(--warn-bg)}.card.down{border-color:var(--down-line);background:var(--down-bg)}.card-head,.notice{display:flex;gap:.8rem;align-items:flex-start}.notice p{margin:0}.icon{flex:none;margin-top:.1rem}.up .icon{color:var(--up)}.warn .icon,.notice .icon{color:var(--warn)}.down .icon{color:var(--down)}h2{font-size:1.2rem;margin:0}.sub{margin:.25rem 0 0}.meta{margin:.35rem 0 0;color:var(--muted);font-size:.9rem;overflow-wrap:anywhere}.cached{margin:.8rem 0 0;font-size:.9rem;color:var(--muted)}details{margin-top:.8rem}summary{cursor:pointer;font-weight:600}dl{margin:.6rem 0 0}.row{display:flex;gap:1rem;padding:.3rem 0;border-top:1px solid rgb(15 23 42 / .08);font-size:.9rem}.row dt{flex:0 0 8rem;color:var(--muted)}.row dd{margin:0;overflow-wrap:anywhere}.route{margin-top:1rem}.route-hint{margin:.4rem 0 0;font-size:.85rem;color:var(--muted);text-align:center}.route-note{margin:.4rem 0 0;font-size:.8rem;color:var(--muted)}.orb-wrap{max-width:28rem;margin:.5rem auto 0}.orb{display:block;width:100%;height:auto;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:50%}.orb.grabbing{cursor:grabbing}.orb:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.orb-halo{fill:#dbeafe;opacity:.45}.orb-sphere{stroke:#bfdbfe;stroke-width:1.2}.orb-land{fill:#bcd6f8;fill-opacity:.85;stroke:#93bbec;stroke-width:.8;stroke-linejoin:round}.orb-grid{fill:none;stroke:#93c5fd;stroke-width:.7;opacity:.35}.orb-link{fill:none;stroke-width:2.6;stroke-linecap:round;opacity:.9;transition:stroke-width .12s ease}.orb.has-hot .orb-link:not(.hot){opacity:.3}.orb-link.hot{stroke:#f97316;stroke-width:5;opacity:1;filter:drop-shadow(0 0 5px rgb(249 115 22 / .7))}.orb-hit{fill:none;stroke:transparent;stroke-width:16;stroke-linecap:round;cursor:pointer;pointer-events:stroke}.orb-hit:focus-visible{outline:none;stroke:#f9731640}.orb-node{fill:#fff;stroke:var(--accent);stroke-width:2.4;cursor:pointer}.orb-node.origin{fill:var(--accent);stroke:#fff;stroke-width:2.6}.orb-node.hot{fill:#f97316;stroke:#fff}.orb-node:focus-visible{outline:none;stroke:#f97316;stroke-width:3.4}.orb-label{font:600 11px system-ui,sans-serif;fill:#1e3a8a;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;pointer-events:none}.orb-pulse{fill:none;stroke:var(--accent);stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:pulse 2.8s ease-out infinite;pointer-events:none}.orb-tip rect{fill:#0f172a;opacity:.93}.orb-tip text{fill:#fff;font:600 12px system-ui,sans-serif}.hops{width:100%;border-collapse:collapse;margin-top:.6rem;font-size:.85rem}.hops th,.hops td{text-align:left;padding:.35rem .5rem .35rem 0;border-top:1px solid rgb(15 23 42 / .08);overflow-wrap:anywhere;vertical-align:top}.hops thead th{color:var(--muted);font-weight:600;border-top:0}@media(prefers-reduced-motion:reduce){.orb-pulse{display:none}.orb-link{transition:none}}.route-cdn{margin:.5rem 0 0;padding:.55rem .8rem;font-size:.9rem;background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;color:#1e3a8a}
