:root{--color-bg:#0a0b0d;--color-surface:#131518;--color-surface-raised:#1b1e22;--color-overlay:#0a0b0de0;--color-line:#ffffff1a;--color-line-strong:#ffffff38;--color-text:#f2f3f5;--color-text-muted:#9a9fa8;--color-accent:#d7ff3a;--color-accent-hover:#e4ff73;--color-accent-ink:#0a0b0d;--color-success:#3dff9a;--color-danger:#ff6b61;--color-warning:#ffb547;--color-focus:#d7ff3a;--color-move-jab:#3d8bff;--color-move-cross:#ff8a3d;--color-move-defense:#2de0d0;--font-display:"Barlow Condensed", system-ui, sans-serif;--font-body:"Barlow", system-ui, sans-serif;--text-xs:.75rem;--text-s:.875rem;--text-m:1rem;--text-l:1.25rem;--text-xl:1.75rem;--text-display:clamp(4.5rem, 16vw, 9.5rem);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-12:48px;--radius-s:2px;--radius-m:4px;--radius-l:6px;--duration-fast:.12s;--ease-out:cubic-bezier(.2, .8, .2, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{background:var(--color-bg);height:100%;min-height:100%;color:var(--color-text);font-family:var(--font-body);font-size:var(--text-m);-webkit-font-smoothing:antialiased;margin:0}button,select,input{font:inherit;color:inherit}h1,h2,h3{margin:0}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.icon{flex-shrink:0;width:1.1em;height:1.1em}.muted{color:var(--color-text-muted);font-size:var(--text-s)}.kicker{font:600 var(--text-xs) var(--font-body);letter-spacing:.22em;text-transform:uppercase;color:var(--color-accent)}.eyebrow{font:600 var(--text-xs) var(--font-body);letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-muted)}.row{gap:var(--space-3);flex-wrap:wrap;display:flex}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-m);background:var(--color-surface);color:var(--color-text);font-weight:600;font-size:var(--text-s);letter-spacing:.02em;cursor:pointer;transition:background var(--duration-fast), border-color var(--duration-fast), transform var(--duration-fast) var(--ease-out);display:inline-flex}.btn:hover:not(:disabled){background:var(--color-surface-raised);border-color:var(--color-line-strong)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:var(--color-accent-ink);font-family:var(--font-display);font-weight:800;font-size:var(--text-l);letter-spacing:.04em;border-color:#0000}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover);border-color:#0000}.btn-xl{min-height:56px;padding:var(--space-3) var(--space-6);font-size:var(--text-xl)}.btn-block{width:100%}.btn-overlay{background:var(--color-overlay)}.screen{min-height:100%;padding:var(--space-8) var(--space-4)}.center-screen{place-items:center;display:grid}.page{gap:var(--space-6);flex-direction:column;width:min(960px,100%);margin:0 auto;display:flex}.page-header{align-items:center;gap:var(--space-4);display:flex}.page-header h1{font:800 var(--text-xl) var(--font-display);letter-spacing:.02em}.menu{place-items:center;display:grid}.menu-layout{gap:var(--space-12);grid-template-columns:1.35fr 1fr;width:min(1080px,100%);display:grid}.menu-lead{justify-content:space-between;gap:var(--space-8);flex-direction:column;display:flex}.title{margin-top:var(--space-3);font:italic 800 var(--text-display) / .82 var(--font-display);letter-spacing:-.01em}.title span{color:var(--color-accent);display:block}.tagline{margin:var(--space-4) 0 0;font-size:var(--text-l);color:var(--color-text-muted)}.cta{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.menu-side{border-left:1px solid var(--color-line);padding-left:var(--space-8);justify-content:center;gap:var(--space-5);flex-direction:column;display:flex}.steps{gap:var(--space-3);counter-reset:step;margin:0;padding:0;list-style:none;display:grid}.steps li{counter-increment:step;grid-template-columns:32px 1fr;line-height:1.45;display:grid}.steps li:before{content:counter(step, decimal-leading-zero);font:700 var(--text-l) / 1.2 var(--font-display);color:var(--color-accent)}.status{align-items:center;gap:var(--space-2);font-size:var(--text-s);color:var(--color-text-muted);display:inline-flex}.status i{background:var(--color-text-muted);border-radius:50%;width:8px;height:8px}.status-ok i{background:var(--color-success)}.status-error{color:var(--color-danger)}.status-error i{background:var(--color-danger)}.safety{gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-line);font-size:var(--text-s);color:var(--color-text-muted);margin:0;line-height:1.5;display:flex}.safety .icon{color:var(--color-warning);margin-top:2px}.mode-hero{align-items:end;gap:var(--space-6);padding:var(--space-8);border:1px solid var(--color-line);border-radius:var(--radius-l);background:var(--color-surface);text-align:left;cursor:pointer;transition:border-color var(--duration-fast), background var(--duration-fast);grid-template-columns:1fr auto;display:grid;position:relative;overflow:hidden}.mode-hero:before{content:"";background:var(--color-accent);width:6px;position:absolute;inset:0 auto 0 0}.mode-hero:hover{border-color:var(--color-line-strong);background:var(--color-surface-raised)}.mode-hero h2{margin:var(--space-2) 0 var(--space-3);font:italic 800 clamp(3rem, 9vw, 5rem) / .9 var(--font-display)}.mode-hero p{max-width:52ch;color:var(--color-text-muted);margin:0;line-height:1.5}.mode-hero .btn-primary{pointer-events:none}.chips{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.chip{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius-s);font-size:var(--text-xs);font-weight:600;display:inline-flex}.chip b,.mode-row .dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.mode-list{border-top:1px solid var(--color-line);flex-direction:column;display:flex}.mode-row{align-items:center;gap:var(--space-4);min-height:64px;padding:var(--space-3) var(--space-2);border:0;border-bottom:1px solid var(--color-line);color:var(--color-text-muted);text-align:left;font-size:var(--text-s);cursor:pointer;transition:background var(--duration-fast);background:0 0;grid-template-columns:10px minmax(90px,140px) 1fr auto;display:grid}.mode-row:hover{background:var(--color-surface)}.mode-row strong{font:700 var(--text-xl) var(--font-display);letter-spacing:.03em;color:var(--color-text)}.setting{gap:var(--space-3);flex-direction:column;display:flex}.segmented{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.segmented.compact{grid-template-columns:repeat(3,1fr)}.segmented button{gap:var(--space-1);padding:var(--space-3) var(--space-4);text-align:left;border:1px solid var(--color-line);border-radius:var(--radius-m);background:var(--color-surface);cursor:pointer;min-height:44px;transition:border-color var(--duration-fast), background var(--duration-fast);flex-direction:column;display:flex}.segmented.compact button{justify-content:center;align-items:center}.segmented button:hover{background:var(--color-surface-raised)}.segmented button strong{font:700 var(--text-l) var(--font-display);letter-spacing:.02em}.segmented button small{color:var(--color-text-muted);font-size:var(--text-xs);line-height:1.4}.segmented button[aria-pressed=true]{border-color:var(--color-accent);box-shadow:inset 0 0 0 1px var(--color-accent)}.toggle{align-items:center;gap:var(--space-3);cursor:pointer;min-height:44px;display:flex}.toggle input{width:20px;height:20px;accent-color:var(--color-accent)}.session{background:#000;position:fixed;inset:0;overflow:hidden}.camera-view{position:absolute;inset:0}.camera-video,.camera-canvas{width:100%;height:100%;position:absolute;inset:0}.camera-video{object-fit:cover;transform:scaleX(-1)}.camera-canvas{pointer-events:none}.camera-status{justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-6);text-align:center;background:var(--color-overlay);flex-direction:column;display:flex;position:absolute;inset:0}.camera-status.static{background:0 0;max-width:440px;position:static}.error-text{color:var(--color-danger)}.spinner{border:3px solid var(--color-line);border-top-color:var(--color-accent);border-radius:50%;width:40px;height:40px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.debug-stats{right:var(--space-4);z-index:3;padding:var(--space-1) var(--space-2);border-radius:var(--radius-m);background:var(--color-overlay);color:var(--color-text-muted);font:var(--text-xs) ui-monospace, monospace;position:absolute;top:96px}.overlay-ui{z-index:2;padding:max(var(--space-4), env(safe-area-inset-top)) var(--space-4) max(var(--space-4), env(safe-area-inset-bottom));pointer-events:none;flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0}.overlay-ui>*{pointer-events:auto}.overlay-top{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.overlay-bottom{justify-content:space-between;align-items:flex-end;gap:var(--space-3);display:flex}.tag{align-items:center;gap:var(--space-2);min-height:32px;padding:var(--space-1) var(--space-3);border-radius:var(--radius-m);background:var(--color-overlay);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:600;display:inline-flex}.tag i{background:var(--color-text-muted);border-radius:50%;width:8px;height:8px}.tag-ok i{background:var(--color-success)}.tag-warn{color:var(--color-warning)}.tag-warn i{background:var(--color-warning)}.calibration-panel{align-self:flex-start;gap:var(--space-3);width:min(380px,100%);padding:var(--space-5);border-radius:var(--radius-l);background:var(--color-overlay);border-left:4px solid var(--color-line-strong);flex-direction:column;display:flex}.calibration-panel.is-ready{border-left-color:var(--color-accent)}.calibration-panel h2{font:800 var(--text-xl) var(--font-display);letter-spacing:.02em}.calibration-panel .hint{min-height:2.8em;color:var(--color-text-muted);font-size:var(--text-s);margin:0;line-height:1.4}.checklist{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.checklist li{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border:1px solid var(--color-line);border-radius:var(--radius-s);font-size:var(--text-xs);color:var(--color-text-muted);display:inline-flex}.checklist .dot{background:var(--color-danger);border-radius:50%;width:8px;height:8px}.checklist li.ok{color:var(--color-text)}.checklist li.ok .dot{background:var(--color-success)}.progress-track{background:var(--color-line);border-radius:1px;height:4px;overflow:hidden}.progress-fill{background:var(--color-accent);transform-origin:0;height:100%;transform:scaleX(0)}.start-cue{gap:var(--space-1);padding:var(--space-3) var(--space-4);border-radius:var(--radius-m);background:var(--color-accent);color:var(--color-accent-ink);animation:cue 1.4s var(--ease-out) infinite;flex-direction:column;display:flex}.start-cue strong{font:italic 800 var(--text-xl) / 1 var(--font-display);letter-spacing:.02em}.start-cue span{font-size:var(--text-xs);font-weight:600}@keyframes cue{50%{transform:scale(1.02)}}.score-bug{border-radius:var(--radius-m);align-items:stretch;display:flex;overflow:hidden}.score-bug .score{min-width:120px;padding:var(--space-1) var(--space-4);background:var(--color-overlay);font:italic 800 clamp(2rem, 6vw, 3rem) / 1.05 var(--font-display);font-variant-numeric:tabular-nums}.score-bug .multiplier{padding:var(--space-1) var(--space-3);background:var(--color-surface-raised);color:var(--color-text-muted);font:800 var(--text-xl) / 1 var(--font-display);flex-direction:column;justify-content:center;display:flex}.score-bug .multiplier.on{background:var(--color-accent);color:var(--color-accent-ink)}.score-bug .multiplier small{font:700 .6rem var(--font-body);letter-spacing:.14em}.clock{width:min(200px,40vw);padding:var(--space-2) var(--space-3);border-radius:var(--radius-m);background:var(--color-overlay)}.clock div{justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.clock strong{font:800 var(--text-xl) var(--font-display);font-variant-numeric:tabular-nums}.clock .progress-track{margin-top:var(--space-2)}.instruction{align-self:center;align-items:center;gap:var(--space-1);margin:var(--space-3) 0 auto;padding:var(--space-2) var(--space-4);border-radius:var(--radius-m);background:var(--color-overlay);text-align:center;flex-direction:column;display:flex}.instruction strong{font:italic 800 var(--text-xl) var(--font-display);letter-spacing:.06em;color:var(--action-color)}.instruction span{font-size:var(--text-s);color:var(--color-text-muted)}.instruction span b{color:var(--color-text);font-weight:600}.instruction em{font-style:normal;font-size:var(--text-s);color:var(--color-warning)}.action-stage{pointer-events:none;flex:1;justify-content:center;align-items:flex-start;padding-top:4vh;display:flex}.action-pop{align-items:center;gap:var(--space-2);animation:action-pop 1.6s var(--ease-out) forwards;flex-direction:column;display:flex}.action-label{font:italic 800 clamp(3rem, 10vw, 5.5rem) / .9 var(--font-display);color:var(--action-color);text-shadow:0 2px 10px #000c}.action-detail{padding:var(--space-1) var(--space-2);border-radius:var(--radius-s);background:var(--color-overlay);font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;font-weight:600}.confidence{background:var(--color-overlay);border-radius:1px;width:160px;height:4px;overflow:hidden}.confidence-fill{background:var(--action-color);height:100%}.confidence-text{padding:2px var(--space-2);border-radius:var(--radius-s);background:var(--color-overlay);font-size:var(--text-xs)}@keyframes action-pop{0%{opacity:0;transform:translateY(8px)}12%{opacity:1;transform:none}75%{opacity:1}to{opacity:0}}.hud-side{gap:var(--space-2);flex-direction:column;width:min(280px,100%);margin-left:auto;display:flex}.event-log{padding:var(--space-3);border-radius:var(--radius-m);background:var(--color-overlay);font-size:var(--text-s);flex-direction:column;gap:2px;margin:0;list-style:none;display:flex}.event-log li{align-items:center;gap:var(--space-2);display:flex}.event-log .dot{border-radius:50%;width:8px;height:8px}.event-log small{color:var(--color-text-muted);font-variant-numeric:tabular-nums;margin-left:auto}.event-log .empty{color:var(--color-text-muted);font-size:var(--text-xs)}.debug-column{align-items:flex-start;gap:var(--space-2);flex-direction:column;display:flex}.debug-panel{max-width:min(560px,100%);padding:var(--space-3);border-radius:var(--radius-m);background:var(--color-overlay);color:var(--color-text-muted);white-space:pre;margin:0;font-size:.7rem;line-height:1.45;overflow-x:auto}.recording-controls{align-items:center;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-m);background:var(--color-overlay);font-size:var(--text-s);display:flex}.recording-controls select{min-height:36px;padding:0 var(--space-2);border:1px solid var(--color-line);border-radius:var(--radius-m);background:var(--color-surface)}.rec-dot{background:var(--color-danger);border-radius:50%;width:10px;height:10px;animation:1s steps(2,end) infinite blink}@keyframes blink{50%{opacity:.3}}.speed-chart{padding:var(--space-3);border-radius:var(--radius-m);background:var(--color-overlay);margin:0}.speed-chart figcaption{margin-bottom:var(--space-1);white-space:nowrap;flex-direction:column;gap:2px;display:flex}.speed-summary{font-size:var(--text-xs);color:var(--color-text-muted)}.speed-summary strong{font:700 var(--text-l) var(--font-display);color:var(--color-text)}.speed-summary em{margin:0 var(--space-1);font-style:normal;font-weight:600}.speed-summary em.up{color:var(--color-accent)}.speed-summary em.down{color:var(--color-text-muted)}.speed-chart svg{width:100%;height:auto;display:block}.speed-chart .baseline{stroke:var(--color-line-strong);stroke-width:1px}.speed-chart .avg-line{stroke:var(--color-text-muted);stroke-width:1px;stroke-dasharray:3 3}.speed-chart .bar-letter{fill:var(--color-text-muted);font:600 9px var(--font-body)}.speed-note{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:.65rem}.results{place-items:center;display:grid}.results-layout{border:1px solid var(--color-line);border-radius:var(--radius-l);grid-template-columns:1fr 1.25fr;width:min(1080px,100%);display:grid;overflow:hidden}.results-lead{justify-content:space-between;gap:var(--space-8);padding:var(--space-8);background:var(--color-surface);flex-direction:column;display:flex}.results-lead .kicker{color:var(--mode-color,var(--color-accent))}.big-score{margin:var(--space-3) 0 0;font:italic 800 clamp(4.5rem, 14vw, 8rem) / .85 var(--font-display);font-variant-numeric:tabular-nums}.results-table{padding:var(--space-6) var(--space-8);flex-direction:column;display:flex}.metric{align-items:baseline;gap:var(--space-1) var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--color-line);grid-template-columns:1fr auto;display:grid}.metric-label{color:var(--color-text-muted);font-size:var(--text-s)}.metric-value{font:700 var(--text-xl) var(--font-display);font-variant-numeric:tabular-nums;text-align:right}.metric-note{font-size:var(--text-xs);color:var(--color-text-muted);grid-column:1/-1;line-height:1.4}.results-footnote{margin:var(--space-4) 0 0;font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.5}@media (width<=760px){.menu-layout,.results-layout{gap:var(--space-8);grid-template-columns:1fr}.results-layout{gap:0}.menu-side{border-left:0;border-top:1px solid var(--color-line);padding:var(--space-6) 0 0}.mode-hero{padding:var(--space-6);grid-template-columns:1fr}.mode-row{grid-template-columns:10px 1fr auto}.mode-row .desc{grid-area:2/2/auto/3}.results-lead,.results-table{padding:var(--space-6)}.overlay-bottom{flex-direction:column;align-items:stretch}.hud-side{width:100%}}.overlay-bottom .instruction.hint{align-self:flex-end;margin:0}.score-bug{flex-shrink:0}.clock{flex:0 200px;min-width:92px}@media (width<=420px){.score-bug .score{min-width:0;padding:var(--space-1) var(--space-3)}.clock .eyebrow{display:none}.clock div{justify-content:flex-end}.overlay-bottom>.btn{align-self:flex-start}}
