.gauge-container{position:relative}.gauge-container>.gauge>.dial{stroke:var(--border);stroke-width:1}.gauge-container>.gauge>.value{fill:transparent;stroke:var(--accent);stroke-width:5}.gauge-container>.result{bottom:35%;position:absolute;width:100%}:root{--bg-body:#1a1e1e;--bg-surface:#1f2424;--bg-card:#232828;--bg-card-inner:#1c2222;--bg-hover:#2b3535;--bg-code:#191d1d;--text-primary:#fff;--text-secondary:#e0e0e0;--text-muted:#8c9b9d;--text-desc:#b1c3c3;--accent:#22d3ee;--accent-hover:#67e8f9;--accent-dim:rgba(34,211,238,.15);--green:#2ecc71;--red:#e74c3c;--blue:#209cee;--grey:#5e6d6f;--border:#2e3636;--nav-bg:rgba(26,30,30,.85);--nav-menu-bg:rgba(26,30,30,.98);--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-xl:24px;--shadow-sm:0 2px 8px rgba(0,0,0,.18);--shadow-md:0 4px 20px rgba(0,0,0,.25);--shadow-lg:0 8px 40px rgba(0,0,0,.35);--shadow-glow:0 0 30px rgba(34,211,238,.14);--font-sans:"Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-mono:ui-monospace,"SF Mono","Fira Mono",Menlo,Consolas,"Liberation Mono",monospace;--transition:0.25s cubic-bezier(0.4,0,0.2,1);--nav-height:64px;--phoneColor:#494f54;--phoneColorDark:#25282b;--screenColor:#f5f5f5;--screenColorDark:#e8e8e8}::selection{background:var(--accent);color:#fff}html.light{--bg-body:#f4f6f6;--bg-surface:#fff;--bg-card:#fff;--bg-card-inner:#eef1f1;--bg-hover:#e5eaea;--bg-code:#eef0f0;--text-primary:#14181a;--text-secondary:#2b3236;--text-muted:#5c6b6d;--text-desc:#47585a;--border:#d9e0e0;--nav-bg:rgba(244,246,246,.85);--nav-menu-bg:rgba(244,246,246,.98);--shadow-sm:0 2px 8px rgba(0,0,0,.06);--shadow-md:0 4px 20px rgba(0,0,0,.1);--shadow-lg:0 8px 40px rgba(0,0,0,.14)}*,:after,:before{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-height) + 1rem);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.text-center{text-align:center}.flex{display:flex}.container{margin:0 auto;max-width:900px;padding:0 1.25rem}h2{font-size:1.5rem;font-weight:700;margin-bottom:1rem}h2,h3,h4,strong{color:var(--text-primary)}strong{font-weight:600}.card{border-radius:var(--radius-lg);overflow:hidden;text-align:left;transition:transform var(--transition),box-shadow var(--transition)}.card.glass{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.card.glass:hover{border-color:hsla(0,0%,100%,.08);box-shadow:var(--shadow-md)}.card .card-body{padding:1.6rem}.btn,button{background:var(--accent);border:1px solid transparent;border-radius:var(--radius-sm);color:var(--bg-body);cursor:pointer;display:inline-block;font-size:.95rem;font-weight:600;line-height:1.5;padding:.45rem .95rem;text-align:center;transition:all var(--transition);user-select:none;vertical-align:middle;white-space:nowrap}.btn.btn-lg,button.btn-lg{font-size:1.2rem;line-height:1.5;padding:.55rem 1.2rem}.btn:focus,.btn:hover,button:focus,button:hover{background:var(--accent-hover);transform:translateY(-1px)}.btn.btn-danger,button.btn-danger{background:var(--red);color:#fff}.btn.btn-danger:focus,.btn.btn-danger:hover,button.btn-danger:focus,button.btn-danger:hover{background:#d62c1a}.btn.btn-dark,.btn.btn-outline-secondary,button.btn-dark,button.btn-outline-secondary{background:var(--bg-card-inner);border-color:var(--border);color:var(--text-secondary)}.btn.btn-dark:focus,.btn.btn-dark:hover,.btn.btn-outline-secondary:focus,.btn.btn-outline-secondary:hover,button.btn-dark:focus,button.btn-dark:hover,button.btn-outline-secondary:focus,button.btn-outline-secondary:hover{background:var(--accent-dim);border-color:rgba(34,211,238,.55);box-shadow:0 0 16px rgba(34,211,238,.2);color:var(--text-primary)}.btn-link,a{background:transparent;border:0;color:var(--accent);cursor:pointer;padding:0;text-decoration:none;transition:color var(--transition),background-color var(--transition)}.btn-link:focus,.btn-link:hover,a:focus,a:hover{background:transparent;color:var(--accent-hover);transform:none}table{background-color:transparent;border-collapse:collapse;margin-bottom:1rem;width:100%}table td,table th{border-top:1px solid var(--border);padding:.75rem;text-align:left;vertical-align:top}table thead th{border-bottom:2px solid var(--border);border-top:0;color:var(--text-muted);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;vertical-align:bottom}fieldset{border:0;margin:0 0 1rem;min-width:0;padding:0}.field{align-items:center;display:flex;line-height:2.5em;min-height:48px}.field>label{margin-right:1em;min-width:100px}.field>div>select{width:100%}.field input[type=checkbox]+label,.field input[type=radio]+label{margin-right:1em}legend{color:var(--text-primary);display:block;font-size:1.15rem;font-weight:700;line-height:inherit;margin-bottom:.5rem;margin-top:1rem;max-width:100%;padding:0;white-space:normal;width:100%}label{display:inline-block}input[type=number],input[type=text],select{background-clip:padding-box;background-color:var(--bg-card-inner);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.95rem;height:calc(2.25rem + 2px);line-height:1.5;padding:.375rem .75rem;transition:border-color var(--transition),box-shadow var(--transition)}input[type=number]:focus,input[type=text]:focus,select:focus{border-color:rgba(34,211,238,.55);box-shadow:0 0 0 3px var(--accent-dim);outline:none}input[type=checkbox],input[type=radio]{-webkit-appearance:none;position:relative}input[type=checkbox]:before,input[type=radio]:before{border:2px solid;border-color:var(--accent);content:" ";display:inline-block;height:14px;width:14px}input[type=checkbox]:checked:after,input[type=radio]:checked:after{bottom:7px;content:" ";display:inline-block;height:10px;left:4px;position:absolute;width:10px}input[type=checkbox]:checked:after{border:solid var(--accent);border-width:0 3px 3px 0;bottom:7px;height:8px;left:5px;transform:rotate(45deg);width:4px}input[type=radio]:checked:after{background:var(--accent)}input[type=radio]:after,input[type=radio]:before{border-radius:100%}.input-group{align-items:stretch;display:flex;flex-wrap:wrap;position:relative;width:100%}.input-group input{flex:1 1 auto;font-family:var(--font-mono);font-size:.85rem;width:1%}.input-group :not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.input-group .input-group-append{display:flex;margin-left:-1px}.input-group .input-group-append *{border-bottom-left-radius:0;border-top-left-radius:0}@font-face{font-display:auto;font-family:icons;font-style:normal;font-weight:400;src:url(icons.4104aaf9.eot);src:url(icons.4104aaf9.eot#iefix) format("embedded-opentype"),url(icons.8890be4e.woff2) format("woff2"),url(icons.651e3054.woff) format("woff"),url(icons.2a9931ac.ttf) format("truetype"),url(icons.69dccda2.svg#icons) format("svg")}.icon:before{display:inline-block;font-family:icons;font-style:normal;font-variant:normal;font-weight:400;line-height:1em;margin-left:.2em;margin-right:.2em;text-align:center;text-decoration:inherit;text-transform:none;width:1em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-cog:before{content:"\e805"}.icon-download:before{content:"\e800"}.icon-history:before{content:"\f1da"}.icon-info:before{content:"\e804"}.icon-jitter:before{content:"\e803"}.icon-latency:before{content:"\e801"}.icon-link:before{content:"\f1e0"}.icon-link2:before{content:"\e806"}.icon-trash:before{content:"\f1f8"}.icon-upload:before{content:"\e802"}.logo{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIj48ZyBzdHJva2U9Im51bGwiPjxjaXJjbGUgY3g9IjI1NiIgY3k9IjI1NiIgcj0iMjI0IiBmaWxsPSIjMjJkM2VlIiBzdHJva2Utd2lkdGg9IjEuNSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTIzOS43MzcgNjQuNzU3QzEwNi4zMzMgNzYuNCAyNS4wNDMgMjE2LjU4MyA4Mi45MjcgMzM1LjE3NmMxMS43MDUgMjMuOTggMzUuNzU0IDU0LjU1IDM5LjY1NCA1MC40MDguODM3LS44ODcgNi4zNzEtNi43MTMgMTIuMzAxLTEyLjk0NWwxMC43ODItMTEuMzMyLTYuODkxLTcuODNDNDguNzkzIDI1MS4yMjUgMTI1LjQwMyA5My42NCAyNjIuNzMxIDk4LjUwMmMxMzIuODc1IDQuNzA0IDE5OC43NDcgMTYxLjYzOCAxMDguMTU2IDI1Ny42Ny02LjgyNiA3LjIzNi03LjcxIDQuOTEyIDcuNDkgMTkuNjgybDEyLjU5NCAxMi4yMzkgMy45MDMtMy43NjRjMjIuNzUzLTIxLjk1IDQyLjAxOC01Ny42NDUgNDkuMTc0LTkxLjExMyAyNi43LTEyNC44Ny03NS45NTctMjM5LjY2LTIwNC4zMTEtMjI4LjQ1OW0zOC4xOTggMTQxLjcyNWMtMjkuNDQxIDI0LjQwMy01My45OTcgNDQuODE1LTU0LjU3MiA0NS4zNi0uOTcxLjkyNCAzMC4yNjYgMzUuNDY2IDMyLjA3NCAzNS40NjYuODIyIDAgOTMuMDA3LTEwNy45MDcgOTIuOTEtMTA4Ljc1Ni0uMTQ5LTEuMzIxLTE0LjYzNi0xNi40MzgtMTUuNzU0LTE2LjQzOC0uNjIyIDAtMjUuMjE5IDE5Ljk2NS01NC42NTggNDQuMzY4Ii8+PC9nPjwvc3ZnPg==);filter:drop-shadow(0 0 10px rgba(34,211,238,.5))}body{background:var(--bg-body);color:var(--text-secondary);display:flex;flex-direction:column;font-family:var(--font-sans);font-size:15px;line-height:1.6;margin:0;min-height:100vh;min-width:320px;padding:var(--nav-height) 0 0}@media only screen and (max-width:360px){body{font-size:.9em}}#main{width:100%}#main,section{flex:1}header.nav{backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);background:var(--nav-bg);border-bottom:1px solid var(--border);height:var(--nav-height);left:0;position:fixed;right:0;top:0;z-index:1000}header.nav .nav-inner{align-items:center;display:flex;height:100%;justify-content:space-between;margin:0 auto;max-width:1100px;padding:0 1.25rem}header.nav .nav-brand{font-size:1.05rem;line-height:1;margin:0}header.nav .nav-brand a,header.nav .nav-brand a:focus,header.nav .nav-brand a:hover{align-items:center;color:var(--text-primary);display:inline-flex;gap:.55rem;text-decoration:none}header.nav .nav-brand #logo{background-position:50%;background-repeat:no-repeat;background-size:28px;display:inline-block;height:28px;width:28px}header.nav .nav-brand #title{font-size:1.05rem;font-weight:700}header.nav .nav-brand .nav-tagline{color:var(--text-muted);font-size:.8rem;font-weight:500}@media only screen and (max-width:520px){header.nav .nav-brand .nav-tagline{display:none}}header.nav .nav-toggle{background:none;border:none;cursor:pointer;display:none;flex-direction:column;gap:5px;padding:.5rem}header.nav .nav-toggle:focus,header.nav .nav-toggle:hover{background:none;transform:none}header.nav .nav-toggle span{background:var(--text-primary);border-radius:2px;display:block;height:2px;transform-origin:center;transition:all var(--transition);width:22px}header.nav .nav-toggle.open .bar-1{transform:translateY(7px) rotate(45deg)}header.nav .nav-toggle.open .bar-2{opacity:0}header.nav .nav-toggle.open .bar-3{transform:translateY(-7px) rotate(-45deg)}header.nav #commands{align-items:center;display:flex;gap:.35rem}header.nav #commands .btn-link{align-items:center;border-radius:var(--radius-sm);color:var(--text-secondary);display:inline-flex;font-size:.85rem;font-weight:500;gap:.3rem;padding:.45rem .7rem}header.nav #commands .btn-link:focus,header.nav #commands .btn-link:hover{background:var(--bg-hover);color:var(--text-primary);text-decoration:none}header.nav #commands .btn-link i.icon{font-size:1.05em}header.nav #commands .nav-cta{background:var(--accent);border-radius:var(--radius-sm);color:var(--bg-body);font-size:.85rem;font-weight:600;margin-left:.5rem;padding:.45rem 1rem;transition:all var(--transition)}header.nav #commands .nav-cta:focus,header.nav #commands .nav-cta:hover{background:var(--accent-hover);color:var(--bg-body);text-decoration:none;transform:translateY(-1px)}header.nav #commands .nav-cta .nav-cta-heart{color:var(--bg-body);font-size:1.1em}header.nav #commands .lang-switch{background:var(--bg-card-inner);border:1px solid var(--border);border-radius:999px;display:flex;gap:.2rem;margin-left:.5rem;padding:.2rem}header.nav #commands .lang-btn{background:transparent;border:none;border-radius:999px;color:var(--text-muted);cursor:pointer;font:inherit;font-size:.76rem;font-weight:700;letter-spacing:.02em;padding:.32rem .62rem;transition:all var(--transition)}header.nav #commands .lang-btn:focus,header.nav #commands .lang-btn:hover{background:transparent;color:var(--text-primary);transform:none}header.nav #commands .lang-btn.active{background:var(--accent);color:var(--bg-body)}@media only screen and (max-width:768px){header.nav .nav-toggle{display:flex}header.nav #commands{align-items:stretch;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:var(--nav-menu-bg);border-bottom:1px solid var(--border);display:none;flex-direction:column;gap:.3rem;left:0;padding:1rem;position:absolute;right:0;top:var(--nav-height)}header.nav #commands.open{display:flex}header.nav #commands .btn-link{border-radius:var(--radius-sm);color:var(--text-primary);font-size:.95rem;padding:.75rem 1rem}header.nav #commands .nav-cta{display:flex;justify-content:center;margin:.4rem 0 0;padding:.75rem 1rem}header.nav #commands .lang-switch{align-self:flex-start;margin:.4rem 0 0}header.nav #commands .lang-btn{padding:.4rem .8rem}}.hero{padding:3.25rem 1.25rem 3rem;position:relative;text-align:center}.hero>:not(.hero-bg){position:relative;z-index:1}.hero .hero-bg{background:radial-gradient(600px 300px at 50% 0,rgba(34,211,238,.12),transparent 70%),radial-gradient(800px 400px at 80% 20%,rgba(34,211,238,.06),transparent 70%);bottom:0;left:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0}.hero .hero-bg:after{animation:heroPulse 6s ease-in-out infinite;background:radial-gradient(circle,rgba(34,211,238,.16),transparent 60%);border-radius:50%;content:"";height:420px;left:50%;position:absolute;top:-140px;transform:translateX(-50%);width:420px}.hero .hero-title{color:var(--text-primary);font-size:clamp(1.55rem,4vw,2.15rem);font-weight:700;margin:0 0 .4rem}.hero .hero-by{color:var(--text-muted);font-size:.85rem;margin:0 0 .6rem}.hero .hero-by a{color:var(--accent-hover);font-weight:600}.hero .hero-by a:focus,.hero .hero-by a:hover{color:var(--text-primary);text-decoration:underline}.hero .hero-sub{color:var(--text-desc);font-size:.95rem;margin:0 auto 1.8rem;max-width:640px}.hero .hero-card{background:radial-gradient(500px 200px at 50% 0,rgba(34,211,238,.08),transparent 70%) var(--bg-card);box-shadow:var(--shadow-glow),var(--shadow-sm);margin:0 auto;max-width:860px;position:relative;text-align:center}.hero .hero-card:before{background:linear-gradient(90deg,transparent,rgba(34,211,238,.5),transparent);content:"";height:1px;left:10%;position:absolute;right:10%;top:0}.hero .hero-card .card-body{padding:2rem 1.6rem}@media only screen and (max-width:640px){.hero .hero-card .card-body{padding:1.4rem 1rem}}@keyframes heroPulse{0%,to{opacity:.7}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.hero .hero-bg:after{animation:none}}@media only screen and (max-width:768px){.hero{padding:2.25rem 1rem 2rem}}.section{padding:3rem 0}@media only screen and (max-width:768px){.section{padding:2.25rem 0}}.features-grid{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}@media only screen and (max-width:768px){.features-grid{gap:.7rem;grid-template-columns:1fr 1fr}}@media only screen and (max-width:480px){.features-grid{grid-template-columns:1fr}}.feature-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;text-align:center;transition:all var(--transition)}.feature-card:hover{border-color:rgba(34,211,238,.25);box-shadow:var(--shadow-md);transform:translateY(-4px)}.feature-card .feature-icon{color:var(--accent);margin-bottom:.7rem}.feature-card .feature-icon svg{height:28px;width:28px}.feature-card h3{color:var(--text-primary);font-size:1.02rem;font-weight:700;margin:0 0 .4rem}.feature-card p{color:var(--text-muted);font-size:.87rem;margin:0}.footer{background:var(--bg-card);border-top:1px solid var(--border);padding:3rem 0 1.6rem;text-align:left}.footer .footer-grid{border-bottom:1px solid var(--border);display:grid;gap:2rem;grid-template-columns:repeat(4,1fr);margin-bottom:1.6rem;padding-bottom:2.2rem}@media only screen and (max-width:768px){.footer .footer-grid{gap:1.6rem;grid-template-columns:repeat(2,1fr)}}@media only screen and (max-width:480px){.footer .footer-grid{gap:1.4rem;grid-template-columns:1fr}}.footer .footer-col{display:flex;flex-direction:column;gap:.65rem}.footer .footer-col h4{color:var(--text-muted);font-size:.7rem;font-weight:700;letter-spacing:.12em;margin:0;text-transform:uppercase}.footer .footer-col a{color:var(--text-secondary);font-size:.87rem}.footer .footer-col a:focus,.footer .footer-col a:hover{color:var(--accent-hover)}.footer .footer-bottom{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between}@media only screen and (max-width:768px){.footer .footer-bottom{flex-direction:column;text-align:center}}.footer .footer-bottom p{color:var(--text-muted);font-size:.85rem;margin:0}.footer .footer-bottom-left{display:flex;flex-direction:column;gap:.3rem}.footer .footer-links{align-items:center;display:flex;font-size:.85rem;font-weight:600;gap:.6rem}.footer .footer-links .footer-link-brand{color:var(--green)}.footer .footer-links .footer-link-brand:focus,.footer .footer-links .footer-link-brand:hover{color:var(--green);text-decoration:underline}.footer .footer-links .footer-link-giebel{color:var(--blue)}.footer .footer-links .footer-link-giebel:focus,.footer .footer-links .footer-link-giebel:hover{color:var(--blue);text-decoration:underline}.footer .footer-links .footer-separator{color:var(--text-muted);font-weight:400}#alerts .alert{background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);color:var(--text-secondary);line-height:1.5em;margin:0 auto 1rem;max-width:860px;padding:.75rem 2.5rem .75rem 1.25rem;position:relative;text-align:left}#alerts .alert.alert-warning{border-left:3px solid #f1c40f}#alerts .alert.alert-error{border-left:3px solid var(--red)}#alerts .alert p{margin:0}#alerts .alert button.close{-webkit-appearance:none;background-color:transparent;border:0;color:inherit;cursor:pointer;font-size:1.5rem;opacity:.5;position:absolute;right:0;top:0}#alerts .alert button.close:focus,#alerts .alert button.close:hover{background-color:transparent;color:var(--text-primary);opacity:1;transform:none}.flex h2{flex:1}#settings .field.custom{display:none}#settings form.custom .field.custom{display:block}#save-confirmation{color:var(--green);opacity:0;padding:0 1em}#save-confirmation.fade{animation:fade 4s forwards}@keyframes fade{0%{opacity:0}25%{opacity:1}75%{opacity:1}to{opacity:0}}#history svg polyline{fill:none;stroke-width:2px}#history svg circle{stroke-width:0px;transition:stroke-width .3s}#history svg circle.focus,#history svg circle:hover{stroke-width:2px}#history svg text{font-size:10px}#history svg #downloadChart circle,#history svg #downloadChart polyline{stroke:var(--accent)}#history svg #downloadChart circle,#history svg #downloadChart text{fill:var(--accent)}#history svg #uploadChart circle,#history svg #uploadChart polyline{stroke:var(--blue)}#history svg #uploadChart circle,#history svg #uploadChart text{fill:var(--blue)}#history table tr:hover td{background-color:var(--bg-hover)}#history table td,#history table th{line-height:1.4em;vertical-align:middle}#history table td a,#history table th a{padding:0}#history #go-landscape{display:none}#history #go-landscape #device-wrapper{bottom:0;height:155px;left:0;margin:auto;right:0;top:0;width:90px}#history #go-landscape #device-wrapper *{box-sizing:content-box}#history #go-landscape #device-wrapper #device{animation:device 2s ease-in-out infinite;border-bottom-width:5px;border-bottom:20px solid var(--phoneColor);border-left:5px solid var(--phoneColor);border-radius:4px;border-right:5px solid var(--phoneColor);border-top-width:5px;border-top:15px solid var(--phoneColor);height:120px;margin:40px 0 0;width:80px}#history #go-landscape #device-wrapper #device:before{background:var(--phoneColorDark);border-radius:4px;content:"";display:block;height:3px;margin:-9px auto;width:10px}#history #go-landscape #device-wrapper #device:after{background:var(--phoneColorDark);border-radius:10px;content:"";display:block;height:12px;margin:4px auto;width:12px}#history #go-landscape #device-wrapper #device #device-screen{background:var(--screenColor);color:var(--screenColorDark);font-size:.5em;height:100px;margin:15px 0 0;overflow:hidden;padding:10px;width:60px}#history #go-landscape #device-wrapper #device #device-screen ul{animation:screen-lines 2s ease-in-out infinite;margin:0;padding:0;transform:rotate(90deg) translateX(13px) scaleX(1.7);transform-origin:center}#history #go-landscape #device-wrapper #device #device-screen li{background:var(--screenColorDark);border-color:var(--screenColorDark);height:6px;list-style:none;margin:0 0 5px}#history #go-landscape #device-wrapper #device #device-screen li:nth-child(2){width:75%}#history #go-landscape #device-wrapper #device #device-screen li:nth-child(5){width:60%}#history #go-landscape #device-wrapper #device #device-screen li:nth-child(7){width:90%}#history #go-landscape p{text-align:center}@media only screen and (max-width:800px)and (orientation:portrait){#history #go-landscape{display:block}#history svg,#history table{display:none}}@keyframes device{0%{opacity:0;transform:rotate(0deg)}25%{opacity:1;transform:rotate(0deg)}50%{transform:rotate(-90deg)}to{opacity:1;transform:rotate(-90deg)}}@keyframes screen-lines{0%{opacity:0}50%{opacity:0}75%{opacity:1}to{opacity:1}}#share .img-thumbnail{background-color:var(--bg-card-inner);border:1px solid var(--border);border-radius:var(--radius-sm);height:auto;max-width:100%;padding:.25rem}#share fieldset>label{color:var(--text-muted);font-size:.78rem;font-weight:700;letter-spacing:.08em;margin-bottom:.35rem;text-transform:uppercase}#speedtest{display:flex;flex-flow:row wrap;margin:0 auto;max-width:640px;text-align:center}#speedtest #actions,#speedtest #ip,#speedtest #timestamp{width:100%}#speedtest #download,#speedtest #jitter,#speedtest #latency,#speedtest #upload{width:25%}@media only screen and (max-width:640px){#speedtest #download,#speedtest #jitter,#speedtest #latency,#speedtest #upload{width:50%}}#speedtest #actions{padding:1em 0}#speedtest #actions #timestamp{display:none;padding-top:1em}#speedtest #timestamp{color:var(--text-muted);font-size:.9em}#speedtest #gauge{margin:0 auto -10%;width:80%}#speedtest #gauge .gauge{max-height:400px}@media only screen and (max-width:640px){#speedtest #gauge .gauge{max-height:260px}}#speedtest #gauge .result{font-size:2em;padding:0}@media only screen and (max-width:640px){#speedtest #gauge .result{font-size:1.2em}}#speedtest #gauge .result .value{background:linear-gradient(135deg,var(--accent),var(--accent-hover));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--accent)}#speedtest #progress{left:0;position:fixed;top:0;width:100vw;z-index:1100}#speedtest #progress.progress{background:none;border-radius:.25rem;display:flex;font-size:.75rem;height:3px;overflow:visible}#speedtest #progress.progress .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent);color:#fff;display:flex;flex-direction:column;justify-content:center;text-align:center;transition:width .6s ease;white-space:nowrap}#speedtest .result{padding:1em 0}@media only screen and (max-width:640px){#speedtest .result{padding:.5em 0}}#speedtest .result label{color:var(--text-muted);display:block;font-size:.95em;font-weight:600;letter-spacing:.08em;margin-bottom:.2em;text-transform:uppercase;transition:color .6s ease}@media only screen and (max-width:640px){#speedtest .result label{font-size:.85em}}#speedtest .result.active label{color:var(--accent)}#speedtest .result .ip,#speedtest .result .org{display:block}#speedtest .result .value{color:var(--text-primary);font-family:var(--font-mono);font-size:2em;font-weight:300;line-height:1.2em}@media only screen and (max-width:640px){#speedtest .result .value{font-size:2.4em}}#speedtest .result .value:empty:before{content:"0.00"}#speedtest .result .value.ip:empty:before{content:"___.___.___.___"}#speedtest .result .unit{color:var(--text-muted);font-size:.8em;font-weight:300}@media only screen and (max-width:640px){#speedtest .result .unit{display:block;font-size:.9em}}#speedtest .result .org{color:var(--text-desc);font-size:1.1em;font-weight:300}#speedtest.ready{align-items:center;margin:auto}#speedtest.ready #download,#speedtest.ready #gauge,#speedtest.ready #ip,#speedtest.ready #jitter,#speedtest.ready #latency,#speedtest.ready #timestamp,#speedtest.ready #upload{display:none}#speedtest.ready #actions{padding:4em 0}#speedtest.ready #actions button#start{font-size:1.6em;width:160px}#speedtest.done #actions #timestamp{display:block}#speedtest.done #gauge{display:none}#speedtest.done #download,#speedtest.done #jitter,#speedtest.done #latency,#speedtest.done #upload{width:50%}