:root{--bg:#15120f;--surface:#221e1a;--raised:#2b2621;--line:#2e2823;--text:#f4efe8;--text-soft:#cfc6ba;--muted:#b5aca0;--faint:#8f867b;--accent:#ff7a3d;--on-accent:#15120f;--live:#ff4d3d;--good:#6fc3a8;--fault:#ff6b5b;--sans:"Barlow", system-ui, sans-serif;--display:"Barlow Semi Condensed", "Arial Narrow", system-ui, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0}.page{max-width:560px;padding:max(20px, env(safe-area-inset-top)) 16px max(32px, env(safe-area-inset-bottom));flex-direction:column;gap:18px;margin:0 auto;display:flex}.top{justify-content:space-between;align-items:center;gap:12px;display:flex}.wordmark{letter-spacing:-.015em;align-items:center;gap:10px;font-size:26px;font-weight:800;display:inline-flex}.wordmark .mark{border-radius:8px;width:34px;height:34px}.dot{color:var(--accent)}.tag,.kicker,.pair-form label,.readout dt,.of{font-family:var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:700}.tag{background:var(--surface);color:var(--text-soft);white-space:nowrap;border-radius:8px;padding:7px 10px}h1{font-family:var(--display);letter-spacing:-.01em;margin:10px 0 0;font-size:52px;font-weight:800;line-height:.95}h1 em{color:var(--accent);font-style:normal}.intro{flex-direction:column;gap:16px;display:flex}.intro p{color:var(--text-soft);margin:0;font-size:17px;line-height:1.45}.card{background:var(--surface);border-radius:18px;padding:18px}.pair{flex-direction:column;gap:12px;display:flex}.intro p strong{color:var(--text)}.intro .pair-status{color:var(--text-soft);font-size:16px}.intro .pair-status.linked{color:var(--text);align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.pair-status.linked:before{content:"";background:var(--good);border-radius:50%;flex:none;width:10px;height:10px}.intro .pair-status.failed{color:var(--fault)}.pair-form{align-items:center;gap:10px;display:flex}.pair-form input{min-width:0;max-width:150px;min-height:52px;font-family:var(--display);letter-spacing:.24em;border:2px solid var(--line);background:var(--bg);color:var(--text);border-radius:12px;flex:1;padding:6px 12px;font-size:30px;font-weight:700}.pair-form input::placeholder{color:var(--faint);opacity:.6}.pair-form input:focus{border-color:var(--accent);outline:none}.options{border:0;flex-wrap:wrap;gap:8px;margin:0;padding:0;display:flex}.options label{background:var(--raised);min-height:44px;color:var(--text-soft);cursor:pointer;border:2px solid #0000;border-radius:12px;align-items:center;gap:8px;padding:0 14px;font-size:15px;font-weight:600;display:flex}.options label:has(input:checked){border-color:var(--accent);color:var(--text)}.options input{accent-color:var(--accent);margin:0}button{font-family:var(--sans);color:var(--text);background:var(--raised);cursor:pointer;border:0;border-radius:14px;min-height:52px;padding:12px 20px;font-size:17px;font-weight:700}button.primary{background:var(--accent);color:var(--on-accent)}button:focus-visible{outline:3px solid var(--text);outline-offset:2px}button:active:not(:disabled){transform:scale(.98)}button:disabled{opacity:.6;cursor:progress}.note{align-items:flex-start;gap:8px;display:flex}.intro .note{color:var(--faint);font-size:14px}.note svg{flex:none;width:15px;height:15px;margin-top:.15em}.intro .error{color:var(--fault);font-weight:700}.session{flex-direction:column;gap:12px;display:flex}.stage{background:var(--surface);border-radius:18px;width:100%;position:relative;overflow:hidden}.stage video,.stage canvas{width:100%;height:auto;display:block}.stage canvas{height:100%;position:absolute;inset:0}.stage.mirrored video,.stage.mirrored canvas{transform:scaleX(-1)}.stage .tag{background:var(--bg);align-items:center;gap:8px;display:flex;position:absolute;top:12px;left:12px}.stage .tag:before{content:"";background:var(--live);border-radius:50%;width:8px;height:8px}.count{color:var(--text);text-shadow:0 1px 8px #0009;align-items:baseline;gap:8px;display:flex;position:absolute;bottom:10px;left:14px}#count{font-family:var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:104px;font-weight:700;line-height:.85}.count.bump #count{color:var(--accent)}.count .of{color:var(--text-soft)}.coach{flex-direction:column;gap:6px;display:flex}.coach .kicker{color:var(--accent)}.coach:has(.cue.correction) .kicker{color:var(--fault)}.cue{min-height:1.25em;margin:0;font-size:22px;font-weight:700;line-height:1.25}.cue.correction{color:var(--fault)}.hint{color:var(--text-soft);margin:0;font-size:15px;line-height:1.4}.hint:empty{display:none}.readout{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;display:grid}.readout div{background:var(--surface);border-radius:14px;flex-direction:column-reverse;gap:6px;min-width:0;padding:12px;display:flex}.readout dt{font-size:11px}.readout dd{font-family:var(--display);text-transform:uppercase;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:26px;font-weight:700;line-height:1;overflow:hidden}.log{color:var(--text-soft);font-variant-numeric:tabular-nums;max-height:200px;margin:0;padding:0 0 0 22px;font-size:14px;line-height:1.8;overflow-y:auto}.log:empty{display:none}.log li::marker{color:var(--faint)}.log .bad{color:var(--fault)}pre.log{background:var(--surface);white-space:pre-wrap;border-radius:14px;padding:14px;font-size:12px;line-height:1.5}code{color:var(--text);word-break:break-all;font-size:.9em}.actions{flex-wrap:wrap;gap:10px;display:flex}.actions button{flex:auto}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.page:has(>.session:not([hidden])){height:100vh;height:100dvh;padding-top:max(12px, env(safe-area-inset-top));padding-bottom:max(12px, env(safe-area-inset-bottom));gap:10px}.session{flex:1;gap:10px;min-height:0}.session .stage{flex:1;min-height:160px}.session .stage video,.session .stage canvas{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.session #count{font-size:clamp(64px,11dvh,104px)}.session .coach{gap:4px;padding:12px 16px}.session .cue{font-size:19px}.session .hint{font-size:14px}.session .readout div{gap:4px;padding:8px 12px}.session .readout dd{font-size:22px}.session .log{display:none}.session .actions{flex-wrap:nowrap;gap:8px}.session .actions button{flex:1 1 0;min-width:0;min-height:48px;padding:8px 6px;font-size:15px;line-height:1.15}.wifi-warn{border:1px solid var(--fault);color:var(--text);background:#ff6b5b24;border-radius:14px;margin:0 0 12px;padding:12px 14px;font-size:15px;line-height:1.4}.wifi-warn strong{color:var(--fault);font-size:16px;display:block}.wifi-warn[hidden]{display:none}
