.phase-indicator{justify-content:center;gap:.25rem;padding:.75rem 0;display:flex}.phase-step{text-transform:capitalize;color:#555;border-radius:1rem;padding:.25rem .5rem;font-size:.75rem;transition:all .2s}.phase-step--active{color:#4fc3f7;background:#4fc3f71f;font-weight:600}.phase-step--completed{color:#39b54a}.speed-gauge{justify-content:center;margin:.5rem auto;display:flex}.gauge-needle{fill:#464a4f;transition:d .3s}.needle-center{fill:#464a4f}.current-speed{text-align:center;margin:.5rem 0}.current-speed__value{letter-spacing:-.02em;font-size:3rem;font-weight:700;line-height:1}.current-speed__meta{align-items:baseline;gap:.25rem;margin-left:.25rem;display:inline-flex}.current-speed__unit{color:#888;font-size:1.25rem}.current-speed__arrow{color:#4fc3f7;font-size:1.25rem}.stats-row{justify-content:center;gap:1rem;padding:.75rem 0;display:flex}.stat-column{flex-direction:column;flex:1;align-items:center;gap:.25rem;max-width:8rem;display:flex}.stat-label{color:#39b54a;font-size:.8rem;font-weight:500}.stat-value{font-size:1.1rem;font-weight:600}.stat-unit{color:#888;font-size:.7rem;font-weight:400}.share-btn{border:1px solid var(--border-color,#444);color:var(--text-primary,#fff);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:.4rem;padding:.5rem 1.2rem;font-size:.9rem;transition:background .15s,border-color .15s;display:inline-flex}.share-btn:hover{border-color:var(--accent-color,#4fc3f7);background:#ffffff14}.speed-comparison{text-align:center;border-top:1px solid #333;margin-top:1rem;padding-top:1rem}.speed-comparison__loading{color:#888;font-size:.85rem}.speed-comparison__note{color:#888;margin-top:.5rem;font-size:.85rem}.speed-tier-badge{letter-spacing:.02em;border:2px solid;border-radius:1rem;padding:.25rem .75rem;font-size:.85rem;font-weight:600;display:inline-block}.speed-comparison__details{margin-top:.75rem}.speed-comparison__percentile{color:#ccc;margin-bottom:.5rem;font-size:.9rem}.speed-comparison__percentile strong{color:#39b54a}.speed-comparison__bar{background:#333;border-radius:3px;height:6px;margin-bottom:.5rem;overflow:hidden}.speed-comparison__bar-fill{background:#39b54a;border-radius:3px;height:100%;transition:width .4s}.speed-comparison__avg{color:#888;font-size:.85rem}.modal-overlay{z-index:100;background:#000000b3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{background:#1a1a1a;border-radius:1rem;width:100%;max-width:32rem;padding:2rem}.modal-title{text-align:center;margin-bottom:1.25rem;font-size:1.5rem;font-weight:700}.modal-info{margin-bottom:1.25rem}.modal-info-row{color:#aaa;margin-bottom:.25rem;font-size:.9rem}.modal-info-label{color:#888}.modal-stats{border-top:1px solid #333;border-bottom:1px solid #333;flex-wrap:wrap;justify-content:center;gap:1rem;margin-bottom:1.25rem;padding:1rem 0;display:flex}.modal-stat{flex-direction:column;flex:1;align-items:center;gap:.25rem;display:flex}.modal-stat-label{color:#39b54a;font-size:.8rem;font-weight:500}.modal-stat-value{font-size:1.1rem;font-weight:600}.modal-done-btn{color:#fafafa;cursor:pointer;background:#333;border:none;border-radius:.5rem;width:100%;padding:.75rem;font-size:1rem;font-weight:600;transition:background .15s;display:block}.modal-done-btn:hover{background:#444}.modal-interpretation{gap:.75rem;margin-bottom:1.25rem;display:grid}.modal-interpretation-card{background:linear-gradient(#39b54a17,#39b54a08);border:1px solid #2d3c30;border-radius:.85rem;padding:.9rem 1rem}.modal-interpretation-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.4rem;display:flex}.modal-interpretation-label{color:#d7f5dc;text-transform:uppercase;letter-spacing:.08em;font-size:.85rem;font-weight:700}.modal-tier-badge{color:#08110a;background:#39b54a;border-radius:999px;padding:.25rem .55rem;font-size:.8rem;font-weight:700}.modal-interpretation-copy{color:#c9d3ca;font-size:.95rem}@media (width<=640px){.modal-content{padding:1.25rem}.modal-stats{gap:.75rem}}.server-selector{align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.875rem;display:flex}.server-selector__label{color:var(--color-text-secondary,#b9c2c8);white-space:nowrap;font-weight:600}.server-selector__loading{color:var(--color-text-secondary,#b9c2c8);font-style:italic}.server-selector__select{border:1px solid var(--color-border,#7de19040);background:var(--color-bg,#090f13e6);color:var(--color-text,#f3fff5);cursor:pointer;border-radius:.5rem;flex:1;min-width:0;padding:.7rem .8rem;font-size:.875rem}.server-selector__select:focus{outline:2px solid var(--color-primary,#7de190);outline-offset:2px}.test-page{text-align:center;padding:1rem 1rem 2rem}.test-page--start{flex-direction:column;justify-content:flex-start;align-items:center;gap:1.25rem;min-height:100dvh;display:flex}.test-page__tagline{color:#b9c2c8;max-width:34rem;font-size:1rem}.test-page__actions{padding:1rem 0}.test-page__primary-actions{justify-content:center;align-items:center;gap:.75rem;width:min(100%,28rem);display:flex;position:relative}.test-page__settings{display:flex;position:relative}.test-page__settings-button{color:#d9f5de;cursor:pointer;background:#111c23eb;border:1px solid #7de19047;border-radius:.5rem;justify-content:center;align-items:center;width:3.15rem;height:3.15rem;transition:border-color .15s,background .15s;display:inline-flex}.test-page__settings-button:hover,.test-page__settings-button[aria-expanded=true]{background:#1e3529f2;border-color:#7de1908c}.test-page__settings-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6px;width:1.45rem;height:1.45rem}.test-page__settings-panel{z-index:10;text-align:left;background:#0a1116fa;border:1px solid #7de19038;border-radius:.5rem;width:min(26rem,100vw - 1.5rem);padding:1rem;position:absolute;top:calc(100% + .75rem);right:0;box-shadow:0 18px 45px #0000004d}.test-page__config{text-align:left;background:linear-gradient(#111c23eb,#0a1116f5);border:1px solid #7de1902e;border-radius:.5rem;width:min(100%,40rem);padding:1rem 1.1rem;box-shadow:0 18px 45px #0003}.test-page__settings-panel .test-page__config{width:100%;box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.test-page__config-header h2{margin:0;font-size:1rem}.test-page__config-header p{color:#b9c2c8;margin:.35rem 0 0;font-size:.9rem}.test-page__config-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin-top:1rem;display:grid}.test-page__field{color:#d9f5de;flex-direction:column;gap:.45rem;font-size:.9rem;font-weight:600;display:flex}.test-page__field select{color:#f3fff5;width:100%;font:inherit;background:#090f13e6;border:1px solid #7de19040;border-radius:.75rem;padding:.7rem .8rem}.test-page__field select:disabled{opacity:.7;cursor:not-allowed}.test-page__config-note{color:#b9c2c8;margin:.75rem 0 0;font-size:.85rem}.test-page__hero{flex-direction:column;align-items:center;gap:.75rem;width:100%;padding:1rem 0 .25rem;display:flex}.test-page__eyebrow{color:#7de190;letter-spacing:.16em;text-transform:uppercase;font-size:.75rem;font-weight:700}.test-page__trust{color:#d9f5de;flex-wrap:wrap;justify-content:center;gap:.5rem;font-size:.85rem;display:flex}.test-page__trust span{background:#39b54a1f;border:1px solid #7de19047;border-radius:999px;padding:.4rem .75rem}.test-page__sync-toggle{color:#d2dae5;text-align:left;align-items:flex-start;gap:.75rem;margin:1.25rem 0;line-height:1.5;display:flex}.test-page__settings-panel .test-page__sync-toggle{margin:1rem 0 0}.test-page__sync-toggle input{margin-top:.2rem}.btn{cursor:pointer;border:none;border-radius:.5rem;padding:.625rem 1.5rem;font-size:1rem;font-weight:600;transition:background .15s;display:inline-block}.btn--primary{color:#fff;background:#39b54a}.btn--primary:hover{background:#2e9a3e}.btn--large{padding:.875rem 2.5rem;font-size:1.2rem}@media (width<=640px){.test-page{padding-inline:.75rem}.test-page--start{gap:1rem}.test-page__hero{gap:.625rem;padding-top:.5rem}.test-page__tagline{font-size:.95rem}.test-page__config{padding:.95rem}.test-page__config-grid{grid-template-columns:1fr}.test-page__trust{gap:.4rem;font-size:.8rem}.test-page__trust span{padding:.35rem .65rem}.test-page__sync-toggle{max-width:24rem}.test-page__primary-actions{width:100%;max-width:24rem}.test-page__settings-panel{right:-.25rem}.btn--large{flex:1;min-width:0}}.results-page{gap:1.25rem;padding:0 0 2rem;display:grid}.results-page__intro{max-width:40rem}.results-grid{grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1.25rem;display:grid}.results-panel{background:linear-gradient(#1b2531eb,#0b1118f5);border:1px solid #89a8c938;border-radius:1rem;padding:1rem;box-shadow:0 14px 40px #00000038}.results-panel--full{grid-column:1/-1}.results-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:.75rem;display:flex}.results-range{gap:.5rem;display:inline-flex}.results-range__button{color:#fafafa;font:inherit;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1f;border-radius:999px;padding:.5rem .85rem}.results-range__button[aria-pressed=true]{color:#08100c;background:#39b54a;border-color:#39b54a}.results-filter{gap:.35rem;min-width:min(100%,15rem);font-size:.95rem;display:grid}.results-filter span{color:#c6d5e3}.results-filter select{color:#fafafa;font:inherit;background:#060a10e6;border:1px solid #ffffff24;border-radius:.75rem;padding:.65rem .8rem}.results-section__header{justify-content:space-between;align-items:start;gap:1rem;margin-bottom:1rem;display:flex}.results-section__header h2{margin-bottom:.2rem;font-size:1.1rem}.results-section__header p,.results-section__meta{color:#9db0c3;font-size:.92rem}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.9rem;display:grid}.summary-card{background:#ffffff09;border:1px solid #ffffff14;border-radius:.9rem;padding:.9rem}.summary-card h3{margin-bottom:.75rem;font-size:1rem}.summary-card__row{justify-content:space-between;gap:1rem;padding:.3rem 0;display:flex}.summary-card__row dt{color:#a7bacd}.summary-card__row dd{font-weight:600}.trend-chart svg{width:100%;height:auto;display:block}.trend-chart__axis{stroke:#ffffff2e;stroke-width:1px}.trend-chart__line{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.trend-chart__line--download{stroke:#39b54a}.trend-chart__line--upload{stroke:#f7941e}.trend-chart__legend{color:#c6d5e3;flex-wrap:wrap;gap:.9rem;font-size:.9rem;display:flex}.trend-chart__legend span{align-items:center;gap:.4rem;display:inline-flex}.trend-chart__swatch{border-radius:999px;width:.75rem;height:.75rem;display:inline-block}.trend-chart__swatch--download{background:#39b54a}.trend-chart__swatch--upload{background:#f7941e}.heatmap{grid-template-columns:2.2rem repeat(24,minmax(0,1fr));align-items:center;gap:.25rem;display:grid}.heatmap__corner,.heatmap__hour,.heatmap__day{color:#9db0c3;font-size:.72rem}.heatmap__hour{text-align:center}.heatmap__day{text-align:right;padding-right:.25rem}.heatmap__cell{--heat:0;background:color-mix(in srgb, #132030 70%, #39b54a calc(var(--heat) * 100%));border:1px solid #ffffff0d;border-radius:.3rem;min-height:1.55rem}.results-empty{text-align:center;color:var(--text-secondary,#999);margin-top:.5rem}.results-list{margin:0;padding:0;list-style:none}.results-item{border-bottom:1px solid var(--border-color,#ffffff14)}.results-item:last-child{border-bottom:none}.results-item__link{color:inherit;align-items:center;gap:.75rem;padding:.9rem 0;text-decoration:none;display:flex}.results-item__icon{flex-shrink:0;font-size:1.5rem}.results-item__info{flex-direction:column;flex:1;min-width:0;display:flex}.results-item__name{font-weight:600}.results-item__date{color:var(--text-secondary,#999);font-size:.85rem}.results-item__metric{color:#c6d5e3;white-space:nowrap;font-size:.9rem}.results-item__chevron{color:var(--text-secondary,#999);flex-shrink:0;font-size:1.5rem}@media (width<=700px){.heatmap{padding-bottom:.25rem;overflow-x:auto}.results-item__link{align-items:start}.results-item__metric{display:none}}.detail-page__timestamp{color:var(--text-secondary,#999);margin-bottom:.5rem}.detail-page__info{margin:.25rem 0}.detail-stats{background:var(--card-bg,#1a1a2e);border-radius:8px;gap:1rem;margin:1.5rem 0;padding:1rem;display:flex}.detail-stat{text-align:center;flex-direction:column;flex:1;align-items:center;display:flex}.detail-stat__label{color:var(--accent-green,#39b54a);margin-bottom:.25rem;font-size:.85rem}.detail-stat__value{font-size:1.5rem;font-weight:700}.detail-stat__value small{font-size:.75rem;font-weight:400}.detail-page__back{color:var(--accent-green,#39b54a);margin-top:1rem;text-decoration:none;display:inline-block}.detail-page__actions{margin-top:1.5rem}.detail-page__report-links{background:#111;border:1px solid #222;border-radius:.75rem;margin-top:1.5rem;padding:1rem}.detail-page__report-links p+p{margin-top:.5rem}.detail-page__report-links a{color:#4fc3f7;text-decoration:none}.detail-page__report-links a:hover{text-decoration:underline}.affiliate-recommendation{border:1px solid color-mix(in srgb, var(--accent-green,#39b54a) 38%, transparent);background:linear-gradient(135deg, color-mix(in srgb, var(--accent-green,#39b54a) 10%, transparent), transparent), var(--card-bg,#1a1a2e);border-radius:1rem;margin-top:1.5rem;padding:1.25rem}.affiliate-recommendation h2{margin:.25rem 0 .5rem}.affiliate-recommendation__eyebrow{color:var(--accent-green,#39b54a);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.8rem;font-weight:700}.affiliate-recommendation__evidence,.affiliate-recommendation__summary{color:var(--text-secondary,#c8c8d0);margin:.5rem 0 0}.affiliate-recommendation__actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1rem;display:flex}.affiliate-recommendation__dismiss{color:var(--text-secondary,#c8c8d0);cursor:pointer;background:0 0;border:0;text-decoration:underline}.network-card{background:#141414;border-radius:.75rem;margin:1rem 0;padding:1.25rem}.network-card__title{color:#39b54a;border-bottom:1px solid #222;margin-bottom:1rem;padding-bottom:.5rem;font-size:1rem;font-weight:600}.network-card__rows{flex-direction:column;gap:.75rem;margin-bottom:.75rem;display:flex}.network-card__rows:last-child{margin-bottom:0}.network-card__row{justify-content:space-between;align-items:center;display:flex}.network-card__label{color:#888;font-size:.875rem}.network-card__value{font-size:.9rem;font-weight:600}.network-card__status{color:#888;padding:.5rem 0;font-size:.9rem}.network-card__status--error{color:#e74c3c}.about{padding:1rem}.about-section{background:#111;border:1px solid #222;border-radius:.75rem;margin-top:1.5rem;padding:1.25rem}.about-section h2{margin-bottom:1rem;font-size:1.125rem;font-weight:600}.about-section h3{margin:1rem 0 .5rem;font-size:.95rem;font-weight:600}.about-section p{margin-bottom:.75rem;line-height:1.6}.about-section ol{margin-bottom:.75rem;padding-left:1.25rem}.about-section li{margin-bottom:.5rem;line-height:1.5}.about-section a{color:#4fc3f7;text-decoration:none}.about-section a:hover{text-decoration:underline}.screenshots{gap:.75rem;padding:.5rem 0;display:flex;overflow-x:auto}.screenshots img{border-radius:.5rem;flex-shrink:0;height:240px}.speed-page{flex-direction:column;gap:1.5rem;display:flex}.speed-page__lede{max-width:44rem}.speed-page__summary{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:1rem;display:grid}.speed-page__card,.speed-page__section,.speed-page__methodology{background:#111827;border:1px solid #1f2937;border-radius:1rem;padding:1rem}.speed-page__card{flex-direction:column;gap:.35rem;display:flex}.speed-page__card-label,.speed-page__card-note,.speed-page__section-heading p,.speed-page__table th,.speed-page__notice,.speed-page__methodology p{color:#9ca3af}.speed-page__card-value{color:#f9fafb;font-size:1.2rem}.speed-page__section{flex-direction:column;gap:1rem;display:flex}.speed-page__section-heading{flex-direction:column;gap:.35rem;display:flex}.speed-page__section h2,.speed-page__methodology h2,.speed-page__section h3{color:#f9fafb}.speed-page__table-wrap{overflow-x:auto}.speed-page__table{border-collapse:collapse;width:100%}.speed-page__table th,.speed-page__table td{text-align:left;border-bottom:1px solid #1f2937;padding:.75rem 0}.speed-page__table td{color:#e5e7eb}.speed-page__table a,.speed-page__methodology a{color:#38bdf8}.speed-page__notice{font-size:.95rem}.speed-page__methodology{flex-direction:column;gap:.75rem;display:flex}@media (width<=640px){.speed-page__table th:nth-child(4),.speed-page__table td:nth-child(4){display:none}}.report-page{padding:1rem}.report-page__intro{margin-bottom:1.5rem}.report-hero,.report-section{background:#111;border:1px solid #222;border-radius:.75rem;margin-top:1.5rem;padding:1.25rem}.report-hero{gap:1rem;display:grid}.report-hero__grade{background:#171d16;border:1px solid #2c4530;border-radius:.75rem;flex-direction:column;gap:.2rem;width:fit-content;min-width:8rem;padding:.9rem 1rem;display:inline-flex}.report-hero__grade-label{color:#9bb79f;text-transform:uppercase;letter-spacing:.04em;font-size:.8rem}.report-hero__grade-value{color:#fafafa;font-size:2rem;font-weight:700;line-height:1}.report-hero__meta,.report-metrics,.report-insights{gap:.75rem;display:grid}.report-hero__meta{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr))}.report-metrics{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr))}.report-metric,.report-insight{background:#171717;border:1px solid #252525;border-radius:.75rem;padding:1rem}.report-metric__label,.report-meta__label{color:#9a9a9a;margin-bottom:.35rem;font-size:.85rem;display:block}.report-metric__value,.report-meta__value{color:#fafafa;font-size:1.25rem;font-weight:600}.report-section h2{margin-bottom:.5rem}.report-section p,.report-section li,.report-insight p{color:#c8c8d0}.report-page a{color:#4fc3f7;text-decoration:none}.report-page a:hover{text-decoration:underline}.report-section ul{padding-left:1.25rem}@media (width<=767px){.report-page{padding:1rem}}.nav-bar{background:#111;border-bottom:1px solid #222;align-items:center;padding:0 1rem;display:flex}.nav-toggle{cursor:pointer;background:0 0;border:none;padding:.5rem;display:none}.nav-hamburger{background:#ccc;width:1.25rem;height:2px;transition:background .2s;display:block;position:relative}.nav-hamburger:before,.nav-hamburger:after{content:"";background:#ccc;width:1.25rem;height:2px;transition:transform .2s;display:block;position:absolute;left:0}.nav-hamburger:before{top:-6px}.nav-hamburger:after{top:6px}.nav-hamburger--open{background:0 0}.nav-hamburger--open:before{top:0;transform:rotate(45deg)}.nav-hamburger--open:after{top:0;transform:rotate(-45deg)}.nav-links{gap:.25rem;display:flex}.nav-link{color:#888;border-bottom:2px solid #0000;padding:.75rem 1rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .15s;display:block}.nav-link:hover{color:#ccc}.nav-link--active{color:#4fc3f7;border-bottom-color:#4fc3f7}@media (width<=767px){.nav-bar{padding:.5rem 1rem;padding-top:max(.5rem, env(safe-area-inset-top));flex-wrap:wrap}.nav-toggle{display:block}.nav-links{flex-direction:column;width:100%;padding:.5rem 0;display:none}.nav-links--open{display:flex}.nav-link{border-bottom:none;padding:.75rem 0}}.tab-layout{flex-direction:column;min-height:100dvh;display:flex}.tab-content{flex:1;padding:1.5rem;overflow-y:auto}.site-footer{color:#9aa4b2;flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem;padding:.85rem 1.5rem 1.5rem;font-size:.85rem;display:flex}.site-footer a{color:#4fc3f7}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{color:#fafafa;-webkit-font-smoothing:antialiased;background:#0a0a0a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5}#root{min-height:100dvh}.page{max-width:48rem;margin:0 auto}.page h1{letter-spacing:-.02em;margin-bottom:.5rem;font-size:1.75rem;font-weight:700}.page p{color:#888;font-size:1rem}
