@font-face{font-family:Archivo;src:url(/fonts/archivo-latin.woff2)format("woff2");font-weight:400 700;font-display:swap}@font-face{font-family:Archivo Narrow;src:url(/fonts/archivo-narrow-latin.woff2)format("woff2");font-weight:400 700;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--radius:0;--border-width:2px;--background:oklch(95.9% .01 87.5);--foreground:oklch(19.1% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(19.1% 0 0);--primary:oklch(64.4% .192 41.7);--primary-foreground:oklch(19.1% 0 0);--secondary:oklch(100% 0 0);--secondary-foreground:oklch(19.1% 0 0);--muted:oklch(92% .01 87.5);--muted-foreground:oklch(45.4% .014 84.6);--accent:oklch(92% .01 87.5);--accent-foreground:oklch(19.1% 0 0);--destructive:oklch(53% .207 22.3);--destructive-foreground:oklch(100% 0 0);--border:oklch(19.1% 0 0);--input:oklch(19.1% 0 0);--ring:oklch(19.1% 0 0);--phase-ready:oklch(19.1% 0 0);--phase-ready-foreground:oklch(100% 0 0);--phase-starting:oklch(81.1% .166 85);--phase-starting-foreground:oklch(19.1% 0 0);--phase-running:oklch(51.8% .11 157.7);--phase-running-foreground:oklch(100% 0 0);--phase-paused:oklch(46.7% .139 259.1);--phase-paused-foreground:oklch(100% 0 0);--phase-disconnected:oklch(51.2% .017 84.6);--phase-disconnected-foreground:oklch(100% 0 0);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--font-display:"Archivo Narrow", "Arial Narrow", sans-serif;--font-sans:"Archivo", system-ui, sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--background:oklch(20% .006 85);--foreground:oklch(95% .01 87.5);--card:oklch(24% .006 85);--card-foreground:oklch(95% .01 87.5);--primary:oklch(70% .18 45);--primary-foreground:oklch(19.1% 0 0);--secondary:oklch(24% .006 85);--secondary-foreground:oklch(95% .01 87.5);--muted:oklch(27% .006 85);--muted-foreground:oklch(74% .012 85);--accent:oklch(30% .006 85);--accent-foreground:oklch(95% .01 87.5);--destructive:oklch(58% .2 25);--destructive-foreground:oklch(100% 0 0);--border:oklch(78% .01 87);--input:oklch(78% .01 87);--ring:oklch(95% .01 87.5);--phase-ready:oklch(95% .01 87.5);--phase-ready-foreground:oklch(19.1% 0 0);--phase-starting:oklch(78% .15 85);--phase-running:oklch(45% .1 158);--phase-paused:oklch(45% .13 259);--phase-disconnected:oklch(42% .015 85)}}*,:before,:after{box-sizing:border-box}html{scroll-padding-bottom:128px}body{background:var(--background);color:var(--foreground);font-family:var(--font-sans);margin:0;font-size:1rem;line-height:1.4}#app{flex-direction:column;min-height:100vh;display:flex}:focus-visible{outline:4px solid var(--ring);outline-offset:2px}[hidden]{display:none!important}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted-foreground);margin:0;font-size:14px;font-weight:700}#app{--band:var(--phase-disconnected);--band-foreground:var(--phase-disconnected-foreground)}#app[data-phase=ready]{--band:var(--phase-ready);--band-foreground:var(--phase-ready-foreground)}#app[data-phase=starting]{--band:var(--phase-starting);--band-foreground:var(--phase-starting-foreground)}#app[data-phase=running]{--band:var(--phase-running);--band-foreground:var(--phase-running-foreground)}#app[data-phase=paused]{--band:var(--phase-paused);--band-foreground:var(--phase-paused-foreground)}.band{justify-content:space-between;align-items:center;gap:var(--space-4) var(--space-6);padding:var(--space-4) var(--space-8);background:var(--band);color:var(--band-foreground);--ring:var(--band-foreground);flex-wrap:wrap;display:flex}.band-phase{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.03em;margin:0;font-size:40px;font-weight:700;line-height:1}#countdown{margin-left:var(--space-4);font-variant-numeric:tabular-nums;font-weight:400}.band-device{align-items:center;gap:var(--space-6);flex-wrap:wrap;display:flex}.btn-band{min-height:44px;padding:0 var(--space-4);color:inherit;border:var(--border-width) solid currentColor;border-radius:var(--radius);font:inherit;cursor:pointer;background:0 0;flex:none;font-weight:700}.btn-band:hover{background:var(--band-foreground);color:var(--band)}.alert{justify-content:space-between;align-items:center;gap:var(--space-4) var(--space-8);padding:var(--space-6) var(--space-8);background:var(--foreground);color:var(--background);border-top:var(--border-width) solid var(--background);border-bottom:var(--border-width) solid var(--border);--band:var(--foreground);--band-foreground:var(--background);--ring:var(--background);flex-wrap:wrap;display:flex}.alert[data-kind=safety-key],.alert[data-kind=command]{background:var(--card);color:var(--card-foreground);border-left:12px solid var(--primary);--band:var(--card-foreground);--band-foreground:var(--card);--ring:var(--card-foreground)}.alert p{text-wrap:pretty;flex:999 480px;margin:0;font-size:22px;font-weight:700}.alert[data-kind=disconnected],.alert[data-kind=stop-failed]{background:var(--destructive);color:var(--destructive-foreground);--band:var(--destructive);--band-foreground:var(--destructive-foreground);--ring:var(--destructive-foreground)}.btn{min-height:56px;padding:0 var(--space-6);background:var(--card);color:var(--card-foreground);border:var(--border-width) solid var(--border);border-radius:var(--radius);font-family:var(--font-display);letter-spacing:.03em;cursor:pointer;font-size:28px;font-weight:700}.btn:hover:not(:disabled){background:var(--accent);color:var(--accent-foreground)}.btn:active:not(:disabled){background:var(--muted)}.btn-primary,.btn-primary:hover:not(:disabled),.btn-primary:active:not(:disabled){background:var(--primary);color:var(--primary-foreground)}.btn-primary:hover:not(:disabled){text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:2px}.btn:disabled{background:var(--muted);color:var(--muted-foreground);border-color:var(--muted-foreground);cursor:not-allowed}.connect{align-items:flex-start;gap:var(--space-6);padding:var(--space-12) var(--space-8);flex-direction:column;flex:1;display:flex}.btn-connect{text-transform:uppercase;width:100%;max-width:560px;height:88px;font-size:36px}.connect-help,.connect-unsupported,.connect-error{max-width:560px;margin:0;font-size:18px}.connect-unsupported,.connect-error{font-size:22px;font-weight:700}.connect-error{color:var(--destructive)}.last-data{margin-top:var(--space-6);width:100%;max-width:720px;padding-top:var(--space-4);border-top:var(--border-width) solid var(--border);gap:var(--space-2);flex-direction:column;display:flex}.last-data-values{gap:var(--space-2) var(--space-12);font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--muted-foreground);flex-wrap:wrap;margin:0;font-size:32px;font-weight:700;display:flex}.panel{flex-direction:column;flex:1;display:flex}.panel-top{border-bottom:var(--border-width) solid var(--border);flex-wrap:wrap;display:flex}.speed{min-width:0;padding:var(--space-8);border-right:var(--border-width) solid var(--border);gap:var(--space-4);flex-direction:column;flex:999 560px;display:flex}.speed-value{align-items:baseline;gap:var(--space-4);font-family:var(--font-display);flex-wrap:wrap;margin:0;font-weight:700;display:flex}#speed-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:280px;line-height:.82}.speed-unit{font-size:56px}#app[data-phase=ready] #speed-value{font-size:200px}#app[data-phase=ready] .speed-unit{font-size:48px}.speed-note{margin:var(--space-2) 0 0;min-height:1lh;font-size:22px}.totals{flex:520px;grid-template-columns:1fr 1fr;margin:0;display:grid}.total{padding:var(--space-6);justify-content:center;gap:var(--space-1);flex-direction:column;display:flex}.total:nth-child(odd){border-right:var(--border-width) solid var(--border)}.total:nth-child(-n+2){border-bottom:var(--border-width) solid var(--border)}.total dd{margin:0}.total-value{font-family:var(--font-display);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:72px;font-weight:700;line-height:1}.total-value small{font-size:32px}.controls{align-items:flex-end;gap:var(--space-8);padding:var(--space-6) var(--space-8);flex-wrap:wrap;display:flex}.speed-field{gap:var(--space-2);flex-direction:column;flex:999 420px;min-width:0;display:flex}.speed .speed-field{flex:none}.speed-field .label strong{color:var(--foreground);font-variant-numeric:tabular-nums}.speed-field-row{align-items:center;gap:var(--space-4);display:flex}.btn-square{flex:none;width:72px;height:72px;padding:0;font-size:40px}.speed-range{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.speed-range input{width:100%;height:40px;accent-color:var(--primary);cursor:pointer;margin:0}.speed-range-limits{color:var(--muted-foreground);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:14px;display:flex}.btn-main{white-space:nowrap;text-transform:uppercase;flex:280px;height:72px}#app[data-phase=ready] .btn-main,#app[data-phase=paused] .btn-main{height:88px;font-size:36px}#app[data-phase=ready] .btn-main{flex:999 420px;order:-1}.presets{gap:var(--space-2);flex-direction:column;flex:auto;display:flex}.presets-row{display:flex}.btn-preset{font-variant-numeric:tabular-nums;width:88px;height:72px;padding:0;font-size:32px}.btn-preset+.btn-preset{border-left:0}#app[data-phase=ready] .btn-preset,#app[data-phase=paused] .btn-preset{width:96px;height:88px}.btn-preset[aria-pressed=true],.btn-preset[aria-pressed=true]:hover:not(:disabled){background:var(--primary);color:var(--primary-foreground)}.btn-stop{background:var(--destructive);width:100%;min-height:112px;color:var(--destructive-foreground);border:0;border-top:var(--border-width) solid var(--border);border-radius:var(--radius);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;--ring:var(--destructive-foreground);margin-top:auto;font-size:52px;font-weight:700;position:sticky;bottom:0}.btn-stop:focus-visible{outline-offset:-8px}.btn-stop:hover{text-underline-offset:6px;text-decoration:underline;text-decoration-thickness:3px}@media (width<=40rem){.band,.alert,.controls,.speed,.connect{padding-inline:var(--space-4)}.panel-top{display:contents}.controls{gap:var(--space-4);order:1}.totals{border-bottom:var(--border-width) solid var(--border);flex:none;order:2}.btn-stop{order:3}.speed{padding-block:var(--space-6);border-right:0;border-bottom:var(--border-width) solid var(--border);flex:none}#speed-value,#app[data-phase=ready] #speed-value{font-size:120px}.speed-unit,#app[data-phase=ready] .speed-unit{font-size:32px}.total{padding:var(--space-4)}.total-value{font-size:40px}.total-value small{font-size:20px}.band-phase{font-size:32px}.btn-connect,#app[data-phase=ready] .btn-main,#app[data-phase=paused] .btn-main{font-size:26px}.btn-stop{min-height:72px;font-size:32px}.speed-note{min-height:2lh}.speed-field-row{gap:var(--space-2)}.btn-square{width:56px;height:56px}.presets,.presets-row,.btn-preset{flex:1}.btn-preset{width:auto}}
