:root{--pr-app:#3a3a3a;--pr-panel:#3d3d3d;--pr-tab:#464646;--pr-track:#363636;--pr-trackhead:#414141;--pr-edge:#2b2b2b;--pr-line:#565656;--pr-control:#4d4d4d;--pr-control-hover:#5a5a5a;--pr-text:#eaeaea;--pr-text-dim:#adadad;--pr-blue:#2d8ceb;--pr-tc:#5fb0f0;--pr-clip:#aec6e6;--pr-clip-head:#c8d9ee;--pr-clip-text:#1b2735;--pr-wave:#16233a;--pr-render:#e6d24f;--accent:#ffd21e;--accent-dim:#ffd21e29;--bg:var(--pr-app);--panel-bg:var(--pr-panel);--border:var(--pr-edge);--text:var(--pr-text);--text-dim:var(--pr-text-dim);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:12px/1.45 Adobe Clean,"Source Sans 3",system-ui,Segoe UI,Roboto,Hiragino Kaku Gothic ProN,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--pr-app);color:var(--pr-text);overflow-x:hidden}h2{color:var(--pr-text-dim);margin:0 0 6px;font-size:11px;font-weight:600}button{font:inherit;color:var(--pr-text);background:var(--pr-control);border:1px solid var(--pr-edge);cursor:pointer;border-radius:2px;padding:4px 10px}button:hover:not(:disabled){background:var(--pr-control-hover)}button:focus-visible{outline:1px solid var(--pr-blue);outline-offset:1px}button:disabled{opacity:.45;cursor:default}fieldset{border:none;margin:6px 0;padding:0}fieldset legend{color:var(--pr-text-dim);padding:0;font-size:11px}input[type=radio]{accent-color:var(--pr-blue)}.keycap{min-width:20px;height:20px;color:var(--pr-text);background:var(--pr-control);border:1px solid var(--pr-edge);white-space:nowrap;border-radius:2px;justify-content:center;align-items:center;padding:0 5px;font-family:ui-monospace,Consolas,monospace;font-size:11px;font-weight:600;display:inline-flex;box-shadow:inset 0 -2px #0000004d,inset 0 1px #ffffff12}.keycap-primary{color:#fff;background:var(--pr-blue);border-color:#1f6fc0;min-width:26px;height:26px;font-size:13px}.app{background:var(--pr-edge);grid-template-rows:auto 1fr 336px;grid-template-columns:268px 1fr 244px;gap:1px;height:100%;padding:0;display:grid}.panel{background:var(--pr-panel);border-radius:0;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.panel-tabs{background:var(--pr-tab);border-bottom:1px solid var(--pr-edge);flex:none;align-items:stretch;height:24px;display:flex}.panel-tab{color:var(--pr-text);background:var(--pr-panel);border-right:1px solid var(--pr-edge);align-items:center;gap:5px;max-width:100%;padding:0 8px;font-size:11px;display:flex}.panel-tab-close,.panel-tab-menu{color:var(--pr-text-dim);font-size:10px;line-height:1}.panel-tab-swatch{background:#57a773;flex:none;width:9px;height:9px}.panel-tab-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.panel-active{box-shadow:inset 0 0 0 1px var(--pr-blue)}.panel-body{flex:1;min-height:0;padding:8px;overflow:auto}.panel-body-flush{flex-direction:column;padding:0;display:flex;overflow:hidden}.panel-keyguide{grid-area:2/3}.panel-challenges{grid-area:2/1}.panel-program{grid-area:2/2}.panel-timeline{grid-area:3/1/auto/span 3}.hud{background:var(--pr-tab);border-bottom:1px solid var(--pr-edge);grid-area:1/1/auto/span 3;align-items:center;gap:20px;height:32px;padding:0 12px;display:flex}.hud-item{align-items:baseline;gap:5px;display:flex}.hud-label{color:var(--pr-text-dim);font-size:10px}.hud-value{font-variant-numeric:tabular-nums;font-family:ui-monospace,Consolas,monospace;font-size:15px;font-weight:600}.hud-time-low .hud-value,.hud-combo-value{color:var(--accent)}@keyframes hud-combo-flash-kf{0%{color:var(--accent);text-shadow:0 0 10px var(--accent)}to{color:var(--accent);text-shadow:none}}.hud-combo-flash{animation:.4s ease-out hud-combo-flash-kf}@keyframes screen-shake-miss-kf{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(2px)}}.screen-shake-miss{animation:.2s ease-in-out screen-shake-miss-kf}@keyframes screen-shake-combo-kf{0%,to{transform:translate(0)}25%{transform:translate(-3px)}50%{transform:translate(3px)}75%{transform:translate(-2px)}}.screen-shake-combo{animation:.3s ease-in-out screen-shake-combo-kf}@keyframes screen-flash-neutral-kf{0%,to{opacity:1}50%{opacity:.85}}.screen-flash-neutral{animation:.2s ease-in-out screen-flash-neutral-kf}@media (prefers-reduced-motion:reduce){.hud-combo-flash,.screen-shake-miss,.screen-shake-combo,.screen-flash-neutral{animation:none}}.key-guide-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.key-guide-header h2{margin:0}.key-guide-header button{padding:2px 8px;font-size:11px}.key-guide-primary{background:var(--pr-track);border:1px solid var(--pr-edge);grid-template-columns:repeat(2,1fr);gap:8px;margin:8px 0;padding:8px;list-style:none;display:grid}.key-guide-primary li{align-items:center;gap:6px;display:flex}.key-guide-primary-label{color:var(--pr-text-dim);font-size:11px;line-height:1.25}.key-guide ul{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.key-guide li{justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}.key-guide-combo{flex-wrap:wrap;gap:3px;display:flex}.key-guide-label{color:var(--pr-text-dim);text-align:right}.challenge-items{flex-direction:column;margin:0 0 8px;padding:0;list-style:none;display:flex}.challenge-option{cursor:pointer;align-items:center;gap:6px;padding:3px 6px;display:flex}.challenge-option:hover{background:var(--pr-control)}.challenge-option:has(input:checked){background:var(--pr-blue);color:#fff}.challenge-option:has(input:checked) .challenge-meta{color:#ffffffd9}.challenge-title{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.challenge-meta{color:var(--pr-text-dim);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:11px}.limit-option{align-items:center;gap:4px;margin-right:10px;display:inline-flex}.session-status h2{color:var(--pr-text);margin-bottom:4px;font-size:12px}.session-status-actions{flex-wrap:wrap;gap:6px;display:flex}.ready-note p{color:var(--pr-text-dim);margin:0 0 8px;font-size:11px;line-height:1.5}.ready-note .ready-rule{color:var(--pr-text)}.ready-note .ready-rule strong{color:var(--accent)}.start-cta{color:#fff;background:var(--pr-blue);border-color:#1f6fc0;width:100%;padding:8px;font-size:13px;font-weight:700}.start-cta:hover:not(:disabled){background:#3d9bf5}.program-monitor{flex-direction:column;flex:1;min-height:0;display:flex}.program-monitor-media{background:#000;flex:1;justify-content:center;align-items:center;width:100%;min-height:0;padding:0;display:flex}.program-monitor-media video,.program-monitor-media img{object-fit:contain;border-radius:0;max-width:100%;max-height:100%;display:block}.program-monitor-bar{background:var(--pr-panel);border-top:1px solid var(--pr-edge);justify-content:space-between;align-items:center;gap:8px;padding:4px 8px;display:flex}.program-monitor-tc{font-variant-numeric:tabular-nums;color:var(--pr-tc);font-family:ui-monospace,Consolas,monospace;font-size:12px}.program-monitor-duration{font-variant-numeric:tabular-nums;color:var(--pr-text-dim);font-family:ui-monospace,Consolas,monospace;font-size:12px}.program-monitor-scrub{background:var(--pr-panel);border-top:1px solid var(--pr-edge);align-items:center;height:12px;padding:0 8px;display:flex;position:relative}.program-monitor-scrub-track{background:var(--pr-track);width:100%;height:3px;position:relative}.program-monitor-scrub-knob{background:var(--pr-text-dim);border-radius:50%;width:9px;height:9px;margin-left:-4px;position:absolute;top:50%;transform:translateY(-50%)}.program-monitor-controls{background:var(--pr-panel);border-top:1px solid var(--pr-edge);justify-content:center;align-items:center;gap:8px;padding:4px;display:flex}.program-monitor-controls button{min-width:30px;padding:2px 8px;font-size:11px}.program-monitor-hint{color:var(--pr-text-dim);text-align:center;background:var(--pr-panel);margin:0;padding:4px 8px;font-size:11px}.score-card{grid-template-columns:repeat(2,auto);gap:3px 14px;margin:0;font-size:11px;display:grid}.score-card div{display:contents}.score-card dt{color:var(--pr-text-dim)}.score-card dd{text-align:right;font-variant-numeric:tabular-nums;margin:0}.score-board{background:var(--pr-panel);border-top:1px solid var(--pr-edge);flex-direction:column;gap:6px;max-height:46%;padding:8px;display:flex;overflow:auto}.score-board-rank{align-items:baseline;gap:10px;display:flex}.score-board-rank-label{color:var(--pr-text-dim);font-size:11px}.score-board-rank-value{color:var(--accent);font-size:34px;font-weight:700;line-height:1}.score-board-rank-rate{color:var(--pr-text-dim);font-variant-numeric:tabular-nums;font-size:11px}.score-board-realtime{border-top:1px dashed var(--pr-line);flex-direction:column;gap:2px;margin:0;padding-top:6px;display:flex}.score-board-realtime-value,.score-board-realtime-note{color:var(--pr-text-dim);margin:0;font-size:11px}.score-board-best{color:var(--accent);margin:0;font-size:12px}.score-board-legend{color:var(--pr-text-dim);align-items:center;gap:5px;margin:0;font-size:11px;display:flex}.score-board-legend-swatch{width:9px;height:9px;display:inline-block}.score-board-legend-swatch.miss{background:#e0563c}.score-board-legend-swatch.neutral{background:var(--pr-text-dim);opacity:.5}.timeline-panel{flex-direction:column;flex:1;min-height:0;display:flex}.timeline-bar{background:var(--pr-panel);border-bottom:1px solid var(--pr-edge);align-items:center;gap:10px;padding:4px 8px;display:flex}.timeline-readout{font-variant-numeric:tabular-nums;color:var(--pr-tc);min-width:9em;font-family:ui-monospace,Consolas,monospace;font-size:12px}.timeline-zoom{align-items:center;gap:4px;margin-left:auto;display:flex}.timeline-zoom button{min-width:26px;padding:1px 8px;font-size:12px;line-height:1.4}.timeline-zoom-label{color:var(--pr-text-dim);text-align:right;min-width:8em;font-family:ui-monospace,Consolas,monospace;font-size:11px}.timeline-body{background:var(--pr-track);flex:1;min-height:0;display:flex}.timeline-track-heads{background:var(--pr-trackhead);border-right:1px solid var(--pr-edge);flex:none;width:172px}.track-head{border-bottom:1px solid var(--pr-edge);color:var(--pr-text-dim);align-items:center;gap:6px;padding:0 8px;font-size:11px;display:flex}.track-badge{color:#fff;background:var(--pr-blue);border-radius:1px;flex:none;justify-content:center;align-items:center;width:22px;height:18px;font-size:11px;font-weight:600;display:inline-flex}.track-head-icons{color:var(--pr-text-dim);align-items:center;gap:4px;margin-left:auto;display:flex}.track-head-icons svg{fill:none;stroke:currentColor;stroke-width:1.4px;display:block}.track-head-chip{background:var(--pr-control);border-radius:1px;justify-content:center;align-items:center;width:14px;height:14px;font-size:9px;font-weight:600;display:inline-flex}.timeline-canvas-wrap{flex:1;min-width:0;min-height:0;overflow:hidden}.timeline-canvas-wrap canvas{width:100%;height:100%;display:block}.timeline-hint{color:var(--pr-text-dim);background:var(--pr-panel);border-top:1px solid var(--pr-edge);margin:0;padding:3px 8px;font-size:11px}.key-settings-overlay{z-index:100;background:#0000008c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.key-settings{background:var(--pr-panel);border:1px solid var(--pr-edge);width:min(640px,100%);max-height:100%;padding:12px;overflow:auto;box-shadow:0 8px 32px #00000080}.key-settings-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.key-settings-header h2{color:var(--pr-text);margin:0;font-size:12px}.key-settings-header-actions{gap:6px;display:flex}.key-settings-conflict{background:var(--accent-dim);border:1px solid var(--accent);margin-bottom:10px;padding:6px 10px}.key-settings-conflict p{margin:0 0 6px}.key-settings-conflict-actions{gap:6px;display:flex}.key-settings-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.key-settings-row{border-bottom:1px solid var(--pr-line);justify-content:space-between;align-items:center;gap:12px;padding:4px 0;font-size:11px;display:flex}.key-settings-info{flex-direction:column;min-width:0;display:flex}.key-settings-label{color:var(--pr-text)}.key-settings-hint{color:var(--pr-text-dim);font-size:11px}.key-settings-combo{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.key-settings-combo-dim{color:var(--pr-text-dim);white-space:nowrap;font-family:ui-monospace,Consolas,monospace}.key-settings-capturing{color:var(--accent);white-space:nowrap}.start-screen{background:var(--pr-app);justify-content:center;align-items:center;height:100%;padding:24px;display:flex}.start-screen-card{background:var(--pr-panel);border:1px solid var(--pr-edge);flex-direction:column;width:min(560px,100%);padding:0;display:flex;box-shadow:0 8px 32px #00000073}.start-screen-titlebar{background:var(--pr-tab);border-bottom:1px solid var(--pr-edge);height:26px;color:var(--pr-text-dim);align-items:center;padding:0 10px;font-size:11px;display:flex}.start-screen-inner{flex-direction:column;gap:16px;padding:20px;display:flex}.start-screen-title{letter-spacing:.08em;color:var(--pr-text);margin:0;font-size:26px;font-weight:700}.start-screen-title-dot{color:var(--accent)}.start-screen-tagline{color:var(--pr-text-dim);margin:0;font-size:12px;line-height:1.7}.start-screen-tagline .keycap{vertical-align:-2px;margin:0 1px}.start-screen-section{flex-direction:column;gap:4px;display:flex}.start-screen-section>h2{margin:0}.start-screen-status{color:var(--pr-text-dim);margin:0}.start-screen-actions{justify-content:center;align-items:center;gap:10px;display:flex}.start-screen-start{background:var(--pr-blue);color:#fff;border-color:#1f6fc0;padding:8px 28px;font-size:14px;font-weight:600}.start-screen-start:hover:not(:disabled){background:#3d9bf5}.start-screen-start:disabled{background:var(--pr-control);color:var(--pr-text-dim);border-color:var(--pr-edge)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--pr-track)}::-webkit-scrollbar-thumb{border:2px solid var(--pr-track);background:#5e5e5e;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#6d6d6d}
