.tutorial-restart{padding:10px 12px;border:1px solid var(--line);background:transparent;color:var(--paper);font:inherit;font-size:12px;cursor:pointer}.device-panel .tutorial-restart{background:transparent;color:var(--muted);border-color:var(--line)}#settings-dialog .tutorial-restart{margin-top:20px;width:100%}.tour-active #settings-dialog{z-index:2}.tour-active .overlay-controls,.tour-active .settings-close{opacity:1}.tour-active .overlay-controls>*{pointer-events:auto}#tutorial{position:fixed;left:0;top:0;width:1920px;height:1080px;transform-origin:top left;z-index:100;pointer-events:none}.tour-spotlight{position:fixed;border:2px solid var(--lime);border-radius:8px;box-shadow:0 0 0 100vmax #0009;pointer-events:none}.tour-spotlight.tour-clear{box-shadow:none}.tour-card{position:fixed;display:flex;flex-direction:column;padding:20px;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 48px #0006;background:#161918;color:var(--paper);pointer-events:auto}.tour-card:before{content:"";position:absolute;width:12px;height:12px;background:#161918;border:1px solid var(--line);transform:rotate(45deg)}.tour-card[data-placement=center]:before{display:none}.tour-card[data-placement=right]:before{left:-7px;top:var(--tour-arrow-y);border-top:0;border-right:0}.tour-card[data-placement=left]:before{right:-7px;top:var(--tour-arrow-y);border-bottom:0;border-left:0}.tour-card[data-placement=below]:before{top:-7px;left:var(--tour-arrow-x);border-bottom:0;border-right:0}.tour-card[data-placement=above]:before{bottom:-7px;left:var(--tour-arrow-x);border-top:0;border-left:0}.tour-card header,.tour-card footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}.tour-card header{padding-bottom:16px;color:var(--muted);font-size:13px}.tour-card footer{padding-top:16px;border-top:1px solid var(--line)}.tour-copy{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding-right:4px;font-size:18px;line-height:1.8}.tour-copy h2{margin:0 0 16px;font-size:22px;line-height:1.5}.tour-copy p{margin:0 0 16px}.tour-copy ol{padding-left:22px}.tour-copy li{margin-bottom:12px}.tour-copy a{color:var(--lime);text-underline-offset:3px}.tour-card button{padding:9px 14px;border:1px solid var(--line);background:transparent;color:var(--paper);font:inherit;font-size:14px;cursor:pointer}.tour-card button:disabled{opacity:.35;cursor:default}#tour-next{background:var(--lime);color:var(--ink);border-color:var(--lime)}#tour-status{flex-shrink:0;margin:12px 0;padding:8px;border:1px solid var(--lime);color:var(--lime);font-size:12px;line-height:1.5}#tour-status.is-success{background:var(--lime);color:var(--ink);font-weight:700}#tour-next.is-highlighted{outline:2px solid var(--paper);outline-offset:4px;font-weight:700;animation:tour-next-glow 1.4s ease-in-out infinite}@keyframes tour-next-glow{50%{box-shadow:0 0 20px #c9f354a6}}@media(prefers-reduced-motion:reduce){#tour-next.is-highlighted{animation:none}}.tour-copy summary{cursor:pointer;color:var(--lime)}#privacy-dialog{width:min(520px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:28px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:#161918;color:var(--paper);line-height:1.8}#privacy-dialog::backdrop{background:#000000b3}#privacy-dialog h2{margin-top:0;font-size:22px}#privacy-dialog h3{font-size:15px;margin-bottom:4px}#privacy-dialog p{margin-top:0;font-size:14px}.privacy-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.privacy-actions button{padding:10px 16px;border:1px solid var(--line);background:transparent;color:var(--paper);font:inherit;cursor:pointer}#privacy-accept{background:var(--lime);color:var(--ink);border-color:var(--lime)}#tutorial-complete{max-width:calc(100vw - 32px);padding:28px;border:1px solid var(--line);border-radius:12px;background:#161918;color:var(--paper);line-height:1.8}#tutorial-complete::backdrop{background:#00000080}#tutorial-complete form{text-align:right}#tutorial-complete button{padding:10px 20px;border:1px solid var(--lime);background:var(--lime);color:var(--ink);font:inherit;cursor:pointer}:root{color-scheme:dark;font-family:Space Grotesk,Arial,sans-serif;--paper: #eef1ec;--muted: #8a938c;--line: rgba(238, 241, 236, .22);--lime: #c9f354;--orange: #ff6938;--ink: #090a0b}*{box-sizing:border-box}[hidden]{display:none!important}.device-screen{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:24px;background:var(--ink);color:var(--paper);overflow:auto}.device-panel{width:min(100%,520px);padding:clamp(24px,5vw,48px);border:1px solid var(--line);background:#161918}.device-step,.device-panel label{color:var(--lime);font:500 12px DM Mono,monospace;letter-spacing:.12em}.device-panel h1{margin:28px 0 18px;font-size:clamp(28px,5vw,40px);line-height:1.3;letter-spacing:.02em}.device-panel p{color:var(--muted);font-size:14px;line-height:1.8}.device-panel label{display:block;margin-top:32px}.device-panel .camera-source{width:100%;margin:12px 0;font-size:14px}#device-message{min-height:3.6em}.device-panel button,#device-back{padding:12px 16px;border:1px solid var(--lime);background:var(--lime);color:var(--ink);font:inherit;cursor:pointer}.device-panel button{width:100%;margin-top:12px}.device-panel button:disabled{opacity:.5;cursor:wait}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{background:var(--ink)}#app{position:fixed;inset:0;background:#f0f}.camera-video,.pose-canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;transform:scaleX(-1)}.camera-video{opacity:0}.camera-video.is-live{opacity:1}.camera-video.is-suppressed{opacity:0}#rainbow-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.pose-canvas{pointer-events:none}#device-back{position:absolute;right:16px;bottom:16px;z-index:1;font-size:12px;background:#090a0bb3;color:var(--paper);border-color:var(--line)}.camera-source{display:block;padding:.65em .8em;border:1px solid var(--line);color:var(--paper);background:var(--ink);font:inherit}.camera-source:focus-visible,button:focus-visible{outline:2px solid var(--lime);outline-offset:3px}.overlay-license{position:absolute;left:16px;bottom:16px;z-index:1}.license-open{display:inline-block;padding:10px 16px;border:1px solid var(--line);color:var(--paper);background:var(--ink);text-decoration:none;font-size:14px}.device-panel .license-open{display:block;margin-top:12px;text-align:center}.license-open:focus-visible{outline:2px solid var(--lime);outline-offset:3px}.overlay-controls{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .2s ease}.overlay-controls>*{pointer-events:none}.pointer-inside .overlay-controls{opacity:1}.pointer-inside .overlay-controls>*{pointer-events:auto}#settings-open,.settings-close{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--line);background:#090a0bcc;color:var(--paper);font-size:28px;cursor:pointer}#settings-open{position:absolute;top:16px;right:16px;border-radius:8px}#settings-dialog{position:fixed;inset:16px 16px auto auto;width:min(340px,calc(100vw - 32px));max-height:calc(100dvh - 32px);margin:0;padding:24px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:#161918;color:var(--paper)}#settings-dialog::backdrop{background:#00000040}#settings-title{margin:0 48px 24px 0;font-size:20px}.settings-close{position:absolute;top:8px;right:8px;border:0;border-radius:8px;background:transparent;opacity:0;transition:opacity .2s ease}.pointer-inside .settings-close{opacity:1}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;border-top:1px solid var(--line);font-size:14px;cursor:pointer}.settings-row input{appearance:none;position:relative;flex:0 0 42px;width:42px;height:24px;margin:0;border:1px solid var(--muted);border-radius:20px;background:#393e3a;cursor:pointer}.settings-row input:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--paper);transition:transform .15s ease}.settings-row input:checked{border-color:var(--lime);background:var(--lime)}.settings-row input:checked:after{background:var(--ink);transform:translate(18px)}.settings-row input:focus-visible{outline:2px solid var(--lime);outline-offset:4px}@media(hover:none){.overlay-controls,.settings-close{opacity:1}.overlay-controls>*{pointer-events:auto}}
