.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:1440/616;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-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}}
/* 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}}
