.speedtest-main{max-width:1320px;margin:36px auto;padding:0 20px 40px}.speedtest-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:32px;align-items:center;margin-bottom:30px}.speedtest-hero h1{font-size:clamp(2rem,4vw,3.5rem);line-height:1.08;margin:10px 0 18px}.speedtest-hero p{line-height:1.7}.speedtest-hero .mailcheck-visual-hero{aspect-ratio:2208/944;min-height:0;border-radius:20px;overflow:hidden}.speedtest-hero img,.speedtest-hero video{width:100%;height:100%;object-fit:contain}.speedtest-bench{--metal:#e2b775;--dial-accent:#f4cf82;background:radial-gradient(ellipse at top,#30312d,#10191e 65%);border:2px solid #8b663e;border-radius:26px;padding:28px;box-shadow:inset 0 0 0 5px #141b22,0 20px 60px #0005;color:#f5e6cd}.speedtest-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;border-bottom:1px solid #9c7a484f;padding-bottom:18px}.speedtest-toolbar h2{margin:0;font-size:1.3rem}.speedtest-toolbar label{font-size:.85rem}.speedtest-toolbar select{margin-left:8px;background:#18232c;color:#ffdfae;border:1px solid #aa824d;border-radius:8px;padding:10px;font:inherit}.speedtest-instruments{display:grid;grid-template-columns:1fr 1fr .72fr;gap:16px;align-items:center;padding:24px 0}.speedtest-instrument{text-align:center;min-width:0}.speedtest-instrument h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.18em;color:#f4d4a3;margin:4px 0 12px}.speedtest-dial{width:100%;display:block;filter:drop-shadow(0 8px 6px #0008)}.speedtest-dial .tick{stroke:var(--dial-accent);stroke-width:1.4}.speedtest-dial .major{stroke-width:3}.speedtest-dial text{fill:#f2d9ad;font:12px Georgia,serif;text-anchor:middle}.speedtest-dial .arc{fill:none;stroke:var(--dial-accent);stroke-width:4;opacity:.6}.speedtest-dial .needle{transition:transform .65s cubic-bezier(.22,.7,.2,1)}.speedtest-dial .gear{transform-box:fill-box;transform-origin:center;animation:speedtest-turn 20s linear infinite;animation-play-state:paused}.speedtest-bench[data-running=true] .gear{animation-play-state:running}.speedtest-dial .reverse{animation-direction:reverse;animation-duration:28s}.speedtest-readout{display:flex;align-items:baseline;justify-content:center;gap:9px;margin-top:-46px;position:relative;padding-bottom:25px;pointer-events:none}.speedtest-value{font:700 clamp(1.6rem,3.5vw,2.8rem)/1.1 ui-monospace,monospace;color:#fff2d7;font-variant-numeric:tabular-nums}.speedtest-unit{font-size:.75rem;color:#d1b98f}.speedtest-scale{font-size:.7rem;color:#c6bda9;min-height:20px;margin:10px 0 0}.speedtest-small .speedtest-readout{margin-top:-36px;padding-bottom:18px}.speedtest-small .speedtest-value{font-size:1.8rem}.speedtest-controls{display:flex;gap:12px;justify-content:center;margin:18px 0}.speedtest-controls button{border:1px solid #e4b373;border-radius:9px;padding:14px 26px;font:700 1rem var(--font-display);cursor:pointer;background:linear-gradient(#ffe0a4,#c58b48);color:#21170e;box-shadow:0 4px 0 #694320}.speedtest-controls button.secondary{background:#172430;color:#ffe0ad;box-shadow:none}.speedtest-controls button:disabled{opacity:.45;cursor:default}.speedtest-controls button:focus-visible,.speedtest-toolbar select:focus-visible{outline:3px solid #54e9ff;outline-offset:4px}.speedtest-status{text-align:center;min-height:1.6em;color:#f7d7a2;line-height:1.6}.speedtest-progress{width:100%;height:6px;accent-color:#deb67a;display:block;margin:18px 0}.speedtest-details{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px}.speedtest-details>div{border:1px solid #826745;border-radius:9px;padding:15px;background:#080f1680}.speedtest-details dt{font-size:.72rem;color:#d5c3a8}.speedtest-details dd{margin:7px 0 0;font:700 1.1rem ui-monospace,monospace;color:#fff0d4}.speedtest-trace{background:#0c151c;border:1px solid #87663d;border-radius:10px;padding:12px;margin-top:18px}.speedtest-trace h4{font-size:.7rem;letter-spacing:.08em;margin:0 0 10px;color:#dcc6a1}.speedtest-trace svg{width:100%;height:70px;display:block}.speedtest-trace p{font-size:.65rem;color:#c6bda9;margin:7px 0 0}.speedtest-note{font-size:.82rem;line-height:1.7;color:var(--muted);margin:20px 0}.speedtest-note a{color:inherit;text-decoration:underline}.speedtest-help{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:28px}.speedtest-help h2{font-size:1rem}.speedtest-help p{font-size:.87rem;line-height:1.7;color:var(--muted)}.speedtest-roller{display:none}.speedtest-bench[data-style=neon]{--dial-accent:#57eeff;background:radial-gradient(ellipse at top,#202048,#091323 70%)}.speedtest-bench[data-style=neon] .speedtest-instrument:nth-child(2){--dial-accent:#f35af7}.speedtest-bench[data-style=neon] .arc{filter:drop-shadow(0 0 5px var(--dial-accent));opacity:1}.speedtest-bench[data-style=neon] .tick{filter:drop-shadow(0 0 2px var(--dial-accent))}.speedtest-bench[data-style=roller] .speedtest-dial{display:none}.speedtest-bench[data-style=roller] .speedtest-roller{display:flex;position:relative;justify-content:center;gap:3px;padding:28px 10px;margin:35px 0 15px;border:3px solid #55ddf6;border-radius:18px;background:linear-gradient(#090b24,#242559 49%,#08091b 51%,#27224e);box-shadow:0 0 12px #26ddff66,inset 0 0 20px #000;color:white;font:700 clamp(1.5rem,3.4vw,2.8rem) ui-monospace,monospace}.speedtest-roller::after{content:'';position:absolute;top:50%;left:0;right:0;border-top:1px solid #8b7db9;pointer-events:none}.speedtest-roller span{min-width:.6em;display:inline-block;text-shadow:0 0 10px #8dbfff}.speedtest-roller span.flip{animation:speedtest-flip .4s ease-out}.speedtest-bench[data-style=roller] .speedtest-readout{margin:0;padding:0}.speedtest-bench[data-style=roller] .speedtest-value{font-size:1.1rem}.speedtest-bench[data-style=roller] .speedtest-instrument:nth-child(2) .speedtest-roller{border-color:#ed58f6;box-shadow:0 0 12px #ed58f666}.speedtest-bench[data-style=roller] .speedtest-instruments{align-items:start}.speedtest-bench[data-style=roller] .speedtest-small .speedtest-roller{font-size:1.7rem;padding:22px 5px}.speedtest-hero-caption{font-size:.7rem!important;opacity:.75;margin:8px 0 0;text-align:center}@keyframes speedtest-turn{to{transform:rotate(360deg)}}@keyframes speedtest-flip{from{transform:translateY(-12px);opacity:.3}to{transform:translateY(0);opacity:1}}@media(max-width:800px){.speedtest-hero{grid-template-columns:1fr}.speedtest-instruments{grid-template-columns:1fr 1fr}.speedtest-small{grid-column:1/-1;max-width:280px;justify-self:center;width:100%}.speedtest-bench{padding:18px}.speedtest-help{grid-template-columns:1fr;gap:4px}.speedtest-value{font-size:1.7rem}.speedtest-readout{margin-top:-35px;padding-bottom:15px}}@media(max-width:460px){.speedtest-main{padding:0 10px 30px}.speedtest-instruments{gap:6px}.speedtest-readout{margin-top:-27px;padding-bottom:10px;gap:4px}.speedtest-value{font-size:1.3rem}.speedtest-unit{font-size:.6rem}.speedtest-details{grid-template-columns:1fr}.speedtest-toolbar select{margin-left:0;display:block;margin-top:8px}}@media(prefers-reduced-motion:reduce){.speedtest-dial .gear,.speedtest-roller span.flip{animation:none}.speedtest-dial .needle{transition:none}}
/* Keep numerical readings precisely inside the dial's inset at every size. */
.speedtest-finish-preview{display:grid;grid-template-columns:minmax(210px,.8fr) 1.4fr;align-items:center;gap:24px;margin:22px 0;padding:20px;border:1px solid #aa874e;border-radius:16px;background:linear-gradient(130deg,#10232b,#1b202b);box-shadow:inset 0 0 26px #58cbd90a}.speedtest-finish-preview[hidden]{display:none}.finish-preview-art{position:relative;aspect-ratio:16/9;min-width:0;border-radius:10px;overflow:hidden;border:1px solid #887351;background:#101d24}.finish-preview-art img{display:block;width:100%;height:100%;object-fit:contain}.finish-preview-art>span{position:absolute;bottom:8px;left:8px;padding:5px 8px;background:#081b20e8;color:#f7db9d;border:1px solid #a48a52;border-radius:4px;font:700 .6rem ui-monospace,monospace;letter-spacing:.1em}.finish-preview-copy .section-kicker{font-size:.65rem;margin:0 0 7px}.finish-preview-copy h3{margin:0 0 10px;font-size:1.15rem;color:#ffe3ac}.finish-preview-copy p{font-size:.8rem;line-height:1.6;color:#d5dcd6}.finish-preview-copy #finish-access-status{color:#eed1a1}.finish-preview-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.finish-preview-actions a,.finish-preview-actions button{padding:11px 14px;border:1px solid #d4ad6f;border-radius:7px;font:700 .75rem var(--font-display);color:#f6ddb1;background:#152630;text-decoration:none;cursor:pointer}.finish-preview-actions #finish-signup{color:#291b0a;background:linear-gradient(#ffe4a9,#d0a35e)}.finish-preview-actions a:focus-visible,.finish-preview-actions button:focus-visible{outline:3px solid #58e8ff;outline-offset:3px}.finish-preview-copy .finish-preview-note{font-size:.68rem;color:#b7c6c9;margin-bottom:0}@media(max-width:700px){.speedtest-finish-preview{grid-template-columns:1fr;padding:14px;gap:15px}.finish-preview-art{max-width:420px;width:100%;justify-self:center}.speedtest-toolbar select{max-width:100%}}
.speedtest-face{position:relative;container-type:inline-size}.speedtest-face .speedtest-readout{position:absolute;top:79.7%;left:23.4%;width:53.2%;height:11.6%;margin:0;padding:0;align-items:center;gap:4px}.speedtest-face .speedtest-value{font-size:clamp(10px,8cqw,32px)}.speedtest-face .speedtest-unit{font-size:clamp(6px,3cqw,11px)}.speedtest-bench[data-style=roller] .speedtest-face{display:contents}.speedtest-bench[data-style=roller] .speedtest-readout{display:none}.speedtest-bench[data-style=roller] .speedtest-roller{margin-bottom:12px}.speedtest-bench[data-style=roller] .speedtest-scale{margin-top:12px}@media(max-width:520px){.speedtest-instruments{grid-template-columns:1fr;gap:24px}.speedtest-instrument{max-width:330px;width:100%;justify-self:center}.speedtest-small{max-width:250px}.speedtest-bench[data-style=roller] .speedtest-roller{font-size:2.7rem;margin-top:15px}}
/* Instrument faces remain dark metal in either site theme. */
html[data-theme=light] .speedtest-bench .speedtest-dial text{fill:#f2d9ad!important}html[data-theme=light] .speedtest-bench .section-kicker{color:#f4d4a3!important}
/* Each numeral has its own hinged split flap; punctuation never flips. */
.speedtest-bench[data-style=roller] .speedtest-roller{gap:4px;padding:20px 8px;align-items:center;background:#0b1028;font-size:clamp(20px,3vw,40px)}
.speedtest-roller::after{display:none}
.speedtest-roller .flip-digit{position:relative;flex:0 1 .72em;width:.72em;min-width:0;height:1.35em;perspective:250px;text-shadow:0 0 6px #8dbfff}
.speedtest-roller .flip-digit>span{position:absolute;left:0;width:100%;height:50%;overflow:hidden;min-width:0;display:block;background:linear-gradient(#343568,#11142d);border:1px solid #606699;border-radius:4px 4px 0 0;backface-visibility:hidden}
.speedtest-roller .flip-digit>span b{position:absolute;left:0;width:100%;height:1.35em;font:inherit;line-height:1.35em;font-weight:700;text-align:center}
.speedtest-roller .flip-digit .static-top,.speedtest-roller .flip-digit .turn-top{top:0;transform-origin:bottom}
.speedtest-roller .flip-digit .static-bottom,.speedtest-roller .flip-digit .turn-bottom{bottom:0;border-radius:0 0 4px 4px;background:linear-gradient(#090e22,#262647);transform-origin:top}
.speedtest-roller .flip-digit .static-bottom b,.speedtest-roller .flip-digit .turn-bottom b{bottom:0}
.speedtest-roller .flip-digit .turn-top{z-index:2;animation:digit-top var(--flip-duration,160ms) ease-in var(--flip-delay,0ms) forwards}
.speedtest-roller .flip-digit .turn-bottom{z-index:3;transform:rotateX(90deg);animation:digit-bottom var(--flip-duration,160ms) ease-out calc(var(--flip-delay,0ms) + var(--flip-duration,160ms)) forwards}
.speedtest-roller .flip-decimal{flex:0 0 .25em;min-width:0;align-self:center;border:0;background:none;animation:none;transform:none}
.speedtest-roller .flip-placeholder{min-width:1em;animation:none}
@keyframes digit-top{to{transform:rotateX(-90deg)}}
@keyframes digit-bottom{to{transform:rotateX(0)}}
@media(prefers-reduced-motion:reduce){.speedtest-roller .flip-digit .turn-top,.speedtest-roller .flip-digit .turn-bottom{display:none;animation:none}}
@media(max-width:520px){.speedtest-bench[data-style=roller] .speedtest-roller{font-size:clamp(20px,7vw,36px)}}
/* World connection: globe persists; directional pipe bulges only run in phase. */
.speedtest-world-stage{position:relative}.speedtest-world{display:none;position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.speedtest-bench[data-world=true] .speedtest-world{display:block}.speedtest-bench[data-world=true] .speedtest-instruments{position:relative;padding-top:200px;align-items:start}.speedtest-world .pipe-outer{fill:none;stroke:#9c673d;stroke-width:13;stroke-linejoin:round}.speedtest-world .pipe-inner{fill:none;stroke:#e3bd79;stroke-width:6;stroke-linejoin:round}.speedtest-world .pipe-blobs{visibility:hidden}.speedtest-world .blob-shell{fill:#d6a966;stroke:#fce0aa;stroke-width:1.5}.speedtest-world .blob-core{fill:#62e5ff;filter:drop-shadow(0 0 3px #4bddff)}.speedtest-world .world-upload .blob-core{fill:#ef7ffd;filter:drop-shadow(0 0 3px #ed70ff)}.speedtest-bench[data-running=true][data-phase=download] .world-download .pipe-blobs,.speedtest-bench[data-running=true][data-phase=upload] .world-upload .pipe-blobs{visibility:visible}.speedtest-world .world-turn{animation:world-rotation 32s linear infinite}.speedtest-bench[data-world-paused=true] .world-turn{animation-play-state:paused}.speedtest-bench[data-world-paused=true] .pipe-blobs{visibility:hidden!important}@keyframes world-rotation{to{transform:translateX(-128px)}}@media(prefers-reduced-motion:reduce){.speedtest-world .world-turn{animation:none}.speedtest-world .pipe-blobs{visibility:hidden!important}}
.speedtest-bench[data-world=true] .speedtest-instrument h3{display:table;position:relative;margin:4px auto 12px;padding:4px 8px;border-radius:4px;background:#172024}
/* One complete glyph remains visible when each flap settles; no central cut. */
.speedtest-roller .flip-digit{box-sizing:content-box;border:1px solid #606699;border-radius:4px;background:linear-gradient(#343568,#11142d 50%,#171b37)}
.speedtest-roller .flip-digit>span{border:0;border-radius:0}
.speedtest-roller .flip-digit .static-number{inset:0;height:100%;overflow:visible;background:none}
.speedtest-roller .flip-digit .static-number b{inset:0}
.speedtest-roller .flip-digit .turn-top{border-radius:3px 3px 0 0}
.speedtest-roller .flip-digit .turn-bottom{border-radius:0 0 3px 3px}
.speedtest-world-option{display:flex;align-items:center;gap:9px;cursor:pointer;min-height:44px;color:#f4d4a3}
.speedtest-world-option input{width:20px;height:20px;accent-color:#54e9ff}
.speedtest-location[hidden]{display:none}.speedtest-location{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:24px;padding:20px 24px;border:2px solid #64e7ff;border-radius:16px;background:linear-gradient(120deg,#0a1934,#201337);box-shadow:0 0 13px #43dfff35,inset 0 0 18px #ae4cff15;color:#effaff;overflow-wrap:anywhere}
.speedtest-location .location-kicker{color:#79eaff;font-size:.7rem;text-transform:uppercase;letter-spacing:.11em;margin:0 0 8px}.speedtest-location strong{display:block;font-size:1.25rem;text-shadow:0 0 12px #77caff50}.speedtest-location p:not(.location-kicker){font-size:.85rem;color:#e4d8ff;margin:8px 0}.speedtest-location small{font-size:.7rem;color:#c2cede;line-height:1.5}.speedtest-location button{flex-shrink:0;background:#142943;color:#e9faff;border:1px solid #73deff;border-radius:7px;padding:10px;cursor:pointer}
html[data-theme=light] .speedtest-world-option{color:#f4d4a3!important}
@media(max-width:520px){.speedtest-location{padding:16px;flex-direction:column;align-items:start}.speedtest-location strong{font-size:1.05rem}}
/* Mad scientist: interchangeable calibrated elixir vessels and extravagant gauges. */
.lab-apparatus{display:none}.speedtest-bench[data-style=lab]{--dial-accent:#a5ff4f;background:radial-gradient(ellipse at top,#374324,#101d1a 60%,#100f19);border-color:#d5aa62;box-shadow:inset 0 0 0 5px #241b13,0 0 36px #97ff3020}
.speedtest-bench[data-style=lab] .lab-apparatus{display:block;position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.speedtest-bench[data-style=lab] .speedtest-face{isolation:isolate}
.speedtest-bench[data-style=lab] .lab-flask{display:none}
.speedtest-bench[data-style=lab] [data-lab=flask] .speedtest-dial{visibility:hidden}
.speedtest-bench[data-style=lab] [data-lab=flask] .lab-flask{display:block}
.speedtest-bench[data-style=lab] [data-lab=flask] .lab-gauge-trim{display:none}
.speedtest-bench[data-style=lab] [data-lab=flask] .speedtest-readout{top:85%;height:9%}
.speedtest-bench[data-style=lab] .arc{filter:drop-shadow(0 0 5px #93ff3c);opacity:1}
.speedtest-bench[data-style=lab] .speedtest-value{color:#e3ffb2;text-shadow:0 0 9px #91ff3260}
.lab-liquid{transition:y .65s ease,height .65s ease;filter:drop-shadow(0 0 7px #78ff34)}
.lab-bubble{fill:#e1ffa0;stroke:#63d83d;opacity:0;animation:lab-bubble 2.6s linear infinite;animation-delay:var(--bubble-delay);animation-play-state:paused}
.lab-steam{fill:none;stroke:#bbffb1;stroke-width:2;opacity:.3}
.lab-apparatus .gear{transform-box:fill-box;transform-origin:center;animation:speedtest-turn 12s linear infinite;animation-play-state:paused}.lab-apparatus .reverse{animation-direction:reverse}
.speedtest-bench[data-style=lab][data-running=true] .lab-bubble{animation-play-state:running}
@keyframes lab-bubble{0%{transform:translateY(0);opacity:0}20%{opacity:.8}90%{opacity:.5}100%{transform:translateY(-170px);opacity:0}}
@media(prefers-reduced-motion:reduce){.lab-apparatus .gear,.lab-bubble{animation:none}.lab-liquid{transition:none}}
.lab-liquid-level{transition:y .65s ease,height .65s ease}@media(prefers-reduced-motion:reduce){.lab-liquid-level{transition:none}}
/* Illuminated range selector; the actual checkbox remains keyboard accessible. */
.overdrive-panel{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;margin-top:20px;padding:14px 18px;background:#111a1e;border:1px solid #826745;border-radius:10px}.overdrive-control{display:flex;position:relative;align-items:center;gap:14px;cursor:pointer;min-height:44px}.overdrive-control input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.overdrive-lever{width:48px;height:26px;border-radius:5px;background:#080c10;border:2px solid #857662;box-shadow:inset 0 2px 6px #000}.overdrive-lever:after{content:'';display:block;width:20px;height:22px;background:linear-gradient(90deg,#887a69,#e8ddc8,#726855);border-radius:3px;transition:transform .18s}.overdrive-control input:checked~.overdrive-lever:after{transform:translateX(24px)}.overdrive-lamp{padding:8px 12px;border:2px solid #635432;border-radius:5px;color:#948365;background:#211c12;font:800 .85rem ui-monospace,monospace;letter-spacing:.15em;transition:color .2s,box-shadow .2s}.overdrive-control input:checked~.overdrive-lamp{color:#ffb3b3;background:#350b13;border-color:#ff354d;text-shadow:0 0 3px #ff354d,0 0 9px #ff1638,0 0 18px #ff1638;box-shadow:0 0 16px #ff163877,inset 0 0 10px #ff163840}.overdrive-control input:focus-visible~.overdrive-lever{outline:3px solid #64e7ff;outline-offset:4px}.overdrive-panel small{color:#d6c5a7;font-size:.72rem;line-height:1.5}@media(prefers-reduced-motion:reduce){.overdrive-lever:after,.overdrive-lamp{transition:none}}
/* A small pressure instrument, or a pumped-up creature in the laboratory. */
.bloat-panel{display:grid;grid-template-columns:220px 1fr;gap:28px;align-items:center;border:1px solid #967144;border-radius:18px;padding:22px;margin:12px 0 24px;background:linear-gradient(120deg,#14231f,#19202b)}.bloat-panel h2{margin:4px 0 12px;font-size:1.3rem;color:#ffe3ad}.bloat-copy p{line-height:1.6}.bloat-copy #bloat-verdict{font-weight:700;font-size:1.15rem;color:#dfff94}.bloat-copy #bloat-directions{font:700 .85rem ui-monospace,monospace;color:#ffe3ad}.bloat-copy #bloat-samples,.bloat-explanation,.bloat-copy details{font-size:.75rem;color:#c9d4cd}.bloat-copy summary{cursor:pointer;padding:8px 0;color:#ffdfaa}.bloat-copy a{color:#78e9ff}.bloat-balloon{display:none}.speedtest-bench[data-style=lab] .bloat-instrument .speedtest-dial{visibility:hidden}.speedtest-bench[data-style=lab] .bloat-instrument .lab-apparatus{display:none}.speedtest-bench[data-style=lab] .bloat-balloon{display:block;position:absolute;inset:0;width:100%;height:100%;overflow:visible}.speedtest-bench[data-style=lab] .bloat-instrument .speedtest-readout{top:85.3%;height:10.3%}.balloon-body{transform-origin:160px 235px;transform:scale(var(--balloon-size,.35));transition:transform .6s ease}.bloat-pump{animation:bloat-pump .6s ease-in-out infinite alternate;animation-play-state:paused}.speedtest-bench[data-style=lab][data-running=true][data-phase=download] .bloat-pump,.speedtest-bench[data-style=lab][data-running=true][data-phase=upload] .bloat-pump{animation-play-state:running}@keyframes bloat-pump{to{transform:translateY(20px)}}@media(max-width:600px){.bloat-panel{grid-template-columns:1fr;gap:14px;padding:18px}.bloat-instrument{max-width:210px;justify-self:center}.bloat-copy{text-align:center}}@media(prefers-reduced-motion:reduce){.balloon-body{transition:none}.bloat-pump{animation:none}}
.speedtest-bench[data-style=lab] .bloat-instrument .speedtest-readout{z-index:1}
/* Balloon uses an amplified visual response, not the gauge's linear scale. */
.speedtest-bench[data-style=lab] .bloat-instrument .speedtest-scale{font-size:0}.speedtest-bench[data-style=lab] .bloat-instrument .speedtest-scale:after{content:'Balloon · amplified at low delays';font-size:.7rem}
/* Compressed glowing packets follow the pump hose into the balloon neck. */
.bloat-blobs{visibility:hidden}.bloat-blob{offset-path:path('M265 209 V259 H160 V237');offset-rotate:auto;animation:balloon-packet 2.4s linear infinite;animation-delay:var(--blob-delay);animation-play-state:paused}.speedtest-bench[data-style=lab][data-running=true][data-phase=download] .bloat-blobs,.speedtest-bench[data-style=lab][data-running=true][data-phase=upload] .bloat-blobs{visibility:visible}.speedtest-bench[data-style=lab][data-running=true][data-phase=download] .bloat-blob,.speedtest-bench[data-style=lab][data-running=true][data-phase=upload] .bloat-blob{animation-play-state:running}@keyframes balloon-packet{from{offset-distance:0%}to{offset-distance:100%}}@media(prefers-reduced-motion:reduce){.bloat-blobs{visibility:hidden!important}.bloat-blob{animation:none}}
/* Frankenstein's connection: flowing electricity, never strobing flashes. */
.franken-panel{display:none}.speedtest-bench[data-style=frankenstein]{--dial-accent:#adff83;background:radial-gradient(ellipse at top,#24453b,#101c25 62%,#191127);border-color:#bdb486}.speedtest-bench[data-style=frankenstein] .franken-panel{display:block;margin-top:24px;padding:24px;border:1px solid #729d85;border-radius:20px;background:radial-gradient(ellipse at center,#17392f,#091821 72%);box-shadow:inset 0 0 36px #091017}.franken-heading{text-align:center}.franken-heading h2{margin:5px 0 9px;color:#d5ffc0;font-size:1.5rem}.franken-heading p:last-child{color:#c0d3c7;font-size:.83rem;line-height:1.5}.franken-scene{display:block;width:100%;max-width:850px;margin:0 auto}.franken-download{--coil:#76eaff}.franken-upload{--coil:#e6a1ff}.franken-charge,.franken-terminal{fill:var(--coil);opacity:.25}.franken-wire{stroke:var(--coil);stroke-width:3;fill:none;stroke-linecap:round;opacity:.12}.franken-board{fill:#a6b9aa;font:700 20px ui-monospace,monospace;letter-spacing:1px}.franken-coil-label{fill:#c4d7c9;font:11px ui-monospace,monospace;letter-spacing:1px}.franken-eyes-open{display:none}.speedtest-bench[data-franken-state=awake] .franken-eyes-open{display:block;filter:drop-shadow(0 0 5px #b6ff61)}.speedtest-bench[data-franken-state=awake] .franken-eyes-closed{display:none}.speedtest-bench[data-franken-state=awake] .franken-board{fill:#d8ff9b;filter:drop-shadow(0 0 4px #98ff6970)}.speedtest-bench[data-style=frankenstein][data-running=true] .franken-wire{stroke-dasharray:16 10;animation:franken-current 2s linear infinite;opacity:var(--franken-energy,.4);filter:drop-shadow(0 0 4px var(--coil))}.speedtest-bench[data-style=frankenstein][data-running=true] .franken-terminal{opacity:var(--franken-energy,.4);filter:drop-shadow(0 0 7px var(--coil))}.speedtest-bench[data-phase=download] .franken-download .franken-charge,.speedtest-bench[data-phase=upload] .franken-upload .franken-charge{opacity:.95;filter:drop-shadow(0 0 5px var(--coil))}.speedtest-bench[data-style=frankenstein] .speedtest-dial .arc{opacity:1;filter:drop-shadow(0 0 5px #a3ff87)}.speedtest-bench[data-style=frankenstein] [data-metric=upload]{--dial-accent:#e6a1ff}.franken-results[hidden]{display:none}.franken-results{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0 0;padding:0}.franken-results>div{padding:14px 10px;border:1px solid #729d85;border-radius:10px;background:#0a1a20;text-align:center}.franken-results dt{font-size:.75rem;color:#b0c7bc}.franken-results dd{margin:6px 0 0;font:700 1.2rem ui-monospace,monospace;color:#d8ff9b;font-variant-numeric:tabular-nums}@keyframes franken-current{to{stroke-dashoffset:-104}}@media(max-width:600px){.speedtest-bench[data-style=frankenstein] .franken-panel{padding:18px 10px}.franken-heading h2{font-size:1.2rem}.franken-results{grid-template-columns:1fr}.franken-results>div{display:flex;justify-content:space-between;align-items:center;gap:8px}.franken-results dd{margin:0;font-size:1rem}}@media(prefers-reduced-motion:reduce){.speedtest-bench[data-style=frankenstein][data-running=true] .franken-wire{animation:none;stroke-dasharray:none}}
/* Branching corona and staggered travelling sparks, with no opacity strobe. */
.franken-sparks{display:none;fill:none;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.speedtest-bench[data-style=frankenstein][data-running=true] .franken-sparks{display:block}.spark-branch{stroke:var(--coil);stroke-width:1.4;opacity:.48;filter:drop-shadow(0 0 4px var(--coil))}.spark-current{stroke:#f0fff4;stroke-width:2.4;stroke-dasharray:12 88;filter:drop-shadow(0 0 5px var(--coil));animation:franken-spark-flow var(--spark-speed,3s) linear infinite;animation-delay:var(--spark-delay,0s)}.speedtest-bench[data-style=frankenstein][data-running=true] .franken-wire{stroke-width:3.6;opacity:calc(.45 + var(--franken-energy,.4)*.55);filter:drop-shadow(0 0 7px var(--coil))}@keyframes franken-spark-flow{to{stroke-dashoffset:-100}}@media(prefers-reduced-motion:reduce){.spark-current{animation:none;stroke-dasharray:none;opacity:.4}}
/* Reactor room: calibrated fuel banks, coolant and a physical Overdrive shutter. */
.reactor-panel{display:none}.speedtest-bench[data-style=reactor]{--dial-accent:#79e6c2;border-color:#a3b5a2;background:radial-gradient(ellipse at top,#2a4247,#101c2b 68%)}.speedtest-bench[data-style=reactor] .reactor-panel{display:block;margin-top:24px;padding:24px;border:1px solid #779a9d;border-radius:18px;background:radial-gradient(ellipse at center,#1d3642,#0b1721 70%);box-shadow:inset 0 0 0 5px #0b1b25}.reactor-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.reactor-heading h2{margin:5px 0 8px;color:#e6f3d2;font-size:1.4rem}.reactor-heading .section-kicker{margin:0;font-size:.7rem}.reactor-core-badge{flex-shrink:0;border:1px solid #6f9d8d;border-radius:6px;background:#142b28;color:#a4dec0;padding:9px 12px;font:700 .7rem ui-monospace,monospace;letter-spacing:.08em}.reactor-panel #reactor-status{color:#b9cfd0;font-size:.85rem;line-height:1.5;margin:10px 0 4px}.reactor-scene{width:100%;display:block;max-width:950px;margin:0 auto}.reactor-download{--fuel:#7cf5c5}.reactor-upload{--fuel:#d3a2ff}.reactor-rod-fill{fill:var(--fuel);filter:drop-shadow(0 0 5px var(--fuel));transition:y .65s ease,height .65s ease}.reactor-bank-label{fill:#d0e5d8;font:11px ui-monospace,monospace;letter-spacing:1px}.reactor-pipe-shell{stroke:#718990;stroke-width:12;fill:none;stroke-linejoin:round}.reactor-coolant{fill:none;stroke:#a3e7d2;stroke-width:5;stroke-linejoin:round;opacity:.4}.reactor-fan{transform-box:view-box;transform-origin:0 0}.reactor-core-hot{opacity:0;transition:opacity .7s}.reactor-shutter{transition:transform 1.1s cubic-bezier(.3,.7,.2,1)}.reactor-seal{transition:opacity .5s}.reactor-field{transform-origin:430px 177px}.reactor-beacon{fill:#9bd1af}.reactor-state-label{fill:#cae5cb;font:12px ui-monospace,monospace;letter-spacing:1px}.speedtest-bench[data-overdrive=true] .reactor-shutter-left{transform:translateX(-78px)}.speedtest-bench[data-overdrive=true] .reactor-shutter-right{transform:translateX(78px)}.speedtest-bench[data-overdrive=true] .reactor-seal{opacity:0}.speedtest-bench[data-overdrive=true] .reactor-core-hot{opacity:1}.speedtest-bench[data-overdrive=true] .reactor-beacon{fill:#ff4968;filter:drop-shadow(0 0 6px #ff234f)}.speedtest-bench[data-overdrive=true] .reactor-core-badge{border-color:#ff5873;color:#ffc9c5;background:#431728;box-shadow:0 0 14px #ff3d5733}.speedtest-bench[data-style=reactor][data-running=true] .reactor-fan{animation:reactor-spin 1.8s linear infinite}.speedtest-bench[data-style=reactor][data-running=true] .reactor-field{animation:reactor-spin 14s linear infinite}.speedtest-bench[data-style=reactor][data-running=true] .reactor-coolant{opacity:1;stroke-dasharray:8 15;animation:reactor-flow 2s linear infinite}.speedtest-bench[data-style=reactor] .speedtest-dial .arc{filter:drop-shadow(0 0 5px var(--dial-accent));opacity:1}.speedtest-bench[data-style=reactor] [data-metric=upload]{--dial-accent:#d3a2ff}.reactor-readings{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:12px 0;padding:0}.reactor-readings>div{padding:14px 10px;border:1px solid #5b8283;border-radius:8px;background:#0a1a23;text-align:center}.reactor-readings dt{font-size:.7rem;color:#abc6c9}.reactor-readings dd{margin:6px 0 0;font:700 1.2rem ui-monospace,monospace;color:#d9ffdf;font-variant-numeric:tabular-nums}.reactor-readings>div:nth-child(2) dd{color:#e4cbff}.reactor-scale{margin:8px 0 0;font-size:.7rem;color:#bfd0cb;text-align:center}@keyframes reactor-spin{to{transform:rotate(360deg)}}@keyframes reactor-flow{to{stroke-dashoffset:-92}}@media(max-width:600px){.speedtest-bench[data-style=reactor] .reactor-panel{padding:18px 10px}.reactor-heading{flex-direction:column;align-items:start;gap:8px}.reactor-heading h2{font-size:1.2rem}.reactor-readings{grid-template-columns:1fr}.reactor-readings>div{display:flex;justify-content:space-between;align-items:center;gap:8px}.reactor-readings dd{font-size:1rem;margin:0}}@media(prefers-reduced-motion:reduce){.reactor-rod-fill,.reactor-shutter,.reactor-core-hot,.reactor-seal{transition:none}.speedtest-bench[data-style=reactor][data-running=true] .reactor-fan,.speedtest-bench[data-style=reactor][data-running=true] .reactor-field,.speedtest-bench[data-style=reactor][data-running=true] .reactor-coolant{animation:none}}
/* Cherenkov-style energy builds with sampled test progress. The halo is masked
   outside the casing, so Overdrive never puts blue over the visible red core. */
.reactor-cherenkov-halo,.reactor-cherenkov-core{opacity:var(--reactor-glow,.08);transition:opacity 1s ease;pointer-events:none}.reactor-cherenkov-core{mix-blend-mode:screen}.speedtest-bench[data-overdrive=true] .reactor-cherenkov-core{display:none}.reactor-seal circle{stroke:#a1eaff}.reactor-seal path{stroke:#9ee9ff}@media(prefers-reduced-motion:reduce){.reactor-cherenkov-halo,.reactor-cherenkov-core{transition:none}}
/* Tentacle transmission: transparent conduits, specimens and responsive movement. */
.tentacle-panel{display:none}.speedtest-bench[data-style=tentacles]{--dial-accent:#a5ffe9;background:radial-gradient(ellipse at top,#393352,#0e1c31 70%);border-color:#a98bc5}.speedtest-bench[data-style=tentacles] .tentacle-panel{display:block;margin-top:24px;padding:24px;border:1px solid #9277b5;border-radius:24px;background:radial-gradient(ellipse at center,#293044,#11152b 70%);box-shadow:inset 0 0 26px #060c21}.tentacle-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.tentacle-heading .section-kicker{margin:0;font-size:.7rem}.tentacle-heading h2{margin:5px 0 8px;font-size:1.4rem;color:#e6d5ff}.tentacle-mood{flex-shrink:0;border:1px solid #8a799b;border-radius:20px;padding:9px 12px;background:#231e38;color:#d7c8e9;font:700 .7rem ui-monospace,monospace;letter-spacing:.05em}.tentacle-panel[data-mood=calm] .tentacle-mood{border-color:#7bccac;color:#b9ffe6}.tentacle-panel[data-mood=restless] .tentacle-mood{border-color:#f0be76;color:#ffe2aa}.tentacle-panel[data-mood=agitated] .tentacle-mood{border-color:#ff799a;color:#ffc7d7}.tentacle-panel #tentacle-status{color:#c7c5df;font-size:.85rem;line-height:1.5}.tentacle-scene{display:block;width:100%;max-width:950px;margin:auto}.tentacle-download{--tentacle-ink:#6cefdc}.tentacle-upload{--tentacle-ink:#e199ff}.tentacle-fluid{transition:y .65s ease,height .65s ease}.tentacle-jar-label{fill:#c7d8d8;font:11px ui-monospace,monospace;letter-spacing:1px}.tentacle-sheath{fill:none;stroke:var(--tentacle-ink);stroke-width:27;stroke-opacity:.35;stroke-linecap:round}.tentacle-channel{fill:none;stroke:#102843;stroke-width:17;stroke-opacity:.75;stroke-linecap:round}.tentacle-highlight{fill:none;stroke:var(--tentacle-ink);stroke-width:2;stroke-opacity:.8;stroke-dasharray:2 9;stroke-linecap:round}.tentacle-packets{visibility:hidden}.tentacle-packet{offset-rotate:auto;animation:tentacle-flow 3.2s linear infinite;animation-delay:var(--packet-delay);animation-play-state:paused;filter:drop-shadow(0 0 4px var(--tentacle-ink))}.speedtest-bench[data-style=tentacles][data-running=true][data-phase=download] .tentacle-download .tentacle-packets,.speedtest-bench[data-style=tentacles][data-running=true][data-phase=upload] .tentacle-upload .tentacle-packets{visibility:visible}.speedtest-bench[data-style=tentacles][data-running=true][data-phase=download] .tentacle-download .tentacle-packet,.speedtest-bench[data-style=tentacles][data-running=true][data-phase=upload] .tentacle-upload .tentacle-packet{animation-play-state:running}.tentacle-head{transform-origin:430px 182px}.tentacle-tail{transform-origin:430px 190px}.speedtest-bench[data-style=tentacles][data-running=true] .tentacle-head,.speedtest-bench[data-style=tentacles][data-running=true] .tentacle-tail{animation:tentacle-sway var(--tentacle-tempo,3.8s) ease-in-out infinite alternate}.speedtest-bench[data-style=tentacles][data-running=true] .tentacle-tail{animation-direction:alternate-reverse}.tentacle-pupils{transform-origin:430px 130px}.speedtest-bench[data-style=tentacles][data-running=true] .tentacle-pupils{animation:tentacle-watch var(--tentacle-tempo,3.8s) ease-in-out infinite alternate}.speedtest-bench[data-overdrive=true] .tentacle-third-eye{fill:#ff9ace;filter:drop-shadow(0 0 6px #f855b6)}.tentacle-panel[data-mood=agitated] .tentacle-mouth{d:path('M413 178Q431 162 450 178')}.speedtest-bench[data-style=tentacles] .speedtest-dial .arc{filter:drop-shadow(0 0 5px var(--dial-accent));opacity:1}.speedtest-bench[data-style=tentacles] [data-metric=upload]{--dial-accent:#e199ff}.tentacle-readings{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:10px 0;padding:0}.tentacle-readings>div{border:1px solid #70628c;border-radius:10px;background:#141c30;padding:14px 10px;text-align:center}.tentacle-readings dt{font-size:.7rem;color:#c4c6dd}.tentacle-readings dd{font:700 1.2rem ui-monospace,monospace;margin:6px 0 0;color:#b4ffe9;font-variant-numeric:tabular-nums}.tentacle-readings>div:nth-child(2) dd{color:#ebc0ff}.tentacle-scale,.tentacle-note{text-align:center;font-size:.7rem;color:#c1bbd2;line-height:1.5;margin:8px 0 0}@keyframes tentacle-flow{to{offset-distance:100%}}@keyframes tentacle-sway{from{transform:rotate(calc(-1*var(--tentacle-sway,1deg)))}to{transform:rotate(var(--tentacle-sway,1deg))}}@keyframes tentacle-watch{from{transform:translateX(-3px)}to{transform:translateX(3px)}}@media(max-width:600px){.speedtest-bench[data-style=tentacles] .tentacle-panel{padding:18px 10px}.tentacle-heading{flex-direction:column;align-items:start;gap:8px}.tentacle-heading h2{font-size:1.2rem}.tentacle-readings{grid-template-columns:1fr}.tentacle-readings>div{display:flex;justify-content:space-between;align-items:center;gap:8px}.tentacle-readings dd{font-size:1rem;margin:0}}@media(prefers-reduced-motion:reduce){.tentacle-fluid{transition:none}.tentacle-packets{visibility:hidden!important}.tentacle-packet,.speedtest-bench[data-style=tentacles][data-running=true] .tentacle-head,.speedtest-bench[data-style=tentacles][data-running=true] .tentacle-tail,.speedtest-bench[data-style=tentacles][data-running=true] .tentacle-pupils{animation:none}}
/* Classic grand tourer: calibrated cream instruments in lacquered walnut. */
.race-panel{display:none}.speedtest-bench[data-style=race]{--dial-accent:#e5d5a2;background:radial-gradient(ellipse at top,#313b37,#141e20 70%);border-color:#9c865c}
.speedtest-bench[data-style=race] .race-panel{display:block;margin-top:24px;padding:22px;border:1px solid #6e796b;border-radius:22px;background:linear-gradient(140deg,#1a292a,#101b21);box-shadow:inset 0 0 28px #061213}
.race-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.race-heading .section-kicker{font-size:.7rem;color:#dfca9e;margin:0}.race-heading h2{font-size:1.5rem;color:#f9ebc6;margin:5px 0 8px}.race-range-badge{flex-shrink:0;font:700 .7rem ui-monospace,monospace;padding:9px 12px;border:1px solid #b09660;background:#17211e;color:#e8dba9;border-radius:5px}
.race-panel #race-status{font-size:.85rem;color:#d1d9cd;line-height:1.5}.race-encore-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:10px 0 14px;font-size:.7rem;color:#c0c8b7}.race-encore-controls[hidden]{display:none}.race-encore-controls button{min-height:44px;padding:9px 14px;border:1px solid #c1ab7b;border-radius:7px;background:#22352c;color:#f6e4b4;font:700 .8rem var(--font-display);cursor:pointer}.race-encore-controls button:focus-visible{outline:3px solid #54e9ff;outline-offset:3px}
.race-cockpit{overflow:hidden;border:4px solid #111c1b;border-radius:26px 26px 18px 18px;box-shadow:0 10px 22px #0006}.race-windscreen{position:relative;overflow:hidden;border:5px solid #586660;border-bottom:0;border-radius:21px 21px 0 0;background:#7697a4;box-shadow:inset 0 0 18px #001d24}.race-road{display:block;width:100%;height:auto;min-height:150px;aspect-ratio:3/1}
.race-road-label,.race-drive-lamp{position:absolute;top:12px;left:12px;padding:7px 10px;border:1px solid #91a79680;border-radius:4px;background:#10271dda;color:#e8e6c8;font:700 .65rem ui-monospace,monospace;letter-spacing:.05em}.race-drive-lamp{left:auto;right:12px;color:#c6e8ba}
.race-dashboard{padding:0 16px 20px;border-top:14px solid #1b211b;background-color:#5b301b;background-image:linear-gradient(#180a0018,#0c05004a),url('/assets/race-walnut.png');background-size:cover;background-position:center;box-shadow:inset 0 2px 0 #b1b2a2,inset 0 12px 20px #170c05c9,inset 0 -2px 0 #b6ae88}
.race-dash-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 12px 12px;color:#f7e9be;text-shadow:0 1px 3px #000;font:700 .6rem ui-monospace,monospace;letter-spacing:.13em}.race-overdrive-lamp{padding:5px 9px;border:2px solid #554d37;border-radius:4px;color:#9e997e;background:#251d17;font-size:.65rem;letter-spacing:.09em;box-shadow:inset 0 1px 5px #000}
.speedtest-bench[data-overdrive=true] .race-overdrive-lamp{color:#ffb5b0;border-color:#bc5751;background:#390e0c;text-shadow:0 0 5px #ff5141,0 0 9px #fc392a;box-shadow:0 0 12px #fc392a66,inset 0 0 6px #c5362666}
.race-gauges{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:start;gap:5px}.race-gauges svg{display:block;width:100%;filter:drop-shadow(0 5px 4px #080600bb)}.race-gauges p{margin:6px 0 14px;text-align:center;font-size:.66rem;color:#fbebbd;text-shadow:0 1px 3px #000,0 0 6px #000;background:#170e088c;border-radius:4px;padding:5px}
.race-t-mark{fill:#e3d9a9;stroke:#fff0be;stroke-width:.6}.race-tick-label{fill:#413b29;font:17px 'Arial Narrow',Bahnschrift,Arial,sans-serif;font-stretch:condensed}.race-face-title{fill:#51462d;font:700 12px Georgia,serif;letter-spacing:2px}.race-face-unit{fill:#4c422d;font:12px Georgia,serif}.race-value{fill:#f2ebbc;font:700 20px ui-monospace,monospace;letter-spacing:1px;font-variant-numeric:tabular-nums}.race-range{fill:#50432d;font:10px ui-monospace,monospace}
.race-needle{transform-origin:160px 160px;transition:transform .65s cubic-bezier(.2,.7,.2,1)}.race-mini-needle{transform-origin:0 0;transition:transform .65s cubic-bezier(.2,.7,.2,1)}.race-mini-tick{fill:#433b28;font:8px 'Arial Narrow',Arial,sans-serif}.race-mini-label{fill:#50432f;font:700 8px Arial,sans-serif;letter-spacing:.3px}.race-mini-value{fill:#342a1d;font:700 10px ui-monospace,monospace;font-variant-numeric:tabular-nums}
.race-telemetry{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin:7px 0 0}.race-telemetry>div{min-width:0;padding:9px 4px;text-align:center;border:1px solid #9f8b58;border-radius:5px;background:#181b16e8;box-shadow:inset 0 1px 5px #0007}.race-telemetry span{display:block;color:#c8c4a0;font-size:.57rem}.race-telemetry strong{display:block;margin-top:6px;color:#f0e9ba;font:700 .78rem ui-monospace,monospace;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.race-scale{font-size:.65rem;text-align:center;color:#fff0c5;text-shadow:0 1px 3px #000;margin:14px 0 0}.race-note{font-size:.7rem;line-height:1.6;text-align:center;color:#bfcbc2;margin:14px 0 0}
@media(max-width:700px){.speedtest-bench[data-style=race] .race-panel{padding:18px 8px}.race-heading{flex-direction:column;align-items:start;gap:8px}.race-heading h2{font-size:1.2rem}.race-dashboard{padding:0 9px 18px}.race-gauges{grid-template-columns:1fr;gap:6px;max-width:330px;margin:auto}.race-gauges p{font-size:.7rem}.race-dash-top{padding:18px 0 10px;font-size:.5rem;letter-spacing:.03em}.race-telemetry{grid-template-columns:repeat(2,1fr)}.race-telemetry span{font-size:.65rem}.race-telemetry strong{font-size:.9rem}.race-road-label,.race-drive-lamp{font-size:.48rem;top:6px;left:6px;padding:5px}.race-drive-lamp{top:auto;left:auto;right:6px;bottom:6px}.race-cockpit{border-width:2px}}
.race-finish-result{position:absolute;left:50%;bottom:9%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:12px;width:max-content;max-width:94%;padding:8px 18px;border:1px solid #ddcc97;border-radius:9px;background:#102920ed;box-shadow:0 6px 20px #0006;color:#fff1c7;text-align:center;pointer-events:none}.race-finish-result[hidden]{display:none}.race-finish-result strong{display:block;font:700 clamp(.6rem,1.6vw,1.05rem) var(--font-display);letter-spacing:.12em;white-space:nowrap}.race-finish-result small{display:block;margin-top:5px;font:700 .6rem ui-monospace,monospace;letter-spacing:.15em;color:#c8e1b8}.race-chequered-flag{width:76px;height:57px;flex-shrink:0;filter:drop-shadow(0 3px 3px #0008);transform:rotate(-12deg)}.race-flag-right{transform:scaleX(-1) rotate(-12deg)}.race-flag-cloth{transform-origin:14px 36px}.race-panel[data-encore] .race-flag-cloth{animation:race-flag-wave .85s ease-in-out infinite alternate}.race-panel[data-encore] .race-flag-right .race-flag-cloth{animation-delay:-.4s}
@keyframes race-flag-wave{from{transform:skewY(-6deg) scaleX(.83)}to{transform:skewY(5deg) scaleX(1)}}
.race-lap-times{position:absolute;top:12px;right:12px;min-width:280px;max-width:calc(100% - 24px);box-sizing:border-box;padding:13px 14px 11px;border:1px solid #d7c48a;border-left:3px solid #e5ca7e;border-radius:5px;background:linear-gradient(120deg,#0d231fed,#142e2be8);box-shadow:0 4px 16px #0006;color:#f9efd0;pointer-events:none}.race-lap-times[hidden]{display:none}.race-lap-times::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:repeating-conic-gradient(#eee4c7 0% 25%,#162421 0% 50%) 0 0/8px 8px}.race-lap-times p{margin:0 0 8px;font:700 .6rem ui-monospace,monospace;letter-spacing:.16em;color:#d8c99d}.race-lap-times dl{margin:0}.race-lap-times dl>div{display:flex;align-items:baseline;justify-content:space-between;gap:20px;line-height:1.7}.race-lap-times dt{font-size:.72rem;white-space:nowrap;color:#d2ddd0}.race-lap-times dd{margin:0;font:700 .8rem/1.7 ui-monospace,monospace;font-variant-numeric:tabular-nums;white-space:nowrap;color:#fff4c8}.race-panel:is([data-finish=celebrating],[data-finish=complete]) .race-drive-lamp{top:auto;bottom:12px}
@media(max-width:700px){.race-lap-times{top:6px;right:6px;min-width:0;max-width:calc(100% - 12px);padding:10px 9px 7px}.race-lap-times p{font-size:8px;margin-bottom:4px;letter-spacing:.12em}.race-lap-times dl>div{gap:12px}.race-lap-times dt{font-size:10px}.race-lap-times dd{font-size:11px}.race-panel:is([data-finish=celebrating],[data-finish=complete]) .race-road-label,.race-panel:is([data-finish=celebrating],[data-finish=complete]) .race-drive-lamp{display:none}.race-panel:is([data-finish=celebrating],[data-finish=complete]) .race-finish-result{bottom:5px}}
@media(max-width:700px){.race-finish-result{gap:5px;padding:5px 8px;bottom:17%}.race-chequered-flag{width:39px;height:34px}.race-finish-result strong{font-size:.58rem;letter-spacing:.07em}.race-finish-result small{font-size:.45rem;margin-top:3px}}
@media(prefers-reduced-motion:reduce){.race-needle,.race-mini-needle{transition:none}.race-panel .race-flag-cloth{animation:none!important}}
/* Alien autopsy console: real telemetry inside an animated containment chamber. */
.alien-panel{display:none}
.speedtest-bench[data-style=alien]{--dial-accent:#a2ffd0;background:radial-gradient(ellipse at top,#343250,#0b1c2a 70%);border-color:#a795b8}
.speedtest-bench[data-style=alien] .alien-panel{display:block;isolation:isolate;overflow:hidden;margin-top:24px;padding:26px;border:1px solid #87999f;border-radius:24px;background:radial-gradient(ellipse at 50% 38%,#2b4b4c80,transparent 48%),linear-gradient(145deg,#101f30,#111d32 55%,#26263b);box-shadow:inset 0 0 50px #040b1b,0 0 30px #84e9c812}
.alien-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.alien-heading .section-kicker{margin:0;font-size:.7rem;color:#acffd7}.alien-heading h2{margin:5px 0 8px;font-size:1.5rem;color:#edf8c8}
.alien-mode-badge{flex-shrink:0;border:1px solid #7a9e9c;border-radius:6px;padding:9px 12px;background:#172934;color:#b6f1d8;font:700 .7rem ui-monospace,monospace;letter-spacing:.04em}
.alien-panel #alien-status{font-size:.85rem;line-height:1.5;color:#c9d6dc;min-height:1.5em}
.alien-encore-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:10px 0 14px;font-size:.7rem;color:#b4c5d4}.alien-encore-controls[hidden]{display:none}
.alien-encore-controls button{min-height:44px;padding:9px 14px;border:1px solid #a9bc8c;border-radius:7px;background:#25363e;color:#dfffca;font:700 .8rem var(--font-display);cursor:pointer}.alien-encore-controls button:focus-visible{outline:3px solid #54e9ff;outline-offset:3px}
.alien-scene{display:block;width:100%;max-width:1080px;margin:auto;overflow:visible}.alien-label,.alien-organ-label,.alien-state-label{font:11px ui-monospace,monospace;letter-spacing:.5px;fill:#c9e3d1}.alien-organ-label{font-size:10px;fill:#9bccbd}.alien-state-label{fill:#d6ffc1}
.alien-download{--alien-light:#8effd3}.alien-upload{--alien-light:#db9eff}.alien-organ-fill{transition:y .65s ease,height .65s ease}.alien-organ-body{transform-origin:0 0;filter:drop-shadow(0 0 4px var(--alien-light))}
.alien-hose-shell{fill:none;stroke:#9a9d87;stroke-opacity:.7;stroke-width:14;stroke-linecap:round}.alien-hose-core{fill:none;stroke:#0b2738;stroke-width:9;stroke-linecap:round}.alien-packets{visibility:hidden}.alien-packet{offset-rotate:0deg;filter:drop-shadow(0 0 5px var(--alien-light));animation:alien-packet 2.4s linear infinite;animation-delay:var(--alien-delay);animation-play-state:paused}
.alien-antenna{transform-origin:0 0}.alien-heart{transform-origin:450px 240px;filter:drop-shadow(0 0 4px #ff8cb4)}.alien-dna,.alien-orbit{transform-origin:0 0}.alien-containment-orbit{transform-origin:450px 225px}
.alien-containment{opacity:.2;transition:opacity .8s}.alien-eye-light{opacity:.45;transition:opacity .8s}.alien-overdrive-ring{opacity:0;transition:opacity 1s}.alien-third-eye{transition:fill .8s,filter .8s}
.alien-latency-trace{filter:drop-shadow(0 0 3px #8effc8)}.alien-scan,.alien-body-scan{opacity:0}
.alien-panel[data-motion=true] .alien-containment{opacity:var(--alien-afterglow,1)}
.alien-panel[data-motion=true] .alien-containment-orbit{animation:alien-orbit 24s linear infinite}
.alien-panel[data-motion=true] .alien-orbit{animation:alien-orbit 8s linear infinite}
.alien-panel[data-motion=true] .alien-dna{animation:alien-dna 5s ease-in-out infinite alternate}
.alien-panel[data-motion=true] .alien-antenna-left{animation:alien-listen 2.6s ease-in-out infinite alternate}.alien-panel[data-motion=true] .alien-antenna-right{animation:alien-listen 3.1s ease-in-out infinite alternate-reverse}
.alien-panel[data-motion=true] .alien-heart{animation:alien-heart 1.7s ease-in-out infinite}
.alien-panel[data-motion=true] .alien-body-scan{opacity:calc(.5*var(--alien-afterglow,1));animation:alien-body-scan 5s ease-in-out infinite alternate}
.alien-panel[data-motion=true][data-trace-ready=true] .alien-scan{opacity:.45;animation:alien-scan 3.5s linear infinite}
.alien-panel[data-motion=true][data-phase=download] .alien-download .alien-packets,.alien-panel[data-motion=true][data-phase=upload] .alien-upload .alien-packets{visibility:visible}
.alien-panel[data-motion=true][data-phase=download] .alien-download .alien-packet,.alien-panel[data-motion=true][data-phase=upload] .alien-upload .alien-packet{animation-play-state:running}
.alien-panel[data-motion=true][data-phase=download] .alien-download .alien-organ-body{animation:alien-organ var(--alien-download-period,2s) ease-in-out infinite}
.alien-panel[data-motion=true][data-phase=upload] .alien-upload .alien-organ-body{animation:alien-organ var(--alien-upload-period,2s) ease-in-out infinite}
.speedtest-bench[data-overdrive=true] .alien-third-eye{fill:#ffa8fa;filter:drop-shadow(0 0 8px #f494ff)}.speedtest-bench[data-overdrive=true] .alien-overdrive-ring{opacity:.85;filter:drop-shadow(0 0 5px #dbaaff)}.speedtest-bench[data-overdrive=true] .alien-eye-light{opacity:1;filter:drop-shadow(0 0 6px #9bffd4)}.speedtest-bench[data-overdrive=true] .alien-mode-badge{color:#ffd2f7;border-color:#db8adb;box-shadow:0 0 15px #d965e333}
.speedtest-bench[data-style=alien] .speedtest-dial .arc{filter:drop-shadow(0 0 5px var(--dial-accent));opacity:1}.speedtest-bench[data-style=alien] [data-metric=upload]{--dial-accent:#db9eff}
.alien-readings{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:0;margin:14px 0}.alien-readings>div{border:1px solid #638c86;border-radius:10px;background:linear-gradient(145deg,#173138,#102030);padding:15px 10px;text-align:center;box-shadow:inset 0 0 18px #79ffd90b}.alien-readings dt{font-size:.7rem;color:#c0d0ce}.alien-readings dd{font:700 1.2rem ui-monospace,monospace;margin:6px 0 0;color:#baffd8;font-variant-numeric:tabular-nums}.alien-readings>div:nth-child(2){border-color:#8a6b9f}.alien-readings>div:nth-child(2) dd{color:#e8beff}.alien-readings>div:nth-child(3) dd{color:#d8e9b0}
.alien-scale,.alien-trace-note,.alien-note{text-align:center;font-size:.7rem;line-height:1.5;color:#b6c6ca;margin:8px 0 0}
@keyframes alien-packet{to{offset-distance:100%}}@keyframes alien-orbit{to{transform:rotate(360deg)}}@keyframes alien-dna{from{transform:scaleX(.6) rotate(-8deg)}to{transform:scaleX(1) rotate(8deg)}}@keyframes alien-listen{from{transform:rotate(-5deg)}to{transform:rotate(6deg)}}@keyframes alien-heart{0%,100%{transform:scale(1)}40%{transform:scale(1.1)}}@keyframes alien-organ{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}@keyframes alien-scan{to{transform:translateX(180px)}}@keyframes alien-body-scan{to{transform:translateY(300px)}}
@media(max-width:600px){.speedtest-bench[data-style=alien] .alien-panel{padding:18px 10px}.alien-heading{flex-direction:column;align-items:start;gap:8px}.alien-heading h2{font-size:1.2rem}.alien-mode-badge{white-space:normal}.alien-readings{grid-template-columns:1fr}.alien-readings>div{display:flex;justify-content:space-between;align-items:center;gap:8px}.alien-readings dd{font-size:1rem;margin:0}}
@media(prefers-reduced-motion:reduce){.alien-panel *{animation:none!important;transition:none!important}.alien-packets,.alien-body-scan,.alien-scan{visibility:hidden!important}}
/* Impossible engine: slider-crank linkages, steam and a drop-in auxiliary gear. */
.impossible-panel{display:none}
.speedtest-bench[data-style=impossible]{--dial-accent:#9affd8;background:radial-gradient(ellipse at top,#3c4943,#14232d 70%);border-color:#b79764}
.speedtest-bench[data-style=impossible] .impossible-panel{display:block;margin-top:24px;padding:24px;border:1px solid #a58d65;border-radius:22px;background:radial-gradient(ellipse at center,#2a3940,#101e2c 72%);box-shadow:inset 0 0 30px #0a1721}
.impossible-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.impossible-heading .section-kicker{margin:0;font-size:.7rem}
.impossible-heading h2{margin:5px 0 8px;font-size:1.4rem;color:#ffdfaa}
.impossible-drive-badge{flex-shrink:0;border:1px solid #a68d64;border-radius:6px;padding:9px 12px;background:#252a29;color:#eedfbb;font:700 .7rem ui-monospace,monospace;letter-spacing:.04em}
.impossible-panel #impossible-status{font-size:.85rem;line-height:1.5;color:#c5d4ce}
.impossible-encore-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:10px 0 14px;font-size:.7rem;color:#b9c7be}.impossible-encore-controls[hidden]{display:none}
.impossible-encore-controls button{min-height:44px;padding:9px 14px;border:1px solid #c0a26f;border-radius:7px;background:#26332f;color:#ffe3b1;font:700 .8rem var(--font-display);cursor:pointer}.impossible-encore-controls button:focus-visible{outline:3px solid #54e9ff;outline-offset:3px}
.impossible-panel[data-encore=download] .impossible-download .impossible-flow,.impossible-panel[data-encore=upload] .impossible-upload .impossible-flow{opacity:1;animation-play-state:running}
.impossible-panel[data-encore=download] .impossible-download .impossible-steam,.impossible-panel[data-encore=upload] .impossible-upload .impossible-steam{visibility:visible;animation-play-state:running}
.impossible-panel[data-encore=download] .impossible-download .impossible-cylinder-glow,.impossible-panel[data-encore=upload] .impossible-upload .impossible-cylinder-glow{opacity:.24}
.impossible-scene{display:block;width:100%;max-width:1000px;margin:auto}
.impossible-label,.impossible-state-label{font:11px ui-monospace,monospace;letter-spacing:.7px;fill:#d6dfc7}
.impossible-state-label{fill:#e8d0a3}
.impossible-download{--engine-light:#8fffe0}.impossible-upload{--engine-light:#dfa8ff}
.impossible-power{fill:var(--engine-light);filter:drop-shadow(0 0 5px var(--engine-light));transition:y .65s ease,height .65s ease}
.impossible-cylinder-glow{fill:var(--engine-light);opacity:.06;transition:opacity .5s}
.impossible-pipe{fill:none;stroke:url(#impossible-brass);stroke-width:11;stroke-linecap:round;stroke-linejoin:round}
.impossible-flow{fill:none;stroke:var(--engine-light);stroke-width:3;stroke-linecap:round;stroke-dasharray:5 13;opacity:0;animation:impossible-flow 2s linear infinite;animation-play-state:paused}
.impossible-download .impossible-flow{animation-direction:reverse}
.impossible-steam{fill:none;stroke:#c1e6d9;stroke-width:5;stroke-linecap:round;opacity:0;visibility:hidden;animation:impossible-steam 2.7s ease-out infinite;animation-delay:var(--steam-delay);animation-play-state:paused}
.speedtest-bench[data-style=impossible][data-running=true][data-phase=download] .impossible-download .impossible-flow,.speedtest-bench[data-style=impossible][data-running=true][data-phase=upload] .impossible-upload .impossible-flow{opacity:1;animation-play-state:running}
.speedtest-bench[data-style=impossible][data-running=true][data-phase=download] .impossible-download .impossible-steam,.speedtest-bench[data-style=impossible][data-running=true][data-phase=upload] .impossible-upload .impossible-steam{visibility:visible;animation-play-state:running}
.speedtest-bench[data-style=impossible][data-running=true][data-phase=download] .impossible-download .impossible-cylinder-glow,.speedtest-bench[data-style=impossible][data-running=true][data-phase=upload] .impossible-upload .impossible-cylinder-glow{opacity:.24}
.impossible-auxiliary{opacity:.16;transform:translateY(-24px);transition:transform 1s ease,opacity 1s ease}
.speedtest-bench[data-overdrive=true] .impossible-auxiliary{opacity:1;transform:translateY(0)}
.speedtest-bench[data-overdrive=true] .impossible-drive-badge{border-color:#ff6a84;color:#ffcad3;box-shadow:0 0 14px #f9386233}
.speedtest-bench[data-style=impossible] .speedtest-dial .arc{filter:drop-shadow(0 0 5px var(--dial-accent));opacity:1}
.speedtest-bench[data-style=impossible] [data-metric=upload]{--dial-accent:#dfa8ff}
.impossible-readings{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:0;margin:10px 0}
.impossible-readings>div{border:1px solid #708777;border-radius:10px;background:#101f2b;padding:14px 10px;text-align:center}
.impossible-readings dt{font-size:.7rem;color:#bfcfc4}.impossible-readings dd{font:700 1.2rem ui-monospace,monospace;margin:6px 0 0;color:#b8ffe3;font-variant-numeric:tabular-nums}
.impossible-readings>div:nth-child(2) dd{color:#eec7ff}.impossible-readings>div:nth-child(3) dd{color:#c6eaff}
.impossible-scale,.impossible-latency-scale,.impossible-note{text-align:center;font-size:.7rem;line-height:1.5;color:#b9c7be;margin:8px 0 0}
@keyframes impossible-flow{to{stroke-dashoffset:-108}}
@keyframes impossible-steam{0%{transform:translateY(0);opacity:0}20%{opacity:.45}100%{transform:translateY(-25px);opacity:0}}
@media(max-width:600px){.speedtest-bench[data-style=impossible] .impossible-panel{padding:18px 10px}.impossible-heading{flex-direction:column;align-items:start;gap:8px}.impossible-heading h2{font-size:1.2rem}.impossible-readings{grid-template-columns:1fr}.impossible-readings>div{display:flex;justify-content:space-between;align-items:center;gap:8px}.impossible-readings dd{font-size:1rem;margin:0}}
@media(prefers-reduced-motion:reduce){.impossible-auxiliary,.impossible-power,.impossible-cylinder-glow{transition:none}.impossible-flow,.impossible-steam{animation:none}.impossible-steam{display:none}}
/* Potion distillery: calibrated fill/drain vessels and a latency-paced drip. */
.distillery-panel{display:none}.speedtest-bench[data-style=distillery]{--dial-accent:#baffb1;background:radial-gradient(ellipse at top,#493b39,#1b202b 70%);border-color:#c29b76}.speedtest-bench[data-style=distillery] .distillery-panel{display:block;margin-top:24px;padding:24px;border:1px solid #af8b65;border-radius:22px;background:radial-gradient(ellipse at center,#343233,#141c2b 72%);box-shadow:inset 0 0 30px #101725}.distillery-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.distillery-heading .section-kicker{margin:0;font-size:.7rem}.distillery-heading h2{margin:5px 0 8px;font-size:1.4rem;color:#ffe1b4}.distillery-range-badge{flex-shrink:0;border:1px solid #b59a74;border-radius:6px;padding:9px 12px;background:#312c31;color:#ffe6b2;font:700 .7rem ui-monospace,monospace;letter-spacing:.06em}.distillery-panel #distillery-status{font-size:.85rem;line-height:1.5;color:#d6ccc0}.distillery-scene{display:block;width:100%;max-width:950px;margin:auto}.distillery-label{font:11px ui-monospace,monospace;letter-spacing:.8px;fill:#d8cdbd}.distillery-pipe{fill:none;stroke:url(#distillery-copper);stroke-width:12;stroke-linecap:round}.distillery-flow{fill:none;stroke-width:3;stroke-linecap:round;stroke-dasharray:5 15;opacity:0}.distillery-download .distillery-flow{stroke:#cbffd4}.distillery-upload .distillery-flow{stroke:#ffcfef}.distillery-liquid,.distillery-level-download,.distillery-level-upload{transition:y .65s ease,height .65s ease}.distillery-bubble{fill:#f5ffd8;opacity:0;animation:distillery-bubble 2.7s linear infinite;animation-delay:var(--bubble-start);animation-play-state:paused}.distillery-flame{opacity:.2;transform-origin:0 348px}.distillery-drip{visibility:hidden}.speedtest-bench[data-style=distillery][data-running=true] .distillery-panel[data-latency-ready=true] .distillery-drip{visibility:visible;animation:distillery-drip var(--distillery-drip-period,1s) linear infinite}.speedtest-bench[data-style=distillery][data-running=true][data-phase=download] .distillery-download .distillery-flow,.speedtest-bench[data-style=distillery][data-running=true][data-phase=upload] .distillery-upload .distillery-flow{opacity:1;animation:distillery-flow 2.5s linear infinite}.speedtest-bench[data-style=distillery][data-running=true][data-phase=upload] .distillery-upload .distillery-flow{animation-direction:reverse}.speedtest-bench[data-style=distillery][data-running=true][data-phase=download] .distillery-download .distillery-bubble,.speedtest-bench[data-style=distillery][data-running=true][data-phase=upload] .distillery-upload .distillery-bubble{animation-play-state:running}.speedtest-bench[data-style=distillery][data-running=true][data-phase=download] .distillery-download .distillery-flame,.speedtest-bench[data-style=distillery][data-running=true][data-phase=upload] .distillery-upload .distillery-flame{opacity:.9;animation:distillery-flame 1.5s ease-in-out infinite alternate}.speedtest-bench[data-overdrive=true] .distillery-range-badge{border-color:#ec799a;color:#ffc7dc;box-shadow:0 0 13px #d85c7b33}.speedtest-bench[data-style=distillery] .speedtest-dial .arc{filter:drop-shadow(0 0 5px var(--dial-accent));opacity:1}.speedtest-bench[data-style=distillery] [data-metric=upload]{--dial-accent:#e8a4ef}.distillery-readings{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:0;margin:10px 0}.distillery-readings>div{border:1px solid #897b73;border-radius:10px;background:#19232e;padding:14px 10px;text-align:center}.distillery-readings dt{font-size:.7rem;color:#d6cdc2}.distillery-readings dd{font:700 1.2rem ui-monospace,monospace;margin:6px 0 0;color:#c6ffe0;font-variant-numeric:tabular-nums}.distillery-readings>div:nth-child(2) dd{color:#fac8ee}.distillery-readings>div:nth-child(3) dd{color:#baeeff}.distillery-scale,.distillery-note{text-align:center;font-size:.7rem;line-height:1.5;color:#c4b9b2;margin:8px 0 0}@keyframes distillery-flow{to{stroke-dashoffset:-100}}@keyframes distillery-bubble{0%{transform:translateY(0);opacity:0}20%{opacity:.65}90%{opacity:.45}100%{transform:translateY(-144px);opacity:0}}@keyframes distillery-drip{0%{transform:translateY(0);opacity:0}12%{opacity:1}80%{opacity:1}100%{transform:translateY(120px);opacity:0}}@keyframes distillery-flame{to{transform:scaleY(.75)}}@media(max-width:600px){.speedtest-bench[data-style=distillery] .distillery-panel{padding:18px 10px}.distillery-heading{flex-direction:column;align-items:start;gap:8px}.distillery-heading h2{font-size:1.2rem}.distillery-readings{grid-template-columns:1fr}.distillery-readings>div{display:flex;justify-content:space-between;align-items:center;gap:8px}.distillery-readings dd{font-size:1rem;margin:0}}@media(prefers-reduced-motion:reduce){.distillery-liquid,.distillery-level-download,.distillery-level-upload{transition:none}.distillery-bubble,.speedtest-bench[data-style=distillery][data-running=true] .distillery-flow,.speedtest-bench[data-style=distillery][data-running=true] .distillery-flame,.speedtest-bench[data-style=distillery][data-running=true] .distillery-panel[data-latency-ready=true] .distillery-drip{animation:none!important}.distillery-drip{visibility:hidden!important}}

/* Private connection logbook, independent of the selected instrument finish. */
.speedtest-history{min-width:0;margin:24px 0;padding:clamp(18px,3vw,32px);border:1px solid #8f7445;border-radius:22px;background:#1c252d;color:#f5dca4;scroll-margin-top:24px}
.speedtest-history-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.speedtest-history h2{margin:0;font-size:1.6rem;color:#ffe9bc}
.speedtest-history .section-kicker{margin:0 0 8px;color:#5febff}
.speedtest-history button{padding:10px 16px;border:1px solid #ae894c;border-radius:10px;background:#29373f;color:#ffe2ae;font:inherit;cursor:pointer}
.speedtest-history button:hover{background:#374850}
.speedtest-history a{color:#7de9ff;text-decoration:underline;text-underline-offset:3px}
.speedtest-history-status{color:#d6c59f}
.speedtest-history [data-history-save]:empty{display:none}
.speedtest-history-scroll{max-width:100%;max-height:560px;overflow:auto;border:1px solid #66583e;border-radius:12px;margin:18px 0;overscroll-behavior-x:contain}
.speedtest-history table{width:100%;border-collapse:collapse;text-align:left;font-size:.86rem;font-variant-numeric:tabular-nums}
.speedtest-history caption{padding:12px;text-align:left;color:#d6c59f}
.speedtest-history th,.speedtest-history td{padding:13px 14px;border-top:1px solid #4d5147;vertical-align:top}
.speedtest-history thead{position:sticky;top:0;background:#283942;color:#7de9ff;z-index:1}
.speedtest-history th{font-weight:600}
.speedtest-history tbody tr:nth-child(even){background:#253139}
.speedtest-history tbody th{min-width:150px;font-weight:400}
.speedtest-history tbody td:nth-child(2){font-family:ui-monospace,monospace;white-space:nowrap;overflow-wrap:normal;word-break:normal;min-width:130px}
.speedtest-history tbody td:nth-child(3){min-width:185px}
.speedtest-history tbody td:nth-child(n+4){text-align:right;white-space:nowrap}
.speedtest-history tbody small{display:block;margin-top:5px;color:#b9c6ca}
.speedtest-history-note{display:block;line-height:1.65;color:#bfcdc8}
.speedtest-history [hidden]{display:none!important}
.speedtest-history :focus-visible{outline:2px solid #5febff;outline-offset:4px}

.bloat-balloon-note{display:none}
.speedtest-bench[data-style="lab"] .bloat-balloon-note{display:inline}

.speedtest-hero-motion{position:absolute;right:8px;bottom:8px;z-index:1;padding:6px 10px;border:1px solid #63dfea99;border-radius:7px;background:#061021df;color:#dcfaff;font:500 .65rem var(--font-display);cursor:pointer}
.speedtest-hero-motion[hidden]{display:none}
.speedtest-hero-motion:focus-visible{outline:2px solid #5febff;outline-offset:2px}

/* Download milestone: the exact readings remain unobstructed. */
.download-award-dial,.download-award-reading{position:relative}
.download-rosette{display:none;position:absolute;z-index:2;top:-6px;right:0;width:66px;line-height:0;filter:drop-shadow(0 3px 5px #0008)}
.download-rosette svg{display:block;width:100%;height:auto}
.speedtest-bench[data-download-award=true] .download-rosette{display:block;animation:speedtest-rosette-arrive .45s ease-out}
.download-award-reading>.download-rosette{width:46px;top:-12px;right:6px}
.speedtest-bench[data-download-award=true] .download-award-reading{padding-right:62px}
.speedtest-award-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.speedtest-confetti{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:100}
.speedtest-confetti i{position:absolute;width:8px;height:13px;border-radius:1px;will-change:transform,opacity}
.speedtest-confetti i:nth-child(3n){width:6px;height:6px;border-radius:50%}
@keyframes speedtest-rosette-arrive{from{transform:scale(.65) rotate(-18deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}
@media(max-width:600px){.download-rosette{width:56px}.download-award-reading>.download-rosette{width:42px;top:-10px}.speedtest-bench[data-download-award=true] .download-award-reading{padding-right:58px}}
@media(prefers-reduced-motion:reduce){.speedtest-bench[data-download-award=true] .download-rosette{animation:none}.speedtest-confetti{display:none}}
.tube-panel{display:none;position:relative;margin:24px 0 30px;padding:28px 32px 20px;border:1px solid #746953;border-radius:19px;background:radial-gradient(ellipse at 50% 27%,#243344 0,#0f171f 48%,#090f14 100%);box-shadow:inset 0 1px 0 #d8c99c33,0 18px 38px #0004;color:#e5d4ad;isolation:isolate}
.speedtest-bench[data-style=tubes] .tube-panel{display:block}.speedtest-bench[data-style=tubes] .speedtest-instruments,.speedtest-bench[data-style=tubes] .bloat-instrument{display:none}.speedtest-bench[data-style=tubes] .bloat-panel{grid-template-columns:1fr}.speedtest-bench[data-style=tubes] .speedtest-world{z-index:2}
.tube-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.tube-heading .section-kicker{font-size:.6rem;letter-spacing:.24em;color:#adbbba;margin:0 0 8px}.tube-heading h2{font:500 clamp(1.2rem,2vw,1.9rem) Georgia,serif;letter-spacing:.035em;color:#f1dfbb;margin:0}.tube-range-badge{font:600 .6rem ui-monospace,monospace;border:1px solid #8b7655;border-radius:3px;padding:8px 11px;color:#c3b18d;white-space:nowrap}.tube-panel[data-overdrive=true] .tube-range-badge{color:#ffaca9;border-color:#ac514c;text-shadow:0 0 10px #ff332c88}
#tube-status{color:#a4b4bb;font-size:.75rem;line-height:1.5;min-height:1.5em;margin:13px 0 6px}.tube-amplifier{position:relative;margin:12px 0 0;padding:0 18px 18px;border-radius:10px;background:linear-gradient(90deg,#20110c,#794729 1.5%,#382115 2.8%,transparent 3%,transparent 97%,#382115 97.2%,#8a5230 98.5%,#24120b)}
.tube-output-stage{display:grid;grid-template-columns:1fr .65fr 1fr;gap:12px;align-items:end;padding:22px 5% 10px;background:radial-gradient(ellipse at 50% 100%,#797d7750,transparent 55%),linear-gradient(transparent 83%,#7d807e 83.5%,#3b4247 84%,#111a24 100%);border-radius:10px 10px 0 0;box-shadow:inset 0 -1px 0 #e5e6d359}.tube-valve,.tube-rectifier{text-align:center;min-width:0;position:relative}.tube-valve h3{color:#dbc7a0;font:600 .8rem ui-monospace,monospace;letter-spacing:.2em;text-transform:uppercase;margin:0 0 7px}.tube-channel-state,.tube-rectifier-label{font:500 .55rem ui-monospace,monospace;letter-spacing:.14em;color:#81939f;margin:0 0 3px}.tube-bottle{display:block;width:100%;max-width:275px;height:auto;margin:auto;overflow:visible}.tube-rectifier svg{display:block;width:100%;max-width:190px;height:auto;margin:auto;overflow:visible}.tube-rectifier-label{font-size:.52rem;margin-bottom:8px}.tube-base-mark{fill:#e6cca0;font:bold 15px Georgia,serif;letter-spacing:2px}.tube-glass-mark{fill:#d8cbb3;opacity:.65;font:9px ui-monospace,monospace;letter-spacing:2px}.tube-threshold-lamp,.tube-overdrive-indicator{display:block;margin:9px 0 5px;font:600 .48rem ui-monospace,monospace;letter-spacing:.09em;line-height:1.5;color:#64747e;min-height:1.5em}.tube-valve[data-blue=true] .tube-threshold-lamp{color:#a8c9ff;text-shadow:0 0 12px #456cff}.tube-overdrive-indicator{font-size:.66rem;letter-spacing:.16em;color:#5e403d}.tube-panel[data-overdrive=true] .tube-overdrive-indicator{color:#ff7b77;text-shadow:0 0 4px #ff635d,0 0 13px #ff3123,0 0 23px #f11d}
.tube-heater{opacity:var(--heater-level,.18);transition:opacity 1.2s ease}.tube-blue-glow{opacity:var(--blue-level,0);transition:opacity 1.6s ease}.tube-panel[data-state=idle] .tube-heater{opacity:0}.tube-panel[data-state=stopped] .tube-heater{opacity:.07;transition-duration:3s}.tube-panel:is([data-state=idle],[data-state=stopped]) .tube-blue-glow{opacity:0;transition-duration:3s}.tube-panel[data-state=running] .tube-bottle{animation:tube-warmup 3s ease-out both;animation-play-state:paused}.tube-plasma{opacity:0;transform-origin:100px 227px;transition:opacity .9s ease;filter:drop-shadow(0 0 8px #7551ff)}.tube-panel[data-overdrive=true] .tube-plasma{opacity:1;animation:tube-ignition 2.8s ease-out both;animation-play-state:paused}.tube-plasma-heart{transform-origin:104px 150px}.tube-panel[data-overdrive=true] .tube-plasma-heart{animation:tube-plasma-breathe 4s 2.8s ease-in-out infinite alternate;animation-play-state:paused}.tube-panel[data-motion=true] :is(.tube-bottle,.tube-plasma,.tube-plasma-heart){animation-play-state:running}
.tube-front-panel{padding:18px 26px 14px;border:1px solid #827862;border-radius:0 0 7px 7px;background:repeating-linear-gradient(0deg,#fff1 0 1px,transparent 1px 3px),linear-gradient(105deg,#8e816a,#c2b497 22%,#a99b80 52%,#726953);box-shadow:inset 0 1px 0 #f0dfb3,inset 0 -3px 4px #0007,0 8px 20px #0007;color:#211f1c;position:relative}.tube-front-panel::before,.tube-front-panel::after{content:'';position:absolute;top:12px;width:7px;height:7px;border:1px solid #292922;border-radius:50%;background:linear-gradient(45deg,#bfb396 42%,#514a3c 43% 56%,#d3c19c 57%);box-shadow:0 1px 1px #e9daba77}.tube-front-panel::before{left:10px}.tube-front-panel::after{right:10px}
.tube-readings{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:0 0 12px}.tube-readings>div{min-width:0;text-align:center;padding:10px 12px;background:#121918;border:1px solid #736648;border-radius:5px;box-shadow:inset 0 2px 5px #0008}.tube-readings dt{font:500 .52rem ui-monospace,monospace;text-transform:uppercase;letter-spacing:.16em;color:#a5b8a7;margin-bottom:7px}.tube-readings dd{margin:0;color:#ffe0a1;text-shadow:0 0 9px #ffb94b44;font:600 clamp(.9rem,2vw,1.65rem) ui-monospace,monospace;font-variant-numeric:tabular-nums;white-space:nowrap}.tube-eye-row{display:grid;grid-template-columns:1fr 1fr;gap:30px;max-width:800px;margin:auto}.tube-eye-unit{display:flex;align-items:center;gap:15px;min-width:0}.tube-eye-unit>svg{width:clamp(86px,12vw,160px);flex:none;filter:drop-shadow(0 4px 4px #0007)}.tube-eye-unit h3{font:700 .62rem ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;color:#252720}.tube-eye-unit .tube-eye-value{font:700 clamp(.85rem,1.5vw,1.2rem) ui-monospace,monospace;margin:0 0 7px;color:#142c23;font-variant-numeric:tabular-nums;white-space:nowrap}.tube-eye-unit small{font:600 .45rem/1.6 ui-monospace,monospace;letter-spacing:.06em;color:#3c3b30;display:block}.tube-eye-brand{font:italic bold 29px Georgia,serif;fill:#b3cabb;opacity:.8}.tube-eye-model{font:10px ui-monospace,monospace;letter-spacing:2px;fill:#c3c8b5}.tube-eye-phosphor{opacity:.16;transition:opacity 1.8s ease}.tube-eye-unit[data-ready=true] .tube-eye-phosphor{opacity:1}.tube-panel[data-state=running] .tube-eye-phosphor{opacity:.7}.tube-panel[data-state=running] .tube-eye-unit[data-ready=true] .tube-eye-phosphor{opacity:1}.tube-maker-plate{display:flex;align-items:center;justify-content:center;gap:9px;border-top:1px solid #584e3c66;margin-top:13px;padding-top:11px;font:bold .8rem Georgia,serif;letter-spacing:.18em;color:#2e3028}.tube-maker-plate>span{font:italic bold 1.3rem Georgia,serif}.tube-maker-plate small{font:600 .42rem ui-monospace,monospace;letter-spacing:.12em}.tube-scale{text-align:center;font:.64rem ui-monospace,monospace;color:#c4bda8;margin:18px 0 10px}.tube-note{max-width:780px;margin:0 auto;color:#99acb5;font-size:.68rem;line-height:1.7;text-align:center}
@keyframes tube-warmup{from{filter:brightness(.45)}to{filter:brightness(1)}}@keyframes tube-ignition{0%{opacity:0;transform:scale(.55,.15)}30%{opacity:.16;transform:scale(.7,.25)}55%{opacity:.65;transform:scale(.8,.55)}78%{opacity:1;transform:scale(1.03)}100%{opacity:1;transform:scale(1)}}@keyframes tube-plasma-breathe{from{opacity:.65;transform:scale(.96)}to{opacity:.9;transform:scale(1.04)}}
@media(max-width:850px){.tube-panel{padding:20px 16px 18px}.tube-output-stage{gap:5px;padding-left:2%;padding-right:2%}.tube-amplifier{padding:0 10px 10px}.tube-front-panel{padding:15px}.tube-eye-row{gap:18px}.tube-eye-unit{gap:8px}.tube-eye-unit>svg{width:100px}.tube-heading{flex-wrap:wrap;gap:12px}.tube-range-badge{font-size:.5rem}}
@media(max-width:520px){.tube-panel{padding:17px 8px 15px;margin-top:18px}.tube-heading,#tube-status{margin-left:7px;margin-right:7px}.tube-heading h2{font-size:1.15rem}.tube-heading .section-kicker{font-size:.5rem}.tube-range-badge{padding:5px 7px}.tube-amplifier{padding:0 6px 7px}.tube-output-stage{padding:15px 1% 7px;gap:0;grid-template-columns:1fr .65fr 1fr}.tube-valve h3{font-size:.55rem;letter-spacing:.08em}.tube-channel-state,.tube-rectifier-label{font-size:.36rem;letter-spacing:.02em}.tube-threshold-lamp{font-size:.34rem;letter-spacing:0;max-width:90px;margin:7px auto 0;min-height:3em}.tube-overdrive-indicator{font-size:.45rem;letter-spacing:.05em;margin:7px auto 0;min-height:2.3em}.tube-front-panel{padding:12px 7px 10px}.tube-readings{gap:8px;margin-bottom:13px}.tube-readings>div{padding:8px 4px}.tube-readings dt{font-size:.42rem;letter-spacing:.02em}.tube-readings dd{font-size:.78rem}.tube-eye-row{gap:8px}.tube-eye-unit{flex-direction:column;gap:8px;text-align:center}.tube-eye-unit>svg{width:91px}.tube-eye-unit h3{font-size:.52rem;margin-bottom:5px}.tube-eye-unit .tube-eye-value{font-size:.85rem}.tube-eye-unit small{font-size:.36rem}.tube-maker-plate{font-size:.58rem;gap:5px;letter-spacing:.1em}.tube-maker-plate small{font-size:.3rem;letter-spacing:0;max-width:110px}.tube-maker-plate>span{font-size:1rem}.tube-note{font-size:.6rem;padding:0 5px}.tube-scale{font-size:.52rem;line-height:1.6}.speedtest-bench[data-style=tubes][data-download-award=true] .download-award-reading{padding-right:24px}}
@media(prefers-reduced-motion:reduce){.tube-panel .tube-bottle,.tube-panel .tube-plasma,.tube-panel .tube-plasma-heart{animation:none!important}.tube-heater,.tube-blue-glow,.tube-eye-phosphor,.tube-plasma{transition:none!important}}
.speedtest-bench[data-style=tubes][data-world=true] .speedtest-world-stage{padding-top:0}.speedtest-bench[data-style=tubes][data-world=true] .tube-output-stage{padding-top:200px}
@media(max-width:520px){.tube-readings .download-award-reading>.download-rosette{width:27px;right:0;top:-8px}}
/* Brighter 300B fluorescence stays around the glass, leaving the mesh visible. */
.tube-blue-glow{opacity:calc(var(--blue-level,0) * var(--tube-cooling,1))}.tube-heater{opacity:calc(var(--heater-level,.18) * var(--tube-warmth,1))}
.tube-blue-swirl{transform-origin:120px 190px;animation:tube-blue-swirl 8s ease-in-out infinite;animation-play-state:paused}.tube-upload .tube-blue-swirl{animation-direction:reverse;animation-delay:-3.7s}.tube-blue-aura{filter:drop-shadow(0 0 9px #3659ff)}
.tube-panel[data-motion=true]:is([data-state=running],[data-state=complete]):not([data-cooldown=settled]) .tube-valve[data-blue=true] .tube-blue-swirl{animation-play-state:running}
.tube-panel[data-state=complete]:is([data-cooldown=afterglow],[data-cooldown=cooling],[data-cooldown=settled]) :is(.tube-blue-glow,.tube-heater){transition:none}
.tube-encore-controls{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;margin:20px 0 0}.tube-encore-controls[hidden]{display:none}.tube-encore-controls button{padding:9px 15px;border:1px solid #6f92d1;border-radius:6px;background:#14253b;color:#c3deff;font:600 .7rem var(--font-display);cursor:pointer}.tube-encore-controls button:hover{background:#213a60}.tube-encore-controls button:focus-visible{outline:3px solid #77d9ff;outline-offset:3px}.tube-encore-controls span{color:#a8bbce;font-size:.65rem}
@keyframes tube-blue-swirl{0%,100%{transform:translate(-3px,3px) rotate(-5deg) scale(.98,1.02)}30%{transform:translate(4px,-5px) rotate(4deg) scale(1.03,.97)}65%{transform:translate(-2px,6px) rotate(7deg) scale(.96,1.03)}}
@media(prefers-reduced-motion:reduce){.tube-blue-swirl{animation:none!important}}
/* Individual glass Nixie envelopes; only a changed cathode gets a brief warm-in. */
.tube-readings .tube-nixie-readout{display:flex;flex-direction:column;align-items:center;gap:2px;line-height:1;text-shadow:none}.tube-nixie-digits{display:flex;justify-content:center;align-items:center;gap:2px;width:100%;min-width:0}.tube-nixie-digit{display:block;flex:0 1 42px;min-width:0}.tube-nixie-digit svg{display:block;width:100%;height:auto;overflow:visible}.tube-nixie-halo{filter:blur(2px)}.tube-nixie-live{filter:drop-shadow(0 0 3px #ff641baa);animation:tube-nixie-ignite .18s ease-out}.tube-nixie-empty .tube-nixie-live{opacity:.3;filter:none}.tube-readings .tube-nixie-unit{font:600 .6rem ui-monospace,monospace;letter-spacing:.12em;color:#b1aa98}.tube-nixie-decimal{flex:0 0 .3em;align-self:center;transform:translateY(.55em);color:#ffae56;font:400 1.25rem Georgia,serif;text-shadow:0 0 3px #ff6e0b,0 0 7px #ff4b12}
.tube-eye-unit>div{min-width:0;flex:1}.tube-eye-unit .tube-eye-value.tube-nixie-readout{display:flex;flex-direction:column;align-items:center;gap:1px;width:100%;min-width:0;box-sizing:border-box;padding:6px 5px 5px;background:#121918;border:1px solid #736648;border-radius:4px;box-shadow:inset 0 2px 5px #0008;line-height:1;text-shadow:none}.tube-eye-value .tube-nixie-digit{flex-basis:28px}.tube-eye-value .tube-nixie-decimal{font-size:1rem}.tube-eye-value .tube-nixie-unit{font:600 .5rem ui-monospace,monospace;letter-spacing:.1em;color:#b1aa98}
@media(max-width:520px){.tube-eye-unit>div{width:100%}.tube-eye-value .tube-nixie-digit{flex-basis:24px}}
@keyframes tube-nixie-ignite{from{opacity:.45}to{opacity:1}}
@media(max-width:520px){.tube-nixie-digits{gap:1px}.tube-readings .tube-nixie-unit{font-size:.42rem}.tube-nixie-decimal{font-size:.8rem;flex-basis:.22em}}
@media(prefers-reduced-motion:reduce){.tube-nixie-live{animation:none}}
.tube-rectifier-heater{opacity:0;transition:opacity 2s ease}.tube-rectifier-heat-halo{filter:blur(5px)}.tube-panel:is([data-state=running],[data-state=complete]) .tube-rectifier-heater{opacity:calc(.7 * var(--tube-warmth,1))}.tube-panel[data-overdrive=true] .tube-rectifier-heater{opacity:.95}.tube-panel[data-state=complete][data-cooldown] .tube-rectifier-heater{transition:none}@media(prefers-reduced-motion:reduce){.tube-rectifier-heater{transition:none}}
@media(max-width:520px){.tube-readings{grid-template-columns:1fr;gap:10px}.tube-nixie-digit{flex-basis:34px}.tube-readings .tube-nixie-unit{font-size:.5rem}.tube-readings dt{font-size:.5rem}.tube-nixie-decimal{font-size:1rem}}
.tube-library-link{display:flex;align-items:center;justify-content:center;gap:12px;width:fit-content;max-width:100%;box-sizing:border-box;margin:20px auto 2px;padding:10px 22px;border:1px solid #d2b16e;border-radius:5px;background:repeating-linear-gradient(0deg,#fff1 0 1px,transparent 1px 3px),linear-gradient(110deg,#8b663c,#e2cb91 35%,#b59053 75%,#94703d);box-shadow:inset 0 1px 0 #ffedb9,inset 0 -2px 0 #60401f,0 4px 10px #0007;color:#2b241a;text-decoration:none;font:bold .9rem Georgia,serif;letter-spacing:.04em;text-shadow:0 1px 0 #fff5}.tube-library-link svg{width:22px;height:30px;flex:none}.tube-library-link small{display:block;font:600 .46rem ui-monospace,monospace;text-transform:uppercase;letter-spacing:.12em;margin-top:5px}.tube-library-link .tube-library-arrow{font-size:1.05rem}.tube-library-link:hover{color:#180e05;filter:brightness(1.12);box-shadow:inset 0 1px 0 #fff0bd,0 0 15px #d6a45644}.tube-library-link:focus-visible{outline:3px solid #69d7ff;outline-offset:4px}
/* Optional World leads terminate in glazed ceramic side-entry caps. */
.speedtest-connection-help{margin:18px 0;padding:14px 18px;border:1px solid #788b98;border-left:4px solid #74d7ec;border-radius:9px;background:#162632;color:#e6edf0;font-size:.78rem;line-height:1.6}.speedtest-connection-help p{margin:0}.speedtest-connection-help .speedtest-method{margin-top:8px;color:#aeeeff}.speedtest-connection-help #speedtest-latency-note{margin-top:10px;color:#ffe1a3}.speedtest-bench[data-latency-method=standard] .speedtest-connection-help{border-left-color:#ffc66c}.speedtest-bench[data-latency-method=standard] .speedtest-method{color:#ffe1a3}
.tube-top-cap,.world-tube-lead{display:none}.speedtest-bench[data-style=tubes][data-world=true] :is(.tube-top-cap,.world-tube-lead){display:inline}.speedtest-bench[data-style=tubes][data-world=true] .tube-bottle{margin-top:24px}.tube-top-cap{filter:drop-shadow(0 2px 2px #0009)}.world-tube-lead path{fill:none;stroke-linecap:round;stroke-linejoin:round}.world-tube-lead .tube-lead-shell{stroke:#090d15;stroke-width:14}.world-tube-lead .tube-lead-highlight{stroke:#4f5660;stroke-width:3}
/* Idle diagnostics: a quiet instrument panel, with no animation or extra probes. */
.speedtest-latency-details{margin-top:14px;border-top:1px solid #70889966;padding-top:12px}
.speedtest-latency-details>summary{display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none;color:#e6f5fb;padding:4px 0}
.speedtest-latency-details>summary::-webkit-details-marker{display:none}
.speedtest-latency-details summary:focus-visible,.latency-copy button:focus-visible{outline:2px solid #74e4ef;outline-offset:5px;border-radius:5px}
.latency-summary-icon{display:grid;place-items:center;width:42px;height:42px;flex:none;border:1px solid #5a8793;border-radius:11px;background:linear-gradient(145deg,#29464e,#172a35);box-shadow:inset 0 1px #b3f1ff22}
.latency-summary-icon svg{width:28px;height:28px;fill:none;stroke:#8ae9f2;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.latency-summary-title{font-size:.9rem;font-weight:650;line-height:1.45}.latency-summary-title small{display:block;font-size:.7rem;font-weight:400;color:#b4c9d3}
.latency-summary-count{margin-left:auto;font-size:.65rem;white-space:nowrap;color:#efd4a0;border:1px solid #a0845155;border-radius:20px;padding:4px 10px;background:#b88c3510}
.latency-summary-chevron{font-size:1.2rem;color:#a8c8d5;line-height:1;transition:transform .15s}.speedtest-latency-details[open]>.latency-summary-chevron,.speedtest-latency-details[open]>summary .latency-summary-chevron{transform:rotate(180deg)}
.latency-panel{margin-top:15px;padding:24px;border:1px solid #ae8e56;border-radius:16px;background:radial-gradient(ellipse at 0 0,#31687326,transparent 60%),linear-gradient(135deg,#182b35,#121d29);box-shadow:inset 0 1px #efd4a030,0 8px 24px #0002;color:#e8f1f5;line-height:1.5}
.latency-panel [hidden]{display:none!important}
.latency-panel-header{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:20px}
.latency-eyebrow{color:#c5ab7d;font-size:.6rem;font-weight:650;letter-spacing:.17em;text-transform:uppercase}
.latency-panel h3{margin:6px 0 0;font-size:1.2rem;letter-spacing:-.02em;color:#f7ebd4;font-weight:600;line-height:1.3}
.latency-badges{display:flex;flex-wrap:wrap;gap:7px}.latency-badges>span{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border:1px solid #7496a34a;border-radius:7px;background:#101c28;color:#bfd5e0;font-size:.64rem}.latency-badges b{color:#e7f7fc;font-weight:650}
.latency-badge-dot{height:6px;width:6px;border-radius:50%;background:#84999e;flex:none}.latency-panel[data-ready=true] .latency-badge-dot{background:#7ee2ef;box-shadow:0 0 8px #64cbdf66}
.speedtest-connection-help .latency-empty{margin:0 0 18px;padding:10px 14px;border-left:2px solid #b59b6d;background:#ffffff05;border-radius:0 5px 5px 0;color:#c4d4dc;font-size:.76rem}
.latency-cards{display:grid;grid-template-columns:1.15fr 1fr 1fr 1fr;gap:12px;margin:0 0 22px}
.latency-card{min-width:0;padding:17px 16px;border-radius:11px;border:1px solid #72909d45;background:linear-gradient(155deg,#2c424b80,#172632aa);box-shadow:inset 0 1px #ffffff07}
.latency-card-primary{border-color:#75d8e580;background:linear-gradient(140deg,#234f59,#19333e);box-shadow:inset 0 2px #90f0f326}
.latency-card dt{color:#c3d5df;font-size:.67rem;font-weight:600;letter-spacing:.015em}.latency-card-primary dt{color:#adf1f5}
.latency-card dd{margin:9px 0 0;color:#f1f6fa;white-space:nowrap}.latency-card strong{font-size:clamp(1.45rem,2.45vw,2.4rem);font-weight:500;line-height:1.2;font-variant-numeric:tabular-nums;letter-spacing:-.04em}.latency-card dd>span{font-size:.73rem;color:#b0c7d2;font-weight:400}
.latency-card-primary strong{color:#b6f8fb;text-shadow:0 0 20px #61e8f326}
.latency-card .latency-card-note{margin-top:12px;font-size:.62rem;line-height:1.55;color:#b4c8d2;white-space:normal}
.latency-chart{margin:0;padding:16px 17px 12px;border:1px solid #6e8a9e40;border-radius:10px;background:#0c172080}
.latency-chart figcaption{display:flex;align-items:start;justify-content:space-between;gap:12px;color:#e6d2aa;font-size:.73rem;font-weight:600}.latency-chart figcaption small{display:block;margin-top:2px;color:#95aebd;font-size:.6rem;font-weight:400}.latency-range{color:#94dae3;font-size:.66rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.latency-chart-body{display:flex;gap:8px;margin-top:15px;height:116px;align-items:stretch}.latency-chart-axis{display:flex;flex-direction:column;justify-content:space-between;padding:0 0 3px;min-width:24px;color:#99b0be;font-size:.58rem;text-align:right}.latency-chart svg{width:100%;height:116px;overflow:visible;min-width:0}
.latency-grid{stroke:#6b86943d;stroke-width:1;stroke-dasharray:3 5;vector-effect:non-scaling-stroke}.latency-area{fill:#65c9d412;stroke:none}.latency-line{stroke:#83e5ed;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 3px #74cdda30)}.latency-points{fill:#f4d495;stroke:#152834;stroke-width:1;vector-effect:non-scaling-stroke}
.latency-chart-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:9px 0 0 32px;color:#9cb6c5;font-size:.58rem}.latency-chart-foot span:nth-child(2){color:#c0d3dd}
.latency-source-row{display:flex;align-items:center;gap:12px;margin:16px 0;color:#b7cad5;font-size:.64rem}.latency-source-row>span{white-space:nowrap}.latency-sources{display:flex;gap:6px;flex-wrap:wrap;color:#a9beca}.latency-sources span{border:1px solid #768b9555;border-radius:5px;padding:3px 8px;color:#dcc69e;background:#9e85480d}
.latency-readings{border-top:1px solid #6c85913b;padding-top:12px}.latency-readings summary{cursor:pointer;color:#d5e6ef;font-size:.72rem}.latency-readings summary>span{font-size:.6rem;color:#a6bdca;margin-left:8px}.latency-readings ol{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px;list-style:none;padding:0;margin:14px 0 0}.latency-readings li{display:flex;flex-direction:column;gap:2px;padding:7px 4px;border:1px solid #708a9745;border-radius:6px;background:#09182480;text-align:center;font-variant-numeric:tabular-nums}.latency-readings li span{color:#8ea9b9;font-size:.52rem}.latency-readings li strong{color:#d2edf0;font-size:.7rem;font-weight:500}
.latency-panel-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid #6c85913b;padding-top:16px;margin-top:16px}.speedtest-connection-help .latency-panel-footer p{max-width:640px;font-size:.63rem;color:#a8bdca;line-height:1.6}.latency-copy{flex:none;text-align:right}.latency-copy button{display:inline-flex;align-items:center;justify-content:center;gap:16px;padding:8px 13px;border:1px solid #a48b60;border-radius:7px;color:#f3dfb5;background:linear-gradient(140deg,#59482a55,#2b303099);font:600 .65rem var(--font-display,sans-serif);cursor:pointer;box-shadow:inset 0 1px #fff1}.latency-copy button:hover:not(:disabled){background:#735c3544;border-color:#d7ba85}.latency-copy button:disabled{opacity:.45;cursor:default}.latency-copy [role=status]{display:block;color:#a3dce1;font-size:.6rem;margin-top:5px;max-width:180px}.latency-copy [role=status]:empty{display:none}
@media(max-width:1000px){.latency-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.latency-card strong{font-size:2rem}.latency-readings ol{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:600px){.latency-panel{padding:16px 12px;border-radius:12px}.latency-panel-header{gap:12px;margin-bottom:16px}.latency-panel h3{font-size:1rem}.latency-summary-icon{width:34px;height:38px}.latency-summary-title{font-size:.8rem}.latency-summary-title small{font-size:.62rem}.latency-summary-count{padding:3px 7px;font-size:.56rem}.speedtest-latency-details>summary{gap:8px}.latency-cards{gap:8px;margin-bottom:14px}.latency-card{padding:13px 10px}.latency-card strong{font-size:1.75rem}.latency-card .latency-card-note{font-size:.6rem}.latency-chart{padding:12px 10px}.latency-chart figcaption{flex-wrap:wrap;gap:6px}.latency-source-row{align-items:flex-start;flex-direction:column;gap:6px}.latency-readings summary>span{display:block;margin:3px 0 0 14px}.latency-panel-footer{flex-direction:column;align-items:stretch;gap:12px}.latency-copy{text-align:left}.latency-copy [role=status]{max-width:none}.latency-copy button{min-height:40px}.latency-chart-foot{font-size:.52rem}.latency-badges>span{font-size:.59rem}}
@media(max-width:380px){.latency-summary-count{display:none}.latency-card strong{font-size:1.4rem}.latency-panel{padding:14px 10px}.latency-readings ol{grid-template-columns:repeat(4,minmax(0,1fr))}.speedtest-toolbar>label{min-width:0;max-width:100%}.speedtest-toolbar select{box-sizing:border-box;max-width:100%;margin-left:0}}
@media(prefers-reduced-motion:reduce){.latency-summary-chevron{transition:none}}
.speedtest-report{margin:24px 0 4px;padding:24px;border:1px solid #b49a67;border-radius:14px;background:linear-gradient(120deg,#263d48,#172b38);color:#e7f0f3}.speedtest-report[hidden]{display:none!important}.speedtest-report-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.speedtest-report h2{margin:5px 0 8px;font-size:1.2rem;color:#f5e2b7}.speedtest-report p{font-size:.75rem;line-height:1.6;margin:8px 0;color:#bdcfdb}.speedtest-report .section-kicker{font-size:.6rem;color:#94e8ef;letter-spacing:.16em}.speedtest-report button{flex:none;padding:12px 18px;border:1px solid #ddb97a;border-radius:8px;background:linear-gradient(#efd39c,#c3914e);color:#251b10;font:650 .8rem var(--font-display);cursor:pointer}.speedtest-report button:disabled{opacity:.6;cursor:wait}.speedtest-report button:focus-visible,.speedtest-report input:focus-visible,.speedtest-report summary:focus-visible{outline:2px solid #80e8f4;outline-offset:4px}.speedtest-report button span{margin-left:14px}.speedtest-report-email{border-top:1px solid #70889455;margin-top:20px;padding-top:16px}.speedtest-report-email summary{cursor:pointer;color:#b3edf4;font-size:.8rem;font-weight:600}.speedtest-report-email form{margin-top:16px;max-width:740px}.speedtest-report-email label{display:block;font-size:.75rem;color:#e2d1ac;margin-bottom:8px}.speedtest-report-send{display:flex;gap:10px}.speedtest-report input{min-width:0;width:100%;box-sizing:border-box;padding:12px;border:1px solid #77909c;border-radius:7px;background:#10232f;color:#f1f6fa;font:inherit}.speedtest-report-send input{flex:1;font-size:.8rem}.speedtest-report .speedtest-report-address-note{font-size:.65rem;margin-top:7px}.speedtest-report .speedtest-report-privacy{font-size:.65rem;color:#9fb7c5}.speedtest-report-challenge{margin:15px 0}.speedtest-report-challenge input{display:block;max-width:110px;margin-top:8px}.speedtest-report [data-report-status]{margin:15px 0 0;color:#f0d8a8}.speedtest-report [data-report-status]:empty{display:none}@media(max-width:600px){.speedtest-report{padding:18px 14px}.speedtest-report-heading{align-items:stretch;flex-direction:column;gap:12px}.speedtest-report-send{flex-direction:column}.speedtest-report button{min-height:44px}.speedtest-report p{font-size:.7rem}}
@media(max-width:520px){.speedtest-bench[data-style=tubes][data-world=true] .world-pipe .pipe-outer{stroke-width:9}.speedtest-bench[data-style=tubes][data-world=true] .world-pipe .pipe-inner{stroke-width:4}.world-tube-lead .tube-lead-shell{stroke-width:9}.world-tube-lead .tube-lead-highlight{stroke-width:2}}
/* Valve-era scope: available with both World connection and Overdrive. */
.tube-scope{position:relative;width:min(100%,660px);margin:22px auto 28px;--scope-download:.14;--scope-upload:.14}.tube-scope[hidden],.tube-scope-wires[hidden]{display:none!important}.tube-scope-shell{position:relative;filter:drop-shadow(0 12px 9px #0007)}.tube-scope-face{display:block;width:100%;height:auto;overflow:visible}.scope-engraving{font:600 9px ui-monospace,monospace;letter-spacing:1.1px;fill:#344238}.scope-maker{font:bold 18px Georgia,serif;letter-spacing:1px;fill:#354536}.scope-model{font-size:8px;letter-spacing:1.8px}.scope-key-label{font:700 11px ui-monospace,monospace;letter-spacing:1.5px;fill:#374435}.scope-power-jewel{filter:drop-shadow(0 0 5px #ff472a) drop-shadow(0 0 11px #ff381877)}
.tube-scope-shell>button{position:absolute;z-index:4;top:57.91%;left:56.53%;width:15.14%;height:10.17%;min-height:24px;padding:0;border:0;border-radius:4px;background:transparent;cursor:pointer;box-shadow:none}.tube-scope-shell>.tube-scope-speed{left:75.83%}.tube-scope-shell>button:hover{background:#ffffde20}.tube-scope-shell>button:focus-visible{outline:3px solid #0a6558;outline-offset:2px}.tube-scope[data-held=true] .scope-hold-key{fill:#aab792;stroke:#4a6050}.tube-scope-caption{font:500 .6rem/1.7 ui-monospace,monospace;color:#a8baad;text-align:center;margin:8px 0 0}.tube-scope-caption span{display:block;color:#758b86;font-size:.5rem;letter-spacing:.12em;text-transform:uppercase}
.scope-channel{transform-origin:221px 172px;transition:transform .65s ease}.scope-channel-download{transform:scaleY(calc(.22 + var(--scope-download) * 1.65 * var(--tube-warmth,1)))}.scope-channel-upload{transform:scaleY(calc(.17 + var(--scope-upload) * 1.45 * var(--tube-warmth,1)))}.scope-sine{fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;animation:scope-sweep 3.6s linear infinite;animation-play-state:paused}.scope-sine-download{stroke:#adffad;filter:drop-shadow(0 0 2px #46ff65) drop-shadow(0 0 5px #38ff6999)}.scope-sine-upload{stroke:#ffda78;opacity:.8;filter:drop-shadow(0 0 3px #ffcf5788);animation-duration:4.8s;animation-direction:reverse}.scope-pulse{transform-origin:221px 172px;animation:scope-pulse 3.2s ease-in-out infinite alternate;animation-play-state:paused}.scope-channel-upload .scope-pulse{animation-duration:4.1s;animation-delay:-1.4s}.tube-scope[data-motion=true][data-held=false] :is(.scope-sine,.scope-pulse){animation-play-state:running}.tube-scope[data-sweep=fast] .scope-sine-download{animation-duration:1.8s}.tube-scope[data-sweep=fast] .scope-sine-upload{animation-duration:2.4s}
.tube-scope-wires{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:3}.scope-lead{fill:none;stroke-linecap:round;stroke-linejoin:round}.scope-lead-shadow{stroke:#080f12;stroke-width:8;filter:drop-shadow(0 3px 2px #0008)}.scope-lead-jacket{stroke:#568c80;stroke-width:5}.scope-lead-upload .scope-lead-jacket{stroke:#ad9153}.scope-lead-glint{stroke:#d5e1c1;stroke-width:1;opacity:.48}
@keyframes scope-sweep{from{transform:translateX(0)}to{transform:translateX(-100px)}}@keyframes scope-pulse{from{transform:scaleY(.87);opacity:.8}to{transform:scaleY(1.08);opacity:1}}
@media(max-width:520px){.tube-scope{margin:18px auto 22px}.tube-scope-caption{font-size:.5rem}.tube-scope-caption span{font-size:.43rem}.scope-lead-shadow{stroke-width:5}.scope-lead-jacket{stroke-width:3}.scope-lead-glint{stroke-width:.7}}
@media(prefers-reduced-motion:reduce){.tube-scope .scope-sine,.tube-scope .scope-pulse{animation:none!important}.scope-channel{transition:none}}

.franken-head-smoke{opacity:0;pointer-events:none;transition:opacity .4s}.franken-smoke-puff{fill:#cfbbe5;filter:blur(3px);opacity:0;animation:franken-smoke-rise 3.2s var(--smoke-delay) ease-out infinite;animation-play-state:paused}.franken-hand{transition:fill .4s,stroke .4s,filter .4s}.speedtest-bench[data-style=frankenstein][data-overdrive=true] .franken-head-smoke{opacity:1}.speedtest-bench[data-style=frankenstein][data-overdrive=true] .franken-smoke-puff{animation-play-state:running}.speedtest-bench[data-style=frankenstein][data-overdrive=true] .franken-hand{fill:#bb77ed;stroke:#edc2ff;filter:drop-shadow(0 0 6px #d181ff) drop-shadow(0 0 15px #a846ed)}.speedtest-bench .franken-panel[data-effects-paused=true] .franken-smoke-puff{animation-play-state:paused}@keyframes franken-smoke-rise{0%{transform:translate(0,0) scale(.55);opacity:0}18%{opacity:.5}65%{opacity:.28}100%{transform:translate(var(--smoke-drift),-79px) scale(1.65);opacity:0}}@media(prefers-reduced-motion:reduce){.franken-head-smoke,.franken-hand{transition:none}.franken-smoke-puff{animation:none!important;opacity:.18;transform:translateY(-24px)}}

.franken-speed-meter{display:block}.franken-speed-pointer{transition:transform .5s ease;filter:drop-shadow(0 0 3px var(--coil))}.franken-meter-tick{fill:#263344;font:700 10px ui-monospace,monospace}.franken-meter-name{fill:#fff0bf;font:700 14px Georgia,serif;letter-spacing:1px}.franken-meter-unit{fill:#d8ceb0;font:600 9px ui-monospace,monospace}.franken-meter-value{fill:var(--coil);font:700 14px ui-monospace,monospace;paint-order:stroke;stroke:#18202b;stroke-width:3px}@media(prefers-reduced-motion:reduce){.franken-speed-pointer{transition:none}}

/* Actual sampled audio replaces the decorative sine-wave transforms. */
.tube-scope[data-audio=true] :is(.scope-channel,.scope-pulse,.scope-sine){animation:none!important;transform:none;transition:none}

.speedtest-run-panel{flex:0 0 100%;min-width:0;padding:16px;border:1px solid #ad905955;border-radius:12px;background:#101d28}.speedtest-run-panel .speedtest-controls{margin:0;display:flex;flex-wrap:wrap;gap:12px}.speedtest-run-panel .speedtest-status{margin:12px 0 8px}.speedtest-run-panel .speedtest-progress{display:block;width:100%;margin:0}.speedtest-run-panel button{min-height:44px}@media(max-width:460px){.speedtest-run-panel{padding:12px}.speedtest-run-panel .speedtest-controls button{flex:1 1 auto}}

.speedtest-progress-machine{--test-progress:0%;position:relative;display:flex;align-items:center;gap:10px;padding:5px 12px 5px 6px;border:1px solid #e0bc76;border-radius:24px;background:linear-gradient(180deg,#987448,#453523 48%,#251c14 52%,#745536);box-shadow:inset 0 1px 1px #ffedb788,0 3px 8px #0007}
.speedtest-progress-gear{display:grid;place-items:center;flex:0 0 30px;height:30px;color:#ffdd96;font:30px/1 Georgia,serif;text-shadow:0 1px 2px #000;animation:progress-cog 5s linear infinite;animation-play-state:paused}
.speedtest-progress-track{height:15px;flex:1;min-width:0;overflow:hidden;border-radius:8px;border:1px solid #171b1d;background:repeating-linear-gradient(90deg,transparent 0 15px,#8d784433 15px 17px),#0b1920;box-shadow:inset 0 2px 5px #000}
.speedtest-progress-fill{display:block;width:var(--test-progress);height:100%;border-radius:7px;background:repeating-linear-gradient(110deg,transparent 0 12px,#fff1a64d 12px 18px),linear-gradient(0deg,#a65719,#ffdb7d 45%,#fff2b4 55%,#d99335);background-size:40px 100%,100% 100%;box-shadow:0 0 10px #ffc34b99;transition:width .6s ease;animation:progress-flow 1.2s linear infinite;animation-play-state:paused}
.speedtest-bench[data-running=true] :is(.speedtest-progress-gear,.speedtest-progress-fill){animation-play-state:running}
.speedtest-run-panel .speedtest-progress-machine .speedtest-progress{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@keyframes progress-cog{to{transform:rotate(360deg)}}@keyframes progress-flow{to{background-position:40px 0,0 0}}
@media(prefers-reduced-motion:reduce){.speedtest-progress-gear,.speedtest-progress-fill{animation:none;transition:none}}

.speedtest-progress-fill{transition:width 1.2s cubic-bezier(.22,.7,.2,1)}
.speedtest-progress-machine[data-rolling=true] :is(.speedtest-progress-gear,.speedtest-progress-fill){animation-play-state:running}
.speedtest-progress-machine[data-reverse=true] .speedtest-progress-fill{animation-direction:reverse}
@media(prefers-reduced-motion:reduce){.speedtest-progress-fill{transition:none}}

/* Chunkier directional brass conveyor: right for testing, left for rewind. */
.speedtest-progress-machine{padding:7px 9px 7px 6px;gap:8px}
.speedtest-progress-track{height:26px;border-radius:10px}
.speedtest-progress-fill{border-radius:9px;background-color:#237c50;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='26' viewBox='0 0 36 26'%3E%3Cpath d='M0 0H10L25 13 10 26H0L15 13Z' fill='%23eac36d'/%3E%3Cpath d='M1 1H9L23 13' fill='none' stroke='%23fff0af' stroke-width='1.5'/%3E%3C/svg%3E"),linear-gradient(0deg,#103d28,#38a46e 50%,#195338);background-size:36px 100%,100% 100%;box-shadow:0 0 12px #48cd7e77}
.speedtest-progress-machine[data-reverse=true] .speedtest-progress-fill{background-color:#a52e36;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='26' viewBox='0 0 36 26'%3E%3Cpath d='M36 0H26L11 13 26 26H36L21 13Z' fill='%23eac36d'/%3E%3Cpath d='M35 1H27L13 13' fill='none' stroke='%23fff0af' stroke-width='1.5'/%3E%3C/svg%3E"),linear-gradient(0deg,#59151d,#d84b4e 50%,#80222b);box-shadow:0 0 12px #ec595977}
@keyframes progress-flow{to{background-position:36px 0,0 0}}

.speedtest-progress-machine[data-reverse=true] .speedtest-progress-fill{transition:width 3s ease-in-out}
@media(prefers-reduced-motion:reduce){.speedtest-progress-machine[data-reverse=true] .speedtest-progress-fill{transition:none}}

/* Retarget speed needles from their current position; measured numbers stay immediate. */
@media(prefers-reduced-motion:no-preference){
  .speedtest-bench :is([data-metric=download] .needle,[data-metric=upload] .needle,.race-needle,.franken-speed-pointer,[data-speed-hand],.sub-order-needle){transition:transform 1.1s linear}
}
