:root{--bg: #ffffff;--bg-soft: #f4f7fc;--surface: #ffffff;--surface-2: #f8fafd;--border: #e2e8f2;--border-strong: #cfd8e6;--text: #0d1729;--text-2: #33425b;--muted: #5a6a84;--brand: #2257f5;--brand-hover: #1a46d1;--brand-soft: #e9efff;--cyan: #0ea5c6;--fast: #0f9f6e;--good: #65a30d;--mid: #d97706;--slow: #ea580c;--bad: #dc2626;--t-fast: #047857;--t-good: #4d7c0f;--t-brand: #1d4ed8;--t-mid: #b45309;--t-slow: #c2410c;--t-bad: #b91c1c;--hero-bg: #060b1d;--hero-text: #e8eefc;--hero-muted: #9fb0d0;--radius: 14px;--radius-sm: 9px;--shadow: 0 1px 2px rgba(13,23,41,.05),0 8px 24px -12px rgba(13,23,41,.12);--shadow-lg: 0 24px 60px -24px rgba(13,23,41,.28);--font: ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;--mono: ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--container: 1160px;color-scheme: light}@media (prefers-color-scheme: dark){:root{--bg: #0a1020;--bg-soft: #0d1529;--surface: #111a30;--surface-2: #0f182c;--border: #1f2b47;--border-strong: #2b3a5c;--text: #e6edf9;--text-2: #c3cfe4;--muted: #93a3bf;--brand: #5b8cff;--brand-hover: #7aa2ff;--brand-soft: #16244a;--fast: #34d399;--good: #a3e635;--mid: #fbbf24;--slow: #fb923c;--bad: #f87171;--t-fast: #34d399;--t-good: #a3e635;--t-brand: #7aa2ff;--t-mid: #fbbf24;--t-slow: #fb923c;--t-bad: #f87171;--shadow: 0 1px 2px rgba(0,0,0,.3),0 8px 24px -12px rgba(0,0,0,.5);--shadow-lg: 0 24px 60px -24px rgba(0,0,0,.7);color-scheme: dark}}*,*::before,*::after{box-sizing: border-box}html{-webkit-text-size-adjust: 100%;scroll-behavior: smooth}body{margin: 0;font-family: var(--font);font-size: 16px;line-height: 1.6;color: var(--text);background: var(--bg);-webkit-font-smoothing: antialiased;text-rendering: optimizeLegibility}img,svg,video{max-width: 100%;height: auto;display: block}a{color: var(--brand);text-decoration: none}a:hover{text-decoration: underline;text-underline-offset: 3px}h1,h2,h3,h4{line-height: 1.2;letter-spacing: -0.02em;margin: 0 0 .5em;color: var(--text)}h1{font-size: clamp(2rem,4.6vw,3.4rem);font-weight: 800;letter-spacing: -0.035em}h2{font-size: clamp(1.5rem,2.8vw,2.15rem);font-weight: 780}h3{font-size: 1.2rem;font-weight: 700}p{margin: 0 0 1em}ul,ol{padding-left: 1.3em}code,kbd,pre{font-family: var(--mono);font-size: .92em}:not(pre) > code{background: var(--bg-soft);border: 1px solid var(--border);border-radius: 6px;padding: .08em .38em}table{border-collapse: collapse;width: 100%}button,input,select,textarea{font: inherit;color: inherit}:focus-visible{outline: 3px solid color-mix(in srgb,var(--brand) 55%,transparent);outline-offset: 2px;border-radius: 6px}::selection{background: color-mix(in srgb,var(--brand) 25%,transparent)}.btn{display: inline-flex;align-items: center;justify-content: center;gap: .5em;padding: .72em 1.25em;border-radius: 11px;border: 1px solid transparent;font-weight: 650;font-size: .95rem;line-height: 1.2;cursor: pointer;text-decoration: none !important;transition: background .15s,border-color .15s,color .15s,transform .05s;white-space: nowrap}.btn:active{transform: translateY(1px)}.btn-primary{background: #2257f5;color: #fff}.btn-primary:hover{background: #1a46d1}.btn-ghost{background: var(--surface);color: var(--text);border-color: var(--border-strong)}.btn-ghost:hover{border-color: var(--brand);color: var(--brand)}.btn-sm{padding: .5em .9em;font-size: .85rem;border-radius: 9px}.btn[disabled]{opacity: .6;cursor: not-allowed}.btn svg{width: 1.1em;height: 1.1em;flex: none}.container{width: 100%;max-width: var(--container);margin: 0 auto;padding: 0 20px}.hidden{display: none !important}.visually-hidden{position: absolute !important;width: 1px;height: 1px;overflow: hidden;clip: rect(0 0 0 0);white-space: nowrap}.muted{color: var(--muted)}.mono{font-family: var(--mono)}.tabnum{font-variant-numeric: tabular-nums}.center{text-align: center}.skip-link{position: absolute;left: -999px;top: 8px;z-index: 100;background: var(--brand);color: #fff;padding: 8px 14px;border-radius: 8px}.skip-link:focus{left: 8px}.c-fast{color: var(--t-fast)}.c-good{color: var(--t-good)}.c-mid{color: var(--t-mid)}.c-slow{color: var(--t-slow)}.c-bad{color: var(--t-bad)}main p a:not(.btn),.prose li a,.faq a,.footer-legal a{text-decoration: underline;text-decoration-thickness: 1px;text-underline-offset: 3px}.lb-site a{text-decoration: none !important}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration: .01ms !important;animation-iteration-count: 1 !important;transition-duration: .01ms !important;scroll-behavior: auto !important}}.site-header{position: sticky;top: 0;z-index: 50;background: color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter: saturate(1.6) blur(12px);-webkit-backdrop-filter: saturate(1.6) blur(12px);border-bottom: 1px solid var(--border)}.site-header .container{display: flex;align-items: center;gap: 24px;height: 64px}.brand{display: inline-flex;align-items: center;gap: 10px;color: var(--text);font-weight: 780;letter-spacing: -0.02em;font-size: 1.05rem;text-decoration: none !important}.brand svg{width: 32px;height: 32px}.brand b{color: var(--brand);font-weight: 780}.nav{display: flex;align-items: center;gap: 4px;margin-left: auto}.nav a{color: var(--text-2);font-weight: 560;font-size: .94rem;padding: 8px 12px;border-radius: 9px;text-decoration: none}.nav a:hover{background: var(--bg-soft);color: var(--text)}.nav a[aria-current="page"]{color: var(--brand);background: var(--brand-soft)}.nav .btn{margin-left: 8px;color: #fff}.nav .btn:hover{background: #1a46d1;color: #fff}.nav-mobile{display: none;margin-left: auto}.nav-mobile summary{list-style: none;cursor: pointer;padding: 8px;border-radius: 9px;border: 1px solid var(--border);display: flex}.nav-mobile summary::-webkit-details-marker{display: none}.nav-mobile summary svg{width: 22px;height: 22px}.nav-mobile[open] .nav-panel{display: flex}.nav-panel{display: none;position: absolute;left: 0;right: 0;top: 64px;flex-direction: column;padding: 12px 20px 20px;background: var(--bg);border-bottom: 1px solid var(--border);box-shadow: var(--shadow-lg)}.nav-panel a{padding: 12px 6px;border-bottom: 1px solid var(--border);color: var(--text);font-weight: 600}.nav-panel .btn{margin-top: 14px;color: #fff}@media (max-width: 860px){.nav{display: none}.nav-mobile{display: block}}.hero{position: relative;overflow: hidden;color: var(--hero-text);background: var(--hero-bg);padding: 64px 0 28px;isolation: isolate}.hero::before{content: "";position: absolute;inset: 0;z-index: -1;background: radial-gradient(60% 50% at 50% 0%,rgba(54,104,255,.35),transparent 70%),radial-gradient(40% 40% at 90% 60%,rgba(14,165,198,.18),transparent 70%),radial-gradient(40% 40% at 5% 70%,rgba(99,70,255,.16),transparent 70%)}.hero h1,.hero h2{color: #fff}.hero-copy{max-width: 820px;margin: 0 auto;text-align: center}.eyebrow{display: inline-flex;align-items: center;gap: 8px;padding: 6px 12px 6px 10px;margin-bottom: 20px;border: 1px solid rgba(160,185,255,.25);border-radius: 999px;background: rgba(255,255,255,.05);font-size: .82rem;font-weight: 600;color: #cdd9f7;letter-spacing: .01em}.eyebrow .dot{width: 8px;height: 8px;border-radius: 50%;background: #34d399;box-shadow: 0 0 0 4px rgba(52,211,153,.18);animation: live 2s infinite}@keyframes live{50%{box-shadow: 0 0 0 7px rgba(52,211,153,0)}}.grad{background: linear-gradient(92deg,#7aa2ff 0%,#4fd1ff 45%,#34d399 100%);-webkit-background-clip: text;background-clip: text;color: transparent}@media (min-width: 640px){.grad{white-space: nowrap}}.hero .lead{font-size: clamp(1.02rem,1.6vw,1.2rem);color: var(--hero-muted);max-width: 680px;margin: 0 auto 28px}.hero .lead strong{color: #e8eefc;font-weight: 600}.test-form{max-width: 720px;margin: 0 auto}.test-field{display: flex;gap: 8px;padding: 8px;border-radius: 16px;background: rgba(255,255,255,.97);box-shadow: 0 20px 50px -20px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.08)}.test-field:focus-within{box-shadow: 0 20px 50px -20px rgba(0,0,0,.6),0 0 0 4px rgba(91,140,255,.45)}.test-field .prefix{display: flex;align-items: center;padding-left: 10px;color: #6a7891}.test-field .prefix svg{width: 20px;height: 20px}.test-field input{flex: 1;min-width: 0;border: 0;outline: 0;background: transparent;color: #0d1729;font-size: 1.08rem;padding: 12px 6px}.test-field input::placeholder{color: #8a97ad}.test-field .btn{padding: 0 24px;font-size: 1rem;border-radius: 11px;min-height: 52px;background: #2257f5;color: #fff}.test-field .btn:hover{background: #1a46d1}.form-meta{display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: 10px 18px;margin-top: 14px;font-size: .88rem;color: var(--hero-muted)}.optin{display: inline-flex;align-items: center;gap: 9px;cursor: pointer;text-align: left}.optin input{width: 18px;height: 18px;accent-color: #34d399;flex: none}.optin a{color: #a9c1ff;text-decoration: underline;text-underline-offset: 2px}.chips{display: inline-flex;flex-wrap: wrap;align-items: center;gap: 6px}.chips button{border: 1px solid rgba(160,185,255,.25);background: rgba(255,255,255,.04);color: #cdd9f7;border-radius: 999px;padding: 3px 11px;font-size: .82rem;cursor: pointer}.chips button:hover{border-color: #7aa2ff;color: #fff}.form-error{margin-top: 12px;padding: 10px 14px;border-radius: 10px;background: rgba(248,113,113,.14);border: 1px solid rgba(248,113,113,.4);color: #fecaca;font-size: .92rem;text-align: left}.world{position: relative;max-width: 1080px;margin: 34px auto 0}.world svg{width: 100%;height: auto;overflow: visible}.world .dots{stroke: #2f4a8f}.world .arc{fill: none;stroke: url(#arcGrad);stroke-width: 1.4;stroke-dasharray: 4 6;opacity: .0;transition: opacity .4s}.world.running .arc,.world.done .arc{opacity: .55}.world.running .arc{animation: dash 1.2s linear infinite}@keyframes dash{to{stroke-dashoffset: -20}}.pin .core{fill: #7aa2ff;stroke: #060b1d;stroke-width: 2;transition: fill .3s}.pin .ring{fill: none;stroke: #7aa2ff;stroke-width: 2;opacity: 0;transform-box: fill-box;transform-origin: center}.pin.testing .ring{animation: ping 1.4s ease-out infinite}@keyframes ping{0%{transform: scale(.6);opacity: .9}100%{transform: scale(3.2);opacity: 0}}.pin .tag rect{fill: rgba(9,16,38,.92);stroke: rgba(160,185,255,.28);stroke-width: 1}.pin .tag .name{fill: #e8eefc;font: 600 13px var(--font)}.pin .tag .val{fill: #9fb0d0;font: 700 13px var(--mono)}.pin.s-fast .core{fill: #34d399}.pin.s-good .core{fill: #a3e635}.pin.s-mid .core{fill: #fbbf24}.pin.s-slow .core{fill: #fb923c}.pin.s-bad .core,.pin.failed .core{fill: #f87171}.pin.s-fast .val{fill: #34d399}.pin.s-good .val{fill: #a3e635}.pin.s-mid .val{fill: #fbbf24}.pin.s-slow .val{fill: #fb923c}.pin.s-bad .val,.pin.failed .val{fill: #f87171}.pin.testing .val{fill: #7aa2ff}.origin-node circle{fill: #fff}.map-legend{display: flex;flex-wrap: wrap;justify-content: center;gap: 6px 16px;margin-top: 10px;font-size: .8rem;color: var(--hero-muted)}.map-legend span{display: inline-flex;align-items: center;gap: 6px}.map-legend i{width: 9px;height: 9px;border-radius: 50%;display: inline-block}.trust{display: flex;flex-wrap: wrap;justify-content: center;gap: 8px 22px;margin: 22px 0 0;padding: 0;list-style: none;font-size: .86rem;color: var(--hero-muted)}.trust li{display: inline-flex;align-items: center;gap: 7px}.trust svg{width: 16px;height: 16px;color: #34d399}.section{padding: 72px 0}.section-soft{background: var(--bg-soft);border-top: 1px solid var(--border);border-bottom: 1px solid var(--border)}.section-head{max-width: 720px;margin: 0 auto 36px;text-align: center}.section-head p{color: var(--muted);font-size: 1.05rem;margin: 0}.kicker{display: inline-block;font-size: .78rem;font-weight: 700;letter-spacing: .08em;text-transform: uppercase;color: var(--brand);margin-bottom: 10px}.page-hero{padding: 56px 0 36px;background: var(--bg-soft);border-bottom: 1px solid var(--border)}.page-hero h1{font-size: clamp(1.9rem,4vw,2.8rem);margin-bottom: .35em}.page-hero p{color: var(--muted);font-size: 1.08rem;max-width: 760px;margin: 0}.breadcrumb{display: flex;flex-wrap: wrap;gap: 6px;font-size: .85rem;color: var(--muted);margin-bottom: 14px;padding: 0;list-style: none}.breadcrumb li + li::before{content: "/";margin-right: 6px;color: var(--border-strong)}.breadcrumb a{color: var(--muted)}.site-footer{background: var(--hero-bg);color: #b9c6e0;padding: 56px 0 28px;font-size: .9rem;margin-top: 0}.site-footer a{color: #d6e0f5}.footer-grid{display: grid;grid-template-columns: 1.4fr repeat(3,1fr);gap: 32px}.footer-grid h3{color: #fff;font-size: .95rem;margin-bottom: 12px;letter-spacing: 0}.footer-grid ul{list-style: none;margin: 0;padding: 0;display: grid;gap: 8px}.footer-brand p{color: #9fb0d0;margin-top: 12px;max-width: 340px}.footer-brand .brand{color: #fff}.footer-brand .brand b{color: #7aa2ff}.footer-legal{border-top: 1px solid rgba(160,185,255,.14);margin-top: 40px;padding-top: 22px;display: grid;gap: 6px;color: #8d9cba;font-size: .82rem;line-height: 1.7}.footer-legal strong{color: #d6e0f5;font-weight: 600}.footer-bottom{display: flex;flex-wrap: wrap;justify-content: space-between;gap: 10px;margin-top: 14px;color: #8d9cba;font-size: .82rem}.email-link{white-space: nowrap}@media (max-width: 860px){.footer-grid{grid-template-columns: 1fr 1fr}.footer-brand{grid-column: 1 / -1}}@media (max-width: 640px){.hero{padding: 40px 0 20px}.test-field{flex-wrap: wrap}.test-field .prefix{display: none}.test-field input{flex-basis: 100%;padding: 12px 10px}.test-field .btn{width: 100%}.section{padding: 52px 0}.form-meta{flex-direction: column;align-items: flex-start}.world{margin-top: 24px}.pin .tag{display: none}.pin .core{r: 15px;stroke-width: 4}.pin .ring{r: 15px}}.stats-band{background: var(--surface);border-bottom: 1px solid var(--border)}.stats-band .container{padding-top: 22px;padding-bottom: 22px}.stats-title{display: flex;align-items: center;justify-content: space-between;gap: 12px;margin-bottom: 14px;font-size: .86rem;color: var(--muted)}.stats-title strong{color: var(--text);font-size: .95rem}.stats-grid{display: grid;grid-template-columns: repeat(5,1fr);gap: 12px}.stat{background: var(--surface-2);border: 1px solid var(--border);border-radius: var(--radius-sm);padding: 14px 16px;min-height: 86px}.stat-label{font-size: .78rem;font-weight: 600;color: var(--muted);text-transform: uppercase;letter-spacing: .05em}.stat-value{font-size: 1.6rem;font-weight: 780;letter-spacing: -0.02em;font-variant-numeric: tabular-nums;margin-top: 2px}.stat-sub{font-size: .8rem;color: var(--muted)}.region-bars{display: grid;grid-template-columns: repeat(8,1fr);gap: 10px;margin-top: 14px}.rbar{font-size: .76rem;color: var(--muted)}.rbar .track{height: 6px;border-radius: 6px;background: var(--border);overflow: hidden;margin: 4px 0 2px}.rbar .fill{height: 100%;border-radius: 6px;background: linear-gradient(90deg,var(--fast),var(--mid));width: 0;transition: width .6s}.rbar b{color: var(--text);font-weight: 650;font-variant-numeric: tabular-nums}@media (max-width: 900px){.stats-grid{grid-template-columns: repeat(2,1fr)}.stats-grid .stat:first-child{grid-column: 1 / -1}.region-bars{grid-template-columns: repeat(4,1fr)}}.run-section{padding: 40px 0 56px;background: var(--bg-soft);border-bottom: 1px solid var(--border)}.run-head{display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: 14px;margin-bottom: 18px}.run-head h2{font-size: 1.35rem;margin: 0}.run-url{font-family: var(--mono);font-size: .9rem;color: var(--brand);word-break: break-all}.progress{height: 6px;border-radius: 6px;background: var(--border);overflow: hidden;margin-bottom: 18px}.progress span{display: block;height: 100%;width: 0;background: linear-gradient(90deg,var(--brand),var(--cyan));transition: width .4s}.region-grid{display: grid;grid-template-columns: repeat(4,1fr);gap: 12px}.rcard{position: relative;background: var(--surface);border: 1px solid var(--border);border-radius: var(--radius);padding: 14px 16px;min-height: 128px;transition: border-color .3s,box-shadow .3s}.rcard-top{display: flex;align-items: center;justify-content: space-between;gap: 8px}.rcard-name{font-weight: 700}.rcard-code{font-size: .72rem;color: var(--muted);font-family: var(--mono)}.rcard-status{font-size: .78rem;font-weight: 650;padding: 2px 8px;border-radius: 999px;background: var(--bg-soft);color: var(--muted)}.rcard.testing{border-color: color-mix(in srgb,var(--brand) 50%,var(--border));box-shadow: 0 0 0 3px color-mix(in srgb,var(--brand) 12%,transparent)}.rcard.testing .rcard-status{color: var(--brand);background: var(--brand-soft)}.rcard.done .rcard-status{color: var(--t-fast);background: color-mix(in srgb,var(--fast) 12%,transparent)}.rcard.failed{border-color: color-mix(in srgb,var(--bad) 45%,var(--border))}.rcard.failed .rcard-status{color: var(--t-bad);background: color-mix(in srgb,var(--bad) 12%,transparent)}.rcard-main{display: flex;align-items: baseline;gap: 6px;margin-top: 10px;font-variant-numeric: tabular-nums}.rcard-main .big{font-size: 1.55rem;font-weight: 780;letter-spacing: -0.02em}.rcard-main .unit{font-size: .8rem;color: var(--muted)}.rcard-sub{font-size: .8rem;color: var(--muted);font-variant-numeric: tabular-nums}.rcard-rank{position: absolute;top: -9px;right: 12px;font-size: .72rem;font-weight: 750;background: var(--text);color: var(--bg);border-radius: 999px;padding: 2px 8px}.skeleton{display: inline-block;height: .9em;width: 70%;border-radius: 6px;background: linear-gradient(90deg,var(--border) 25%,var(--bg-soft) 50%,var(--border) 75%);background-size: 200% 100%;animation: shimmer 1.4s infinite}@keyframes shimmer{to{background-position: -200% 0}}.run-status{margin-top: 14px;font-size: .9rem;color: var(--muted);text-align: center}@media (max-width: 900px){.region-grid{grid-template-columns: repeat(2,1fr)}}.result-top{display: grid;grid-template-columns: auto 1fr;gap: 28px;align-items: center;background: var(--surface);border: 1px solid var(--border);border-radius: var(--radius);padding: 24px;box-shadow: var(--shadow);margin-bottom: 16px}.grade-ring{--c: var(--fast);--p: 80;position: relative;width: 132px;height: 132px;border-radius: 50%;display: grid;place-items: center;background: conic-gradient(var(--c) calc(var(--p) * 1%),var(--border) 0)}.grade-ring::before{content: "";position: absolute;inset: 10px;border-radius: 50%;background: var(--surface)}.grade-ring .g{position: relative;font-size: 2.6rem;font-weight: 850;letter-spacing: -0.04em;color: var(--c);line-height: 1;text-align: center}.grade-ring .g small{display: block;font-size: .78rem;font-weight: 650;color: var(--muted);letter-spacing: 0;margin-top: 4px}.result-meta h2{font-size: 1.4rem;margin-bottom: 4px;word-break: break-all}.result-meta p{color: var(--muted);margin: 0 0 12px}.result-actions{display: flex;flex-wrap: wrap;gap: 8px}.kpis{display: grid;grid-template-columns: repeat(4,1fr);gap: 12px;margin-bottom: 16px}.kpi{background: var(--surface);border: 1px solid var(--border);border-radius: var(--radius-sm);padding: 14px 16px}.kpi .stat-value{font-size: 1.45rem}@media (max-width: 900px){.kpis{grid-template-columns: repeat(2,1fr)}.result-top{grid-template-columns: 1fr;justify-items: center;text-align: center}.result-actions{justify-content: center}}.panel{background: var(--surface);border: 1px solid var(--border);border-radius: var(--radius);padding: 20px;margin-bottom: 16px}.panel h3{font-size: 1.05rem;margin-bottom: 14px;display: flex;align-items: center;justify-content: space-between;gap: 10px}.table-wrap{overflow-x: auto;-webkit-overflow-scrolling: touch}.data-table{font-size: .9rem;font-variant-numeric: tabular-nums;min-width: 640px}.data-table th{text-align: left;font-size: .75rem;text-transform: uppercase;letter-spacing: .05em;color: var(--muted);font-weight: 650;padding: 8px 10px;border-bottom: 1px solid var(--border);white-space: nowrap}.data-table td{padding: 10px;border-bottom: 1px solid var(--border);vertical-align: middle}.data-table tr:last-child td{border-bottom: 0}.data-table .rep{display: block;font-size: .78rem;color: var(--muted)}.wf{display: flex;height: 10px;border-radius: 5px;overflow: hidden;background: var(--border);min-width: 160px}.wf i{display: block;height: 100%}.wf .w-dns{background: #a78bfa}.wf .w-tcp{background: #f472b6}.wf .w-tls{background: #fbbf24}.wf .w-ttfb{background: #38bdf8}.wf .w-load{background: #34d399}.wf-legend{display: flex;flex-wrap: wrap;gap: 4px 14px;font-size: .78rem;color: var(--muted);font-weight: 500}.wf-legend i{display: inline-block;width: 9px;height: 9px;border-radius: 2px;margin-right: 5px;vertical-align: -1px}.lb-box{border-radius: var(--radius);padding: 18px 20px;margin-bottom: 16px;border: 1px solid var(--border);background: var(--surface);display: grid;grid-template-columns: 1fr auto;gap: 14px;align-items: center}.lb-box.ok{border-color: color-mix(in srgb,var(--fast) 40%,var(--border));background: color-mix(in srgb,var(--fast) 6%,var(--surface))}.lb-box.no{background: var(--surface-2)}.lb-box h3{margin: 0 0 4px;font-size: 1.02rem}.lb-box p,.lb-box ul{margin: 0;color: var(--muted);font-size: .9rem}@media (max-width: 640px){.lb-box{grid-template-columns: 1fr}}.tips{display: grid;grid-template-columns: repeat(2,1fr);gap: 12px}.tip{border: 1px solid var(--border);border-radius: var(--radius-sm);padding: 14px 16px;background: var(--surface-2)}.tip h4{font-size: .98rem;margin-bottom: 4px}.tip p{font-size: .88rem;color: var(--muted);margin: 0 0 6px}@media (max-width: 760px){.tips{grid-template-columns: 1fr}}.badge{display: inline-grid;place-items: center;min-width: 36px;height: 26px;padding: 0 8px;border-radius: 7px;font-weight: 800;font-size: .85rem;letter-spacing: -0.01em}.g-aplus{background: color-mix(in srgb,var(--fast) 14%,transparent);color: var(--t-fast)}.g-a{background: color-mix(in srgb,var(--good) 14%,transparent);color: var(--t-good)}.g-b{background: color-mix(in srgb,var(--brand) 12%,transparent);color: var(--t-brand)}.g-c{background: color-mix(in srgb,var(--mid) 14%,transparent);color: var(--t-mid)}.g-d{background: color-mix(in srgb,var(--slow) 14%,transparent);color: var(--t-slow)}.g-f{background: color-mix(in srgb,var(--bad) 12%,transparent);color: var(--t-bad)}.lb-table{font-size: .93rem;font-variant-numeric: tabular-nums;min-width: 720px}.lb-table th{text-align: left;font-size: .74rem;text-transform: uppercase;letter-spacing: .05em;color: var(--muted);font-weight: 650;padding: 10px 12px;border-bottom: 1px solid var(--border);white-space: nowrap}.lb-table td{padding: 12px;border-bottom: 1px solid var(--border)}.lb-table tbody tr:hover{background: var(--bg-soft)}.lb-rank{font-weight: 800;width: 52px;color: var(--muted)}.lb-rank.top{color: var(--text)}.lb-site{font-weight: 650;color: var(--text);word-break: break-all}.lb-site small{display: block;font-weight: 400;color: var(--muted);font-size: .78rem}.lb-site a{color: var(--text)}.lb-site a:hover{color: var(--brand)}.lb-empty{padding: 36px 16px;text-align: center;color: var(--muted)}.page-hero .lb-period{margin-top: 12px;font-size: .92rem}.lb-period b{color: var(--t-brand)}.lb-archive{margin: 18px 0 0;font-size: .9rem;color: var(--muted);line-height: 1.9}.lb-archive b{color: var(--text)}.lb-prev{margin-top: 40px}.lb-prev h2{font-size: 1.3rem}.rules{display: grid;grid-template-columns: repeat(4,1fr);gap: 12px;margin: 0 0 24px}.rule{border: 1px solid var(--border);border-radius: var(--radius-sm);padding: 14px 16px;background: var(--surface)}.rule b{display: block;font-size: 1.3rem;letter-spacing: -0.02em}.rule span{font-size: .84rem;color: var(--muted)}@media (max-width: 760px){.rules{grid-template-columns: repeat(2,1fr)}}.steps{display: grid;grid-template-columns: repeat(3,1fr);gap: 16px;counter-reset: step}.step{position: relative;background: var(--surface);border: 1px solid var(--border);border-radius: var(--radius);padding: 24px;box-shadow: var(--shadow)}.step::before{counter-increment: step;content: counter(step);display: grid;place-items: center;width: 34px;height: 34px;border-radius: 10px;background: var(--brand-soft);color: var(--brand);font-weight: 800;margin-bottom: 14px}.step h3{font-size: 1.08rem}.step p{color: var(--muted);margin: 0;font-size: .95rem}@media (max-width: 860px){.steps{grid-template-columns: 1fr}}.region-list{display: grid;grid-template-columns: repeat(4,1fr);gap: 12px;margin: 0;padding: 0;list-style: none}.region-list li{background: var(--surface);border: 1px solid var(--border);border-radius: var(--radius-sm);padding: 14px 16px}.region-list b{display: block;font-size: 1.02rem}.region-list span{display: block;font-size: .84rem;color: var(--muted)}.region-list code{font-size: .76rem}@media (max-width: 860px){.region-list{grid-template-columns: repeat(2,1fr)}}.two-col{display: grid;grid-template-columns: 1fr 1fr;gap: 28px;align-items: start}@media (max-width: 900px){.two-col{grid-template-columns: 1fr}}.grade-table{font-size: .9rem;font-variant-numeric: tabular-nums;min-width: 640px;background: var(--surface)}.grade-table th,.grade-table td{padding: 10px 12px;border-bottom: 1px solid var(--border);text-align: left;white-space: nowrap}.grade-table th{font-size: .74rem;text-transform: uppercase;letter-spacing: .05em;color: var(--muted)}.card-frame{border: 1px solid var(--border);border-radius: var(--radius);overflow: hidden;background: var(--surface)}.faq{max-width: 820px;margin: 0 auto;display: grid;gap: 10px}.faq details{background: var(--surface);border: 1px solid var(--border);border-radius: var(--radius-sm);padding: 0 18px}.faq summary{cursor: pointer;list-style: none;padding: 16px 28px 16px 0;font-weight: 650;position: relative}.faq summary::-webkit-details-marker{display: none}.faq summary::after{content: "+";position: absolute;right: 0;top: 13px;font-size: 1.3rem;color: var(--muted)}.faq details[open] summary::after{content: "–"}.faq details > div{padding: 0 0 16px;color: var(--text-2)}.faq details > div p:last-child{margin: 0}.post-grid{display: grid;grid-template-columns: repeat(3,1fr);gap: 20px}.post-card{display: flex;flex-direction: column;background: var(--surface);border: 1px solid var(--border);border-radius: var(--radius);overflow: hidden;color: var(--text);text-decoration: none !important;transition: transform .15s,box-shadow .15s,border-color .15s}.post-card:hover{transform: translateY(-2px);box-shadow: var(--shadow-lg);border-color: var(--border-strong)}.post-card img{aspect-ratio: 1200 / 630;object-fit: cover;width: 100%;background: var(--bg-soft)}.post-card .body{padding: 18px 18px 20px;display: flex;flex-direction: column;gap: 8px;flex: 1}.post-card .cat{font-size: .74rem;font-weight: 700;color: var(--brand);text-transform: uppercase;letter-spacing: .07em}.post-card h3{font-size: 1.1rem;margin: 0}.post-card p{font-size: .92rem;color: var(--muted);margin: 0}.post-card .meta{margin-top: auto;padding-top: 6px;font-size: .8rem;color: var(--muted)}@media (max-width: 960px){.post-grid{grid-template-columns: repeat(2,1fr)}}@media (max-width: 640px){.post-grid{grid-template-columns: 1fr}}.article-wrap{display: grid;grid-template-columns: minmax(0,1fr) 260px;gap: 48px;padding: 40px 0 72px}@media (max-width: 1000px){.article-wrap{grid-template-columns: 1fr}.article-aside{display: none}}.article-head{max-width: 780px}.article-head h1{font-size: clamp(1.9rem,4vw,2.7rem);margin-bottom: .4em}.article-meta{display: flex;flex-wrap: wrap;gap: 6px 16px;font-size: .88rem;color: var(--muted);margin-bottom: 22px}.article-cover{border-radius: var(--radius);overflow: hidden;border: 1px solid var(--border);margin-bottom: 28px;aspect-ratio: 1200 / 630;background: var(--bg-soft)}.article-cover img{width: 100%;height: 100%;object-fit: cover}.tldr{border: 1px solid color-mix(in srgb,var(--brand) 30%,var(--border));background: var(--brand-soft);border-radius: var(--radius);padding: 18px 22px;margin: 0 0 28px}.tldr h2{font-size: .85rem !important;text-transform: uppercase;letter-spacing: .08em;color: var(--brand);margin: 0 0 8px !important}.tldr ul{margin: 0}.prose{max-width: 760px;font-size: 1.06rem;color: var(--text-2);line-height: 1.75}.prose h2{font-size: 1.6rem;margin: 2em 0 .6em;scroll-margin-top: 84px}.prose h3{font-size: 1.22rem;margin: 1.6em 0 .5em;scroll-margin-top: 84px}.prose p,.prose ul,.prose ol{margin: 0 0 1.15em}.prose li{margin: .3em 0}.prose strong{color: var(--text)}.prose pre{background: #0b1222;color: #dbe5f7;border-radius: 12px;padding: 16px 18px;overflow-x: auto;font-size: .88rem;line-height: 1.6;margin: 0 0 1.3em;border: 1px solid var(--border)}.prose table{font-size: .93rem;margin: 0 0 1.4em;display: block;overflow-x: auto}.prose th,.prose td{border: 1px solid var(--border);padding: 9px 12px;text-align: left}.prose th{background: var(--bg-soft);color: var(--text);font-weight: 650}.prose blockquote{margin: 0 0 1.2em;padding: 4px 0 4px 18px;border-left: 3px solid var(--brand);color: var(--text)}.callout{border-radius: var(--radius-sm);padding: 14px 18px;margin: 0 0 1.3em;border: 1px solid var(--border);background: var(--surface-2);font-size: .98rem}.callout.tip{border-color: color-mix(in srgb,var(--fast) 35%,var(--border));background: color-mix(in srgb,var(--fast) 7%,var(--surface))}.callout.warn{border-color: color-mix(in srgb,var(--mid) 40%,var(--border));background: color-mix(in srgb,var(--mid) 8%,var(--surface))}.article-aside{position: sticky;top: 88px;align-self: start;display: grid;gap: 16px}.toc{border: 1px solid var(--border);border-radius: var(--radius);padding: 16px 18px;background: var(--surface);font-size: .88rem}.toc b{display: block;font-size: .76rem;text-transform: uppercase;letter-spacing: .07em;color: var(--muted);margin-bottom: 8px}.toc ol{list-style: none;margin: 0;padding: 0;display: grid;gap: 6px}.toc a{color: var(--text-2)}.aside-cta{border-radius: var(--radius);padding: 18px;background: var(--hero-bg);color: #cdd9f7;font-size: .9rem}.aside-cta b{display: block;color: #fff;font-size: 1.02rem;margin-bottom: 6px}.aside-cta .btn{margin-top: 12px;width: 100%}.author-box{display: flex;gap: 14px;align-items: flex-start;border-top: 1px solid var(--border);margin-top: 36px;padding-top: 22px;max-width: 760px;font-size: .92rem;color: var(--muted)}.author-box svg{width: 44px;height: 44px;flex: none}.author-box b{color: var(--text)}.cta-band{background: var(--hero-bg);color: var(--hero-text);border-radius: 20px;padding: 40px;display: grid;grid-template-columns: 1fr auto;gap: 24px;align-items: center;position: relative;overflow: hidden}.cta-band::before{content: "";position: absolute;inset: 0;background: radial-gradient(50% 80% at 100% 0%,rgba(54,104,255,.35),transparent 70%);pointer-events: none}.cta-band h2{color: #fff;margin: 0 0 6px}.cta-band p{color: var(--hero-muted);margin: 0}@media (max-width: 760px){.cta-band{grid-template-columns: 1fr;padding: 28px}}.form-grid{display: grid;gap: 14px;max-width: 640px}.form-row label{display: block;font-weight: 600;font-size: .9rem;margin-bottom: 6px}.form-row input,.form-row select,.form-row textarea{width: 100%;padding: 11px 13px;border-radius: 10px;border: 1px solid var(--border-strong);background: var(--surface)}.form-row textarea{min-height: 160px;resize: vertical}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline: none;border-color: var(--brand);box-shadow: 0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}.form-note{font-size: .88rem;padding: 10px 14px;border-radius: 10px}.form-note.ok{background: color-mix(in srgb,var(--fast) 12%,transparent);color: var(--t-fast)}.form-note.err{background: color-mix(in srgb,var(--bad) 10%,transparent);color: var(--t-bad)}.hp{position: absolute;left: -5000px}.info-list{display: grid;grid-template-columns: 200px 1fr;gap: 10px 20px;margin: 0;font-size: .95rem}.info-list dt{color: var(--muted);font-weight: 600}.info-list dd{margin: 0;color: var(--text)}@media (max-width: 640px){.info-list{grid-template-columns: 1fr;gap: 2px}.info-list dd{margin-bottom: 10px}}.toast{position: fixed;left: 50%;bottom: 24px;transform: translateX(-50%) translateY(20px);background: var(--text);color: var(--bg);padding: 10px 18px;border-radius: 10px;font-size: .9rem;font-weight: 600;opacity: 0;transition: opacity .2s,transform .2s;z-index: 90;pointer-events: none}.toast.show{opacity: 1;transform: translateX(-50%) translateY(0)}.print-only{display: none}@page{margin: 0}@media print{:root{--bg: #fff;--bg-soft: #f4f7fc;--surface: #fff;--surface-2: #f8fafd;--border: #dfe5ee;--border-strong: #cfd8e6;--text: #0d1729;--text-2: #33425b;--muted: #5a6a84;--brand: #2257f5;--brand-soft: #e9efff;--fast: #10b981;--good: #65a30d;--mid: #d97706;--slow: #ea580c;--bad: #dc2626;--t-fast: #047857;--t-good: #4d7c0f;--t-brand: #1d4ed8;--t-mid: #b45309;--t-slow: #c2410c;--t-bad: #b91c1c;color-scheme: light}html,body{background: #fff !important}body{font-size: 10.5pt;-webkit-print-color-adjust: exact;print-color-adjust: exact}a{color: inherit;text-decoration: none !important}.print-only{display: block}.site-header,.site-footer,.hero,.stats-band,.skip-link,.toast,.no-print,main > .section,.run-head,.progress,#region-grid,#run-status,.lb-box,.result-actions{display: none !important}.run-section{padding: 0 !important;background: #fff !important;border: 0 !important}.run-section > .container{max-width: none;padding: 12mm 13mm 0}.print-page2{break-before: page;padding-top: 12mm}.print-running{position: fixed;left: 13mm;right: 13mm;bottom: 7mm;display: flex !important;justify-content: space-between;padding-top: 4px;border-top: 1px solid #e3e8f0;font-size: 7pt;color: #8a97ad}.print-head{display: flex;justify-content: space-between;align-items: center;padding-bottom: 9px;margin-bottom: 12px;border-bottom: 2px solid #0d1729}.ph-brand{display: flex;align-items: center;gap: 10px}.ph-brand svg{width: 30px;height: 30px;flex: none}.ph-brand b{display: block;font-size: 12.5pt;letter-spacing: -0.01em}.ph-brand span{display: block;font-size: 8.5pt;color: var(--muted)}.ph-site{font-size: 8.5pt;color: var(--muted)}.result-top{grid-template-columns: auto 1fr !important;justify-items: start !important;text-align: left !important;gap: 22px;padding: 0 0 12px;margin-bottom: 12px;border: 0;border-bottom: 1px solid var(--border);border-radius: 0;box-shadow: none}.grade-ring{width: 118px;height: 118px}.grade-ring::before{inset: 9px;background: #fff}.grade-ring .g{font-size: 2.4rem}.grade-ring .g small{font-size: 7.5pt;margin-top: 3px}.result-meta h2{font-size: 19pt;margin-bottom: 4px}.result-meta p{margin: 0 0 3px;font-size: 9.5pt}.print-share{color: var(--t-brand) !important;word-break: break-all}.kpis{grid-template-columns: repeat(4,1fr) !important;gap: 8px;margin-bottom: 12px}.kpi{padding: 10px 12px;border-radius: 8px;break-inside: avoid}.kpi .stat-value{font-size: 14pt}.stat-label{font-size: 7pt}.stat-sub{font-size: 7.5pt}.print-map-wrap{border: 1px solid var(--border);border-radius: 10px;padding: 10px 14px 8px;margin-bottom: 12px;break-inside: avoid}.print-map-wrap h3{font-size: 10pt;margin: 0 0 6px}#print-map svg{display: block;width: 100%;height: auto;overflow: visible}.print-map-wrap .dots{stroke: #c9d4e6}.print-map-wrap .arc,.print-map-wrap .ring{display: none}.print-map-wrap .pin .core{stroke: #fff}.print-map-wrap .pin .tag{display: inline !important}.print-map-wrap .pin .tag rect{fill: #fff;stroke: #c3cede}.print-map-wrap .pin .tag .name{fill: #0d1729}.print-map-wrap .pin .tag .val{fill: #33425b}.print-map-wrap .pin.s-fast .core{fill: #10b981}.print-map-wrap .pin.s-fast .val{fill: #047857}.print-map-wrap .pin.s-good .core{fill: #84cc16}.print-map-wrap .pin.s-good .val{fill: #4d7c0f}.print-map-wrap .pin.s-mid .core{fill: #f59e0b}.print-map-wrap .pin.s-mid .val{fill: #b45309}.print-map-wrap .pin.s-slow .core{fill: #f97316}.print-map-wrap .pin.s-slow .val{fill: #c2410c}.print-map-wrap .pin.s-bad .core,.print-map-wrap .pin.failed .core{fill: #ef4444}.print-map-wrap .pin.s-bad .val,.print-map-wrap .pin.failed .val{fill: #b91c1c}.print-legend{display: flex;flex-wrap: wrap;gap: 4px 14px;margin-top: 4px;font-size: 7.5pt;color: var(--muted)}.print-legend i{display: inline-block;width: 8px;height: 8px;border-radius: 50%;margin-right: 5px}.panel{border-radius: 10px;padding: 12px 14px;margin-bottom: 12px;box-shadow: none;break-inside: avoid}.panel h3{font-size: 10.5pt;margin-bottom: 8px}.table-wrap{overflow: visible}.data-table{min-width: 0;font-size: 8.5pt}.data-table th{font-size: 6.8pt;padding: 5px 6px}.data-table td{padding: 6px}.data-table tr{break-inside: avoid}.wf{min-width: 110px;height: 8px}.data-table .badge{height: 16px;min-width: 0;padding: 0 6px;font-size: 7pt;border-radius: 5px}.grade-checks .data-table td:first-child{width: 42%}.grade-checks .data-table td{padding: 5px 6px}.grade-checks tr.limiting td{background: #fff4e5}.grade-checks tr.limiting td:first-child{box-shadow: inset 3px 0 0 #f97316}.wf-legend{font-size: 7pt}.tips{grid-template-columns: repeat(2,1fr) !important;gap: 8px}.tip{padding: 10px 12px;break-inside: avoid}.tip h4{font-size: 9.5pt}.tip p{font-size: 8.5pt}.tip a{font-size: 8pt;color: var(--t-brand)}.tip a::after{content: "globalwebsitespeedtest.com" attr(href);display: block;margin-top: 2px;font-size: 7pt;color: var(--muted)}.print-foot{margin-top: 12px;padding-top: 8px;border-top: 1px solid var(--border);font-size: 7.5pt;color: var(--muted);break-inside: avoid}.print-foot p{margin: 0 0 4px}}