:root{--bg: #0b0d14;--panel: #151925;--panel2: #1c2130;--line: #2a3144;--text: #eef1f7;--muted: #9aa4b8;--gold: #ffc233;--gold2: #e0a500;--ok: #4caf50;--warn: #ffb300;--bad: #ef5350;--blue: #4fc3f7;color-scheme:dark;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:var(--bg);color:var(--text)}body{font-size:17px;line-height:1.45}a{color:var(--blue)}button{font:inherit;color:var(--text);background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 16px;cursor:pointer}button:hover:not(:disabled){border-color:var(--muted)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--gold);color:#1a1300;border-color:var(--gold2);font-weight:700;box-shadow:0 4px 0 var(--gold2)}button.big{font-size:20px;padding:14px 26px}button.link{background:none;border:none;padding:0;color:var(--blue);text-decoration:underline}input,select,textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:9px 11px;width:100%}textarea{min-height:80px}code,kbd{background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-size:.9em}.muted{color:var(--muted)}.small{font-size:14px}.error{color:var(--bad);font-weight:600}.warn-text{color:var(--warn)}.lead{font-size:20px}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:13px;color:var(--gold);margin:0}.page{max-width:1100px;margin:0 auto;padding:24px 20px 60px}.brand{display:flex;gap:10px;align-items:baseline;font-size:18px;color:var(--muted);margin-bottom:18px}.logo{font-family:Anton,Impact,sans-serif;font-size:28px;letter-spacing:.04em;color:var(--gold);transform:skew(-8deg);display:inline-block}.logo.small{font-size:18px}.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px 24px;margin:14px 0}.card.wide{max-width:none}.card h1{margin:6px 0 10px;font-size:38px}.card h2{margin:0 0 12px}.card h3{margin:18px 0 8px;font-size:17px;color:var(--muted)}.actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:18px}.split{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:22px}@media(max-width:860px){.split{grid-template-columns:1fr}}.home .hero h1{font-size:42px;margin:10px 0}.need{font-size:18px}.need li{margin:6px 0}.foot{margin-top:30px;color:var(--muted);font-size:14px}.steps{display:flex;gap:6px;list-style:none;padding:0;margin:0 0 8px;flex-wrap:wrap}.steps li{padding:6px 12px;border-radius:99px;background:var(--panel);color:var(--muted);font-size:14px}.steps li.now{background:var(--gold);color:#1a1300;font-weight:700}.steps li.done{color:var(--ok)}.consent li{margin:8px 0}.check{display:flex;gap:10px;align-items:flex-start;margin:10px 0;font-size:17px}.check input{width:22px;height:22px;flex:none;margin-top:2px}.field{display:block;margin:12px 0}.field input,.field select,.field textarea{margin-top:6px}.field small{display:block;color:var(--muted)}.choice{border:none;padding:0;margin:12px 0}.choice legend{margin-bottom:6px}.choice>div{display:flex;gap:8px;flex-wrap:wrap}.choice button.on{background:var(--gold);color:#1a1300;border-color:var(--gold2);font-weight:700}.tips li{margin:6px 0}.big-steps li{margin:10px 0;font-size:18px}.program{list-style:none;padding:0}.program li{display:flex;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--line)}.program li.break{color:var(--muted);font-style:italic}.diagram{width:240px;height:170px;margin-top:10px}.preview-frame{position:relative;background:#000;border-radius:12px;overflow:hidden;aspect-ratio:16 / 9}.preview-frame video,.preview-frame canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.selfie{transform:scaleX(-1)}.preview-arrow{position:absolute;left:50%;bottom:16px;transform:translate(-50%);background:var(--warn);color:#1a1300;font-weight:800;font-size:26px;padding:8px 18px;border-radius:10px}.preview.compact .preview-frame{max-height:38vh}.checklist{list-style:none;padding:0;margin:12px 0}.checklist li{display:grid;grid-template-columns:28px 1fr;gap:2px 8px;margin:6px 0;font-size:17px}.checklist li span{font-weight:800}.checklist li.ok span{color:var(--ok)}.checklist li.bad span{color:var(--bad)}.checklist li em{grid-column:2;color:var(--warn);font-style:normal;font-size:15px}.qr{background:#fff;border-radius:10px;padding:8px}.qr svg{width:100%;height:100%}.side-cams{display:grid;gap:10px}.side-cam{background:var(--panel2);border-radius:10px;padding:10px 12px;display:grid;gap:4px}.side-preview{margin:0}.side-preview img{width:100%;border-radius:10px;display:block}.side-preview figcaption{color:var(--muted);font-size:13px}.badge{display:inline-block;padding:4px 10px;border-radius:99px;font-size:13px;background:var(--panel2);border:1px solid var(--line);white-space:nowrap}.badge.ok,.badge.synced{color:var(--ok)}.badge.warn,.badge.retrying{color:var(--warn)}.badge.rec{color:#fff;background:#c62828;border-color:#c62828}.badge.offline{color:var(--bad)}.run{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#000}.run .stage{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.topbar{position:absolute;top:0;left:0;right:0;display:flex;gap:14px;align-items:center;padding:8px 14px;background:linear-gradient(#000a,#0000);z-index:5;font-size:14px}.topbar progress{flex:1;max-width:260px;height:8px}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:60px 20px 20px;z-index:6}.overlay .card{max-width:780px;width:100%;background:#151925f2;max-height:100%;overflow:auto}.overlay.intro{justify-content:flex-start;align-items:stretch}.overlay.intro .card{max-width:560px}.instructions ol li{margin:6px 0;font-size:18px}.demo-label{position:absolute;right:22px;bottom:16px;background:#000a;padding:6px 12px;border-radius:8px;color:var(--muted)}.controls-help{display:flex;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:14px;margin-top:12px}.gesture-start{color:var(--muted);display:flex;align-items:center;gap:8px}.ring{width:26px;height:26px;border-radius:50%;background:conic-gradient(var(--gold) calc(var(--p) * 360deg),var(--line) 0);display:inline-block}.upload-final{margin:18px 0;padding:14px;border-radius:10px;font-size:18px}.upload-final.busy{background:#3a2c00;color:var(--gold)}.upload-final.done{background:#11321a;color:var(--ok)}.hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:4}.hud button{pointer-events:auto}.hud-top{position:absolute;top:44px;left:0;right:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:start;padding:0 16px;gap:12px}.hud-trial{font-size:16px;color:var(--muted);background:#000a;padding:6px 12px;border-radius:8px;justify-self:start}.hud-status{justify-self:end;display:flex;gap:8px;align-items:center}.rec{color:#ff5252;font-weight:800;animation:blink 1.2s infinite}@keyframes blink{50%{opacity:.35}}.prompt{background:#0b0d14e8;border:2px solid var(--gold);border-radius:16px;text-align:center;transition:all .2s}.prompt.big{padding:14px 28px}.prompt.small{padding:6px 14px;opacity:.8;border-width:1px}.prompt-title{font-family:Anton,Impact,sans-serif;letter-spacing:.03em;color:var(--gold)}.prompt.big .prompt-title{font-size:clamp(34px,6.5vh,72px)}.prompt.small .prompt-title{font-size:22px}.prompt-chips{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:6px}.prompt-chips span{background:var(--panel2);border-radius:8px;padding:4px 10px;font-weight:700}.prompt.big .prompt-chips span{font-size:clamp(16px,2.6vh,26px)}.prompt.small .prompt-chips span{font-size:13px}.guide{margin-top:8px;font-weight:800;font-size:14px;letter-spacing:.05em}.guide.guide{color:var(--blue)}.guide.mirror{color:#b39ddb}.countdown{position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);font-family:Anton,Impact,sans-serif;font-size:22vh;color:var(--gold);text-shadow:0 6px 24px #000}.banner{position:absolute;top:46%;left:50%;transform:translate(-50%,-50%);font-family:Anton,Impact,sans-serif;font-size:clamp(34px,8vh,90px);color:#fff;text-shadow:0 4px 18px #000,0 0 2px #000;white-space:nowrap}.beats{position:absolute;bottom:96px;left:50%;transform:translate(-50%);display:flex;gap:12px}.beats span{min-width:64px;text-align:center;padding:10px 14px;border-radius:12px;background:#000b;font-family:Anton,Impact,sans-serif;font-size:clamp(20px,3.4vh,36px);color:var(--muted)}.beats span.now{background:var(--gold);color:#1a1300;transform:scale(1.12)}.beats span.past{opacity:.5}.warning{position:absolute;top:34%;left:50%;transform:translate(-50%);background:var(--warn);color:#1a1300;font-weight:800;font-size:clamp(18px,3vh,30px);padding:10px 18px;border-radius:12px}.notice{position:absolute;top:26%;left:50%;transform:translate(-50%);background:#0b0d14ee;border:1px solid var(--gold);padding:12px 18px;border-radius:12px;font-size:20px;max-width:80vw;text-align:center}.pause{position:absolute;top:0;right:0;bottom:0;left:0;background:#000c;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:auto;text-align:center;padding:20px}.pause h1{font-size:64px;margin:0;font-family:Anton,Impact,sans-serif;color:var(--gold)}.hud-controls{position:absolute;bottom:14px;left:50%;transform:translate(-50%);display:flex;gap:8px;align-items:center;background:#000a;padding:8px 10px;border-radius:12px}.hud-controls .muted{pointer-events:none}.side{position:fixed;top:0;right:0;bottom:0;left:0;background:#000}.side-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain}.side-frame{position:absolute;top:8%;bottom:6%;left:30%;right:30%;border:3px dashed #ffffff88;border-radius:12px;pointer-events:none}.side-panel{position:absolute;left:12px;right:12px;bottom:12px;background:#0b0d14e6;border-radius:14px;padding:12px 16px}.side-panel h1{margin:0 0 6px}.side-state{font-size:20px;font-weight:800;margin:0 0 4px}.side-state.recording{color:#ff5252}.lab-grid{display:grid;grid-template-columns:240px 1fr;gap:18px}.drills h3{margin:12px 0 6px;color:var(--muted);font-size:14px;text-transform:uppercase}.drills button{display:block;width:100%;text-align:left;margin:4px 0}.drills button.on{border-color:var(--gold);color:var(--gold)}.params{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:0 18px}.tallies{display:flex;flex-wrap:wrap;gap:10px;font-size:13px}.tallies div{background:var(--panel2);padding:6px 10px;border-radius:8px;display:grid;gap:2px}.trials{width:100%;border-collapse:collapse;font-size:13px}.trials td,.trials th{border-bottom:1px solid var(--line);padding:5px 6px;text-align:left;vertical-align:top}.trials tr.practice{color:var(--muted)}
