/* SpeedMyInternet V21 — clean, conflict-free launch control */
:root{
  --v21-control-size:248px;
  --v21-cyan:#55ddff;
  --v21-violet:#8f73ff;
}

/* One exact coordinate system. Older child selectors cannot affect the V21 UI. */
.test-core{
  width:var(--v21-control-size)!important;
  height:var(--v21-control-size)!important;
  min-width:var(--v21-control-size)!important;
  min-height:var(--v21-control-size)!important;
  aspect-ratio:1/1!important;
  border-radius:50%!important;
  display:block!important;
  position:relative!important;
  padding:0!important;
  overflow:hidden!important;
  isolation:isolate!important;
  contain:layout paint style!important;
}
.test-core::before,.test-core::after,.test-core .core-progress{border-radius:50%!important}

.test-core .core-ui-v21{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  display:block!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  text-align:center!important;
  pointer-events:none!important;
  z-index:20!important;
}

.test-core .status-v21{
  position:absolute!important;
  left:50%!important;
  top:31px!important;
  width:72%!important;
  max-width:72%!important;
  margin:0!important;
  padding:0!important;
  transform:translateX(-50%)!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  color:rgba(246,251,255,.94)!important;
  font-family:inherit!important;
  font-size:9px!important;
  font-weight:750!important;
  line-height:1.25!important;
  letter-spacing:.13em!important;
  text-transform:uppercase!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  z-index:30!important;
}

.test-core .start-v21{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:76%!important;
  max-width:76%!important;
  margin:0!important;
  padding:0!important;
  transform:translate(-50%,-50%)!important;
  color:#fff!important;
  font-family:inherit!important;
  font-size:32px!important;
  font-weight:720!important;
  line-height:1!important;
  letter-spacing:-.035em!important;
  text-align:center!important;
  white-space:normal!important;
  text-wrap:balance!important;
  z-index:30!important;
}

.test-core .hint-v21{
  position:absolute!important;
  left:50%!important;
  bottom:27px!important;
  width:76%!important;
  max-width:76%!important;
  margin:0!important;
  padding:0!important;
  transform:translateX(-50%)!important;
  color:rgba(239,247,255,.78)!important;
  font-family:inherit!important;
  font-size:10px!important;
  font-weight:520!important;
  line-height:1.2!important;
  text-align:center!important;
  white-space:nowrap!important;
  z-index:30!important;
}

.test-core .rocket-v21{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:118px!important;
  height:118px!important;
  margin:0!important;
  transform:translate(-50%,-50%)!important;
  z-index:24!important;
}

.test-core .readout-v21{
  position:absolute!important;
  left:50%!important;
  bottom:25px!important;
  width:76%!important;
  max-width:76%!important;
  margin:0!important;
  padding:0!important;
  transform:translateX(-50%)!important;
  display:none!important;
  align-items:baseline!important;
  justify-content:center!important;
  gap:5px!important;
  text-align:center!important;
  z-index:30!important;
}
.test-core .readout-v21 b{
  display:block!important;
  margin:0!important;
  padding:0!important;
  color:#fff!important;
  font-family:var(--number-font,ui-monospace,SFMono-Regular,Menlo,monospace)!important;
  font-size:21px!important;
  font-weight:470!important;
  line-height:1!important;
  font-variant-numeric:tabular-nums lining-nums!important;
  letter-spacing:-.03em!important;
  white-space:nowrap!important;
  transform:none!important;
}
.test-core .readout-v21 em{
  display:block!important;
  margin:0!important;
  padding:0!important;
  color:rgba(239,247,255,.78)!important;
  font-size:8px!important;
  font-weight:700!important;
  line-height:1!important;
  letter-spacing:.06em!important;
  white-space:nowrap!important;
}

/* State rules */
.test-core.testing .start-v21,.test-core.testing .hint-v21{display:none!important}
.test-core.testing .status-v21{top:27px!important}
.test-core.testing.has-reading .readout-v21{display:flex!important}
.test-core.testing:not(.has-reading) .readout-v21{display:none!important}
.test-core.has-reading:not(.testing) .start-v21{display:none!important}
.test-core.has-reading:not(.testing) .readout-v21{
  display:flex!important;
  top:50%!important;
  bottom:auto!important;
  transform:translate(-50%,-50%)!important;
  gap:7px!important;
}
.test-core.has-reading:not(.testing) .readout-v21 b{
  font-size:48px!important;
  font-weight:430!important;
  letter-spacing:-.045em!important;
  text-shadow:0 0 18px rgba(104,210,255,.18)!important;
}
.test-core.has-reading:not(.testing) .readout-v21 em{font-size:10px!important}
.test-core.has-reading:not(.testing) .hint-v21{display:block!important}

/* Subtle value illumination, without movement or vibration. */
.metric-reading strong.value-updated{
  animation:v21ValueGlow .42s ease-out 1!important;
  transform:none!important;
}
.test-core .readout-v21 b.value-updated{
  animation:v21LiveGlow .38s ease-out 1!important;
  transform:none!important;
}
@keyframes v21ValueGlow{
  0%{color:#fff;text-shadow:0 0 0 rgba(93,216,255,0)}
  42%{color:#dff9ff;text-shadow:0 0 15px rgba(93,216,255,.5)}
  100%{color:inherit;text-shadow:0 0 0 rgba(93,216,255,0)}
}
@keyframes v21LiveGlow{
  0%{opacity:.82;text-shadow:0 0 0 rgba(93,216,255,0)}
  50%{opacity:1;text-shadow:0 0 14px rgba(93,216,255,.48)}
  100%{opacity:1;text-shadow:0 0 0 rgba(93,216,255,0)}
}

body.light .test-core .status-v21{color:#173f72!important}
body.light .metric-reading strong.value-updated{animation-name:v21ValueGlowLight!important}
@keyframes v21ValueGlowLight{
  0%{text-shadow:0 0 0 rgba(42,142,255,0)}
  42%{color:#1768c7;text-shadow:0 0 13px rgba(42,142,255,.28)}
  100%{color:inherit;text-shadow:0 0 0 rgba(42,142,255,0)}
}

@media(max-width:650px){
  :root{--v21-control-size:222px}
  .test-core .status-v21{top:27px!important;font-size:8px!important;width:76%!important;max-width:76%!important}
  .test-core .start-v21{font-size:29px!important}
  .test-core .hint-v21{bottom:23px!important;font-size:9px!important}
  .test-core .rocket-v21{width:108px!important;height:108px!important}
  .test-core .readout-v21{bottom:22px!important}
  .test-core.testing .status-v21{top:24px!important}
  .test-core.has-reading:not(.testing) .readout-v21 b{font-size:42px!important}
}
@media(max-width:390px){
  :root{--v21-control-size:206px}
  .test-core .status-v21{top:25px!important}
  .test-core .start-v21{font-size:27px!important}
  .test-core .hint-v21{bottom:21px!important}
  .test-core .rocket-v21{width:101px!important;height:101px!important}
  .test-core .readout-v21{bottom:20px!important}
  .test-core.testing .status-v21{top:22px!important}
  .test-core.has-reading:not(.testing) .readout-v21 b{font-size:39px!important}
}
@media(prefers-reduced-motion:reduce){
  .metric-reading strong.value-updated,.test-core .readout-v21 b.value-updated{animation:none!important}
}
